@funcho/ui 1.1.29 → 1.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/business/DataTable/DataTable.vue.js +91 -102
  3. package/dist/cjs/business/ProForm/ProForm.vue.js +37 -2
  4. package/dist/cjs/business/VerticalLayout/VerticalLayout.vue.js +99 -0
  5. package/dist/cjs/business/VerticalLayout/VerticalLayout.vue3.js +10 -0
  6. package/dist/cjs/business/VerticalLayout/index.js +12 -0
  7. package/dist/cjs/business/index.js +2 -0
  8. package/dist/cjs/components/DotStatus/DotStatus.vue.js +3 -7
  9. package/dist/cjs/components/DotStatus/DotStatus.vue2.js +52 -0
  10. package/dist/cjs/index.js +8 -6
  11. package/dist/cjs/packages/ui/package.json.js +1 -1
  12. package/dist/esm/business/DataTable/DataTable.vue.mjs +94 -105
  13. package/dist/esm/business/ProForm/ProForm.vue.mjs +38 -3
  14. package/dist/esm/business/VerticalLayout/VerticalLayout.vue.mjs +95 -0
  15. package/dist/esm/business/VerticalLayout/VerticalLayout.vue3.mjs +6 -0
  16. package/dist/esm/business/VerticalLayout/index.mjs +7 -0
  17. package/dist/esm/business/index.mjs +1 -0
  18. package/dist/esm/components/DotStatus/DotStatus.vue.mjs +3 -7
  19. package/dist/esm/components/DotStatus/DotStatus.vue2.mjs +48 -0
  20. package/dist/esm/index.mjs +1 -0
  21. package/dist/esm/packages/ui/package.json.mjs +1 -1
  22. package/dist/style.css +81 -6
  23. package/dist/types/business/DataTable/DataTable.vue.d.ts +0 -6
  24. package/dist/types/business/DataTable/index.d.ts +0 -3
  25. package/dist/types/business/ProForm/ProForm.types.d.ts +2 -0
  26. package/dist/types/business/ProForm/ProForm.vue.d.ts +2 -2
  27. package/dist/types/business/VerticalLayout/VerticalLayout.types.d.ts +1 -0
  28. package/dist/types/business/VerticalLayout/VerticalLayout.vue.d.ts +41 -0
  29. package/dist/types/business/index.d.ts +1 -0
  30. package/dist/types/components/DotStatus/DotStatus.vue.d.ts +35 -1
  31. package/dist/types/components/DotStatus/index.d.ts +61 -3
  32. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, onMounted, resolveDirective, createElementBlock, openBlock, normalizeClass, unref, createVNode, createCommentVNode, withDirectives, withCtx, renderSlot, createBlock, mergeProps, Fragment, renderList, createSlots, resolveDynamicComponent, h } from 'vue';
1
+ import { defineComponent, ref, onMounted, resolveComponent, resolveDirective, createBlock, openBlock, normalizeClass, unref, createSlots, withCtx, withDirectives, mergeProps, createCommentVNode, createElementBlock, Fragment, renderList, resolveDynamicComponent, createVNode, renderSlot, h } from 'vue';
2
2
  import { useNamespace } from '../../hooks/use-namespace.mjs';
3
3
  import { FcDangerButton, FcLinkButton } from '../../components/Button/index.mjs';
4
4
  import '../../components/Dialog/index.mjs';
@@ -77,9 +77,8 @@ import '../../components/CodeEditor/index.mjs';
77
77
  import '../../components/RichEditor/index.mjs';
78
78
  import '../../components/LovText/index.mjs';
79
79
  import '../../components/DotStatus/index.mjs';
80
- import { useElementSize } from '@vueuse/core';
81
- import _sfc_main$2 from '../../components/VNodeRenderer/index.vue.mjs';
82
- import _sfc_main$1 from '../QueryForm/QueryForm.vue.mjs';
80
+ import _sfc_main$1 from '../../components/VNodeRenderer/index.vue.mjs';
81
+ import _sfc_main$2 from '../QueryForm/QueryForm.vue.mjs';
83
82
  /* empty css */
84
83
 
