jky-component-lib 0.0.130 → 0.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/amap/style.css +12 -5
- package/dist/es/amap/style2.css +5 -12
- package/dist/es/form/FormItem.vue.d.ts +11 -1
- package/dist/es/form/FormItem.vue.js +114 -54
- package/dist/es/form/FormItemWrapper.vue.d.ts +33 -0
- package/dist/es/form/FormItemWrapper.vue.js +88 -0
- package/dist/es/form/FormItemWrapper.vue3.js +5 -0
- package/dist/es/form/style.css +24 -0
- package/dist/es/package.json.js +1 -1
- package/dist/es/style.css +15 -0
- package/dist/es/styles.css +1 -1
- package/dist/lib/amap/style.css +12 -5
- package/dist/lib/amap/style2.css +5 -12
- package/dist/lib/form/FormItem.vue.d.ts +11 -1
- package/dist/lib/form/FormItem.vue.js +113 -53
- package/dist/lib/form/FormItemWrapper.vue.d.ts +33 -0
- package/dist/lib/form/FormItemWrapper.vue.js +88 -0
- package/dist/lib/form/FormItemWrapper.vue3.js +5 -0
- package/dist/lib/form/style.css +24 -0
- package/dist/lib/package.json.js +1 -1
- package/dist/lib/style.css +15 -0
- package/dist/lib/styles.css +1 -1
- package/package.json +1 -1
package/dist/es/amap/style.css
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
/* AMap 高德地图组件样式 */
|
|
2
|
+
.jky-amap-container {
|
|
3
|
+
/* 地图容器样式 */
|
|
4
|
+
position: relative;
|
|
5
|
+
overflow: hidden;
|
|
1
6
|
|
|
2
|
-
/*
|
|
3
|
-
.amap-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
/* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
|
|
8
|
+
.amap-logo {
|
|
9
|
+
display: none !important;
|
|
10
|
+
}
|
|
11
|
+
.amap-copyright {
|
|
12
|
+
display: none !important;
|
|
13
|
+
}
|
|
7
14
|
}
|
package/dist/es/amap/style2.css
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
/* AMap 高德地图组件样式 */
|
|
2
|
-
.jky-amap-container {
|
|
3
|
-
/* 地图容器样式 */
|
|
4
|
-
position: relative;
|
|
5
|
-
overflow: hidden;
|
|
6
1
|
|
|
7
|
-
|
|
8
|
-
.amap-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
display: none !important;
|
|
13
|
-
}
|
|
2
|
+
/* JkyAMarker 组件样式 - 参考高德官方示例 */
|
|
3
|
+
.amap-icon img,
|
|
4
|
+
.amap-marker-content img {
|
|
5
|
+
width: 25px;
|
|
6
|
+
height: 34px;
|
|
14
7
|
}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { FormItemProps } from './types';
|
|
2
2
|
declare function __VLS_template(): {
|
|
3
3
|
attrs: Partial<{}>;
|
|
4
|
-
slots: Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any
|
|
4
|
+
slots: Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & {
|
|
5
|
+
loading?(_: {
|
|
6
|
+
field: string;
|
|
7
|
+
}): any;
|
|
8
|
+
loading?(_: {
|
|
9
|
+
field: string;
|
|
10
|
+
}): any;
|
|
11
|
+
loading?(_: {
|
|
12
|
+
field: string;
|
|
13
|
+
}): any;
|
|
14
|
+
};
|
|
5
15
|
refs: {};
|
|
6
16
|
rootEl: any;
|
|
7
17
|
};
|
|
@@ -49,9 +49,11 @@ var __async = (__this, __arguments, generator) => {
|
|
|
49
49
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
50
|
});
|
|
51
51
|
};
|
|
52
|
-
import { defineComponent, ref, computed, openBlock, createElementBlock, createBlock, unref, mergeProps, withCtx, createElementVNode, resolveDynamicComponent, Fragment, createTextVNode, toDisplayString, createCommentVNode, createSlots, renderList, renderSlot, normalizeProps, guardReactiveProps, watch, h } from "vue";
|
|
52
|
+
import { defineComponent, ref, computed, openBlock, createElementBlock, createBlock, unref, mergeProps, withCtx, createElementVNode, resolveDynamicComponent, Fragment, createTextVNode, toDisplayString, createCommentVNode, createVNode, createSlots, renderList, renderSlot, normalizeProps, guardReactiveProps, watch, h } from "vue";
|
|
53
53
|
import { CircleCloseFilled, CircleCheckFilled, WarningFilled, QuestionFilled } from "@element-plus/icons-vue";
|
|
54
54
|
import { ElFormItem, ElTooltip, ElIcon } from "element-plus";
|
|
55
|
+
import _sfc_main$w from "./FormItemWrapper.vue.js";
|
|
56
|
+
/* empty css */
|
|
55
57
|
import _sfc_main$5 from "./items/AddInputItem.vue.js";
|
|
56
58
|
import _sfc_main$3 from "./items/AMapPickerItem.vue.js";
|
|
57
59
|
import _sfc_main$s from "./items/AutocompleteItem.vue.js";
|
|
@@ -129,6 +131,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
129
131
|
setup(__props) {
|
|
130
132
|
const props = __props;
|
|
131
133
|
const loading = ref(false);
|
|
134
|
+
const propsLoadStatus = ref("idle");
|
|
135
|
+
const loadError = ref(null);
|
|
132
136
|
const componentProps = ref({});
|
|
133
137
|
const rulesData = ref(null);
|
|
134
138
|
const rules = computed(() => {
|
|
@@ -146,10 +150,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
146
150
|
const configProps = props.config.componentProps;
|
|
147
151
|
if (!configProps) {
|
|
148
152
|
componentProps.value = {};
|
|
153
|
+
propsLoadStatus.value = "ready";
|
|
149
154
|
return;
|
|
150
155
|
}
|
|
151
156
|
if (typeof configProps === "function") {
|
|
152
157
|
loading.value = true;
|
|
158
|
+
propsLoadStatus.value = "loading";
|
|
159
|
+
loadError.value = null;
|
|
153
160
|
try {
|
|
154
161
|
const result = yield configProps({
|
|
155
162
|
model: props.model,
|
|
@@ -157,15 +164,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
157
164
|
$form: props.model
|
|
158
165
|
});
|
|
159
166
|
componentProps.value = result || {};
|
|
167
|
+
propsLoadStatus.value = "ready";
|
|
160
168
|
} catch (error) {
|
|
161
169
|
console.error("Failed to load component props:", error);
|
|
162
170
|
componentProps.value = {};
|
|
171
|
+
loadError.value = error;
|
|
172
|
+
propsLoadStatus.value = "error";
|
|
163
173
|
} finally {
|
|
164
174
|
loading.value = false;
|
|
165
175
|
}
|
|
166
176
|
return;
|
|
167
177
|
}
|
|
168
178
|
componentProps.value = configProps;
|
|
179
|
+
propsLoadStatus.value = "ready";
|
|
169
180
|
});
|
|
170
181
|
}
|
|
171
182
|
function loadRules() {
|
|
@@ -195,6 +206,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
195
206
|
rulesData.value = typeof configRules !== "function" ? configRules : null;
|
|
196
207
|
});
|
|
197
208
|
}
|
|
209
|
+
function reloadComponentProps() {
|
|
210
|
+
return __async(this, null, function* () {
|
|
211
|
+
yield loadComponentProps();
|
|
212
|
+
});
|
|
213
|
+
}
|
|
198
214
|
const watchFields = computed(() => {
|
|
199
215
|
const config = props.config;
|
|
200
216
|
return config.watchFields || [];
|
|
@@ -238,6 +254,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
238
254
|
title,
|
|
239
255
|
placeholder,
|
|
240
256
|
componentProps: _componentProps,
|
|
257
|
+
rules: _rules,
|
|
241
258
|
hidden,
|
|
242
259
|
customStyle,
|
|
243
260
|
children,
|
|
@@ -253,13 +270,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
253
270
|
formatValue,
|
|
254
271
|
formatModel,
|
|
255
272
|
noLabelMargin,
|
|
256
|
-
titleRender
|
|
273
|
+
titleRender,
|
|
274
|
+
watchFields: _watchFields,
|
|
275
|
+
help: _help,
|
|
276
|
+
useDefaultBorderClass: _useDefaultBorderClass
|
|
257
277
|
} = _a, rest = __objRest(_a, [
|
|
258
278
|
"field",
|
|
259
279
|
"type",
|
|
260
280
|
"title",
|
|
261
281
|
"placeholder",
|
|
262
282
|
"componentProps",
|
|
283
|
+
"rules",
|
|
263
284
|
"hidden",
|
|
264
285
|
"customStyle",
|
|
265
286
|
"children",
|
|
@@ -275,7 +296,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
275
296
|
"formatValue",
|
|
276
297
|
"formatModel",
|
|
277
298
|
"noLabelMargin",
|
|
278
|
-
"titleRender"
|
|
299
|
+
"titleRender",
|
|
300
|
+
"watchFields",
|
|
301
|
+
"help",
|
|
302
|
+
"useDefaultBorderClass"
|
|
279
303
|
]);
|
|
280
304
|
return rest;
|
|
281
305
|
});
|
|
@@ -389,23 +413,35 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
389
413
|
], 64)),
|
|
390
414
|
__props.config.help && __props.config.help.tooltip ? (openBlock(), createBlock(resolveDynamicComponent(renderHelpTooltip()), { key: 2 })) : createCommentVNode("", true)
|
|
391
415
|
]),
|
|
392
|
-
(
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
416
|
+
createVNode(_sfc_main$w, {
|
|
417
|
+
status: propsLoadStatus.value,
|
|
418
|
+
error: loadError.value,
|
|
419
|
+
onRetry: reloadComponentProps
|
|
420
|
+
}, {
|
|
421
|
+
loading: withCtx(() => [
|
|
422
|
+
renderSlot(_ctx.$slots, "loading", { field: __props.field })
|
|
423
|
+
]),
|
|
424
|
+
default: withCtx(() => [
|
|
425
|
+
(openBlock(), createBlock(resolveDynamicComponent(currentComponent.value), {
|
|
426
|
+
"model-value": modelValue.value,
|
|
427
|
+
config: __props.config,
|
|
428
|
+
"component-props": componentProps.value,
|
|
429
|
+
"component-slots": componentSlotsObj.value,
|
|
430
|
+
disabled: __props.disabled,
|
|
431
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = (val) => __props.model[__props.field] = val)
|
|
432
|
+
}, createSlots({ _: 2 }, [
|
|
433
|
+
renderList(Object.keys(_ctx.$slots), (name, index) => {
|
|
434
|
+
return {
|
|
435
|
+
name,
|
|
436
|
+
fn: withCtx((slotData) => [
|
|
437
|
+
renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData || {})))
|
|
438
|
+
])
|
|
439
|
+
};
|
|
440
|
+
})
|
|
441
|
+
]), 1032, ["model-value", "config", "component-props", "component-slots", "disabled"]))
|
|
442
|
+
]),
|
|
443
|
+
_: 3
|
|
444
|
+
}, 8, ["status", "error"]),
|
|
409
445
|
__props.config.help && !__props.config.help.tooltip ? (openBlock(), createBlock(resolveDynamicComponent(renderHelpText()), { key: 0 })) : createCommentVNode("", true)
|
|
410
446
|
]),
|
|
411
447
|
_: 3
|
|
@@ -420,42 +456,66 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
420
456
|
default: withCtx(() => [
|
|
421
457
|
__props.config.prepend || __props.config.append ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
422
458
|
__props.config.prepend ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(__props.config.prepend), 1)) : createCommentVNode("", true),
|
|
423
|
-
(
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
459
|
+
createVNode(_sfc_main$w, {
|
|
460
|
+
status: propsLoadStatus.value,
|
|
461
|
+
error: loadError.value,
|
|
462
|
+
onRetry: reloadComponentProps
|
|
463
|
+
}, {
|
|
464
|
+
loading: withCtx(() => [
|
|
465
|
+
renderSlot(_ctx.$slots, "loading", { field: __props.field })
|
|
466
|
+
]),
|
|
467
|
+
default: withCtx(() => [
|
|
468
|
+
(openBlock(), createBlock(resolveDynamicComponent(currentComponent.value), {
|
|
469
|
+
"model-value": modelValue.value,
|
|
470
|
+
config: __props.config,
|
|
471
|
+
"component-props": componentProps.value,
|
|
472
|
+
"component-slots": componentSlotsObj.value,
|
|
473
|
+
disabled: __props.disabled,
|
|
474
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = (val) => __props.model[__props.field] = val)
|
|
475
|
+
}, createSlots({ _: 2 }, [
|
|
476
|
+
renderList(Object.keys(_ctx.$slots), (name, index) => {
|
|
477
|
+
return {
|
|
478
|
+
name,
|
|
479
|
+
fn: withCtx((slotData) => [
|
|
480
|
+
renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData || {})))
|
|
481
|
+
])
|
|
482
|
+
};
|
|
483
|
+
})
|
|
484
|
+
]), 1032, ["model-value", "config", "component-props", "component-slots", "disabled"]))
|
|
485
|
+
]),
|
|
486
|
+
_: 3
|
|
487
|
+
}, 8, ["status", "error"]),
|
|
440
488
|
__props.config.append ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(__props.config.append), 1)) : createCommentVNode("", true)
|
|
441
|
-
])) : (openBlock(), createBlock(
|
|
489
|
+
])) : (openBlock(), createBlock(_sfc_main$w, {
|
|
442
490
|
key: 1,
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
491
|
+
status: propsLoadStatus.value,
|
|
492
|
+
error: loadError.value,
|
|
493
|
+
onRetry: reloadComponentProps
|
|
494
|
+
}, {
|
|
495
|
+
loading: withCtx(() => [
|
|
496
|
+
renderSlot(_ctx.$slots, "loading", { field: __props.field })
|
|
497
|
+
]),
|
|
498
|
+
default: withCtx(() => [
|
|
499
|
+
(openBlock(), createBlock(resolveDynamicComponent(currentComponent.value), {
|
|
500
|
+
"model-value": modelValue.value,
|
|
501
|
+
config: __props.config,
|
|
502
|
+
"component-props": componentProps.value,
|
|
503
|
+
"component-slots": componentSlotsObj.value,
|
|
504
|
+
disabled: __props.disabled,
|
|
505
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = (val) => __props.model[__props.field] = val)
|
|
506
|
+
}, createSlots({ _: 2 }, [
|
|
507
|
+
renderList(Object.keys(_ctx.$slots), (name, index) => {
|
|
508
|
+
return {
|
|
509
|
+
name,
|
|
510
|
+
fn: withCtx((slotData) => [
|
|
511
|
+
renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData || {})))
|
|
512
|
+
])
|
|
513
|
+
};
|
|
514
|
+
})
|
|
515
|
+
]), 1032, ["model-value", "config", "component-props", "component-slots", "disabled"]))
|
|
516
|
+
]),
|
|
517
|
+
_: 3
|
|
518
|
+
}, 8, ["status", "error"])),
|
|
459
519
|
__props.config.help && !__props.config.help.tooltip ? (openBlock(), createBlock(resolveDynamicComponent(renderHelpText()), { key: 2 })) : createCommentVNode("", true)
|
|
460
520
|
]),
|
|
461
521
|
_: 2
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
status: 'idle' | 'loading' | 'ready' | 'error';
|
|
3
|
+
error?: Error | null;
|
|
4
|
+
}
|
|
5
|
+
declare function handleRetry(): void;
|
|
6
|
+
declare function __VLS_template(): {
|
|
7
|
+
attrs: Partial<{}>;
|
|
8
|
+
slots: {
|
|
9
|
+
loading?(_: {}): any;
|
|
10
|
+
error?(_: {
|
|
11
|
+
error: Error;
|
|
12
|
+
retry: typeof handleRetry;
|
|
13
|
+
}): any;
|
|
14
|
+
default?(_: {}): any;
|
|
15
|
+
};
|
|
16
|
+
refs: {};
|
|
17
|
+
rootEl: any;
|
|
18
|
+
};
|
|
19
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
20
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
21
|
+
retry: () => any;
|
|
22
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
23
|
+
onRetry?: (() => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
error: Error | null;
|
|
26
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
27
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
28
|
+
export default _default;
|
|
29
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
30
|
+
new (): {
|
|
31
|
+
$slots: S;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import { defineComponent, computed, openBlock, createBlock, unref, withCtx, renderSlot, createElementVNode, createElementBlock, createVNode, createTextVNode } from "vue";
|
|
21
|
+
import { Loading, WarningFilled } from "@element-plus/icons-vue";
|
|
22
|
+
import { ElIcon, ElButton } from "element-plus";
|
|
23
|
+
const _hoisted_1 = {
|
|
24
|
+
key: 1,
|
|
25
|
+
class: "jky-form-item-wrapper__error"
|
|
26
|
+
};
|
|
27
|
+
const _hoisted_2 = { class: "flex items-center gap-2 text-red-500 py-1" };
|
|
28
|
+
const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
|
|
29
|
+
name: "JkyFormItemWrapper"
|
|
30
|
+
}), {
|
|
31
|
+
__name: "FormItemWrapper",
|
|
32
|
+
props: {
|
|
33
|
+
status: {},
|
|
34
|
+
error: { default: null }
|
|
35
|
+
},
|
|
36
|
+
emits: ["retry"],
|
|
37
|
+
setup(__props, { emit: __emit }) {
|
|
38
|
+
const props = __props;
|
|
39
|
+
const emit = __emit;
|
|
40
|
+
const showLoading = computed(() => props.status === "loading");
|
|
41
|
+
const showError = computed(() => props.status === "error");
|
|
42
|
+
function handleRetry() {
|
|
43
|
+
emit("retry");
|
|
44
|
+
}
|
|
45
|
+
return (_ctx, _cache) => {
|
|
46
|
+
return showLoading.value ? (openBlock(), createBlock(unref(Loading), {
|
|
47
|
+
key: 0,
|
|
48
|
+
class: "jky-form-item-wrapper__loading"
|
|
49
|
+
}, {
|
|
50
|
+
default: withCtx(() => [
|
|
51
|
+
renderSlot(_ctx.$slots, "loading", {}, () => [
|
|
52
|
+
_cache[0] || (_cache[0] = createElementVNode("div", { class: "skeleton-box w-full h-9 rounded bg-gray-200 animate-pulse" }, null, -1))
|
|
53
|
+
])
|
|
54
|
+
]),
|
|
55
|
+
_: 3
|
|
56
|
+
})) : showError.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
57
|
+
renderSlot(_ctx.$slots, "error", {
|
|
58
|
+
error: __props.error,
|
|
59
|
+
retry: handleRetry
|
|
60
|
+
}, () => [
|
|
61
|
+
createElementVNode("div", _hoisted_2, [
|
|
62
|
+
createVNode(unref(ElIcon), { size: 14 }, {
|
|
63
|
+
default: withCtx(() => [
|
|
64
|
+
createVNode(unref(WarningFilled))
|
|
65
|
+
]),
|
|
66
|
+
_: 1
|
|
67
|
+
}),
|
|
68
|
+
_cache[2] || (_cache[2] = createElementVNode("span", { class: "text-sm" }, "加载失败", -1)),
|
|
69
|
+
createVNode(unref(ElButton), {
|
|
70
|
+
link: "",
|
|
71
|
+
type: "primary",
|
|
72
|
+
size: "small",
|
|
73
|
+
onClick: handleRetry
|
|
74
|
+
}, {
|
|
75
|
+
default: withCtx(() => [..._cache[1] || (_cache[1] = [
|
|
76
|
+
createTextVNode(" 重试 ", -1)
|
|
77
|
+
])]),
|
|
78
|
+
_: 1
|
|
79
|
+
})
|
|
80
|
+
])
|
|
81
|
+
])
|
|
82
|
+
])) : renderSlot(_ctx.$slots, "default", { key: 2 });
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}));
|
|
86
|
+
export {
|
|
87
|
+
_sfc_main as default
|
|
88
|
+
};
|
package/dist/es/form/style.css
CHANGED
|
@@ -11,3 +11,27 @@
|
|
|
11
11
|
.jky-form {
|
|
12
12
|
/* 表单容器样式 */
|
|
13
13
|
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/* FormItemWrapper 组件样式 */
|
|
17
|
+
.jky-form-item-wrapper__loading {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
.jky-form-item-wrapper__error {
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
}
|
|
25
|
+
.skeleton-box {
|
|
26
|
+
background-color: #e5e7eb;
|
|
27
|
+
border-radius: 0.25rem;
|
|
28
|
+
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
29
|
+
}
|
|
30
|
+
@keyframes pulse {
|
|
31
|
+
0%, 100% {
|
|
32
|
+
opacity: 1;
|
|
33
|
+
}
|
|
34
|
+
50% {
|
|
35
|
+
opacity: 0.5;
|
|
36
|
+
}
|
|
37
|
+
}
|
package/dist/es/package.json.js
CHANGED
package/dist/es/style.css
CHANGED
|
@@ -166,6 +166,7 @@
|
|
|
166
166
|
--radius-md: .375rem;
|
|
167
167
|
--radius-lg: .5rem;
|
|
168
168
|
--radius-2xl: 1rem;
|
|
169
|
+
--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
|
|
169
170
|
--blur-sm: 8px;
|
|
170
171
|
--default-transition-duration: .15s;
|
|
171
172
|
--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
|
|
@@ -1738,6 +1739,10 @@
|
|
|
1738
1739
|
height: calc(var(--spacing) * 7);
|
|
1739
1740
|
}
|
|
1740
1741
|
|
|
1742
|
+
.h-9 {
|
|
1743
|
+
height: calc(var(--spacing) * 9);
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1741
1746
|
.h-12 {
|
|
1742
1747
|
height: calc(var(--spacing) * 12);
|
|
1743
1748
|
}
|
|
@@ -1883,6 +1888,10 @@
|
|
|
1883
1888
|
transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
|
|
1884
1889
|
}
|
|
1885
1890
|
|
|
1891
|
+
.animate-pulse {
|
|
1892
|
+
animation: var(--animate-pulse);
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1886
1895
|
.cursor-pointer {
|
|
1887
1896
|
cursor: pointer;
|
|
1888
1897
|
}
|
|
@@ -3442,3 +3451,9 @@
|
|
|
3442
3451
|
syntax: "*";
|
|
3443
3452
|
inherits: false
|
|
3444
3453
|
}
|
|
3454
|
+
|
|
3455
|
+
@keyframes pulse {
|
|
3456
|
+
50% {
|
|
3457
|
+
opacity: .5;
|
|
3458
|
+
}
|
|
3459
|
+
}
|
package/dist/es/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5)}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
|
|
1
|
+
.jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5)}.jky-form-item-wrapper__error,.jky-form-item-wrapper__loading{align-items:center;display:flex}.skeleton-box{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;background-color:#e5e7eb;border-radius:.25rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
|
package/dist/lib/amap/style.css
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
/* AMap 高德地图组件样式 */
|
|
2
|
+
.jky-amap-container {
|
|
3
|
+
/* 地图容器样式 */
|
|
4
|
+
position: relative;
|
|
5
|
+
overflow: hidden;
|
|
1
6
|
|
|
2
|
-
/*
|
|
3
|
-
.amap-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
/* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
|
|
8
|
+
.amap-logo {
|
|
9
|
+
display: none !important;
|
|
10
|
+
}
|
|
11
|
+
.amap-copyright {
|
|
12
|
+
display: none !important;
|
|
13
|
+
}
|
|
7
14
|
}
|
package/dist/lib/amap/style2.css
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
/* AMap 高德地图组件样式 */
|
|
2
|
-
.jky-amap-container {
|
|
3
|
-
/* 地图容器样式 */
|
|
4
|
-
position: relative;
|
|
5
|
-
overflow: hidden;
|
|
6
1
|
|
|
7
|
-
|
|
8
|
-
.amap-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
display: none !important;
|
|
13
|
-
}
|
|
2
|
+
/* JkyAMarker 组件样式 - 参考高德官方示例 */
|
|
3
|
+
.amap-icon img,
|
|
4
|
+
.amap-marker-content img {
|
|
5
|
+
width: 25px;
|
|
6
|
+
height: 34px;
|
|
14
7
|
}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { FormItemProps } from './types';
|
|
2
2
|
declare function __VLS_template(): {
|
|
3
3
|
attrs: Partial<{}>;
|
|
4
|
-
slots: Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any
|
|
4
|
+
slots: Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & {
|
|
5
|
+
loading?(_: {
|
|
6
|
+
field: string;
|
|
7
|
+
}): any;
|
|
8
|
+
loading?(_: {
|
|
9
|
+
field: string;
|
|
10
|
+
}): any;
|
|
11
|
+
loading?(_: {
|
|
12
|
+
field: string;
|
|
13
|
+
}): any;
|
|
14
|
+
};
|
|
5
15
|
refs: {};
|
|
6
16
|
rootEl: any;
|
|
7
17
|
};
|
|
@@ -54,6 +54,8 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
54
54
|
const vue = require("vue");
|
|
55
55
|
const iconsVue = require("@element-plus/icons-vue");
|
|
56
56
|
const ElementPlus = require("element-plus");
|
|
57
|
+
const FormItemWrapper_vue_vue_type_script_setup_true_lang = require("./FormItemWrapper.vue.js");
|
|
58
|
+
;/* empty css */
|
|
57
59
|
const AddInputItem_vue_vue_type_script_setup_true_lang = require("./items/AddInputItem.vue.js");
|
|
58
60
|
const AMapPickerItem_vue_vue_type_script_setup_true_lang = require("./items/AMapPickerItem.vue.js");
|
|
59
61
|
const AutocompleteItem_vue_vue_type_script_setup_true_lang = require("./items/AutocompleteItem.vue.js");
|
|
@@ -131,6 +133,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
131
133
|
setup(__props) {
|
|
132
134
|
const props = __props;
|
|
133
135
|
const loading = vue.ref(false);
|
|
136
|
+
const propsLoadStatus = vue.ref("idle");
|
|
137
|
+
const loadError = vue.ref(null);
|
|
134
138
|
const componentProps = vue.ref({});
|
|
135
139
|
const rulesData = vue.ref(null);
|
|
136
140
|
const rules = vue.computed(() => {
|
|
@@ -148,10 +152,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
148
152
|
const configProps = props.config.componentProps;
|
|
149
153
|
if (!configProps) {
|
|
150
154
|
componentProps.value = {};
|
|
155
|
+
propsLoadStatus.value = "ready";
|
|
151
156
|
return;
|
|
152
157
|
}
|
|
153
158
|
if (typeof configProps === "function") {
|
|
154
159
|
loading.value = true;
|
|
160
|
+
propsLoadStatus.value = "loading";
|
|
161
|
+
loadError.value = null;
|
|
155
162
|
try {
|
|
156
163
|
const result = yield configProps({
|
|
157
164
|
model: props.model,
|
|
@@ -159,15 +166,19 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
159
166
|
$form: props.model
|
|
160
167
|
});
|
|
161
168
|
componentProps.value = result || {};
|
|
169
|
+
propsLoadStatus.value = "ready";
|
|
162
170
|
} catch (error) {
|
|
163
171
|
console.error("Failed to load component props:", error);
|
|
164
172
|
componentProps.value = {};
|
|
173
|
+
loadError.value = error;
|
|
174
|
+
propsLoadStatus.value = "error";
|
|
165
175
|
} finally {
|
|
166
176
|
loading.value = false;
|
|
167
177
|
}
|
|
168
178
|
return;
|
|
169
179
|
}
|
|
170
180
|
componentProps.value = configProps;
|
|
181
|
+
propsLoadStatus.value = "ready";
|
|
171
182
|
});
|
|
172
183
|
}
|
|
173
184
|
function loadRules() {
|
|
@@ -197,6 +208,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
197
208
|
rulesData.value = typeof configRules !== "function" ? configRules : null;
|
|
198
209
|
});
|
|
199
210
|
}
|
|
211
|
+
function reloadComponentProps() {
|
|
212
|
+
return __async(this, null, function* () {
|
|
213
|
+
yield loadComponentProps();
|
|
214
|
+
});
|
|
215
|
+
}
|
|
200
216
|
const watchFields = vue.computed(() => {
|
|
201
217
|
const config = props.config;
|
|
202
218
|
return config.watchFields || [];
|
|
@@ -240,6 +256,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
240
256
|
title,
|
|
241
257
|
placeholder,
|
|
242
258
|
componentProps: _componentProps,
|
|
259
|
+
rules: _rules,
|
|
243
260
|
hidden,
|
|
244
261
|
customStyle,
|
|
245
262
|
children,
|
|
@@ -255,13 +272,17 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
255
272
|
formatValue,
|
|
256
273
|
formatModel,
|
|
257
274
|
noLabelMargin,
|
|
258
|
-
titleRender
|
|
275
|
+
titleRender,
|
|
276
|
+
watchFields: _watchFields,
|
|
277
|
+
help: _help,
|
|
278
|
+
useDefaultBorderClass: _useDefaultBorderClass
|
|
259
279
|
} = _a, rest = __objRest(_a, [
|
|
260
280
|
"field",
|
|
261
281
|
"type",
|
|
262
282
|
"title",
|
|
263
283
|
"placeholder",
|
|
264
284
|
"componentProps",
|
|
285
|
+
"rules",
|
|
265
286
|
"hidden",
|
|
266
287
|
"customStyle",
|
|
267
288
|
"children",
|
|
@@ -277,7 +298,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
277
298
|
"formatValue",
|
|
278
299
|
"formatModel",
|
|
279
300
|
"noLabelMargin",
|
|
280
|
-
"titleRender"
|
|
301
|
+
"titleRender",
|
|
302
|
+
"watchFields",
|
|
303
|
+
"help",
|
|
304
|
+
"useDefaultBorderClass"
|
|
281
305
|
]);
|
|
282
306
|
return rest;
|
|
283
307
|
});
|
|
@@ -391,23 +415,35 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
391
415
|
], 64)),
|
|
392
416
|
__props.config.help && __props.config.help.tooltip ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderHelpTooltip()), { key: 2 })) : vue.createCommentVNode("", true)
|
|
393
417
|
]),
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
vue.
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
418
|
+
vue.createVNode(FormItemWrapper_vue_vue_type_script_setup_true_lang.default, {
|
|
419
|
+
status: propsLoadStatus.value,
|
|
420
|
+
error: loadError.value,
|
|
421
|
+
onRetry: reloadComponentProps
|
|
422
|
+
}, {
|
|
423
|
+
loading: vue.withCtx(() => [
|
|
424
|
+
vue.renderSlot(_ctx.$slots, "loading", { field: __props.field })
|
|
425
|
+
]),
|
|
426
|
+
default: vue.withCtx(() => [
|
|
427
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(currentComponent.value), {
|
|
428
|
+
"model-value": modelValue.value,
|
|
429
|
+
config: __props.config,
|
|
430
|
+
"component-props": componentProps.value,
|
|
431
|
+
"component-slots": componentSlotsObj.value,
|
|
432
|
+
disabled: __props.disabled,
|
|
433
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = (val) => __props.model[__props.field] = val)
|
|
434
|
+
}, vue.createSlots({ _: 2 }, [
|
|
435
|
+
vue.renderList(Object.keys(_ctx.$slots), (name, index) => {
|
|
436
|
+
return {
|
|
437
|
+
name,
|
|
438
|
+
fn: vue.withCtx((slotData) => [
|
|
439
|
+
vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(slotData || {})))
|
|
440
|
+
])
|
|
441
|
+
};
|
|
442
|
+
})
|
|
443
|
+
]), 1032, ["model-value", "config", "component-props", "component-slots", "disabled"]))
|
|
444
|
+
]),
|
|
445
|
+
_: 3
|
|
446
|
+
}, 8, ["status", "error"]),
|
|
411
447
|
__props.config.help && !__props.config.help.tooltip ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderHelpText()), { key: 0 })) : vue.createCommentVNode("", true)
|
|
412
448
|
]),
|
|
413
449
|
_: 3
|
|
@@ -422,42 +458,66 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
422
458
|
default: vue.withCtx(() => [
|
|
423
459
|
__props.config.prepend || __props.config.append ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
|
|
424
460
|
__props.config.prepend ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5, vue.toDisplayString(__props.config.prepend), 1)) : vue.createCommentVNode("", true),
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
vue.
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
461
|
+
vue.createVNode(FormItemWrapper_vue_vue_type_script_setup_true_lang.default, {
|
|
462
|
+
status: propsLoadStatus.value,
|
|
463
|
+
error: loadError.value,
|
|
464
|
+
onRetry: reloadComponentProps
|
|
465
|
+
}, {
|
|
466
|
+
loading: vue.withCtx(() => [
|
|
467
|
+
vue.renderSlot(_ctx.$slots, "loading", { field: __props.field })
|
|
468
|
+
]),
|
|
469
|
+
default: vue.withCtx(() => [
|
|
470
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(currentComponent.value), {
|
|
471
|
+
"model-value": modelValue.value,
|
|
472
|
+
config: __props.config,
|
|
473
|
+
"component-props": componentProps.value,
|
|
474
|
+
"component-slots": componentSlotsObj.value,
|
|
475
|
+
disabled: __props.disabled,
|
|
476
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = (val) => __props.model[__props.field] = val)
|
|
477
|
+
}, vue.createSlots({ _: 2 }, [
|
|
478
|
+
vue.renderList(Object.keys(_ctx.$slots), (name, index) => {
|
|
479
|
+
return {
|
|
480
|
+
name,
|
|
481
|
+
fn: vue.withCtx((slotData) => [
|
|
482
|
+
vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(slotData || {})))
|
|
483
|
+
])
|
|
484
|
+
};
|
|
485
|
+
})
|
|
486
|
+
]), 1032, ["model-value", "config", "component-props", "component-slots", "disabled"]))
|
|
487
|
+
]),
|
|
488
|
+
_: 3
|
|
489
|
+
}, 8, ["status", "error"]),
|
|
442
490
|
__props.config.append ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_6, vue.toDisplayString(__props.config.append), 1)) : vue.createCommentVNode("", true)
|
|
443
|
-
])) : (vue.openBlock(), vue.createBlock(
|
|
491
|
+
])) : (vue.openBlock(), vue.createBlock(FormItemWrapper_vue_vue_type_script_setup_true_lang.default, {
|
|
444
492
|
key: 1,
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
vue.
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
493
|
+
status: propsLoadStatus.value,
|
|
494
|
+
error: loadError.value,
|
|
495
|
+
onRetry: reloadComponentProps
|
|
496
|
+
}, {
|
|
497
|
+
loading: vue.withCtx(() => [
|
|
498
|
+
vue.renderSlot(_ctx.$slots, "loading", { field: __props.field })
|
|
499
|
+
]),
|
|
500
|
+
default: vue.withCtx(() => [
|
|
501
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(currentComponent.value), {
|
|
502
|
+
"model-value": modelValue.value,
|
|
503
|
+
config: __props.config,
|
|
504
|
+
"component-props": componentProps.value,
|
|
505
|
+
"component-slots": componentSlotsObj.value,
|
|
506
|
+
disabled: __props.disabled,
|
|
507
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = (val) => __props.model[__props.field] = val)
|
|
508
|
+
}, vue.createSlots({ _: 2 }, [
|
|
509
|
+
vue.renderList(Object.keys(_ctx.$slots), (name, index) => {
|
|
510
|
+
return {
|
|
511
|
+
name,
|
|
512
|
+
fn: vue.withCtx((slotData) => [
|
|
513
|
+
vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(slotData || {})))
|
|
514
|
+
])
|
|
515
|
+
};
|
|
516
|
+
})
|
|
517
|
+
]), 1032, ["model-value", "config", "component-props", "component-slots", "disabled"]))
|
|
518
|
+
]),
|
|
519
|
+
_: 3
|
|
520
|
+
}, 8, ["status", "error"])),
|
|
461
521
|
__props.config.help && !__props.config.help.tooltip ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderHelpText()), { key: 2 })) : vue.createCommentVNode("", true)
|
|
462
522
|
]),
|
|
463
523
|
_: 2
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
status: 'idle' | 'loading' | 'ready' | 'error';
|
|
3
|
+
error?: Error | null;
|
|
4
|
+
}
|
|
5
|
+
declare function handleRetry(): void;
|
|
6
|
+
declare function __VLS_template(): {
|
|
7
|
+
attrs: Partial<{}>;
|
|
8
|
+
slots: {
|
|
9
|
+
loading?(_: {}): any;
|
|
10
|
+
error?(_: {
|
|
11
|
+
error: Error;
|
|
12
|
+
retry: typeof handleRetry;
|
|
13
|
+
}): any;
|
|
14
|
+
default?(_: {}): any;
|
|
15
|
+
};
|
|
16
|
+
refs: {};
|
|
17
|
+
rootEl: any;
|
|
18
|
+
};
|
|
19
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
20
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
21
|
+
retry: () => any;
|
|
22
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
23
|
+
onRetry?: (() => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
error: Error | null;
|
|
26
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
27
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
28
|
+
export default _default;
|
|
29
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
30
|
+
new (): {
|
|
31
|
+
$slots: S;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
22
|
+
const vue = require("vue");
|
|
23
|
+
const iconsVue = require("@element-plus/icons-vue");
|
|
24
|
+
const ElementPlus = require("element-plus");
|
|
25
|
+
const _hoisted_1 = {
|
|
26
|
+
key: 1,
|
|
27
|
+
class: "jky-form-item-wrapper__error"
|
|
28
|
+
};
|
|
29
|
+
const _hoisted_2 = { class: "flex items-center gap-2 text-red-500 py-1" };
|
|
30
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, {
|
|
31
|
+
name: "JkyFormItemWrapper"
|
|
32
|
+
}), {
|
|
33
|
+
__name: "FormItemWrapper",
|
|
34
|
+
props: {
|
|
35
|
+
status: {},
|
|
36
|
+
error: { default: null }
|
|
37
|
+
},
|
|
38
|
+
emits: ["retry"],
|
|
39
|
+
setup(__props, { emit: __emit }) {
|
|
40
|
+
const props = __props;
|
|
41
|
+
const emit = __emit;
|
|
42
|
+
const showLoading = vue.computed(() => props.status === "loading");
|
|
43
|
+
const showError = vue.computed(() => props.status === "error");
|
|
44
|
+
function handleRetry() {
|
|
45
|
+
emit("retry");
|
|
46
|
+
}
|
|
47
|
+
return (_ctx, _cache) => {
|
|
48
|
+
return showLoading.value ? (vue.openBlock(), vue.createBlock(vue.unref(iconsVue.Loading), {
|
|
49
|
+
key: 0,
|
|
50
|
+
class: "jky-form-item-wrapper__loading"
|
|
51
|
+
}, {
|
|
52
|
+
default: vue.withCtx(() => [
|
|
53
|
+
vue.renderSlot(_ctx.$slots, "loading", {}, () => [
|
|
54
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "skeleton-box w-full h-9 rounded bg-gray-200 animate-pulse" }, null, -1))
|
|
55
|
+
])
|
|
56
|
+
]),
|
|
57
|
+
_: 3
|
|
58
|
+
})) : showError.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
59
|
+
vue.renderSlot(_ctx.$slots, "error", {
|
|
60
|
+
error: __props.error,
|
|
61
|
+
retry: handleRetry
|
|
62
|
+
}, () => [
|
|
63
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
64
|
+
vue.createVNode(vue.unref(ElementPlus.ElIcon), { size: 14 }, {
|
|
65
|
+
default: vue.withCtx(() => [
|
|
66
|
+
vue.createVNode(vue.unref(iconsVue.WarningFilled))
|
|
67
|
+
]),
|
|
68
|
+
_: 1
|
|
69
|
+
}),
|
|
70
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("span", { class: "text-sm" }, "加载失败", -1)),
|
|
71
|
+
vue.createVNode(vue.unref(ElementPlus.ElButton), {
|
|
72
|
+
link: "",
|
|
73
|
+
type: "primary",
|
|
74
|
+
size: "small",
|
|
75
|
+
onClick: handleRetry
|
|
76
|
+
}, {
|
|
77
|
+
default: vue.withCtx(() => [..._cache[1] || (_cache[1] = [
|
|
78
|
+
vue.createTextVNode(" 重试 ", -1)
|
|
79
|
+
])]),
|
|
80
|
+
_: 1
|
|
81
|
+
})
|
|
82
|
+
])
|
|
83
|
+
])
|
|
84
|
+
])) : vue.renderSlot(_ctx.$slots, "default", { key: 2 });
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}));
|
|
88
|
+
exports.default = _sfc_main;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const FormItemWrapper_vue_vue_type_script_setup_true_lang = require("./FormItemWrapper.vue.js");
|
|
4
|
+
;/* empty css */
|
|
5
|
+
exports.default = FormItemWrapper_vue_vue_type_script_setup_true_lang.default;
|
package/dist/lib/form/style.css
CHANGED
|
@@ -11,3 +11,27 @@
|
|
|
11
11
|
.jky-form {
|
|
12
12
|
/* 表单容器样式 */
|
|
13
13
|
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/* FormItemWrapper 组件样式 */
|
|
17
|
+
.jky-form-item-wrapper__loading {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
.jky-form-item-wrapper__error {
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
}
|
|
25
|
+
.skeleton-box {
|
|
26
|
+
background-color: #e5e7eb;
|
|
27
|
+
border-radius: 0.25rem;
|
|
28
|
+
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
29
|
+
}
|
|
30
|
+
@keyframes pulse {
|
|
31
|
+
0%, 100% {
|
|
32
|
+
opacity: 1;
|
|
33
|
+
}
|
|
34
|
+
50% {
|
|
35
|
+
opacity: 0.5;
|
|
36
|
+
}
|
|
37
|
+
}
|
package/dist/lib/package.json.js
CHANGED
package/dist/lib/style.css
CHANGED
|
@@ -166,6 +166,7 @@
|
|
|
166
166
|
--radius-md: .375rem;
|
|
167
167
|
--radius-lg: .5rem;
|
|
168
168
|
--radius-2xl: 1rem;
|
|
169
|
+
--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
|
|
169
170
|
--blur-sm: 8px;
|
|
170
171
|
--default-transition-duration: .15s;
|
|
171
172
|
--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
|
|
@@ -1738,6 +1739,10 @@
|
|
|
1738
1739
|
height: calc(var(--spacing) * 7);
|
|
1739
1740
|
}
|
|
1740
1741
|
|
|
1742
|
+
.h-9 {
|
|
1743
|
+
height: calc(var(--spacing) * 9);
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1741
1746
|
.h-12 {
|
|
1742
1747
|
height: calc(var(--spacing) * 12);
|
|
1743
1748
|
}
|
|
@@ -1883,6 +1888,10 @@
|
|
|
1883
1888
|
transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
|
|
1884
1889
|
}
|
|
1885
1890
|
|
|
1891
|
+
.animate-pulse {
|
|
1892
|
+
animation: var(--animate-pulse);
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1886
1895
|
.cursor-pointer {
|
|
1887
1896
|
cursor: pointer;
|
|
1888
1897
|
}
|
|
@@ -3442,3 +3451,9 @@
|
|
|
3442
3451
|
syntax: "*";
|
|
3443
3452
|
inherits: false
|
|
3444
3453
|
}
|
|
3454
|
+
|
|
3455
|
+
@keyframes pulse {
|
|
3456
|
+
50% {
|
|
3457
|
+
opacity: .5;
|
|
3458
|
+
}
|
|
3459
|
+
}
|
package/dist/lib/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5)}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
|
|
1
|
+
.jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5)}.jky-form-item-wrapper__error,.jky-form-item-wrapper__loading{align-items:center;display:flex}.skeleton-box{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;background-color:#e5e7eb;border-radius:.25rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
|