@funcho/ui 1.1.29 → 1.1.31

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 (34) 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/components/TableV2/TableV2.vue.js +5 -0
  11. package/dist/cjs/index.js +8 -6
  12. package/dist/cjs/packages/ui/package.json.js +1 -1
  13. package/dist/esm/business/DataTable/DataTable.vue.mjs +94 -105
  14. package/dist/esm/business/ProForm/ProForm.vue.mjs +38 -3
  15. package/dist/esm/business/VerticalLayout/VerticalLayout.vue.mjs +95 -0
  16. package/dist/esm/business/VerticalLayout/VerticalLayout.vue3.mjs +6 -0
  17. package/dist/esm/business/VerticalLayout/index.mjs +7 -0
  18. package/dist/esm/business/index.mjs +1 -0
  19. package/dist/esm/components/DotStatus/DotStatus.vue.mjs +3 -7
  20. package/dist/esm/components/DotStatus/DotStatus.vue2.mjs +48 -0
  21. package/dist/esm/components/TableV2/TableV2.vue.mjs +6 -1
  22. package/dist/esm/index.mjs +1 -0
  23. package/dist/esm/packages/ui/package.json.mjs +1 -1
  24. package/dist/style.css +84 -6
  25. package/dist/types/business/DataTable/DataTable.vue.d.ts +0 -6
  26. package/dist/types/business/DataTable/index.d.ts +0 -3
  27. package/dist/types/business/ProForm/ProForm.types.d.ts +2 -0
  28. package/dist/types/business/ProForm/ProForm.vue.d.ts +2 -2
  29. package/dist/types/business/VerticalLayout/VerticalLayout.types.d.ts +1 -0
  30. package/dist/types/business/VerticalLayout/VerticalLayout.vue.d.ts +41 -0
  31. package/dist/types/business/index.d.ts +1 -0
  32. package/dist/types/components/DotStatus/DotStatus.vue.d.ts +35 -1
  33. package/dist/types/components/DotStatus/index.d.ts +61 -3
  34. 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 };