85
84
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -134,19 +133,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
134
133
  };
135
134
  const queryBoxRef = ref();
136
135
  const queryBoxHeight = ref(0);
137
- const paginationBoxRef = ref(null);
138
- const splitLineRef = ref(null);
139
- const { height: splitLineHeight } = useElementSize(splitLineRef, void 0, {
140
- box: "border-box"
141
- });
142
- const { height: paginationBoxHeight } = useElementSize(paginationBoxRef, void 0, {
143
- box: "border-box"
144
- });
145
- const containerRef = ref(null);
146
- const { height: containerHeight } = useElementSize(containerRef);
147
- const maxTableHeight = computed(() => {
148
- return (props.height || containerHeight.value) - ((queryBoxHeight.value > 0 ? queryBoxHeight.value + splitLineHeight.value : 0) + paginationBoxHeight.value);
149
- });
150
136
  const pagination = ref({
151
137
  currentPage: 1,
152
138
  pageSize: 20,
@@ -207,99 +193,102 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
207
193
  // 清空表单,回到第一页刷新
208
194
  });
209
195
  return (_ctx, _cache) => {
196
+ const _component_FcProVerticalLayout = resolveComponent("FcProVerticalLayout");
210
197
  const _directive_loading = resolveDirective("loading");
211
- return openBlock(), createElementBlock("div", {
212
- ref_key: "containerRef",
213
- ref: containerRef,
214
- class: normalizeClass(unref(ns).b())
198
+ return openBlock(), createBlock(_component_FcProVerticalLayout, {
199
+ class: normalizeClass(unref(ns).b()),
200
+ gap: 8
201
+ }, createSlots({
202
+ body: withCtx(({ height: bodyHeight }) => [
203
+ withDirectives((openBlock(), createBlock(unref(FcTable), mergeProps(_ctx.$attrs, {
204
+ data: tableData.value,
205
+ border: "",
206
+ "max-height": bodyHeight
207
+ }), {
208
+ default: withCtx(() => [
209
+ __props.hasIndex ? (openBlock(), createBlock(unref(FcTableColumn), {
210
+ key: "index",
211
+ label: "序号",
212
+ align: "center",
213
+ fixed: "left",
214
+ type: "index",
215
+ width: 60,
216
+ index: getIndex,
217
+ "show-overflow-tooltip": false
218
+ })) : createCommentVNode("", true),
219
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (item) => {
220
+ return openBlock(), createBlock(unref(FcTableColumn), mergeProps({
221
+ key: item.prop
222
+ }, { ref_for: true }, item, {
223
+ "show-overflow-tooltip": item.showOverflowTooltip || true
224
+ }), createSlots({ _: 2 }, [
225
+ item.render ? {
226
+ name: "default",
227
+ fn: withCtx(({ row, $index }) => [
228
+ (openBlock(), createBlock(resolveDynamicComponent(item.render(row, $index))))
229
+ ]),
230
+ key: "0"
231
+ } : void 0
232
+ ]), 1040, ["show-overflow-tooltip"]);
233
+ }), 128)),
234
+ props.actions && props.actions.length > 0 ? (openBlock(), createBlock(unref(FcTableColumn), {
235
+ key: "actions",
236
+ label: "操作",
237
+ align: "right",
238
+ fixed: "right",
239
+ width: __props.actionsWidth || void 0
240
+ }, {
241
+ default: withCtx(({ row, $index }) => [
242
+ createVNode(_sfc_main$1, {
243
+ content: () => renderActions(props.actions, row, $index)
244
+ }, null, 8, ["content"])
245
+ ]),
246
+ _: 1
247
+ }, 8, ["width"])) : createCommentVNode("", true)
248
+ ]),
249
+ _: 1
250
+ }, 16, ["data", "max-height"])), [
251
+ [_directive_loading, tableLoading.value]
252
+ ])
253
+ ]),
254
+ _: 2
215
255
  }, [
216
- createVNode(_sfc_main$1, {
217
- ref_key: "queryBoxRef",
218
- ref: queryBoxRef,
219
- fields: __props.fields,
220
- tools: __props.tools,
221
- "btn-disabled": tableLoading.value,
222
- onSearch: handleSearchClick,
223
- onReset: handleResetClick,
224
- onResize: _cache[0] || (_cache[0] = (e) => queryBoxHeight.value = e.height)
225
- }, {
226
- default: withCtx(() => [
227
- !_ctx.$slots.tools ? renderSlot(_ctx.$slots, "tools", { key: 0 }) : createCommentVNode("", true)
228
- ]),
229
- _: 3
230
- }, 8, ["fields", "tools", "btn-disabled"]),
231
- __props.fields && __props.fields.length > 0 ? (openBlock(), createElementBlock("div", {
232
- key: 0,
233
- ref_key: "splitLineRef",
234
- ref: splitLineRef,
235
- class: normalizeClass(unref(ns).e("split-line"))
236
- }, null, 2)) : createCommentVNode("", true),
237
- withDirectives((openBlock(), createBlock(unref(FcTable), mergeProps(_ctx.$attrs, {
238
- data: tableData.value,
239
- border: "",
240
- "max-height": maxTableHeight.value
241
- }), {
242
- default: withCtx(() => [
243
- __props.hasIndex ? (openBlock(), createBlock(unref(FcTableColumn), {
244
- key: "index",
245
- label: "序号",
246
- align: "center",
247
- fixed: "left",
248
- type: "index",
249
- width: 60,
250
- index: getIndex,
251
- "show-overflow-tooltip": false
252
- })) : createCommentVNode("", true),
253
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (item) => {
254
- return openBlock(), createBlock(unref(FcTableColumn), mergeProps({
255
- key: item.prop
256
- }, { ref_for: true }, item, {
257
- "show-overflow-tooltip": item.showOverflowTooltip || true
258
- }), createSlots({ _: 2 }, [
259
- item.render ? {
260
- name: "default",
261
- fn: withCtx(({ row, $index }) => [
262
- (openBlock(), createBlock(resolveDynamicComponent(item.render(row, $index))))
263
- ]),
264
- key: "0"
265
- } : void 0
266
- ]), 1040, ["show-overflow-tooltip"]);
267
- }), 128)),
268
- props.actions && props.actions.length > 0 ? (openBlock(), createBlock(unref(FcTableColumn), {
269
- key: "actions",
270
- label: "操作",
271
- align: "right",
272
- fixed: "right",
273
- width: __props.actionsWidth || void 0
256
+ __props.fields && __props.fields.length > 0 ? {
257
+ name: "header",
258
+ fn: withCtx(() => [
259
+ createVNode(_sfc_main$2, {
260
+ ref_key: "queryBoxRef",
261
+ ref: queryBoxRef,
262
+ fields: __props.fields,
263
+ tools: __props.tools,
264
+ "btn-disabled": tableLoading.value,
265
+ onSearch: handleSearchClick,
266
+ onReset: handleResetClick,
267
+ onResize: _cache[0] || (_cache[0] = (e) => queryBoxHeight.value = e.height)
274
268
  }, {
275
- default: withCtx(({ row, $index }) => [
276
- createVNode(_sfc_main$2, {
277
- content: () => renderActions(props.actions, row, $index)
278
- }, null, 8, ["content"])
269
+ default: withCtx(() => [
270
+ !_ctx.$slots.tools ? renderSlot(_ctx.$slots, "tools", { key: 0 }) : createCommentVNode("", true)
279
271
  ]),
280
- _: 1
281
- }, 8, ["width"])) : createCommentVNode("", true)
272
+ _: 3
273
+ }, 8, ["fields", "tools", "btn-disabled"])
282
274
  ]),
283
- _: 1
284
- }, 16, ["data", "max-height"])), [
285
- [_directive_loading, tableLoading.value]
286
- ]),
287
- __props.isPagination ? (openBlock(), createElementBlock("div", {
288
- key: 1,
289
- ref_key: "paginationBoxRef",
290
- ref: paginationBoxRef,
291
- class: normalizeClass(unref(ns).e("pagination-box"))
292
- }, [
293
- createVNode(unref(FcPagination), {
294
- "page-size": pagination.value.pageSize,
295
- "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => pagination.value.pageSize = $event),
296
- "current-page": pagination.value.currentPage,
297
- "onUpdate:currentPage": _cache[2] || (_cache[2] = ($event) => pagination.value.currentPage = $event),
298
- total: pagination.value.total,
299
- onChange: handlePaginationChange
300
- }, null, 8, ["page-size", "current-page", "total"])
301
- ], 2)) : createCommentVNode("", true)
302
- ], 2);
275
+ key: "0"
276
+ } : void 0,
277
+ __props.isPagination ? {
278
+ name: "footer",
279
+ fn: withCtx(() => [
280
+ createVNode(unref(FcPagination), {
281
+ "page-size": pagination.value.pageSize,
282
+ "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => pagination.value.pageSize = $event),
283
+ "current-page": pagination.value.currentPage,
284
+ "onUpdate:currentPage": _cache[2] || (_cache[2] = ($event) => pagination.value.currentPage = $event),
285
+ total: pagination.value.total,
286
+ onChange: handlePaginationChange
287
+ }, null, 8, ["page-size", "current-page", "total"])
288
+ ]),
289
+ key: "1"
290
+ } : void 0
291
+ ]), 1032, ["class"]);
303
292
  };
