ll-plus 2.7.15 → 2.7.17
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/es/components/advanced-filtering/index.d.ts +300 -300
- package/es/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
- package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +150 -150
- package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
- package/es/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
- package/es/components/breadcrumb-card/index.d.ts +1 -1
- package/es/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
- package/es/components/cascader/index.d.ts +8 -8
- package/es/components/cascader/src/cascader.vue.d.ts +8 -8
- package/es/components/checkbox/index.d.ts +217 -217
- package/es/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
- package/es/components/checkbox/src/checkbox.d.ts +56 -56
- package/es/components/drawer/index.d.ts +5 -5
- package/es/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
- package/es/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
- package/es/components/drawer/src/drawer.vue.d.ts +5 -5
- package/es/components/easy-cron/index.d.ts +88 -88
- package/es/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
- package/es/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
- package/es/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
- package/es/components/form/index.d.ts +148 -148
- package/es/components/form/src/components/form-component.vue.d.ts +1 -1
- package/es/components/form/src/config/form.d.ts +56 -56
- package/es/components/form/src/form.vue.d.ts +147 -147
- package/es/components/icon-picker/index.d.ts +1 -1
- package/es/components/icon-picker/src/components/modal.vue.d.ts +1 -1
- package/es/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
- package/es/components/input/index.d.ts +33 -33
- package/es/components/input/src/input.vue.d.ts +33 -33
- package/es/components/key-value/index.d.ts +2 -16096
- package/es/components/key-value/src/components/key-value-item.vue.d.ts +334 -367
- package/es/components/key-value/src/config/key-value-item.d.ts +41 -288
- package/es/components/key-value/src/config/key-value.d.ts +23 -29
- package/es/components/key-value/src/key-value.vue.d.ts +1151 -1239
- package/es/components/modal/index.d.ts +1 -1
- package/es/components/modal/src/modal.vue.d.ts +1 -1
- package/es/components/new-drawer/index.d.ts +7 -7
- package/es/components/new-drawer/src/drawer.vue.d.ts +7 -7
- package/es/components/new-modal/index.d.ts +2 -2
- package/es/components/new-modal/src/modal.vue.d.ts +2 -2
- package/es/components/rich-text-editor/index.d.ts +1 -1
- package/es/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
- package/es/components/select/index.d.ts +4 -4
- package/es/components/select/src/select.vue.d.ts +4 -4
- package/es/components/select-group/index.d.ts +2 -2
- package/es/components/select-group/src/select-group.d.ts +1 -1
- package/es/components/select-group/src/select-group.vue.d.ts +2 -2
- package/es/components/table/index.d.ts +6 -6
- package/es/components/table/src/components/main-table.vue.d.ts +2 -2
- package/es/components/table/src/config/table.d.ts +2 -2
- package/es/components/table/src/table.vue.d.ts +6 -6
- package/es/components/textarea/index.d.ts +5 -5
- package/es/components/textarea/src/textarea.vue.d.ts +5 -5
- package/es/components/tooltip/index.d.ts +4 -4
- package/es/components/tooltip/src/tooltip.d.ts +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
- package/es/components/tree-search/index.d.ts +1 -1
- package/es/components/tree-search/src/tree-search.vue.d.ts +1 -1
- package/es/components/upload-drag/index.d.ts +2 -2
- package/es/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
- package/es/index.mjs +3 -2
- package/es/index.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/index.mjs +1 -1
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs +3 -5
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs +2 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +19 -11
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/index.mjs +1 -1
- package/es/packages/components/key-value/index.mjs.map +1 -1
- package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs +66 -67
- package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs.map +1 -1
- package/es/packages/components/key-value/src/config/key-value-item.mjs +36 -11
- package/es/packages/components/key-value/src/config/key-value-item.mjs.map +1 -1
- package/es/packages/components/key-value/src/config/key-value.mjs +4 -2
- package/es/packages/components/key-value/src/config/key-value.mjs.map +1 -1
- package/es/packages/components/key-value/src/key-value.vue2.mjs +97 -33
- package/es/packages/components/key-value/src/key-value.vue2.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.vue2.mjs +1 -2
- package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
- package/es/packages/utils/data.mjs +42 -0
- package/es/packages/utils/data.mjs.map +1 -0
- package/es/packages/utils/{deepUnref.mjs → deep-unref.mjs} +1 -1
- package/es/packages/utils/deep-unref.mjs.map +1 -0
- package/es/packages/utils/index.mjs +2 -1
- package/es/packages/utils/index.mjs.map +1 -1
- package/es/utils/data.d.ts +3 -0
- package/es/utils/index.d.ts +2 -1
- package/es/utils/props/runtime.d.ts +2 -2
- package/index.full.js +257 -125
- package/index.full.min.js +22 -22
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +22 -22
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +256 -126
- package/lib/components/advanced-filtering/index.d.ts +300 -300
- package/lib/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
- package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +150 -150
- package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
- package/lib/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
- package/lib/components/breadcrumb-card/index.d.ts +1 -1
- package/lib/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
- package/lib/components/cascader/index.d.ts +8 -8
- package/lib/components/cascader/src/cascader.vue.d.ts +8 -8
- package/lib/components/checkbox/index.d.ts +217 -217
- package/lib/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
- package/lib/components/checkbox/src/checkbox.d.ts +56 -56
- package/lib/components/drawer/index.d.ts +5 -5
- package/lib/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
- package/lib/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
- package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
- package/lib/components/easy-cron/index.d.ts +88 -88
- package/lib/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
- package/lib/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
- package/lib/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
- package/lib/components/form/index.d.ts +148 -148
- package/lib/components/form/src/components/form-component.vue.d.ts +1 -1
- package/lib/components/form/src/config/form.d.ts +56 -56
- package/lib/components/form/src/form.vue.d.ts +147 -147
- package/lib/components/icon-picker/index.d.ts +1 -1
- package/lib/components/icon-picker/src/components/modal.vue.d.ts +1 -1
- package/lib/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
- package/lib/components/input/index.d.ts +33 -33
- package/lib/components/input/src/input.vue.d.ts +33 -33
- package/lib/components/key-value/index.d.ts +2 -16096
- package/lib/components/key-value/src/components/key-value-item.vue.d.ts +334 -367
- package/lib/components/key-value/src/config/key-value-item.d.ts +41 -288
- package/lib/components/key-value/src/config/key-value.d.ts +23 -29
- package/lib/components/key-value/src/key-value.vue.d.ts +1151 -1239
- package/lib/components/modal/index.d.ts +1 -1
- package/lib/components/modal/src/modal.vue.d.ts +1 -1
- package/lib/components/new-drawer/index.d.ts +7 -7
- package/lib/components/new-drawer/src/drawer.vue.d.ts +7 -7
- package/lib/components/new-modal/index.d.ts +2 -2
- package/lib/components/new-modal/src/modal.vue.d.ts +2 -2
- package/lib/components/rich-text-editor/index.d.ts +1 -1
- package/lib/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
- package/lib/components/select/index.d.ts +4 -4
- package/lib/components/select/src/select.vue.d.ts +4 -4
- package/lib/components/select-group/index.d.ts +2 -2
- package/lib/components/select-group/src/select-group.d.ts +1 -1
- package/lib/components/select-group/src/select-group.vue.d.ts +2 -2
- package/lib/components/table/index.d.ts +6 -6
- package/lib/components/table/src/components/main-table.vue.d.ts +2 -2
- package/lib/components/table/src/config/table.d.ts +2 -2
- package/lib/components/table/src/table.vue.d.ts +6 -6
- package/lib/components/textarea/index.d.ts +5 -5
- package/lib/components/textarea/src/textarea.vue.d.ts +5 -5
- package/lib/components/tooltip/index.d.ts +4 -4
- package/lib/components/tooltip/src/tooltip.d.ts +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
- package/lib/components/tree-search/index.d.ts +1 -1
- package/lib/components/tree-search/src/tree-search.vue.d.ts +1 -1
- package/lib/components/upload-drag/index.d.ts +2 -2
- package/lib/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
- package/lib/index.js +5 -2
- package/lib/index.js.map +1 -1
- package/lib/packages/components/advanced-filtering/index.js +0 -1
- package/lib/packages/components/advanced-filtering/index.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js +5 -8
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js +2 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +19 -11
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/index.js +0 -1
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/key-value/index.js.map +1 -1
- package/lib/packages/components/key-value/src/components/key-value-item.vue2.js +65 -66
- package/lib/packages/components/key-value/src/components/key-value-item.vue2.js.map +1 -1
- package/lib/packages/components/key-value/src/config/key-value-item.js +36 -11
- package/lib/packages/components/key-value/src/config/key-value-item.js.map +1 -1
- package/lib/packages/components/key-value/src/config/key-value.js +4 -2
- package/lib/packages/components/key-value/src/config/key-value.js.map +1 -1
- package/lib/packages/components/key-value/src/key-value.vue2.js +97 -33
- package/lib/packages/components/key-value/src/key-value.vue2.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.vue2.js +2 -3
- package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
- package/lib/packages/utils/data.js +46 -0
- package/lib/packages/utils/data.js.map +1 -0
- package/lib/packages/utils/{deepUnref.js → deep-unref.js} +1 -1
- package/lib/packages/utils/deep-unref.js.map +1 -0
- package/lib/packages/utils/index.js +5 -1
- package/lib/packages/utils/index.js.map +1 -1
- package/lib/utils/data.d.ts +3 -0
- package/lib/utils/index.d.ts +2 -1
- package/lib/utils/props/runtime.d.ts +2 -2
- package/package.json +1 -1
- package/theme-chalk/css/advanced-filtering.css +2 -2
- package/theme-chalk/css/api-component.css +2 -2
- package/theme-chalk/css/cascader.css +2 -2
- package/theme-chalk/css/checkbox.css +2 -2
- package/theme-chalk/css/code-editor.css +2 -2
- package/theme-chalk/css/color-picker.css +2 -2
- package/theme-chalk/css/cropper.css +2 -2
- package/theme-chalk/css/descriptions.css +2 -2
- package/theme-chalk/css/drawer.css +2 -2
- package/theme-chalk/css/dropdown-button-simple.css +2 -2
- package/theme-chalk/css/dropdown.css +2 -2
- package/theme-chalk/css/easy-cron.css +2 -2
- package/theme-chalk/css/form.css +2 -2
- package/theme-chalk/css/images.css +1 -1
- package/theme-chalk/css/index.css +3 -3
- package/theme-chalk/css/input-number.css +2 -2
- package/theme-chalk/css/input.css +2 -2
- package/theme-chalk/css/key-value.css +2 -2
- package/theme-chalk/css/markdown-editor.css +2 -2
- package/theme-chalk/css/modal.css +2 -2
- package/theme-chalk/css/new-drawer.css +2 -2
- package/theme-chalk/css/new-modal.css +2 -2
- package/theme-chalk/css/number-range.css +2 -2
- package/theme-chalk/css/rich-text-editor.css +2 -2
- package/theme-chalk/css/segmented.css +2 -2
- package/theme-chalk/css/switch.css +2 -2
- package/theme-chalk/css/table.css +2 -2
- package/theme-chalk/css/tabs-simple.css +2 -2
- package/theme-chalk/css/tag-group.css +2 -2
- package/types/packages/components/advanced-filtering/index.d.ts +300 -300
- package/types/packages/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
- package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +150 -150
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
- package/types/packages/components/breadcrumb-card/index.d.ts +1 -1
- package/types/packages/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
- package/types/packages/components/cascader/index.d.ts +8 -8
- package/types/packages/components/cascader/src/cascader.vue.d.ts +8 -8
- package/types/packages/components/checkbox/index.d.ts +217 -217
- package/types/packages/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
- package/types/packages/components/checkbox/src/checkbox.d.ts +56 -56
- package/types/packages/components/drawer/index.d.ts +5 -5
- package/types/packages/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
- package/types/packages/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
- package/types/packages/components/drawer/src/drawer.vue.d.ts +5 -5
- package/types/packages/components/easy-cron/index.d.ts +88 -88
- package/types/packages/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
- package/types/packages/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
- package/types/packages/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
- package/types/packages/components/form/index.d.ts +148 -148
- package/types/packages/components/form/src/components/form-component.vue.d.ts +1 -1
- package/types/packages/components/form/src/config/form.d.ts +56 -56
- package/types/packages/components/form/src/form.vue.d.ts +147 -147
- package/types/packages/components/icon-picker/index.d.ts +1 -1
- package/types/packages/components/icon-picker/src/components/modal.vue.d.ts +1 -1
- package/types/packages/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
- package/types/packages/components/input/index.d.ts +33 -33
- package/types/packages/components/input/src/input.vue.d.ts +33 -33
- package/types/packages/components/key-value/index.d.ts +2 -16096
- package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +334 -367
- package/types/packages/components/key-value/src/config/key-value-item.d.ts +41 -288
- package/types/packages/components/key-value/src/config/key-value.d.ts +23 -29
- package/types/packages/components/key-value/src/key-value.vue.d.ts +1151 -1239
- package/types/packages/components/modal/index.d.ts +1 -1
- package/types/packages/components/modal/src/modal.vue.d.ts +1 -1
- package/types/packages/components/new-drawer/index.d.ts +7 -7
- package/types/packages/components/new-drawer/src/drawer.vue.d.ts +7 -7
- package/types/packages/components/new-modal/index.d.ts +2 -2
- package/types/packages/components/new-modal/src/modal.vue.d.ts +2 -2
- package/types/packages/components/rich-text-editor/index.d.ts +1 -1
- package/types/packages/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
- package/types/packages/components/select/index.d.ts +4 -4
- package/types/packages/components/select/src/select.vue.d.ts +4 -4
- package/types/packages/components/select-group/index.d.ts +2 -2
- package/types/packages/components/select-group/src/select-group.d.ts +1 -1
- package/types/packages/components/select-group/src/select-group.vue.d.ts +2 -2
- package/types/packages/components/table/index.d.ts +6 -6
- package/types/packages/components/table/src/components/main-table.vue.d.ts +2 -2
- package/types/packages/components/table/src/config/table.d.ts +2 -2
- package/types/packages/components/table/src/table.vue.d.ts +6 -6
- package/types/packages/components/textarea/index.d.ts +5 -5
- package/types/packages/components/textarea/src/textarea.vue.d.ts +5 -5
- package/types/packages/components/tooltip/index.d.ts +4 -4
- package/types/packages/components/tooltip/src/tooltip.d.ts +1 -1
- package/types/packages/components/tooltip/src/tooltip.vue.d.ts +4 -4
- package/types/packages/components/tree-search/index.d.ts +1 -1
- package/types/packages/components/tree-search/src/tree-search.vue.d.ts +1 -1
- package/types/packages/components/upload-drag/index.d.ts +2 -2
- package/types/packages/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
- package/types/packages/utils/data.d.ts +3 -0
- package/types/packages/utils/index.d.ts +2 -1
- package/types/packages/utils/props/runtime.d.ts +2 -2
- package/es/packages/utils/deepUnref.mjs.map +0 -1
- package/lib/packages/utils/deepUnref.js.map +0 -1
- /package/es/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
- /package/lib/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
- /package/types/packages/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
|
@@ -23,7 +23,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
23
23
|
const attrs = vue.useAttrs();
|
|
24
24
|
const bem = createNamespace.createNamespace("key-value");
|
|
25
25
|
const innerValue = vue.ref(props.value);
|
|
26
|
-
const
|
|
26
|
+
const formRef = vue.ref();
|
|
27
27
|
const getKeyType = vue.computed(() => {
|
|
28
28
|
const option = props.keyType;
|
|
29
29
|
return option;
|
|
@@ -41,27 +41,34 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
41
41
|
const getValueDisabled = vue.computed(() => {
|
|
42
42
|
return props.disabledValue?.includes(props.idx) || props.disabled || getValueType.value?.disabled;
|
|
43
43
|
});
|
|
44
|
-
const getDeleteDisabled = vue.computed(() => {
|
|
45
|
-
return props.disabledDelete?.includes(props.idx) || props.disabled;
|
|
46
|
-
});
|
|
47
44
|
const hasValue = vue.computed(() => {
|
|
48
45
|
return innerValue.value["key"] || innerValue.value["key"] === 0 || innerValue.value["value"];
|
|
49
46
|
});
|
|
47
|
+
const getDeleteDisabled = vue.computed(() => {
|
|
48
|
+
return props.disabledDelete?.includes(props.idx) || props.disabled || props.values.length === 1 && !hasValue.value;
|
|
49
|
+
});
|
|
50
50
|
const handleDelete = () => {
|
|
51
51
|
emits("delete");
|
|
52
52
|
};
|
|
53
53
|
const handleChange = async () => {
|
|
54
54
|
innerValue.value["value"] = null;
|
|
55
|
-
await
|
|
55
|
+
await formRef.value?.clearValidate();
|
|
56
56
|
};
|
|
57
57
|
const validate = async () => {
|
|
58
|
-
|
|
58
|
+
await vue.nextTick();
|
|
59
|
+
try {
|
|
60
|
+
await formRef.value?.validate();
|
|
61
|
+
return Promise.resolve();
|
|
62
|
+
} catch (error) {
|
|
63
|
+
console.log({ error }, props.idx);
|
|
64
|
+
return Promise.reject();
|
|
65
|
+
}
|
|
59
66
|
};
|
|
60
67
|
const resetFields = async () => {
|
|
61
|
-
|
|
68
|
+
await formRef.value?.resetFields();
|
|
62
69
|
};
|
|
63
70
|
const clearValidate = async (namePath) => {
|
|
64
|
-
|
|
71
|
+
await formRef.value?.clearValidate(namePath);
|
|
65
72
|
};
|
|
66
73
|
vue.watch(
|
|
67
74
|
innerValue,
|
|
@@ -92,8 +99,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
92
99
|
const _component_a_popconfirm = vue.resolveComponent("a-popconfirm");
|
|
93
100
|
const _component_ll_form = vue.resolveComponent("ll-form");
|
|
94
101
|
return vue.openBlock(), vue.createBlock(_component_ll_form, {
|
|
95
|
-
ref_key: "
|
|
96
|
-
ref:
|
|
102
|
+
ref_key: "formRef",
|
|
103
|
+
ref: formRef,
|
|
97
104
|
"form-columns": vue.unref(keyValueItem.formColumns),
|
|
98
105
|
"form-data": props.value,
|
|
99
106
|
"form-options": vue.unref(keyValueItem.formOptions)
|
|
@@ -194,7 +201,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
194
201
|
name: "value"
|
|
195
202
|
}, {
|
|
196
203
|
default: vue.withCtx(() => [
|
|
197
|
-
vue.renderSlot(_ctx.$slots, "value-
|
|
204
|
+
vue.renderSlot(_ctx.$slots, "value-wrapper", vue.normalizeProps(vue.guardReactiveProps(getValueType.value)), () => [
|
|
198
205
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(`ll-${getValueType.value.type}`), vue.mergeProps({
|
|
199
206
|
value: innerValue.value["value"],
|
|
200
207
|
"onUpdate:value": _cache[2] || (_cache[2] = ($event) => innerValue.value["value"] = $event),
|
|
@@ -222,57 +229,21 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
222
229
|
2
|
|
223
230
|
/* CLASS */
|
|
224
231
|
),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
onConfirm: handleDelete
|
|
239
|
-
}, {
|
|
240
|
-
default: vue.withCtx(() => [
|
|
241
|
-
vue.createElementVNode(
|
|
242
|
-
"div",
|
|
243
|
-
{
|
|
244
|
-
class: vue.normalizeClass(vue.unref(bem).m("delete")),
|
|
245
|
-
style: vue.normalizeStyle({
|
|
246
|
-
"margin-top": !!vue.unref(attrs)["key-label"] || !!vue.unref(attrs)["value-label"] ? "26px" : "0px"
|
|
247
|
-
})
|
|
248
|
-
},
|
|
249
|
-
[
|
|
250
|
-
vue.createVNode(_component_ll_button, {
|
|
251
|
-
type: "link",
|
|
252
|
-
disabled: getDeleteDisabled.value
|
|
253
|
-
}, {
|
|
254
|
-
default: vue.withCtx(() => [
|
|
255
|
-
vue.renderSlot(_ctx.$slots, "delete-icon", {}, () => [
|
|
256
|
-
vue.createVNode(_component_ll_icon, {
|
|
257
|
-
"icon-name": "icon-remove",
|
|
258
|
-
class: "delete"
|
|
259
|
-
})
|
|
260
|
-
])
|
|
261
|
-
]),
|
|
262
|
-
_: 3
|
|
263
|
-
/* FORWARDED */
|
|
264
|
-
}, 8, ["disabled"])
|
|
265
|
-
],
|
|
266
|
-
6
|
|
267
|
-
/* CLASS, STYLE */
|
|
268
|
-
)
|
|
269
|
-
]),
|
|
270
|
-
_: 3
|
|
271
|
-
/* FORWARDED */
|
|
272
|
-
}, 8, ["overlay-class-name", "get-popup-container"])) : (vue.openBlock(), vue.createElementBlock(
|
|
232
|
+
hasValue.value ? (vue.openBlock(), vue.createBlock(_component_a_popconfirm, {
|
|
233
|
+
key: 2,
|
|
234
|
+
title: "\u786E\u5B9A\u8981\u79FB\u9664\u5417?",
|
|
235
|
+
"ok-text": "\u786E\u8BA4",
|
|
236
|
+
"cancel-text": "\u53D6\u6D88",
|
|
237
|
+
placement: "topRight",
|
|
238
|
+
"overlay-class-name": vue.unref(bem).m("popconfirm"),
|
|
239
|
+
"get-popup-container": (trigger) => trigger.parentNode,
|
|
240
|
+
"destroy-tooltip-on-hide": "",
|
|
241
|
+
onConfirm: handleDelete
|
|
242
|
+
}, {
|
|
243
|
+
default: vue.withCtx(() => [
|
|
244
|
+
vue.createElementVNode(
|
|
273
245
|
"div",
|
|
274
246
|
{
|
|
275
|
-
key: 1,
|
|
276
247
|
class: vue.normalizeClass(vue.unref(bem).m("delete")),
|
|
277
248
|
style: vue.normalizeStyle({
|
|
278
249
|
"margin-top": !!vue.unref(attrs)["key-label"] || !!vue.unref(attrs)["value-label"] ? "26px" : "0px"
|
|
@@ -281,8 +252,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
281
252
|
[
|
|
282
253
|
vue.createVNode(_component_ll_button, {
|
|
283
254
|
type: "link",
|
|
284
|
-
disabled: getDeleteDisabled.value
|
|
285
|
-
onClick: handleDelete
|
|
255
|
+
disabled: getDeleteDisabled.value
|
|
286
256
|
}, {
|
|
287
257
|
default: vue.withCtx(() => [
|
|
288
258
|
vue.renderSlot(_ctx.$slots, "delete-icon", {}, () => [
|
|
@@ -298,11 +268,40 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
298
268
|
],
|
|
299
269
|
6
|
|
300
270
|
/* CLASS, STYLE */
|
|
301
|
-
)
|
|
271
|
+
)
|
|
272
|
+
]),
|
|
273
|
+
_: 3
|
|
274
|
+
/* FORWARDED */
|
|
275
|
+
}, 8, ["overlay-class-name", "get-popup-container"])) : (vue.openBlock(), vue.createElementBlock(
|
|
276
|
+
"div",
|
|
277
|
+
{
|
|
278
|
+
key: 3,
|
|
279
|
+
class: vue.normalizeClass(vue.unref(bem).m("delete")),
|
|
280
|
+
style: vue.normalizeStyle({
|
|
281
|
+
"margin-top": !!vue.unref(attrs)["key-label"] || !!vue.unref(attrs)["value-label"] ? "26px" : "0px"
|
|
282
|
+
})
|
|
283
|
+
},
|
|
284
|
+
[
|
|
285
|
+
vue.createVNode(_component_ll_button, {
|
|
286
|
+
type: "link",
|
|
287
|
+
disabled: getDeleteDisabled.value,
|
|
288
|
+
onClick: handleDelete
|
|
289
|
+
}, {
|
|
290
|
+
default: vue.withCtx(() => [
|
|
291
|
+
vue.renderSlot(_ctx.$slots, "delete-icon", {}, () => [
|
|
292
|
+
vue.createVNode(_component_ll_icon, {
|
|
293
|
+
"icon-name": "icon-remove",
|
|
294
|
+
class: "delete"
|
|
295
|
+
})
|
|
296
|
+
])
|
|
297
|
+
]),
|
|
298
|
+
_: 3
|
|
299
|
+
/* FORWARDED */
|
|
300
|
+
}, 8, ["disabled"])
|
|
302
301
|
],
|
|
303
|
-
|
|
304
|
-
/*
|
|
305
|
-
))
|
|
302
|
+
6
|
|
303
|
+
/* CLASS, STYLE */
|
|
304
|
+
))
|
|
306
305
|
],
|
|
307
306
|
2
|
|
308
307
|
/* CLASS */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value-item.vue2.js","sources":["../../../../../../../packages/components/key-value/src/components/key-value-item.vue"],"sourcesContent":["<template>\n <ll-form\n ref=\"form\"\n :form-columns=\"formColumns\"\n :form-data=\"props.value\"\n :form-options=\"formOptions\"\n >\n <template #formItem=\"{ item }\">\n <template v-if=\"item.key === 'other'\">\n <div :class=\"bem.e('item')\">\n <div v-if=\"props.keyValueType !== 'single'\" :class=\"bem.m('left')\">\n <ll-form-item\n :label=\"attrs['key-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getKeyType.rules || []\"\n name=\"key\"\n >\n <slot name=\"key\">\n <ll-select\n v-if=\"!isEmpty(props.keyTypes)\"\n v-model:value=\"innerValue['key']\"\n :options=\"props.keyTypes\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n placeholder=\"请选择\"\n allow-clear\n @change=\"handleChange\"\n />\n <component\n :is=\"`ll-${getKeyType.type}`\"\n v-else\n v-model:value=\"innerValue['key']\"\n v-bind=\"getKeyType\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"key\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <div\n v-if=\"props.keyValueType !== 'single'\"\n :class=\"bem.m('separator')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <slot name=\"separator\">~</slot>\n </div>\n\n <div :class=\"bem.m('right')\">\n <ll-form-item\n :label=\"attrs['value-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getValueType.rules || []\"\n name=\"value\"\n >\n <slot name=\"value-warapper\" v-bind=\"getValueType\">\n <component\n :is=\"`ll-${getValueType.type}`\"\n v-model:value=\"innerValue['value']\"\n :disabled=\"getValueDisabled\"\n style=\"width: 100%\"\n v-bind=\"getValueType\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"value\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n <template v-if=\"props.showDelete\">\n <template v-if=\"hasValue\">\n <a-popconfirm\n title=\"确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.m('popconfirm')\"\n :get-popup-container=\"(trigger: Element) => trigger.parentNode\"\n destroy-tooltip-on-hide\n @confirm=\"handleDelete\"\n >\n <div\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button type=\"link\" :disabled=\"getDeleteDisabled\">\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </a-popconfirm>\n </template>\n <div\n v-else\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"getDeleteDisabled\"\n @click=\"handleDelete\"\n >\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </template>\n </div>\n </template>\n </template>\n </ll-form>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch, nextTick } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport type { FormInstance } from '@ll-plus/components'\nimport {\n keyValueItemProps,\n keyValueItemEmits,\n formColumns,\n formOptions\n} from '../config'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\ndefineOptions({\n name: 'LlKeyValueItem'\n})\n\nconst props = defineProps(keyValueItemProps)\nconst emits = defineEmits(keyValueItemEmits)\n\nconst attrs = useAttrs()\nconst bem = createNamespace('key-value')\nconst innerValue = ref(props.value)\n\nconst form = ref<FormInstance | null>()\n\nconst getKeyType = computed<FormColumn>(() => {\n const option = props.keyType\n return option\n})\nconst getValueType = computed<FormColumn>(() => {\n let option = props.valueType\n if (innerValue.value['key'] && !isEmpty(props.keyValueTypeDict)) {\n option = props.keyValueTypeDict[innerValue.value['key']]\n }\n return option\n})\n\nconst getKeyDisabled = computed(() => {\n return (\n props.disabledKey?.includes(props.idx) ||\n props.disabled ||\n getKeyType.value?.disabled\n )\n})\n\nconst getValueDisabled = computed(() => {\n return (\n props.disabledValue?.includes(props.idx) ||\n props.disabled ||\n getValueType.value?.disabled\n )\n})\n\nconst getDeleteDisabled = computed(() => {\n return props.disabledDelete?.includes(props.idx) || props.disabled\n})\n\nconst hasValue = computed(() => {\n return (\n innerValue.value['key'] ||\n innerValue.value['key'] === 0 ||\n innerValue.value['value']\n )\n})\n\nconst handleDelete = () => {\n emits('delete')\n}\n\nconst handleChange = async () => {\n innerValue.value['value'] = null\n await form.value?.clearValidate()\n}\n\nconst validate = async () => {\n return await form.value?.validate()\n}\n\nconst resetFields = async () => {\n return await form.value?.resetFields()\n}\nconst clearValidate = async (namePath?: NamePath[]) => {\n return await form.value?.clearValidate(namePath)\n}\n\nwatch(\n innerValue,\n async val => {\n await nextTick().then(() => {\n try {\n emits('update:value', val)\n emits('change')\n } catch (error) {\n console.error(error)\n }\n })\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n\n<style scoped></style>\n"],"names":["useAttrs","createNamespace","ref","computed","isEmpty","watch","nextTick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"key-value-item.vue2.js","sources":["../../../../../../../packages/components/key-value/src/components/key-value-item.vue"],"sourcesContent":["<template>\n <ll-form\n ref=\"formRef\"\n :form-columns=\"formColumns\"\n :form-data=\"props.value\"\n :form-options=\"formOptions\"\n >\n <template #formItem=\"{ item }\">\n <template v-if=\"item.key === 'other'\">\n <div :class=\"bem.e('item')\">\n <div v-if=\"props.keyValueType !== 'single'\" :class=\"bem.m('left')\">\n <ll-form-item\n :label=\"attrs['key-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getKeyType.rules || []\"\n name=\"key\"\n >\n <slot name=\"key\">\n <ll-select\n v-if=\"!isEmpty(props.keyTypes)\"\n v-model:value=\"innerValue['key']\"\n :options=\"props.keyTypes\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n placeholder=\"请选择\"\n allow-clear\n @change=\"handleChange\"\n />\n <component\n :is=\"`ll-${getKeyType.type}`\"\n v-else\n v-model:value=\"innerValue['key']\"\n v-bind=\"getKeyType\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"key\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <div\n v-if=\"props.keyValueType !== 'single'\"\n :class=\"bem.m('separator')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <slot name=\"separator\">~</slot>\n </div>\n\n <div :class=\"bem.m('right')\">\n <ll-form-item\n :label=\"attrs['value-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getValueType.rules || []\"\n name=\"value\"\n >\n <slot name=\"value-wrapper\" v-bind=\"getValueType\">\n <component\n :is=\"`ll-${getValueType.type}`\"\n v-model:value=\"innerValue['value']\"\n :disabled=\"getValueDisabled\"\n style=\"width: 100%\"\n v-bind=\"getValueType\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"value\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n <template v-if=\"hasValue\">\n <a-popconfirm\n title=\"确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.m('popconfirm')\"\n :get-popup-container=\"(trigger: Element) => trigger.parentNode\"\n destroy-tooltip-on-hide\n @confirm=\"handleDelete\"\n >\n <div\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button type=\"link\" :disabled=\"getDeleteDisabled\">\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </a-popconfirm>\n </template>\n <div\n v-else\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"getDeleteDisabled\"\n @click=\"handleDelete\"\n >\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </div>\n </template>\n </template>\n </ll-form>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch, nextTick } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport type { FormInstance } from '@ll-plus/components'\nimport {\n keyValueItemProps,\n keyValueItemEmits,\n formColumns,\n formOptions\n} from '../config'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\ndefineOptions({\n name: 'LlKeyValueItem'\n})\n\nconst props = defineProps(keyValueItemProps)\nconst emits = defineEmits(keyValueItemEmits)\n\nconst attrs = useAttrs()\nconst bem = createNamespace('key-value')\nconst innerValue = ref(props.value)\n\nconst formRef = ref<FormInstance | null>()\n\nconst getKeyType = computed<FormColumn>(() => {\n const option = props.keyType\n return option\n})\nconst getValueType = computed<FormColumn>(() => {\n let option = props.valueType\n if (innerValue.value['key'] && !isEmpty(props.keyValueTypeDict)) {\n option = props.keyValueTypeDict[innerValue.value['key']]\n }\n return option\n})\n\nconst getKeyDisabled = computed(() => {\n return (\n props.disabledKey?.includes(props.idx) ||\n props.disabled ||\n getKeyType.value?.disabled\n )\n})\n\nconst getValueDisabled = computed(() => {\n return (\n props.disabledValue?.includes(props.idx) ||\n props.disabled ||\n getValueType.value?.disabled\n )\n})\n\nconst hasValue = computed(() => {\n return (\n innerValue.value['key'] ||\n innerValue.value['key'] === 0 ||\n innerValue.value['value']\n )\n})\n\nconst getDeleteDisabled = computed(() => {\n return (\n props.disabledDelete?.includes(props.idx) ||\n props.disabled ||\n (props.values.length === 1 && !hasValue.value)\n )\n})\n\nconst handleDelete = () => {\n emits('delete')\n}\n\nconst handleChange = async () => {\n innerValue.value['value'] = null\n await formRef.value?.clearValidate()\n}\n\nconst validate = async () => {\n await nextTick()\n try {\n await formRef.value?.validate()\n return Promise.resolve()\n } catch (error) {\n console.log({ error }, props.idx)\n return Promise.reject()\n }\n}\n\nconst resetFields = async () => {\n await formRef.value?.resetFields()\n}\n\nconst clearValidate = async (namePath?: NamePath[]) => {\n await formRef.value?.clearValidate(namePath)\n}\n\nwatch(\n innerValue,\n async val => {\n await nextTick().then(() => {\n try {\n emits('update:value', val)\n emits('change')\n } catch (error) {\n console.error(error)\n }\n })\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n\n<style scoped></style>\n"],"names":["useAttrs","createNamespace","ref","computed","isEmpty","nextTick","watch"],"mappings":"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"}
|
|
@@ -31,34 +31,59 @@ const formColumns = [
|
|
|
31
31
|
];
|
|
32
32
|
const keyValueItemProps = runtime.buildProps({
|
|
33
33
|
disabled: {
|
|
34
|
-
type: Boolean
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: false
|
|
36
|
+
},
|
|
37
|
+
values: {
|
|
38
|
+
type: runtime.definePropType(Array),
|
|
39
|
+
default: () => [
|
|
40
|
+
{
|
|
41
|
+
key: null,
|
|
42
|
+
value: null,
|
|
43
|
+
guid: ""
|
|
44
|
+
}
|
|
45
|
+
]
|
|
35
46
|
},
|
|
36
47
|
disabledValue: {
|
|
37
|
-
type: runtime.definePropType(Array)
|
|
48
|
+
type: runtime.definePropType(Array),
|
|
49
|
+
default: () => []
|
|
38
50
|
},
|
|
39
51
|
disabledKey: {
|
|
40
|
-
type: runtime.definePropType(Array)
|
|
52
|
+
type: runtime.definePropType(Array),
|
|
53
|
+
default: () => []
|
|
41
54
|
},
|
|
42
55
|
disabledDelete: {
|
|
43
|
-
type: runtime.definePropType(Array)
|
|
56
|
+
type: runtime.definePropType(Array),
|
|
57
|
+
default: () => []
|
|
44
58
|
},
|
|
45
59
|
keyValueType: {
|
|
46
|
-
type: runtime.definePropType(String)
|
|
60
|
+
type: runtime.definePropType(String),
|
|
61
|
+
default: "doubt"
|
|
47
62
|
},
|
|
48
63
|
keyType: {
|
|
49
|
-
type: runtime.definePropType(Object)
|
|
64
|
+
type: runtime.definePropType(Object),
|
|
65
|
+
default: () => ({
|
|
66
|
+
type: "input",
|
|
67
|
+
placeholder: "\u8BF7\u8F93\u5165Key"
|
|
68
|
+
})
|
|
50
69
|
},
|
|
51
70
|
keyTypes: {
|
|
52
|
-
type: runtime.definePropType(Array)
|
|
71
|
+
type: runtime.definePropType(Array),
|
|
72
|
+
default: () => []
|
|
53
73
|
},
|
|
54
74
|
valueType: {
|
|
55
|
-
type: runtime.definePropType(Object)
|
|
75
|
+
type: runtime.definePropType(Object),
|
|
76
|
+
default: () => ({
|
|
77
|
+
type: "input",
|
|
78
|
+
placeholder: "\u8BF7\u8F93\u5165Value"
|
|
79
|
+
})
|
|
56
80
|
},
|
|
57
81
|
value: {
|
|
58
82
|
type: runtime.definePropType(Object),
|
|
59
83
|
default: () => ({
|
|
60
84
|
key: "",
|
|
61
|
-
value: ""
|
|
85
|
+
value: "",
|
|
86
|
+
guid: ""
|
|
62
87
|
})
|
|
63
88
|
},
|
|
64
89
|
idx: {
|
|
@@ -69,9 +94,9 @@ const keyValueItemProps = runtime.buildProps({
|
|
|
69
94
|
type: Object,
|
|
70
95
|
default: () => ({})
|
|
71
96
|
},
|
|
72
|
-
|
|
97
|
+
keepLast: {
|
|
73
98
|
type: Boolean,
|
|
74
|
-
default:
|
|
99
|
+
default: false
|
|
75
100
|
}
|
|
76
101
|
});
|
|
77
102
|
const keyValueItemEmits = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value-item.js","sources":["../../../../../../../packages/components/key-value/src/config/key-value-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport type { FormProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\nimport type {
|
|
1
|
+
{"version":3,"file":"key-value-item.js","sources":["../../../../../../../packages/components/key-value/src/config/key-value-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport type { FormProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\nimport type { IKeyType, IKeyValueItem } from './key-value'\n\n// 定义 typeRules 常量\nexport const typeRules: Array<{\n trigger: string[]\n message: string\n validator: (_rule: any, value: any) => Promise<void>\n}> = [\n {\n trigger: ['blur', 'change'],\n message: '此字段是必需的',\n validator: async (_rule: any, value: any): Promise<void> => {\n if (!value) {\n return Promise.reject(new Error('此字段是必需的'))\n } else {\n return Promise.resolve()\n }\n }\n }\n]\n\n// 定义 formOptions 常量\nexport const formOptions: FormProps = {\n layout: 'horizontal',\n labelAlign: 'left'\n}\n\n// 定义 formColumns 常量\nexport const formColumns: Array<{\n key: string\n labelCol: {\n span: number\n }\n}> = [\n {\n key: 'other',\n labelCol: {\n span: 24\n }\n }\n]\n\n// 定义 keyValueItemProps 常量\nexport const keyValueItemProps = buildProps({\n disabled: {\n type: Boolean,\n default: false\n },\n values: {\n type: definePropType<IKeyValueItem[]>(Array),\n default: (): IKeyValueItem[] => [\n {\n key: null,\n value: null,\n guid: ''\n }\n ]\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n keyValueType: {\n type: definePropType<'single' | 'doubt'>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Key'\n })\n },\n keyTypes: {\n type: definePropType<IKeyType[]>(Array),\n default: (): IKeyType[] => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Value'\n })\n },\n value: {\n type: definePropType<IKeyValueItem>(Object),\n default: (): IKeyValueItem => ({\n key: '',\n value: '',\n guid: ''\n })\n },\n idx: {\n type: Number,\n required: true\n },\n keyValueTypeDict: {\n type: Object as () => Record<string, string>,\n default: (): Record<string, string> => ({})\n },\n keepLast: {\n type: Boolean,\n default: false\n }\n} as const)\n\n// 定义 keyValueItemEmits 常量\nexport const keyValueItemEmits = {\n delete: (): boolean => true,\n change: (): boolean => true,\n 'update:value': (value: IKeyValueItem): boolean => !!value\n}\n"],"names":["buildProps","definePropType"],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('../../../../utils/index.js');
|
|
4
|
+
var data = require('../../../../utils/data.js');
|
|
4
5
|
var runtime = require('../../../../utils/props/runtime.js');
|
|
5
6
|
|
|
6
7
|
"use strict";
|
|
7
8
|
const getKeyValueItem = () => ({
|
|
8
9
|
key: null,
|
|
9
|
-
value: null
|
|
10
|
+
value: null,
|
|
11
|
+
guid: data.guid()
|
|
10
12
|
});
|
|
11
13
|
const keyValueProps = runtime.buildProps({
|
|
12
14
|
value: {
|
|
13
15
|
type: runtime.definePropType(Array),
|
|
14
|
-
default: () => [{ key:
|
|
16
|
+
default: () => [{ key: null, value: null }]
|
|
15
17
|
},
|
|
16
18
|
loading: {
|
|
17
19
|
type: Boolean,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value.js","sources":["../../../../../../../packages/components/key-value/src/config/key-value.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\
|
|
1
|
+
{"version":3,"file":"key-value.js","sources":["../../../../../../../packages/components/key-value/src/config/key-value.ts"],"sourcesContent":["import { buildProps, definePropType, guid } from '@ll-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport { type FormColumn } from '@ll-plus/components'\nimport type KeyValue from '../key-value.vue'\n\n// 定义 IKeyType 接口\nexport interface IKeyType {\n label: string\n value: string\n option: FormColumn\n}\n\n// 定义 IKeyValueReturn 接口\nexport interface IKeyValueReturn {\n key: any | null\n value: any | null\n}\n\n// 定义 IKeyValueItem 类型\nexport type IKeyValueItem = IKeyValueReturn & { guid: string }\n\n// 定义 IKeyValueType 类型\ntype IKeyValueType = 'single' | 'doubt'\n\n// 定义 getKeyValueItem 函数\nexport const getKeyValueItem = (): IKeyValueItem => ({\n key: null,\n value: null,\n guid: guid()\n})\n\n// 定义 keyValueProps 常量\nexport const keyValueProps = buildProps({\n value: {\n type: definePropType<IKeyValueReturn[]>(Array),\n default: (): IKeyValueReturn[] => [{ key: null, value: null }]\n },\n loading: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n keyLabel: {\n type: String,\n default: ''\n },\n valueLabel: {\n type: String,\n default: ''\n },\n addText: {\n type: String,\n default: '添加'\n },\n keyValueType: {\n type: definePropType<IKeyValueType>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Key'\n })\n },\n keyTypes: {\n type: definePropType<IKeyType[]>(Array),\n default: (): IKeyType[] => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Value'\n })\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledAdd: {\n type: Boolean,\n default: false\n },\n validate: {\n type: Boolean,\n default: false\n },\n keepLast: {\n type: Boolean,\n default: true\n }\n} as const)\n\n// 定义 IKeyValueAddEmits 接口\nexport interface IKeyValueAddEmits {\n index: number\n item: IKeyValueItem\n value: IKeyValueItem[]\n}\n\n// 定义 keyValueEmits 常量\nexport const keyValueEmits = {\n change: (value: IKeyValueReturn[]): boolean => !!value,\n add: (params: IKeyValueAddEmits): boolean => !!params,\n delete: (index: number): boolean => typeof index === 'number',\n 'update:value': (value: IKeyValueReturn[]): boolean => !!value\n}\n\n// 定义 KeyValueProps 类型\nexport type KeyValueProps = ExtractPropTypes<typeof keyValueProps>\n// 定义 KeyValueEmits 类型\nexport type KeyValueEmits = typeof keyValueEmits\n// 定义 KeyValueInstance 类型\nexport type KeyValueInstance = InstanceType<typeof KeyValue>\n"],"names":["guid","buildProps","definePropType"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ require('./config/index.js');
|
|
|
9
9
|
var keyValueItem = require('./components/key-value-item.vue.js');
|
|
10
10
|
var keyValue = require('./config/key-value.js');
|
|
11
11
|
var createNamespace = require('../../../utils/create-namespace.js');
|
|
12
|
+
var data = require('../../../utils/data.js');
|
|
12
13
|
|
|
13
14
|
"use strict";
|
|
14
15
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -21,69 +22,132 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
21
22
|
const emits = __emit;
|
|
22
23
|
const bem = createNamespace.createNamespace("key-value");
|
|
23
24
|
const formItemContext = antDesignVue.Form.useInjectFormItemContext();
|
|
24
|
-
const innerValue = vue.ref(
|
|
25
|
-
|
|
25
|
+
const innerValue = vue.ref(
|
|
26
|
+
!props.value || props.value && !props.value.length ? [{ key: null, value: null, guid: data.guid() }] : props.value.map((e) => {
|
|
27
|
+
return {
|
|
28
|
+
...e,
|
|
29
|
+
guid: data.guid()
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
);
|
|
33
|
+
const keyValueItems = vue.ref({});
|
|
34
|
+
const setKeyValueItems = (el, type) => {
|
|
35
|
+
if (el) {
|
|
36
|
+
keyValueItems.value[type] = el;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
26
39
|
const keyValueTypeDict = vue.computed(() => {
|
|
27
40
|
const obj = {};
|
|
28
|
-
props.keyTypes.
|
|
41
|
+
props.keyTypes.forEach((e) => {
|
|
29
42
|
obj[e.value] = e.option;
|
|
30
43
|
});
|
|
31
44
|
return obj;
|
|
32
45
|
});
|
|
33
46
|
const validate = async () => {
|
|
34
47
|
await vue.nextTick();
|
|
35
|
-
|
|
36
|
-
|
|
48
|
+
const validationPromises = Object.values(keyValueItems.value).map(
|
|
49
|
+
async (item) => {
|
|
50
|
+
try {
|
|
51
|
+
await item.validate();
|
|
52
|
+
return { item, valid: true };
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error("Validation failed for item:", item, error);
|
|
55
|
+
return { item, valid: false, error };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
37
58
|
);
|
|
59
|
+
const validationResults = await Promise.all(validationPromises);
|
|
60
|
+
const allValid = validationResults.every((result) => result.valid);
|
|
61
|
+
const errors = validationResults.filter((result) => !result.valid);
|
|
62
|
+
if (!allValid) {
|
|
63
|
+
console.log("Validation errors:", errors);
|
|
64
|
+
return { valid: false, errors };
|
|
65
|
+
}
|
|
66
|
+
return { valid: true };
|
|
38
67
|
};
|
|
39
68
|
const resetFields = async () => {
|
|
40
69
|
await vue.nextTick();
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
70
|
+
for (const i of Object.values(keyValueItems.value)) {
|
|
71
|
+
if (i) {
|
|
72
|
+
i.resetFields();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
44
75
|
};
|
|
45
76
|
const clearValidate = async () => {
|
|
46
77
|
await vue.nextTick();
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
78
|
+
for (const i of Object.values(keyValueItems.value)) {
|
|
79
|
+
if (i) {
|
|
80
|
+
i.clearValidate();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
50
83
|
};
|
|
51
84
|
const handleAddItem = async () => {
|
|
52
|
-
const valid = await validate();
|
|
53
|
-
if (
|
|
54
|
-
return
|
|
85
|
+
const { valid } = await validate();
|
|
86
|
+
if (!valid)
|
|
87
|
+
return;
|
|
55
88
|
innerValue.value.push(keyValue.getKeyValueItem());
|
|
56
89
|
emits("add", {
|
|
57
90
|
index: innerValue.value.length - 1,
|
|
58
91
|
item: innerValue.value[innerValue.value.length - 1],
|
|
59
92
|
value: innerValue.value
|
|
60
93
|
});
|
|
61
|
-
handleChange();
|
|
62
94
|
};
|
|
63
95
|
const handleDelete = (idx) => {
|
|
64
|
-
innerValue.value.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
formItemContext.onFieldChange();
|
|
71
|
-
emits("change", innerValue.value);
|
|
72
|
-
emits("update:value", innerValue.value);
|
|
73
|
-
} catch (error) {
|
|
74
|
-
console.error(error);
|
|
96
|
+
if (innerValue.value.length === 1) {
|
|
97
|
+
innerValue.value = [{ key: null, value: null, guid: data.guid() }];
|
|
98
|
+
} else {
|
|
99
|
+
innerValue.value.splice(idx, 1);
|
|
100
|
+
emits("delete", idx);
|
|
75
101
|
}
|
|
76
102
|
};
|
|
103
|
+
const getValue = (val) => {
|
|
104
|
+
return val.filter((e) => data.hasValue(e.key) || data.hasValue(e.value)).map((e) => ({
|
|
105
|
+
key: e.key,
|
|
106
|
+
value: e.value
|
|
107
|
+
}));
|
|
108
|
+
};
|
|
77
109
|
vue.watch(
|
|
78
110
|
() => props.value,
|
|
79
111
|
(n) => {
|
|
80
|
-
|
|
112
|
+
if (!n || n && !n.length)
|
|
113
|
+
return;
|
|
114
|
+
const copyInnerValue = getValue(innerValue.value);
|
|
115
|
+
const copyPropsValue = getValue(n);
|
|
116
|
+
if (data.deepCompare(copyInnerValue, copyPropsValue))
|
|
117
|
+
return;
|
|
118
|
+
innerValue.value = [
|
|
119
|
+
...n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null, guid: data.guid() }] : n
|
|
120
|
+
].map((e) => {
|
|
121
|
+
return {
|
|
122
|
+
...e,
|
|
123
|
+
guid: data.guid()
|
|
124
|
+
};
|
|
125
|
+
});
|
|
81
126
|
},
|
|
82
127
|
{
|
|
83
128
|
immediate: true,
|
|
84
129
|
deep: true
|
|
85
130
|
}
|
|
86
131
|
);
|
|
132
|
+
vue.watch(
|
|
133
|
+
() => innerValue.value,
|
|
134
|
+
(val) => {
|
|
135
|
+
const copyInnerValue = getValue(val);
|
|
136
|
+
const copyPropsValue = getValue(props.value);
|
|
137
|
+
if (data.deepCompare(copyInnerValue, copyPropsValue))
|
|
138
|
+
return;
|
|
139
|
+
try {
|
|
140
|
+
formItemContext.onFieldChange();
|
|
141
|
+
emits("change", copyInnerValue);
|
|
142
|
+
emits("update:value", copyInnerValue);
|
|
143
|
+
} catch (error) {
|
|
144
|
+
console.error(error);
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
deep: true
|
|
149
|
+
}
|
|
150
|
+
);
|
|
87
151
|
__expose({
|
|
88
152
|
validate,
|
|
89
153
|
resetFields,
|
|
@@ -115,9 +179,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
115
179
|
null,
|
|
116
180
|
vue.renderList(innerValue.value, (_item, idx) => {
|
|
117
181
|
return vue.openBlock(), vue.createBlock(keyValueItem.default, {
|
|
118
|
-
key: _item,
|
|
182
|
+
key: _item.guid,
|
|
119
183
|
ref_for: true,
|
|
120
|
-
ref: (el) =>
|
|
184
|
+
ref: (el) => setKeyValueItems(el, _item.guid),
|
|
121
185
|
value: innerValue.value[idx],
|
|
122
186
|
"onUpdate:value": ($event) => innerValue.value[idx] = $event,
|
|
123
187
|
idx,
|
|
@@ -128,13 +192,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
128
192
|
"key-type": props.keyType,
|
|
129
193
|
"key-types": props.keyTypes,
|
|
130
194
|
"value-type": props.valueType,
|
|
195
|
+
values: innerValue.value,
|
|
131
196
|
disabled: props.disabled,
|
|
132
197
|
"disabled-value": props.disabledValue,
|
|
133
198
|
"disabled-key": props.disabledKey,
|
|
134
199
|
"disabled-delete": props.disabledDelete,
|
|
135
|
-
"
|
|
136
|
-
onDelete: ($event) => handleDelete(idx)
|
|
137
|
-
onChange: handleChange
|
|
200
|
+
"keep-last": props.keepLast,
|
|
201
|
+
onDelete: ($event) => handleDelete(idx)
|
|
138
202
|
}, vue.createSlots({
|
|
139
203
|
_: 2
|
|
140
204
|
/* DYNAMIC */
|
|
@@ -147,7 +211,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
147
211
|
])
|
|
148
212
|
};
|
|
149
213
|
})
|
|
150
|
-
]), 1032, ["value", "onUpdate:value", "idx", "key-label", "value-label", "key-value-type-dict", "key-value-type", "key-type", "key-types", "value-type", "disabled", "disabled-value", "disabled-key", "disabled-delete", "
|
|
214
|
+
]), 1032, ["value", "onUpdate:value", "idx", "key-label", "value-label", "key-value-type-dict", "key-value-type", "key-type", "key-types", "value-type", "values", "disabled", "disabled-value", "disabled-key", "disabled-delete", "keep-last", "onDelete"]);
|
|
151
215
|
}),
|
|
152
216
|
128
|
|
153
217
|
/* KEYED_FRAGMENT */
|