@@ -1,4 +1,4 @@
1
- import { defineComponent, useAttrs, computed, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
1
+ import { defineComponent, useCssVars, computed, useAttrs, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import { ElTableV2 } from '../../node_modules/.pnpm/element-plus@2.13.5_patch_hash_415fe9eaeb4c26121ef1304c7dfbfaa75441fcd0d7ca1a8beb1acd12_87ac520f28bb40f5a8b03aa48269c150/node_modules/element-plus/es/components/table-v2/index.mjs';
3
3
  import '../../_virtual/dayjs.min.mjs';
4
4
 
@@ -12,9 +12,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  headerHeight: { default: 40 }
13
13
  },
14
14
  setup(__props, { expose: __expose }) {
15
+ useCssVars((_ctx) => ({
16
+ "v19afe189": rowHeightStyle.value
17
+ }));
15
18
  const attrs = useAttrs();
16
19
  const tableBindProps = computed(() => attrs);
20
+ const props = __props;
17
21
  const elRef = ref();
22
+ const rowHeightStyle = computed(() => `${props.rowHeight - 2}px`);
18
23
  __expose(
19
24
  new Proxy(
20
25
  {},
@@ -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.31";
2
2
 
3
3
  export { version };
package/dist/style.css CHANGED
@@ -16801,6 +16801,9 @@ to {
16801
16801
  padding: 4px 0;
16802
16802
  }.fc-ui-table-v2 {
16803
16803
  color: #181818;
16804
+ }
16805
+ .fc-ui-table-v2 .fc-ui-table-v2__row {
16806
+ line-height: var(--v19afe189);
16804
16807
  }.fc-ui-breadcrumb {
16805
16808
  font-size: 12px;
16806
16809
  line-height: 18px;
@@ -17032,6 +17035,60 @@ to {
17032
17035
  display: flex;
17033
17036
  align-items: center;
17034
17037
  justify-content: space-between;
17038
+ }.fc-mkui-dot-status[data-v-a9f6e8d5] {
17039
+ display: inline-flex;
17040
+ align-items: center;
17041
+ gap: 4px;
17042
+ color: #181818;
17043
+ }
17044
+ .fc-mkui-dot-status[data-v-a9f6e8d5]::before {
17045
+ width: 8px;
17046
+ height: 8px;
17047
+ border-radius: 50%;
17048
+ content: "";
17049
+ display: inline-block;
17050
+ background-color: #b2b2b2;
17051
+ background-color: var(--fc-ui-dot-bg-color, #b2b2b2);
17052
+ animation: dot-ping-a9f6e8d5 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
17053
+ }
17054
+ .fc-mkui-dot-status-primary[data-v-a9f6e8d5]::before {
17055
+ background-color: #165dff;
17056
+ background-color: var(--fc-ui-dot-bg-color, #165dff);
17057
+ }
17058
+ .fc-mkui-dot-status-success[data-v-a9f6e8d5]::before {
17059
+ background-color: #62d62b;
17060
+ background-color: var(--fc-ui-dot-bg-color, #62d62b);
17061
+ }
17062
+ .fc-mkui-dot-status-warning[data-v-a9f6e8d5]::before {
17063
+ background-color: #f7ba1d;
17064
+ background-color: var(--fc-ui-dot-bg-color, #f7ba1d);
17065
+ }
17066
+ .fc-mkui-dot-status-error[data-v-a9f6e8d5]::before {
17067
+ background-color: #ff3232;
17068
+ background-color: var(--fc-ui-dot-bg-color, #ff3232);
17069
+ }
17070
+ .fc-mkui-dot-status-danger[data-v-a9f6e8d5]::before {
17071
+ background-color: #ff3232;
17072
+ background-color: var(--fc-ui-dot-bg-color, #ff3232);
17073
+ }
17074
+ .fc-mkui-dot-status-small[data-v-a9f6e8d5]::before {
17075
+ width: 6px;
17076
+ height: 6px;
17077
+ }
17078
+ .fc-mkui-dot-status-large[data-v-a9f6e8d5]::before {
17079
+ width: 10px;
17080
+ height: 10px;
17081
+ }
17082
+ @keyframes dot-ping-a9f6e8d5 {
17083
+ 0% {
17084
+ opacity: 1;
17085
+ }
17086
+ 50% {
17087
+ opacity: 0.4;
17088
+ }
17089
+ 100% {
17090
+ opacity: 1;
17091
+ }
17035
17092
  }.fc-mkui-sidebar-main-layout {
17036
17093
  height: 100%;
17037
17094
  display: flex;
@@ -17147,12 +17204,6 @@ to {
17147
17204
  .fc-mkui-data-table .fc-ui-table__border-left-patch {
17148
17205
  background-color: #c5d6ff;
17149
17206
  }
17150
- .fc-mkui-data-table__split-line {
17151
- height: 8px;
17152
- }
17153
- .fc-mkui-data-table__pagination-box {
17154
- padding-top: 8px;
17155
- }
17156
17207
  .fc-mkui-data-table__actions {
17157
17208
  display: flex;
17158
17209
  align-items: center;
@@ -17224,4 +17275,31 @@ to {
17224
17275
  cursor: pointer;
17225
17276
  }.fc-mkui-form-dialog__body {
17226
17277
  padding-bottom: 0;
17278
+ }.fc-mkui-pro-vertical-layout {
17279
+ position: relative;
17280
+ height: 100%;
17281
+ }
17282
+ .fc-mkui-pro-vertical-layout__actual {
17283
+ height: 100%;
17284
+ display: flex;
17285
+ flex-direction: column;
17286
+ box-sizing: border-box;
17287
+ overflow: hidden;
17288
+ z-index: 1;
17289
+ }
17290
+ .fc-mkui-pro-vertical-layout__body {
17291
+ width: 100%;
17292
+ box-sizing: border-box;
17293
+ overflow: hidden;
17294
+ }
17295
+ .fc-mkui-pro-vertical-layout__ghost-wrapper {
17296
+ position: absolute;
17297
+ inset: 0;
17298
+ pointer-events: none;
17299
+ display: flex;
17300
+ flex-direction: column;
17301
+ visibility: hidden;
17302
+ }
17303
+ .fc-mkui-pro-vertical-layout__ghost-body {
17304
+ flex: 1;
17227
17305
  }