304
293
  }
305
294
  });
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, createBlock, openBlock, unref, mergeProps, withCtx, createElementBlock, Fragment, renderList, normalizeStyle, createSlots, resolveDynamicComponent, createElementVNode, normalizeClass, createVNode, toDisplayString } from 'vue';
1
+ import { defineComponent, ref, watch, createBlock, openBlock, unref, mergeProps, withCtx, createElementBlock, Fragment, renderList, normalizeStyle, createSlots, resolveDynamicComponent, createElementVNode, normalizeClass, createVNode, toDisplayString } from 'vue';
2
2
  import { useNamespace } from '../../hooks/use-namespace.mjs';
3
3
  import '../../components/Button/index.mjs';
4
4
  import '../../components/Dialog/index.mjs';
@@ -78,8 +78,8 @@ import '../../components/RichEditor/index.mjs';
78
78
  import '../../components/LovText/index.mjs';
79
79
  import '../../components/DotStatus/index.mjs';
80
80
  import { ComponentsMap } from './componentsMap.mjs';
81
- import isPlainObject from '../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.mjs';
82
81
  import cloneDeep from '../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.mjs';
82
+ import isPlainObject from '../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.mjs';
83
83
 
84
84
  const _sfc_main = /* @__PURE__ */ defineComponent({
85
85
  ...{
@@ -96,7 +96,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
96
96
  },
97
97
  setup(__props, { expose: __expose }) {
98
98
  const ns = useNamespace("pro-form");
99
+ const props = __props;
99
100
  const formModel = ref({});
101
+ const initialModelSnapshot = ref({});
102
+ watch(
103
+ () => props.fields,
104
+ (newFields) => {
105
+ const snapshot = {};
106
+ const newModel = { ...formModel.value };
107
+ newFields.forEach((field) => {
108
+ if (field.initialValue !== void 0) {
109
+ snapshot[field.prop] = cloneDeep(field.initialValue);
110
+ if (newModel[field.prop] === void 0) {
111
+ newModel[field.prop] = cloneDeep(field.initialValue);
112
+ }
113
+ }
114
+ });
115
+ initialModelSnapshot.value = snapshot;
116
+ formModel.value = newModel;
117
+ },
118
+ { immediate: true }
119
+ );
100
120
  const setValues = (data) => {
101
121
  if (isPlainObject(data)) {
102
122
  formModel.value = cloneDeep(data || {});
@@ -128,6 +148,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
128
148
  item.attrs.onRef(el, item);
129
149
  }
130
150
  };
151
+ const resetFields = () => {
152
+ if (!formRef.value) return;
153
+ formRef.value.resetFields();
154
+ props.fields.forEach((field) => {
155
+ const prop = field.prop;
156
+ const initialValue = initialModelSnapshot.value[prop];
157
+ const hasInitialValue = initialValue !== void 0;
158
+ if (hasInitialValue && field.clearInitialValueOnReset) {
159
+ formModel.value[prop] = void 0;
160
+ }
161
+ });
162
+ };
131
163
  __expose(
132
164
  new Proxy(
133
165
  {},
@@ -136,13 +168,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
136
168
  if (key === "setValues") {
137
169
  return setValues;
138
170
  }
171
+ if (key === "resetFields") {
172
+ return resetFields;
173
+ }
139
174
  if (key === "model") {
140
175
  return formModel.value;
141
176
  }
142
177
  return formRef.value?.[key];
143
178
  },
144
179
  has(_, key) {
145
- if (key === "setValues" || key === "model") {
180
+ if (key === "setValues" || key === "resetFields" || key === "model") {
146
181
  return true;
147
182
  }
148
183
  if (!formRef.value) return false;
@@ -0,0 +1,95 @@
1
+ import { defineComponent, ref, computed, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, normalizeStyle, createCommentVNode, renderSlot } from 'vue';
2
+ import { useNamespace } from '../../hooks/use-namespace.mjs';
3
+ import { useElementSize } from '@vueuse/core';
4
+
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ ...{
7
+ name: "FcProVerticalLayout"
8
+ },
9
+ __name: "VerticalLayout",
10
+ props: {
11
+ gap: { default: 8 },
12
+ full: { type: Boolean, default: false }
13
+ },
14
+ setup(__props) {
15
+ const ns = useNamespace("pro-vertical-layout");
16
+ const props = __props;
17
+ const headerRef = ref(null);
18
+ const bodyRef = ref(null);
19
+ const footerRef = ref(null);
20
+ const ghostBodyRef = ref(null);
21
+ const { height: headerHeight } = useElementSize(headerRef);
22
+ const { height: footerHeight } = useElementSize(footerRef);
23
+ const { width: bodyWidth } = useElementSize(bodyRef);
24
+ const { height: ghostBodyHeight } = useElementSize(ghostBodyRef);
25
+ const layoutStyle = computed(() => {
26
+ const gapValue = typeof props.gap === "number" ? `${props.gap}px` : props.gap;
27
+ return {
28
+ gap: gapValue
29
+ };
30
+ });
31
+ return (_ctx, _cache) => {
32
+ return openBlock(), createElementBlock("div", {
33
+ ref: "layoutRef",
34
+ class: normalizeClass(unref(ns).b())
35
+ }, [
36
+ createElementVNode("div", {
37
+ class: normalizeClass(unref(ns).e("actual")),
38
+ style: normalizeStyle(layoutStyle.value)
39
+ }, [
40
+ _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
41
+ key: 0,
42
+ ref_key: "headerRef",
43
+ ref: headerRef,
44
+ class: normalizeClass(unref(ns).e("header"))
45
+ }, [
46
+ renderSlot(_ctx.$slots, "header")
47
+ ], 2)) : createCommentVNode("", true),
48
+ _ctx.$slots.body ? (openBlock(), createElementBlock("div", {
49
+ key: 1,
50
+ ref_key: "bodyRef",
51
+ ref: bodyRef,
52
+ class: normalizeClass(unref(ns).e("body")),
53
+ style: normalizeStyle(__props.full ? "flex: 1;" : `max-height: ${unref(ghostBodyHeight)}px;`)
54
+ }, [
55
+ renderSlot(_ctx.$slots, "body", {
56
+ width: unref(bodyWidth),
57
+ height: unref(ghostBodyHeight)
58
+ })
59
+ ], 6)) : createCommentVNode("", true),
60
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", {
61
+ key: 2,
62
+ ref_key: "footerRef",
63
+ ref: footerRef,
64
+ class: normalizeClass(unref(ns).e("footer"))
65
+ }, [
66
+ renderSlot(_ctx.$slots, "footer")
67
+ ], 2)) : createCommentVNode("", true)
68
+ ], 6),
69
+ createElementVNode("div", {
70
+ class: normalizeClass(unref(ns).e("ghost-wrapper")),
71
+ "aria-hidden": "true",
72
+ style: normalizeStyle(layoutStyle.value)
73
+ }, [
74
+ _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
75
+ key: 0,
76
+ class: normalizeClass(unref(ns).e("ghost-header")),
77
+ style: normalizeStyle({ height: `${unref(headerHeight)}px` })
78
+ }, null, 6)) : createCommentVNode("", true),
79
+ createElementVNode("div", {
80
+ ref_key: "ghostBodyRef",
81
+ ref: ghostBodyRef,
82
+ class: normalizeClass(unref(ns).e("ghost-body"))
83
+ }, null, 2),
84
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", {
85
+ key: 1,
86
+ class: normalizeClass(unref(ns).e("ghost-footer")),
87
+ style: normalizeStyle({ height: `${unref(footerHeight)}px` })
88
+ }, null, 6)) : createCommentVNode("", true)
89
+ ], 6)
90
+ ], 2);
91
+ };
92
+ }
93
+ });
94
+
95
+ export { _sfc_main as default };
@@ -0,0 +1,6 @@
1
+ import _sfc_main from './VerticalLayout.vue.mjs';
2
+ /* empty css */
3
+
4
+
5
+
6
+ export { _sfc_main as default };
@@ -0,0 +1,7 @@
1
+ import _sfc_main from './VerticalLayout.vue.mjs';
2
+ /* empty css */
3
+ import { withInstall } from '../../_utils/with-install.mjs';
4
+
5
+ const FcProVerticalLayout = withInstall(_sfc_main);
6
+
7
+ export { FcProVerticalLayout, FcProVerticalLayout as default };
@@ -6,3 +6,4 @@ export { FcProTreeTransfer } from './TreeTransfer/index.mjs';
6
6
  export { FcProEditFormCard } from './EditFormCard/index.mjs';
