@ditari/bsui 1.1.26 → 1.1.28
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/CHANGELOG.md +12 -0
- package/dist/cjs/form/DQueryForm.cjs +14 -18
- package/dist/cjs/form/DQueryForm.cjs.map +1 -1
- package/dist/cjs/grid/index.d.ts +1 -1
- package/dist/cjs/modal/Modal.d.ts +1 -1
- package/dist/cjs/select/Select.vue.d.ts +2 -2
- package/dist/esm/form/DQueryForm.mjs +15 -19
- package/dist/esm/form/DQueryForm.mjs.map +1 -1
- package/dist/esm/grid/index.d.ts +1 -1
- package/dist/esm/modal/Modal.d.ts +1 -1
- package/dist/esm/select/Select.vue.d.ts +2 -2
- package/example/src/router/form/index.route.ts +0 -8
- package/example/src/views/form/List.vue +9 -2
- package/package.json +1 -1
- package/src/form/DQueryForm.tsx +34 -33
package/CHANGELOG.md
CHANGED
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var core = require('@vueuse/core');
|
|
7
6
|
var antDesignVue = require('ant-design-vue');
|
|
8
7
|
var iconsVue = require('@ant-design/icons-vue');
|
|
9
|
-
var store = require('@ditari/store');
|
|
10
|
-
var vueRouter = require('vue-router');
|
|
11
8
|
var JsonSchemeRender = require('../json-scheme-render/JsonSchemeRender.cjs');
|
|
12
9
|
|
|
13
10
|
var QueryForm = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -35,14 +32,13 @@ var QueryForm = /* @__PURE__ */ vue.defineComponent({
|
|
|
35
32
|
slots,
|
|
36
33
|
emit
|
|
37
34
|
}) {
|
|
38
|
-
const keepStore = store.useKeepAliveStore();
|
|
39
|
-
const route = vueRouter.useRoute();
|
|
40
35
|
const {
|
|
41
36
|
loading,
|
|
42
37
|
modelValue,
|
|
43
38
|
formRef,
|
|
44
39
|
onQuery,
|
|
45
|
-
onReset
|
|
40
|
+
onReset,
|
|
41
|
+
onKeyup
|
|
46
42
|
} = useForm();
|
|
47
43
|
const {
|
|
48
44
|
rowRef,
|
|
@@ -58,22 +54,12 @@ var QueryForm = /* @__PURE__ */ vue.defineComponent({
|
|
|
58
54
|
const loading2 = vue.ref(false);
|
|
59
55
|
const formRef2 = vue.ref(null);
|
|
60
56
|
const modelValue2 = vue.ref({});
|
|
61
|
-
const keys = core.useMagicKeys();
|
|
62
|
-
const enterKey = keys["enter"];
|
|
63
57
|
vue.watchEffect(() => {
|
|
64
58
|
modelValue2.value = props.model;
|
|
65
59
|
});
|
|
66
60
|
vue.watch(() => props.loading, (val) => {
|
|
67
61
|
loading2.value = val;
|
|
68
62
|
});
|
|
69
|
-
vue.watch(enterKey, (v) => {
|
|
70
|
-
if (v) {
|
|
71
|
-
const isActive = keepStore.list.some((name) => name === route.name);
|
|
72
|
-
if (!loading2.value && isActive) {
|
|
73
|
-
emit("query", modelValue2.value);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
63
|
const onQuery2 = () => {
|
|
78
64
|
emit("query", modelValue2.value);
|
|
79
65
|
};
|
|
@@ -82,12 +68,20 @@ var QueryForm = /* @__PURE__ */ vue.defineComponent({
|
|
|
82
68
|
(_a = formRef2.value) == null ? void 0 : _a.resetFields();
|
|
83
69
|
emit("reset");
|
|
84
70
|
};
|
|
71
|
+
const onKeyup2 = (event) => {
|
|
72
|
+
if (event.keyCode === 13) {
|
|
73
|
+
if (!loading2.value) {
|
|
74
|
+
emit("query", modelValue2.value);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
85
78
|
return {
|
|
86
79
|
loading: loading2,
|
|
87
80
|
modelValue: modelValue2,
|
|
88
81
|
formRef: formRef2,
|
|
89
82
|
onQuery: onQuery2,
|
|
90
|
-
onReset: onReset2
|
|
83
|
+
onReset: onReset2,
|
|
84
|
+
onKeyup: onKeyup2
|
|
91
85
|
};
|
|
92
86
|
}
|
|
93
87
|
function useRender() {
|
|
@@ -171,7 +165,9 @@ var QueryForm = /* @__PURE__ */ vue.defineComponent({
|
|
|
171
165
|
isExpend: isExpend2
|
|
172
166
|
};
|
|
173
167
|
}
|
|
174
|
-
return () => vue.createVNode(
|
|
168
|
+
return () => vue.createVNode("div", {
|
|
169
|
+
"onKeyup": onKeyup
|
|
170
|
+
}, [vue.createVNode(antDesignVue.Form, {
|
|
175
171
|
"ref": formRef,
|
|
176
172
|
"colon": false,
|
|
177
173
|
"labelCol": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DQueryForm.cjs","sources":["../../../src/form/DQueryForm.tsx"],"sourcesContent":["import { defineComponent, onMounted, ref, watch, watchEffect } from \"vue\";\nimport { useMagicKeys } from \"@vueuse/core\";\n\nimport { Form, FormItem, Row, Col, Button, Space } from \"ant-design-vue\";\nimport {\n SearchOutlined,\n ReloadOutlined,\n DoubleRightOutlined\n} from \"@ant-design/icons-vue\";\nimport { useKeepAliveStore } from \"@ditari/store\";\nimport { useRoute } from \"vue-router\";\nimport DJsonSchemeRender from \"../json-scheme-render/JsonSchemeRender\";\n\n/**\n * 查询表单渲染\n * 展开,隐藏功能\n */\nexport default defineComponent({\n name: \"DQueryForm\",\n props: {\n scheme: {\n type: [Array, Object] as unknown as () => any[] | Record<string, any>,\n default: () => []\n },\n model: {\n type: Object as () => Record<string, unknown>,\n default: () => ({})\n },\n labelWidth: {\n type: String,\n default: \"90px\"\n },\n loading: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"reset\", \"query\"],\n setup(props, { slots, emit }) {\n const keepStore = useKeepAliveStore();\n const route = useRoute();\n\n // 表单\n const { loading, modelValue, formRef, onQuery, onReset } = useForm();\n // 展开\n const { rowRef, actionSpan, onExpend, expendBtnVisible, isExpend } =\n useExpand();\n //渲染操作列\n const { renderAction } = useRender();\n\n function useForm() {\n const loading = ref(false);\n const formRef = ref<any>(null);\n const modelValue = ref<any>({});\n\n const keys = useMagicKeys();\n const enterKey = keys[\"enter\"];\n\n watchEffect(() => {\n modelValue.value = props.model;\n });\n\n watch(\n () => props.loading,\n (val) => {\n loading.value = val;\n }\n );\n\n /// 监听回车事件\n watch(enterKey, (v) => {\n if (v) {\n // 有路由名字会被keepalive进行缓存\n // 用于判断当前页面是否被激活 因为页面被缓存的时候,页面切换后,回车事件依然会触发\n const isActive = keepStore.list.some((name) => name === route.name);\n if (!loading.value && isActive) {\n emit(\"query\", modelValue.value);\n }\n // TODO 逻辑有问题\n // if (!route.name) {\n // // 没有路由名字,不会被缓存\n // if (!loading.value) {\n // emit(\"query\", modelValue.value);\n // }\n // } else {\n //\n // }\n }\n });\n\n const onQuery = () => {\n emit(\"query\", modelValue.value);\n };\n\n const onReset = () => {\n formRef.value?.resetFields();\n emit(\"reset\");\n };\n return {\n loading,\n modelValue,\n formRef,\n onQuery,\n onReset\n };\n }\n\n function useRender() {\n /**\n * 操作按钮渲染\n */\n function renderAction() {\n return (\n <Space>\n <Button\n loading={loading.value}\n type={\"primary\"}\n shape={\"round\"}\n onClick={onQuery}\n >\n {{\n default: () => \"查询\",\n icon: () => <SearchOutlined />\n }}\n </Button>\n <Button disabled={loading.value} shape={\"round\"} onClick={onReset}>\n {{\n default: () => \"重置\",\n icon: () => <ReloadOutlined />\n }}\n </Button>\n {expendBtnVisible.value ? (\n <Button onClick={onExpend} shape={\"round\"}>\n {{\n default: () => (isExpend.value ? \"收起\" : \"展开\"),\n icon: () => (\n <DoubleRightOutlined rotate={isExpend.value ? -90 : 90} />\n )\n }}\n </Button>\n ) : null}\n </Space>\n );\n }\n\n return {\n renderAction\n };\n }\n\n function useExpand() {\n // 为24网格布局\n const gridCount = 24;\n // 每列占6个格子\n const colSpan = 6;\n // 每行显示4列\n const colsPerRow = 4;\n // 操作按钮span\n const actionSpan = ref(6);\n // 控制展开或隐藏按钮文本\n const isExpend = ref(false);\n // 控制展开按按钮是否显示\n const expendBtnVisible = ref(false);\n // 行对象\n const rowRef = ref<any>(null);\n\n onMounted(() => {\n handleShowOrHidden();\n });\n\n function onExpend() {\n isExpend.value = !isExpend.value;\n handleShowOrHidden();\n }\n\n /**\n * 处理隐藏或显示\n */\n function handleShowOrHidden() {\n const colEl = Array.from(rowRef.value?.$el?.children);\n // col总条数 减掉操作栏按钮的div个数为1\n const colElLen = colEl.length - 1;\n // 已占用的网格数 = col总条数 * 每列占用的网格数\n const occupiedCols = colElLen * colSpan;\n // 总行数 = 总div数 / 每行显示的列数\n const fullRows = Math.ceil(colElLen / colsPerRow);\n // 最后一行的网格数 = 已占用的网格数 % 24\n const lastRowCols = occupiedCols % gridCount;\n // 最后一行剩余的网格数\n const remainingCols = gridCount - lastRowCols;\n\n // 网格行大于2才显示展开或隐藏按钮\n if (fullRows > 2) {\n expendBtnVisible.value = true;\n } else {\n // 如果没有大于两行,操作栏占用剩余的宽度\n actionSpan.value = remainingCols;\n }\n // 最后一行的起始索引\n const lastRowStartIndex = colsPerRow * (fullRows - 1) - 1;\n // 只有展开按钮显示时才处理\n if (expendBtnVisible.value) {\n colEl.forEach((col: any, index) => {\n if (index >= lastRowStartIndex) {\n // 最后一个元素不隐藏 是操作按钮的div\n index !== colElLen\n ? (col.style.display = !isExpend.value ? \"none\" : \"block\")\n : null; // 隐藏元素\n }\n });\n }\n\n if (expendBtnVisible.value) {\n // 如果是展开状态 则操作按钮占用剩余的网格数 否则占用6个网格\n isExpend.value\n ? (actionSpan.value = remainingCols)\n : (actionSpan.value = colSpan);\n }\n }\n\n return {\n rowRef,\n actionSpan,\n onExpend,\n expendBtnVisible,\n isExpend\n };\n }\n\n return () => (\n <>\n <Form\n ref={formRef}\n colon={false}\n labelCol={{ style: { width: props.labelWidth } }}\n model={modelValue.value}\n >\n <Row ref={rowRef}>\n {slots.default ? (\n slots.default()\n ) : (\n <DJsonSchemeRender\n layout={props.scheme}\n value={modelValue.value}\n />\n )}\n <Col span={actionSpan.value} style={{ textAlign: \"right\" }}>\n <FormItem>\n {slots.action ? slots.action() : renderAction()}\n </FormItem>\n </Col>\n </Row>\n </Form>\n </>\n );\n }\n});\n"],"names":["defineComponent","name","props","scheme","type","Array","Object","default","model","labelWidth","String","loading","Boolean","emits","setup","slots","emit","keepStore","useKeepAliveStore","route","useRoute","modelValue","formRef","onQuery","onReset","useForm","rowRef","actionSpan","onExpend","expendBtnVisible","isExpend","useExpand","renderAction","useRender","ref","keys","useMagicKeys","enterKey","watchEffect","value","watch","val","v","isActive","list","some","resetFields","_createVNode","Space","Button","icon","SearchOutlined","ReloadOutlined","DoubleRightOutlined","gridCount","colSpan","colsPerRow","onMounted","handleShowOrHidden","colEl","from","$el","children","colElLen","length","occupiedCols","fullRows","Math","ceil","lastRowCols","remainingCols","lastRowStartIndex","forEach","col","index","style","display","_Fragment","Form","width","Row","DJsonSchemeRender","Col","textAlign","FormItem","action"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DQueryForm.cjs","sources":["../../../src/form/DQueryForm.tsx"],"sourcesContent":["import { defineComponent, onMounted, ref, watch, watchEffect } from \"vue\";\nimport { Form, FormItem, Row, Col, Button, Space } from \"ant-design-vue\";\nimport {\n SearchOutlined,\n ReloadOutlined,\n DoubleRightOutlined\n} from \"@ant-design/icons-vue\";\nimport DJsonSchemeRender from \"../json-scheme-render/JsonSchemeRender\";\n\n/**\n * 查询表单渲染\n * 展开,隐藏功能\n */\nexport default defineComponent({\n name: \"DQueryForm\",\n props: {\n scheme: {\n type: [Array, Object] as unknown as () => any[] | Record<string, any>,\n default: () => []\n },\n model: {\n type: Object as () => Record<string, unknown>,\n default: () => ({})\n },\n labelWidth: {\n type: String,\n default: \"90px\"\n },\n loading: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"reset\", \"query\"],\n setup(props, { slots, emit }) {\n // 表单\n const { loading, modelValue, formRef, onQuery, onReset, onKeyup } =\n useForm();\n // 展开\n const { rowRef, actionSpan, onExpend, expendBtnVisible, isExpend } =\n useExpand();\n //渲染操作列\n const { renderAction } = useRender();\n\n function useForm() {\n const loading = ref(false);\n const formRef = ref<any>(null);\n const modelValue = ref<any>({});\n\n watchEffect(() => {\n modelValue.value = props.model;\n });\n\n watch(\n () => props.loading,\n (val) => {\n loading.value = val;\n }\n );\n\n /// 监听回车事件\n // watch(enterKey, (v) => {\n // if (v) {\n // // 有路由名字会被keepalive进行缓存\n // // 用于判断当前页面是否被激活 因为页面被缓存的时候,页面切换后,回车事件依然会触发\n // const isActive = keepStore.list.some((name) => name === route.name);\n // console.log(route.name);\n // if (!loading.value && isActive) {\n // emit(\"query\", modelValue.value);\n // }\n // //TODO 逻辑有问题\n // if (!route.name) {\n // // 没有路由名字,不会被缓存\n // if (!loading.value) {\n // emit(\"query\", modelValue.value);\n // }\n // } else {\n //\n // }\n // }\n // });\n\n const onQuery = () => {\n emit(\"query\", modelValue.value);\n };\n\n const onReset = () => {\n formRef.value?.resetFields();\n emit(\"reset\");\n };\n\n const onKeyup = (event: any) => {\n if (event.keyCode === 13) {\n if (!loading.value) {\n emit(\"query\", modelValue.value);\n }\n }\n };\n return {\n loading,\n modelValue,\n formRef,\n onQuery,\n onReset,\n onKeyup\n };\n }\n\n function useRender() {\n /**\n * 操作按钮渲染\n */\n function renderAction() {\n return (\n <Space>\n <Button\n loading={loading.value}\n type={\"primary\"}\n shape={\"round\"}\n onClick={onQuery}\n >\n {{\n default: () => \"查询\",\n icon: () => <SearchOutlined />\n }}\n </Button>\n <Button disabled={loading.value} shape={\"round\"} onClick={onReset}>\n {{\n default: () => \"重置\",\n icon: () => <ReloadOutlined />\n }}\n </Button>\n {expendBtnVisible.value ? (\n <Button onClick={onExpend} shape={\"round\"}>\n {{\n default: () => (isExpend.value ? \"收起\" : \"展开\"),\n icon: () => (\n <DoubleRightOutlined rotate={isExpend.value ? -90 : 90} />\n )\n }}\n </Button>\n ) : null}\n </Space>\n );\n }\n\n return {\n renderAction\n };\n }\n\n function useExpand() {\n // 为24网格布局\n const gridCount = 24;\n // 每列占6个格子\n const colSpan = 6;\n // 每行显示4列\n const colsPerRow = 4;\n // 操作按钮span\n const actionSpan = ref(6);\n // 控制展开或隐藏按钮文本\n const isExpend = ref(false);\n // 控制展开按按钮是否显示\n const expendBtnVisible = ref(false);\n // 行对象\n const rowRef = ref<any>(null);\n\n onMounted(() => {\n handleShowOrHidden();\n });\n\n function onExpend() {\n isExpend.value = !isExpend.value;\n handleShowOrHidden();\n }\n\n /**\n * 处理隐藏或显示\n */\n function handleShowOrHidden() {\n const colEl = Array.from(rowRef.value?.$el?.children);\n // col总条数 减掉操作栏按钮的div个数为1\n const colElLen = colEl.length - 1;\n // 已占用的网格数 = col总条数 * 每列占用的网格数\n const occupiedCols = colElLen * colSpan;\n // 总行数 = 总div数 / 每行显示的列数\n const fullRows = Math.ceil(colElLen / colsPerRow);\n // 最后一行的网格数 = 已占用的网格数 % 24\n const lastRowCols = occupiedCols % gridCount;\n // 最后一行剩余的网格数\n const remainingCols = gridCount - lastRowCols;\n\n // 网格行大于2才显示展开或隐藏按钮\n if (fullRows > 2) {\n expendBtnVisible.value = true;\n } else {\n // 如果没有大于两行,操作栏占用剩余的宽度\n actionSpan.value = remainingCols;\n }\n // 最后一行的起始索引\n const lastRowStartIndex = colsPerRow * (fullRows - 1) - 1;\n // 只有展开按钮显示时才处理\n if (expendBtnVisible.value) {\n colEl.forEach((col: any, index) => {\n if (index >= lastRowStartIndex) {\n // 最后一个元素不隐藏 是操作按钮的div\n index !== colElLen\n ? (col.style.display = !isExpend.value ? \"none\" : \"block\")\n : null; // 隐藏元素\n }\n });\n }\n\n if (expendBtnVisible.value) {\n // 如果是展开状态 则操作按钮占用剩余的网格数 否则占用6个网格\n isExpend.value\n ? (actionSpan.value = remainingCols)\n : (actionSpan.value = colSpan);\n }\n }\n\n return {\n rowRef,\n actionSpan,\n onExpend,\n expendBtnVisible,\n isExpend\n };\n }\n\n return () => (\n <div onKeyup={onKeyup}>\n <Form\n ref={formRef}\n colon={false}\n labelCol={{ style: { width: props.labelWidth } }}\n model={modelValue.value}\n >\n <Row ref={rowRef}>\n {slots.default ? (\n slots.default()\n ) : (\n <DJsonSchemeRender\n layout={props.scheme}\n value={modelValue.value}\n />\n )}\n <Col span={actionSpan.value} style={{ textAlign: \"right\" }}>\n <FormItem>\n {slots.action ? slots.action() : renderAction()}\n </FormItem>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n});\n"],"names":["defineComponent","name","props","scheme","type","Array","Object","default","model","labelWidth","String","loading","Boolean","emits","setup","slots","emit","modelValue","formRef","onQuery","onReset","onKeyup","useForm","rowRef","actionSpan","onExpend","expendBtnVisible","isExpend","useExpand","renderAction","useRender","ref","watchEffect","value","watch","val","resetFields","event","keyCode","_createVNode","Space","Button","icon","SearchOutlined","ReloadOutlined","DoubleRightOutlined","gridCount","colSpan","colsPerRow","onMounted","handleShowOrHidden","colEl","from","$el","children","colElLen","length","occupiedCols","fullRows","Math","ceil","lastRowCols","remainingCols","lastRowStartIndex","forEach","col","index","style","display","Form","width","Row","DJsonSchemeRender","Col","textAlign","FormItem","action"],"mappings":"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"}
|
package/dist/cjs/grid/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ declare const _default: {
|
|
|
9
9
|
fill?: boolean | undefined;
|
|
10
10
|
className?: string | undefined;
|
|
11
11
|
grid?: string | undefined;
|
|
12
|
+
style?: unknown;
|
|
12
13
|
key?: string | number | symbol | undefined;
|
|
13
14
|
ref?: import("vue").VNodeRef | undefined;
|
|
14
15
|
ref_for?: boolean | undefined;
|
|
@@ -52,7 +53,6 @@ declare const _default: {
|
|
|
52
53
|
[key: string]: any;
|
|
53
54
|
}>) => void)[] | undefined;
|
|
54
55
|
class?: unknown;
|
|
55
|
-
style?: unknown;
|
|
56
56
|
};
|
|
57
57
|
$attrs: {
|
|
58
58
|
[x: string]: unknown;
|
|
@@ -26,7 +26,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
26
26
|
};
|
|
27
27
|
}, {
|
|
28
28
|
props: any;
|
|
29
|
-
emits: (event: "
|
|
29
|
+
emits: (event: "select" | "change" | "update:value", ...args: any[]) => void;
|
|
30
30
|
getDicByKey: (key: string) => any;
|
|
31
31
|
modelValue: any;
|
|
32
32
|
data: any;
|
|
@@ -40,7 +40,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
40
40
|
onChange: () => void;
|
|
41
41
|
};
|
|
42
42
|
onFilterOption: (inputValue: any, options: any) => any;
|
|
43
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("
|
|
43
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "change" | "update:value")[], "select" | "change" | "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
44
44
|
value: {
|
|
45
45
|
type: null;
|
|
46
46
|
required: true;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { defineComponent, ref, watchEffect, watch, createVNode, onMounted
|
|
2
|
-
import { useMagicKeys } from '@vueuse/core';
|
|
1
|
+
import { defineComponent, ref, watchEffect, watch, createVNode, onMounted } from 'vue';
|
|
3
2
|
import { Space, Button, Form, Row, Col, FormItem } from 'ant-design-vue';
|
|
4
3
|
import { SearchOutlined, ReloadOutlined, DoubleRightOutlined } from '@ant-design/icons-vue';
|
|
5
|
-
import { useKeepAliveStore } from '@ditari/store';
|
|
6
|
-
import { useRoute } from 'vue-router';
|
|
7
4
|
import JsonSchemeRender from '../json-scheme-render/JsonSchemeRender.mjs';
|
|
8
5
|
|
|
9
6
|
var QueryForm = /* @__PURE__ */ defineComponent({
|
|
@@ -31,14 +28,13 @@ var QueryForm = /* @__PURE__ */ defineComponent({
|
|
|
31
28
|
slots,
|
|
32
29
|
emit
|
|
33
30
|
}) {
|
|
34
|
-
const keepStore = useKeepAliveStore();
|
|
35
|
-
const route = useRoute();
|
|
36
31
|
const {
|
|
37
32
|
loading,
|
|
38
33
|
modelValue,
|
|
39
34
|
formRef,
|
|
40
35
|
onQuery,
|
|
41
|
-
onReset
|
|
36
|
+
onReset,
|
|
37
|
+
onKeyup
|
|
42
38
|
} = useForm();
|
|
43
39
|
const {
|
|
44
40
|
rowRef,
|
|
@@ -54,22 +50,12 @@ var QueryForm = /* @__PURE__ */ defineComponent({
|
|
|
54
50
|
const loading2 = ref(false);
|
|
55
51
|
const formRef2 = ref(null);
|
|
56
52
|
const modelValue2 = ref({});
|
|
57
|
-
const keys = useMagicKeys();
|
|
58
|
-
const enterKey = keys["enter"];
|
|
59
53
|
watchEffect(() => {
|
|
60
54
|
modelValue2.value = props.model;
|
|
61
55
|
});
|
|
62
56
|
watch(() => props.loading, (val) => {
|
|
63
57
|
loading2.value = val;
|
|
64
58
|
});
|
|
65
|
-
watch(enterKey, (v) => {
|
|
66
|
-
if (v) {
|
|
67
|
-
const isActive = keepStore.list.some((name) => name === route.name);
|
|
68
|
-
if (!loading2.value && isActive) {
|
|
69
|
-
emit("query", modelValue2.value);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
59
|
const onQuery2 = () => {
|
|
74
60
|
emit("query", modelValue2.value);
|
|
75
61
|
};
|
|
@@ -78,12 +64,20 @@ var QueryForm = /* @__PURE__ */ defineComponent({
|
|
|
78
64
|
(_a = formRef2.value) == null ? void 0 : _a.resetFields();
|
|
79
65
|
emit("reset");
|
|
80
66
|
};
|
|
67
|
+
const onKeyup2 = (event) => {
|
|
68
|
+
if (event.keyCode === 13) {
|
|
69
|
+
if (!loading2.value) {
|
|
70
|
+
emit("query", modelValue2.value);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
81
74
|
return {
|
|
82
75
|
loading: loading2,
|
|
83
76
|
modelValue: modelValue2,
|
|
84
77
|
formRef: formRef2,
|
|
85
78
|
onQuery: onQuery2,
|
|
86
|
-
onReset: onReset2
|
|
79
|
+
onReset: onReset2,
|
|
80
|
+
onKeyup: onKeyup2
|
|
87
81
|
};
|
|
88
82
|
}
|
|
89
83
|
function useRender() {
|
|
@@ -167,7 +161,9 @@ var QueryForm = /* @__PURE__ */ defineComponent({
|
|
|
167
161
|
isExpend: isExpend2
|
|
168
162
|
};
|
|
169
163
|
}
|
|
170
|
-
return () => createVNode(
|
|
164
|
+
return () => createVNode("div", {
|
|
165
|
+
"onKeyup": onKeyup
|
|
166
|
+
}, [createVNode(Form, {
|
|
171
167
|
"ref": formRef,
|
|
172
168
|
"colon": false,
|
|
173
169
|
"labelCol": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DQueryForm.mjs","sources":["../../../src/form/DQueryForm.tsx"],"sourcesContent":["import { defineComponent, onMounted, ref, watch, watchEffect } from \"vue\";\nimport { useMagicKeys } from \"@vueuse/core\";\n\nimport { Form, FormItem, Row, Col, Button, Space } from \"ant-design-vue\";\nimport {\n SearchOutlined,\n ReloadOutlined,\n DoubleRightOutlined\n} from \"@ant-design/icons-vue\";\nimport { useKeepAliveStore } from \"@ditari/store\";\nimport { useRoute } from \"vue-router\";\nimport DJsonSchemeRender from \"../json-scheme-render/JsonSchemeRender\";\n\n/**\n * 查询表单渲染\n * 展开,隐藏功能\n */\nexport default defineComponent({\n name: \"DQueryForm\",\n props: {\n scheme: {\n type: [Array, Object] as unknown as () => any[] | Record<string, any>,\n default: () => []\n },\n model: {\n type: Object as () => Record<string, unknown>,\n default: () => ({})\n },\n labelWidth: {\n type: String,\n default: \"90px\"\n },\n loading: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"reset\", \"query\"],\n setup(props, { slots, emit }) {\n const keepStore = useKeepAliveStore();\n const route = useRoute();\n\n // 表单\n const { loading, modelValue, formRef, onQuery, onReset } = useForm();\n // 展开\n const { rowRef, actionSpan, onExpend, expendBtnVisible, isExpend } =\n useExpand();\n //渲染操作列\n const { renderAction } = useRender();\n\n function useForm() {\n const loading = ref(false);\n const formRef = ref<any>(null);\n const modelValue = ref<any>({});\n\n const keys = useMagicKeys();\n const enterKey = keys[\"enter\"];\n\n watchEffect(() => {\n modelValue.value = props.model;\n });\n\n watch(\n () => props.loading,\n (val) => {\n loading.value = val;\n }\n );\n\n /// 监听回车事件\n watch(enterKey, (v) => {\n if (v) {\n // 有路由名字会被keepalive进行缓存\n // 用于判断当前页面是否被激活 因为页面被缓存的时候,页面切换后,回车事件依然会触发\n const isActive = keepStore.list.some((name) => name === route.name);\n if (!loading.value && isActive) {\n emit(\"query\", modelValue.value);\n }\n // TODO 逻辑有问题\n // if (!route.name) {\n // // 没有路由名字,不会被缓存\n // if (!loading.value) {\n // emit(\"query\", modelValue.value);\n // }\n // } else {\n //\n // }\n }\n });\n\n const onQuery = () => {\n emit(\"query\", modelValue.value);\n };\n\n const onReset = () => {\n formRef.value?.resetFields();\n emit(\"reset\");\n };\n return {\n loading,\n modelValue,\n formRef,\n onQuery,\n onReset\n };\n }\n\n function useRender() {\n /**\n * 操作按钮渲染\n */\n function renderAction() {\n return (\n <Space>\n <Button\n loading={loading.value}\n type={\"primary\"}\n shape={\"round\"}\n onClick={onQuery}\n >\n {{\n default: () => \"查询\",\n icon: () => <SearchOutlined />\n }}\n </Button>\n <Button disabled={loading.value} shape={\"round\"} onClick={onReset}>\n {{\n default: () => \"重置\",\n icon: () => <ReloadOutlined />\n }}\n </Button>\n {expendBtnVisible.value ? (\n <Button onClick={onExpend} shape={\"round\"}>\n {{\n default: () => (isExpend.value ? \"收起\" : \"展开\"),\n icon: () => (\n <DoubleRightOutlined rotate={isExpend.value ? -90 : 90} />\n )\n }}\n </Button>\n ) : null}\n </Space>\n );\n }\n\n return {\n renderAction\n };\n }\n\n function useExpand() {\n // 为24网格布局\n const gridCount = 24;\n // 每列占6个格子\n const colSpan = 6;\n // 每行显示4列\n const colsPerRow = 4;\n // 操作按钮span\n const actionSpan = ref(6);\n // 控制展开或隐藏按钮文本\n const isExpend = ref(false);\n // 控制展开按按钮是否显示\n const expendBtnVisible = ref(false);\n // 行对象\n const rowRef = ref<any>(null);\n\n onMounted(() => {\n handleShowOrHidden();\n });\n\n function onExpend() {\n isExpend.value = !isExpend.value;\n handleShowOrHidden();\n }\n\n /**\n * 处理隐藏或显示\n */\n function handleShowOrHidden() {\n const colEl = Array.from(rowRef.value?.$el?.children);\n // col总条数 减掉操作栏按钮的div个数为1\n const colElLen = colEl.length - 1;\n // 已占用的网格数 = col总条数 * 每列占用的网格数\n const occupiedCols = colElLen * colSpan;\n // 总行数 = 总div数 / 每行显示的列数\n const fullRows = Math.ceil(colElLen / colsPerRow);\n // 最后一行的网格数 = 已占用的网格数 % 24\n const lastRowCols = occupiedCols % gridCount;\n // 最后一行剩余的网格数\n const remainingCols = gridCount - lastRowCols;\n\n // 网格行大于2才显示展开或隐藏按钮\n if (fullRows > 2) {\n expendBtnVisible.value = true;\n } else {\n // 如果没有大于两行,操作栏占用剩余的宽度\n actionSpan.value = remainingCols;\n }\n // 最后一行的起始索引\n const lastRowStartIndex = colsPerRow * (fullRows - 1) - 1;\n // 只有展开按钮显示时才处理\n if (expendBtnVisible.value) {\n colEl.forEach((col: any, index) => {\n if (index >= lastRowStartIndex) {\n // 最后一个元素不隐藏 是操作按钮的div\n index !== colElLen\n ? (col.style.display = !isExpend.value ? \"none\" : \"block\")\n : null; // 隐藏元素\n }\n });\n }\n\n if (expendBtnVisible.value) {\n // 如果是展开状态 则操作按钮占用剩余的网格数 否则占用6个网格\n isExpend.value\n ? (actionSpan.value = remainingCols)\n : (actionSpan.value = colSpan);\n }\n }\n\n return {\n rowRef,\n actionSpan,\n onExpend,\n expendBtnVisible,\n isExpend\n };\n }\n\n return () => (\n <>\n <Form\n ref={formRef}\n colon={false}\n labelCol={{ style: { width: props.labelWidth } }}\n model={modelValue.value}\n >\n <Row ref={rowRef}>\n {slots.default ? (\n slots.default()\n ) : (\n <DJsonSchemeRender\n layout={props.scheme}\n value={modelValue.value}\n />\n )}\n <Col span={actionSpan.value} style={{ textAlign: \"right\" }}>\n <FormItem>\n {slots.action ? slots.action() : renderAction()}\n </FormItem>\n </Col>\n </Row>\n </Form>\n </>\n );\n }\n});\n"],"names":["name","props","scheme","type","Array","Object","default","model","labelWidth","String","loading","Boolean","emits","setup","slots","emit","keepStore","useKeepAliveStore","route","useRoute","modelValue","formRef","onQuery","onReset","useForm","rowRef","actionSpan","onExpend","expendBtnVisible","isExpend","useExpand","renderAction","useRender","ref","keys","useMagicKeys","enterKey","watchEffect","value","watch","val","v","isActive","list","some","resetFields","_createVNode","Space","Button","icon","SearchOutlined","ReloadOutlined","DoubleRightOutlined","gridCount","colSpan","colsPerRow","onMounted","handleShowOrHidden","colEl","from","$el","children","colElLen","length","occupiedCols","fullRows","Math","ceil","lastRowCols","remainingCols","lastRowStartIndex","forEach","col","index","style","display","_Fragment","Form","width","Row","DJsonSchemeRender","Col","textAlign","FormItem","action"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DQueryForm.mjs","sources":["../../../src/form/DQueryForm.tsx"],"sourcesContent":["import { defineComponent, onMounted, ref, watch, watchEffect } from \"vue\";\nimport { Form, FormItem, Row, Col, Button, Space } from \"ant-design-vue\";\nimport {\n SearchOutlined,\n ReloadOutlined,\n DoubleRightOutlined\n} from \"@ant-design/icons-vue\";\nimport DJsonSchemeRender from \"../json-scheme-render/JsonSchemeRender\";\n\n/**\n * 查询表单渲染\n * 展开,隐藏功能\n */\nexport default defineComponent({\n name: \"DQueryForm\",\n props: {\n scheme: {\n type: [Array, Object] as unknown as () => any[] | Record<string, any>,\n default: () => []\n },\n model: {\n type: Object as () => Record<string, unknown>,\n default: () => ({})\n },\n labelWidth: {\n type: String,\n default: \"90px\"\n },\n loading: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"reset\", \"query\"],\n setup(props, { slots, emit }) {\n // 表单\n const { loading, modelValue, formRef, onQuery, onReset, onKeyup } =\n useForm();\n // 展开\n const { rowRef, actionSpan, onExpend, expendBtnVisible, isExpend } =\n useExpand();\n //渲染操作列\n const { renderAction } = useRender();\n\n function useForm() {\n const loading = ref(false);\n const formRef = ref<any>(null);\n const modelValue = ref<any>({});\n\n watchEffect(() => {\n modelValue.value = props.model;\n });\n\n watch(\n () => props.loading,\n (val) => {\n loading.value = val;\n }\n );\n\n /// 监听回车事件\n // watch(enterKey, (v) => {\n // if (v) {\n // // 有路由名字会被keepalive进行缓存\n // // 用于判断当前页面是否被激活 因为页面被缓存的时候,页面切换后,回车事件依然会触发\n // const isActive = keepStore.list.some((name) => name === route.name);\n // console.log(route.name);\n // if (!loading.value && isActive) {\n // emit(\"query\", modelValue.value);\n // }\n // //TODO 逻辑有问题\n // if (!route.name) {\n // // 没有路由名字,不会被缓存\n // if (!loading.value) {\n // emit(\"query\", modelValue.value);\n // }\n // } else {\n //\n // }\n // }\n // });\n\n const onQuery = () => {\n emit(\"query\", modelValue.value);\n };\n\n const onReset = () => {\n formRef.value?.resetFields();\n emit(\"reset\");\n };\n\n const onKeyup = (event: any) => {\n if (event.keyCode === 13) {\n if (!loading.value) {\n emit(\"query\", modelValue.value);\n }\n }\n };\n return {\n loading,\n modelValue,\n formRef,\n onQuery,\n onReset,\n onKeyup\n };\n }\n\n function useRender() {\n /**\n * 操作按钮渲染\n */\n function renderAction() {\n return (\n <Space>\n <Button\n loading={loading.value}\n type={\"primary\"}\n shape={\"round\"}\n onClick={onQuery}\n >\n {{\n default: () => \"查询\",\n icon: () => <SearchOutlined />\n }}\n </Button>\n <Button disabled={loading.value} shape={\"round\"} onClick={onReset}>\n {{\n default: () => \"重置\",\n icon: () => <ReloadOutlined />\n }}\n </Button>\n {expendBtnVisible.value ? (\n <Button onClick={onExpend} shape={\"round\"}>\n {{\n default: () => (isExpend.value ? \"收起\" : \"展开\"),\n icon: () => (\n <DoubleRightOutlined rotate={isExpend.value ? -90 : 90} />\n )\n }}\n </Button>\n ) : null}\n </Space>\n );\n }\n\n return {\n renderAction\n };\n }\n\n function useExpand() {\n // 为24网格布局\n const gridCount = 24;\n // 每列占6个格子\n const colSpan = 6;\n // 每行显示4列\n const colsPerRow = 4;\n // 操作按钮span\n const actionSpan = ref(6);\n // 控制展开或隐藏按钮文本\n const isExpend = ref(false);\n // 控制展开按按钮是否显示\n const expendBtnVisible = ref(false);\n // 行对象\n const rowRef = ref<any>(null);\n\n onMounted(() => {\n handleShowOrHidden();\n });\n\n function onExpend() {\n isExpend.value = !isExpend.value;\n handleShowOrHidden();\n }\n\n /**\n * 处理隐藏或显示\n */\n function handleShowOrHidden() {\n const colEl = Array.from(rowRef.value?.$el?.children);\n // col总条数 减掉操作栏按钮的div个数为1\n const colElLen = colEl.length - 1;\n // 已占用的网格数 = col总条数 * 每列占用的网格数\n const occupiedCols = colElLen * colSpan;\n // 总行数 = 总div数 / 每行显示的列数\n const fullRows = Math.ceil(colElLen / colsPerRow);\n // 最后一行的网格数 = 已占用的网格数 % 24\n const lastRowCols = occupiedCols % gridCount;\n // 最后一行剩余的网格数\n const remainingCols = gridCount - lastRowCols;\n\n // 网格行大于2才显示展开或隐藏按钮\n if (fullRows > 2) {\n expendBtnVisible.value = true;\n } else {\n // 如果没有大于两行,操作栏占用剩余的宽度\n actionSpan.value = remainingCols;\n }\n // 最后一行的起始索引\n const lastRowStartIndex = colsPerRow * (fullRows - 1) - 1;\n // 只有展开按钮显示时才处理\n if (expendBtnVisible.value) {\n colEl.forEach((col: any, index) => {\n if (index >= lastRowStartIndex) {\n // 最后一个元素不隐藏 是操作按钮的div\n index !== colElLen\n ? (col.style.display = !isExpend.value ? \"none\" : \"block\")\n : null; // 隐藏元素\n }\n });\n }\n\n if (expendBtnVisible.value) {\n // 如果是展开状态 则操作按钮占用剩余的网格数 否则占用6个网格\n isExpend.value\n ? (actionSpan.value = remainingCols)\n : (actionSpan.value = colSpan);\n }\n }\n\n return {\n rowRef,\n actionSpan,\n onExpend,\n expendBtnVisible,\n isExpend\n };\n }\n\n return () => (\n <div onKeyup={onKeyup}>\n <Form\n ref={formRef}\n colon={false}\n labelCol={{ style: { width: props.labelWidth } }}\n model={modelValue.value}\n >\n <Row ref={rowRef}>\n {slots.default ? (\n slots.default()\n ) : (\n <DJsonSchemeRender\n layout={props.scheme}\n value={modelValue.value}\n />\n )}\n <Col span={actionSpan.value} style={{ textAlign: \"right\" }}>\n <FormItem>\n {slots.action ? slots.action() : renderAction()}\n </FormItem>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n});\n"],"names":["name","props","scheme","type","Array","Object","default","model","labelWidth","String","loading","Boolean","emits","setup","slots","emit","modelValue","formRef","onQuery","onReset","onKeyup","useForm","rowRef","actionSpan","onExpend","expendBtnVisible","isExpend","useExpand","renderAction","useRender","ref","watchEffect","value","watch","val","resetFields","event","keyCode","_createVNode","Space","Button","icon","SearchOutlined","ReloadOutlined","DoubleRightOutlined","gridCount","colSpan","colsPerRow","onMounted","handleShowOrHidden","colEl","from","$el","children","colElLen","length","occupiedCols","fullRows","Math","ceil","lastRowCols","remainingCols","lastRowStartIndex","forEach","col","index","style","display","Form","width","Row","DJsonSchemeRender","Col","textAlign","FormItem","action"],"mappings":"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"}
|
package/dist/esm/grid/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ declare const _default: {
|
|
|
9
9
|
fill?: boolean | undefined;
|
|
10
10
|
className?: string | undefined;
|
|
11
11
|
grid?: string | undefined;
|
|
12
|
+
style?: unknown;
|
|
12
13
|
key?: string | number | symbol | undefined;
|
|
13
14
|
ref?: import("vue").VNodeRef | undefined;
|
|
14
15
|
ref_for?: boolean | undefined;
|
|
@@ -52,7 +53,6 @@ declare const _default: {
|
|
|
52
53
|
[key: string]: any;
|
|
53
54
|
}>) => void)[] | undefined;
|
|
54
55
|
class?: unknown;
|
|
55
|
-
style?: unknown;
|
|
56
56
|
};
|
|
57
57
|
$attrs: {
|
|
58
58
|
[x: string]: unknown;
|
|
@@ -26,7 +26,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
26
26
|
};
|
|
27
27
|
}, {
|
|
28
28
|
props: any;
|
|
29
|
-
emits: (event: "
|
|
29
|
+
emits: (event: "select" | "change" | "update:value", ...args: any[]) => void;
|
|
30
30
|
getDicByKey: (key: string) => any;
|
|
31
31
|
modelValue: any;
|
|
32
32
|
data: any;
|
|
@@ -40,7 +40,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
40
40
|
onChange: () => void;
|
|
41
41
|
};
|
|
42
42
|
onFilterOption: (inputValue: any, options: any) => any;
|
|
43
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("
|
|
43
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "change" | "update:value")[], "select" | "change" | "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
44
44
|
value: {
|
|
45
45
|
type: null;
|
|
46
46
|
required: true;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const onQuery = ()=>{
|
|
4
|
+
console.log("formQuery")
|
|
5
|
+
}
|
|
4
6
|
</script>
|
|
5
7
|
<template>
|
|
6
8
|
<div>
|
|
7
|
-
<
|
|
9
|
+
<d-list-layout>
|
|
10
|
+
<template #form>
|
|
11
|
+
<d-query-form @query="onQuery">
|
|
12
|
+
</d-query-form>
|
|
13
|
+
</template>
|
|
14
|
+
</d-list-layout>
|
|
8
15
|
</div>
|
|
9
16
|
</template>
|
package/package.json
CHANGED
package/src/form/DQueryForm.tsx
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { defineComponent, onMounted, ref, watch, watchEffect } from "vue";
|
|
2
|
-
import { useMagicKeys } from "@vueuse/core";
|
|
3
|
-
|
|
4
2
|
import { Form, FormItem, Row, Col, Button, Space } from "ant-design-vue";
|
|
5
3
|
import {
|
|
6
4
|
SearchOutlined,
|
|
7
5
|
ReloadOutlined,
|
|
8
6
|
DoubleRightOutlined
|
|
9
7
|
} from "@ant-design/icons-vue";
|
|
10
|
-
import { useKeepAliveStore } from "@ditari/store";
|
|
11
|
-
import { useRoute } from "vue-router";
|
|
12
8
|
import DJsonSchemeRender from "../json-scheme-render/JsonSchemeRender";
|
|
13
9
|
|
|
14
10
|
/**
|
|
@@ -37,11 +33,9 @@ export default defineComponent({
|
|
|
37
33
|
},
|
|
38
34
|
emits: ["reset", "query"],
|
|
39
35
|
setup(props, { slots, emit }) {
|
|
40
|
-
const keepStore = useKeepAliveStore();
|
|
41
|
-
const route = useRoute();
|
|
42
|
-
|
|
43
36
|
// 表单
|
|
44
|
-
const { loading, modelValue, formRef, onQuery, onReset } =
|
|
37
|
+
const { loading, modelValue, formRef, onQuery, onReset, onKeyup } =
|
|
38
|
+
useForm();
|
|
45
39
|
// 展开
|
|
46
40
|
const { rowRef, actionSpan, onExpend, expendBtnVisible, isExpend } =
|
|
47
41
|
useExpand();
|
|
@@ -53,9 +47,6 @@ export default defineComponent({
|
|
|
53
47
|
const formRef = ref<any>(null);
|
|
54
48
|
const modelValue = ref<any>({});
|
|
55
49
|
|
|
56
|
-
const keys = useMagicKeys();
|
|
57
|
-
const enterKey = keys["enter"];
|
|
58
|
-
|
|
59
50
|
watchEffect(() => {
|
|
60
51
|
modelValue.value = props.model;
|
|
61
52
|
});
|
|
@@ -68,25 +59,26 @@ export default defineComponent({
|
|
|
68
59
|
);
|
|
69
60
|
|
|
70
61
|
/// 监听回车事件
|
|
71
|
-
watch(enterKey, (v) => {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
62
|
+
// watch(enterKey, (v) => {
|
|
63
|
+
// if (v) {
|
|
64
|
+
// // 有路由名字会被keepalive进行缓存
|
|
65
|
+
// // 用于判断当前页面是否被激活 因为页面被缓存的时候,页面切换后,回车事件依然会触发
|
|
66
|
+
// const isActive = keepStore.list.some((name) => name === route.name);
|
|
67
|
+
// console.log(route.name);
|
|
68
|
+
// if (!loading.value && isActive) {
|
|
69
|
+
// emit("query", modelValue.value);
|
|
70
|
+
// }
|
|
71
|
+
// //TODO 逻辑有问题
|
|
72
|
+
// if (!route.name) {
|
|
73
|
+
// // 没有路由名字,不会被缓存
|
|
74
|
+
// if (!loading.value) {
|
|
75
|
+
// emit("query", modelValue.value);
|
|
76
|
+
// }
|
|
77
|
+
// } else {
|
|
78
|
+
//
|
|
79
|
+
// }
|
|
80
|
+
// }
|
|
81
|
+
// });
|
|
90
82
|
|
|
91
83
|
const onQuery = () => {
|
|
92
84
|
emit("query", modelValue.value);
|
|
@@ -96,12 +88,21 @@ export default defineComponent({
|
|
|
96
88
|
formRef.value?.resetFields();
|
|
97
89
|
emit("reset");
|
|
98
90
|
};
|
|
91
|
+
|
|
92
|
+
const onKeyup = (event: any) => {
|
|
93
|
+
if (event.keyCode === 13) {
|
|
94
|
+
if (!loading.value) {
|
|
95
|
+
emit("query", modelValue.value);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
99
|
return {
|
|
100
100
|
loading,
|
|
101
101
|
modelValue,
|
|
102
102
|
formRef,
|
|
103
103
|
onQuery,
|
|
104
|
-
onReset
|
|
104
|
+
onReset,
|
|
105
|
+
onKeyup
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
108
|
|
|
@@ -228,7 +229,7 @@ export default defineComponent({
|
|
|
228
229
|
}
|
|
229
230
|
|
|
230
231
|
return () => (
|
|
231
|
-
|
|
232
|
+
<div onKeyup={onKeyup}>
|
|
232
233
|
<Form
|
|
233
234
|
ref={formRef}
|
|
234
235
|
colon={false}
|
|
@@ -251,7 +252,7 @@ export default defineComponent({
|
|
|
251
252
|
</Col>
|
|
252
253
|
</Row>
|
|
253
254
|
</Form>
|
|
254
|
-
|
|
255
|
+
</div>
|
|
255
256
|
);
|
|
256
257
|
}
|
|
257
258
|
});
|