7
7
  export { FcProFormDialog } from './FormDialog/index.mjs';
8
8
  export { FcProQueryForm } from './QueryForm/index.mjs';
9
+ export { FcProVerticalLayout } from './VerticalLayout/index.mjs';
@@ -1,11 +1,7 @@
1
- import { createElementBlock, openBlock } from 'vue';
1
+ import _sfc_main from './DotStatus.vue2.mjs';
2
+ /* empty css */
2
3
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.mjs';
3
4
 
4
- const _sfc_main = { };
5
-
6
- function _sfc_render(_ctx, _cache) {
7
- return (openBlock(), createElementBlock("div", null, "1"))
8
- }
9
- const DotStatus = /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render]]);
5
+ const DotStatus = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a9f6e8d5"]]);
10
6
 
11
7
  export { DotStatus as default };
@@ -0,0 +1,48 @@
1
+ import { defineComponent, createElementBlock, openBlock, normalizeStyle, normalizeClass, unref, renderSlot, Fragment, createBlock, createTextVNode, toDisplayString } from 'vue';
2
+ import { useNamespace } from '../../hooks/use-namespace.mjs';
3
+ import _sfc_main$1 from '../LovText/LovText.vue.mjs';
4
+ /* empty css */
5
+
6
+ const _sfc_main = /* @__PURE__ */ defineComponent({
7
+ ...{
8
+ name: "FcDotStatus"
9
+ },
10
+ __name: "DotStatus",
11
+ props: {
12
+ type: { default: "info" },
13
+ size: { default: "medium" },
14
+ color: { default: "" },
15
+ label: { default: "" },
16
+ lovId: { default: "" },
17
+ value: { default: null },
18
+ isSql: { type: Boolean, default: false },
19
+ isUpdateLovOptions: { type: Boolean, default: false }
20
+ },
21
+ setup(__props) {
22
+ const ns = useNamespace("dot-status");
23
+ return (_ctx, _cache) => {
24
+ return openBlock(), createElementBlock("div", {
25
+ class: normalizeClass({
26
+ [unref(ns).b()]: true,
27
+ [unref(ns).b(__props.type)]: true,
28
+ [unref(ns).b(__props.size)]: true
29
+ }),
30
+ style: normalizeStyle({ "--fc-ui-dot-bg-color": __props.color })
31
+ }, [
32
+ !_ctx.$slots.default ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
33
+ __props.lovId && __props.value ? (openBlock(), createBlock(_sfc_main$1, {
34
+ key: 0,
35
+ "lov-id": __props.lovId,
36
+ value: __props.value,
37
+ "is-sql": __props.isSql,
38
+ "is-update-lov-options": __props.isUpdateLovOptions
39
+ }, null, 8, ["lov-id", "value", "is-sql", "is-update-lov-options"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
40
+ createTextVNode(toDisplayString(__props.label), 1)
41
+ ], 64))
42
+ ], 64)) : renderSlot(_ctx.$slots, "default", { key: 1 }, void 0, true)
43
+ ], 6);
44
+ };
45
+ }
46
+ });
47
+
48
+ export { _sfc_main as default };
@@ -94,6 +94,7 @@ export { FcProTreeTransfer } from './business/TreeTransfer/index.mjs';
94
94
  export { FcProEditFormCard } from './business/EditFormCard/index.mjs';
95
95
  export { FcProFormDialog } from './business/FormDialog/index.mjs';
96
96
  export { FcProQueryForm } from './business/QueryForm/index.mjs';
97
+ export { FcProVerticalLayout } from './business/VerticalLayout/index.mjs';
97
98
 
98
99
  const components = Object.keys(index$1).map((key) => {
99
100
  return index$1[key];
@@ -1,3 +1,3 @@
1
- const version = "1.1.29";
1
+ const version = "1.1.30";
2
2
 
3
3
  export { version };
package/dist/style.css CHANGED
@@ -17032,6 +17032,60 @@ to {
17032
17032
  display: flex;
17033
17033
  align-items: center;
17034
17034
  justify-content: space-between;
17035
+ }.fc-mkui-dot-status[data-v-a9f6e8d5] {
17036
+ display: inline-flex;
17037
+ align-items: center;
17038
+ gap: 4px;
17039
+ color: #181818;
17040
+ }
17041
+ .fc-mkui-dot-status[data-v-a9f6e8d5]::before {
17042
+ width: 8px;
17043
+ height: 8px;
17044
+ border-radius: 50%;
17045
+ content: "";
17046
+ display: inline-block;
17047
+ background-color: #b2b2b2;
17048
+ background-color: var(--fc-ui-dot-bg-color, #b2b2b2);
17049
+ animation: dot-ping-a9f6e8d5 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
17050
+ }
17051
+ .fc-mkui-dot-status-primary[data-v-a9f6e8d5]::before {
17052
+ background-color: #165dff;
17053
+ background-color: var(--fc-ui-dot-bg-color, #165dff);
17054
+ }
17055
+ .fc-mkui-dot-status-success[data-v-a9f6e8d5]::before {
17056
+ background-color: #62d62b;
17057
+ background-color: var(--fc-ui-dot-bg-color, #62d62b);
17058
+ }
17059
+ .fc-mkui-dot-status-warning[data-v-a9f6e8d5]::before {
17060
+ background-color: #f7ba1d;
17061
+ background-color: var(--fc-ui-dot-bg-color, #f7ba1d);
17062
+ }
17063
+ .fc-mkui-dot-status-error[data-v-a9f6e8d5]::before {
17064
+ background-color: #ff3232;
17065
+ background-color: var(--fc-ui-dot-bg-color, #ff3232);
17066
+ }
17067
+ .fc-mkui-dot-status-danger[data-v-a9f6e8d5]::before {
17068
+ background-color: #ff3232;
17069
+ background-color: var(--fc-ui-dot-bg-color, #ff3232);
17070
+ }
17071
+ .fc-mkui-dot-status-small[data-v-a9f6e8d5]::before {
17072
+ width: 6px;
17073
+ height: 6px;
17074
+ }
17075
+ .fc-mkui-dot-status-large[data-v-a9f6e8d5]::before {
17076
+ width: 10px;
17077
+ height: 10px;
17078
+ }
17079
+ @keyframes dot-ping-a9f6e8d5 {
17080
+ 0% {
17081
+ opacity: 1;
17082
+ }
17083
+ 50% {
17084
+ opacity: 0.4;
17085
+ }
17086
+ 100% {
17087
+ opacity: 1;
17088
+ }
17035
17089
  }.fc-mkui-sidebar-main-layout {
17036
17090
  height: 100%;
17037
17091
  display: flex;
@@ -17147,12 +17201,6 @@ to {
17147
17201
  .fc-mkui-data-table .fc-ui-table__border-left-patch {
17148
17202
  background-color: #c5d6ff;
17149
17203
  }
17150
- .fc-mkui-data-table__split-line {
17151
- height: 8px;
17152
- }
17153
- .fc-mkui-data-table__pagination-box {
17154
- padding-top: 8px;
17155
- }
17156
17204
  .fc-mkui-data-table__actions {
17157
17205
  display: flex;
17158
17206
  align-items: center;
@@ -17224,4 +17272,31 @@ to {
17224
17272
  cursor: pointer;
17225
17273
  }.fc-mkui-form-dialog__body {
17226
17274
  padding-bottom: 0;
17275
+ }.fc-mkui-pro-vertical-layout {
17276
+ position: relative;
17277
+ height: 100%;
17278
+ }
17279
+ .fc-mkui-pro-vertical-layout__actual {
17280
+ height: 100%;
17281
+ display: flex;
17282
+ flex-direction: column;
17283
+ box-sizing: border-box;
17284
+ overflow: hidden;
17285
+ z-index: 1;
17286
+ }
17287
+ .fc-mkui-pro-vertical-layout__body {
17288
+ width: 100%;
17289
+ box-sizing: border-box;
17290
+ overflow: hidden;
17291
+ }
17292
+ .fc-mkui-pro-vertical-layout__ghost-wrapper {
17293
+ position: absolute;
17294
+ inset: 0;
17295
+ pointer-events: none;
17296
+ display: flex;
17297
+ flex-direction: column;
17298
+ visibility: hidden;
17299
+ }
17300
+ .fc-mkui-pro-vertical-layout__ghost-body {
17301
+ flex: 1;
17227
17302
  }
@@ -37,7 +37,6 @@ declare function __VLS_template(): {
37
37
  tools?(_: {}): any;
38
38
  };
39
39
  refs: {
40
- containerRef: HTMLDivElement;
41
40
  queryBoxRef: ({
42
41
  $: import('vue').ComponentInternalInstance;
43
42
  $data: {};
@@ -1498,8 +1497,6 @@ declare function __VLS_template(): {
1498
1497
  tools?(_: {}): any;
1499
1498
  };
1500
1499
  }) | null;
1501
- splitLineRef: HTMLDivElement;
1502
- paginationBoxRef: HTMLDivElement;
1503
1500
  };
1504
1501
  rootEl: any;
1505
1502
  };
@@ -1525,7 +1522,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
1525
1522
  actions: Array<ButtonProps>;
1526
1523
  actionsWidth: number;
1527
1524
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
1528
- containerRef: HTMLDivElement;
1529
1525
  queryBoxRef: ({
1530
1526
  $: import('vue').ComponentInternalInstance;
1531
1527
  $data: {};
@@ -2986,8 +2982,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
2986
2982
  tools?(_: {}): any;
2987
2983
  };
2988
2984
  }) | null;
2989
- splitLineRef: HTMLDivElement;
2990
- paginationBoxRef: HTMLDivElement;
2991
2985
  }, any>;
2992
2986
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2993
2987
  export default _default;
@@ -83,7 +83,6 @@ export declare const FcProDataTable: {
83
83
  }>;
84
84
  actionsWidth: number;
85
85
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
86
- containerRef: HTMLDivElement;
87
86
  queryBoxRef: ({
88
87
  $: import('vue').ComponentInternalInstance;
89
88
  $data: {};
@@ -1544,8 +1543,6 @@ export declare const FcProDataTable: {
1544
1543
  tools?(_: {}): any;
1545
1544
  };
1546
1545
  }) | null;
1547
- splitLineRef: HTMLDivElement;
1548
- paginationBoxRef: HTMLDivElement;
1549
1546
  }, any, import('vue').ComponentProvideOptions, {
1550
1547
  P: {};
1551
1548
  B: {};