ll-plus 2.9.19 → 2.9.21
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/form/src/config/form.d.ts +1 -0
- package/es/components/operate-icon/index.d.ts +5 -0
- package/es/components/operate-icon/src/operate-icon.d.ts +1 -0
- package/es/components/operate-icon/src/operate-icon.vue.d.ts +5 -0
- package/es/packages/components/form/src/config/form.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +30 -1
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/operate-icon/src/operate-icon.mjs +4 -0
- package/es/packages/components/operate-icon/src/operate-icon.mjs.map +1 -1
- package/es/packages/components/operate-icon/src/operate-icon.vue2.mjs +7 -1
- package/es/packages/components/operate-icon/src/operate-icon.vue2.mjs.map +1 -1
- package/es/packages/components/operate-tree/src/operate-tree.vue2.mjs.map +1 -1
- package/index.full.js +41 -2
- package/index.full.min.js +21 -21
- 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 +41 -2
- package/lib/components/form/src/config/form.d.ts +1 -0
- package/lib/components/operate-icon/index.d.ts +5 -0
- package/lib/components/operate-icon/src/operate-icon.d.ts +1 -0
- package/lib/components/operate-icon/src/operate-icon.vue.d.ts +5 -0
- package/lib/packages/components/form/src/config/form.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +30 -1
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/operate-icon/src/operate-icon.js +4 -0
- package/lib/packages/components/operate-icon/src/operate-icon.js.map +1 -1
- package/lib/packages/components/operate-icon/src/operate-icon.vue2.js +7 -1
- package/lib/packages/components/operate-icon/src/operate-icon.vue2.js.map +1 -1
- package/lib/packages/components/operate-tree/src/operate-tree.vue2.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/css/form.css +1 -1
- package/theme-chalk/css/index.css +1 -1
- package/theme-chalk/css/operate-tree.css +1 -1
- package/types/packages/components/form/src/config/form.d.ts +1 -0
- package/types/packages/components/operate-icon/index.d.ts +5 -0
- package/types/packages/components/operate-icon/src/operate-icon.d.ts +1 -0
- package/types/packages/components/operate-icon/src/operate-icon.vue.d.ts +5 -0
|
@@ -29,10 +29,12 @@ export declare const LlOperateIcon: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
29
29
|
__epPropKey: true;
|
|
30
30
|
};
|
|
31
31
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
32
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
32
33
|
}, {
|
|
33
34
|
props: import("@vue/shared").LooseRequired<{
|
|
34
35
|
readonly disabled: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
35
36
|
readonly trigger: string[];
|
|
37
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
36
38
|
readonly showDropdown: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
37
39
|
readonly showIconLimit: number;
|
|
38
40
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
@@ -3285,6 +3287,7 @@ export declare const LlOperateIcon: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
3285
3287
|
handleOpenChange: (open: boolean) => void;
|
|
3286
3288
|
handleDropdownOpenChange: (open: boolean) => void;
|
|
3287
3289
|
handleDropdownParentClick: () => void;
|
|
3290
|
+
closeDropdown: () => void;
|
|
3288
3291
|
readonly LlIconBase: import("ll-plus/es/utils").SFCWithInstall<import("vue").DefineComponent<{
|
|
3289
3292
|
readonly iconType: {
|
|
3290
3293
|
readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<StringConstructor, "default" | "primary", unknown>>;
|
|
@@ -3481,6 +3484,7 @@ export declare const LlOperateIcon: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
3481
3484
|
__epPropKey: true;
|
|
3482
3485
|
};
|
|
3483
3486
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
3487
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
3484
3488
|
}>> & {
|
|
3485
3489
|
onEdit?: ((v: Event, data: any) => any) | undefined;
|
|
3486
3490
|
onDelete?: ((v: Event, data: any) => any) | undefined;
|
|
@@ -3488,6 +3492,7 @@ export declare const LlOperateIcon: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
3488
3492
|
}, {
|
|
3489
3493
|
readonly disabled: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
3490
3494
|
readonly trigger: string[];
|
|
3495
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
3491
3496
|
readonly showDropdown: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
3492
3497
|
readonly showIconLimit: number;
|
|
3493
3498
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
@@ -31,6 +31,7 @@ export declare const operateIconProps: {
|
|
|
31
31
|
__epPropKey: true;
|
|
32
32
|
};
|
|
33
33
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
34
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
34
35
|
};
|
|
35
36
|
export declare const operateIconEmits: {
|
|
36
37
|
edit: (v: Event, data: any) => Event;
|
|
@@ -29,10 +29,12 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
29
29
|
__epPropKey: true;
|
|
30
30
|
};
|
|
31
31
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
32
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
32
33
|
}, {
|
|
33
34
|
props: import("@vue/shared").LooseRequired<{
|
|
34
35
|
readonly disabled: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
35
36
|
readonly trigger: string[];
|
|
37
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
36
38
|
readonly showDropdown: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
37
39
|
readonly showIconLimit: number;
|
|
38
40
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
@@ -3285,6 +3287,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3285
3287
|
handleOpenChange: (open: boolean) => void;
|
|
3286
3288
|
handleDropdownOpenChange: (open: boolean) => void;
|
|
3287
3289
|
handleDropdownParentClick: () => void;
|
|
3290
|
+
closeDropdown: () => void;
|
|
3288
3291
|
readonly LlIconBase: import("ll-plus/es/utils").SFCWithInstall<import("vue").DefineComponent<{
|
|
3289
3292
|
readonly iconType: {
|
|
3290
3293
|
readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<StringConstructor, "default" | "primary", unknown>>;
|
|
@@ -3481,6 +3484,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3481
3484
|
__epPropKey: true;
|
|
3482
3485
|
};
|
|
3483
3486
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
3487
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
3484
3488
|
}>> & {
|
|
3485
3489
|
onEdit?: ((v: Event, data: any) => any) | undefined;
|
|
3486
3490
|
onDelete?: ((v: Event, data: any) => any) | undefined;
|
|
@@ -3488,6 +3492,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3488
3492
|
}, {
|
|
3489
3493
|
readonly disabled: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
3490
3494
|
readonly trigger: string[];
|
|
3495
|
+
readonly dropdownOpen: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
3491
3496
|
readonly showDropdown: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
3492
3497
|
readonly showIconLimit: number;
|
|
3493
3498
|
readonly showDropdownItemIcon: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","sources":["../../../../../../../packages/components/form/src/config/form.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { TooltipProps } from '@ll-plus/components'\nimport type {\n FormProps as AntFormProps,\n ColProps,\n FormItemProps,\n RowProps
|
|
1
|
+
{"version":3,"file":"form.mjs","sources":["../../../../../../../packages/components/form/src/config/form.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { TooltipProps } from '@ll-plus/components'\nimport type {\n FormProps as AntFormProps,\n ColProps,\n FormItemProps,\n RowProps,\n} from 'ant-design-vue'\nimport type { ExtractPropTypes } from 'vue'\nimport type Form from '../form.vue'\n\ntype FormType<T = any> = (\n | 'input'\n | 'input-number'\n | 'cascader'\n | 'checkbox'\n | 'checkbox-group'\n | 'code-editor'\n | 'date-picker'\n | 'time-picker'\n | 'date-range'\n | 'time-range'\n | 'radio'\n | 'radio-group'\n | 'select'\n | 'switch'\n | 'textarea'\n | 'upload-image'\n) &\n T\n\nexport interface FormChangeEvent {\n item: FormColumn\n value: any\n formData: FormData\n}\nexport interface BasicFormColumn extends FormItemProps {\n label?: string\n key: string\n spanCol?: number | 24 // 一行几条\n colOptions?: ColProps\n tip?: string\n info?: string\n tipConfig?: TooltipProps\n type: FormType\n unit?: string\n change?: () => void\n rowOptions?: RowProps\n children?: FormColumn[]\n [key: string]: any\n}\n\nexport type FormColumn<T = any> = BasicFormColumn & T\n\nexport type FormData = Record<string, any>\n\nexport const formProps = buildProps({\n /**\n * @description 表单项列表\n */\n formColumns: {\n type: definePropType<FormColumn[]>(Array),\n default: () => [],\n },\n /**\n * @description 展开的行变化时触发\n */\n formOptions: {\n type: definePropType<AntFormProps>(Object),\n default: () => ({\n layout: 'horizontal',\n }),\n },\n /**\n * @description 展开的行变化时触发\n */\n formData: {\n type: definePropType<FormData>(Object),\n default: () => ({}),\n },\n /**\n * @description 展开的行变化时触发\n */\n rowOptions: {\n type: definePropType<RowProps>(Object),\n default: () => ({\n gutter: 16,\n }),\n },\n /**\n * @description 表单加载状态\n */\n loading: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 自动聚焦\n */\n autoFocus: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 是否全体禁用\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 当某一规则校验不通过时,是否停止剩下的规则的校验\n */\n validateErrorStop: {\n type: Boolean,\n default: true,\n },\n} as const)\n\nexport const formEmits = {\n /**\n * @description 表单项值改变时触发\n */\n change: (params: FormChangeEvent) => !!params,\n}\n\n// props\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\n// emits\nexport type FormEmits = typeof formEmits\n\n// instance\nexport type FormInstance = InstanceType<typeof Form>\n"],"names":[],"mappings":";;;;AAyDO,MAAM,YAAY,UAAW,CAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAA6B,KAAK,CAAA;AAAA,IACxC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,SAAS,OAAO;AAAA,MACd,MAAQ,EAAA,YAAA;AAAA,KACV,CAAA;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,IACrC,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,IACrC,SAAS,OAAO;AAAA,MACd,MAAQ,EAAA,EAAA;AAAA,KACV,CAAA;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,iBAAmB,EAAA;AAAA,IACjB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAEH,MAAM,SAAY,GAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,MAAQ,EAAA,CAAC,MAA4B,KAAA,CAAC,CAAC,MAAA;AACzC;;;;"}
|
|
@@ -127,6 +127,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
127
127
|
});
|
|
128
128
|
return (_ctx, _cache) => {
|
|
129
129
|
const _component_ll_tooltip = resolveComponent("ll-tooltip");
|
|
130
|
+
const _component_ll_icon = resolveComponent("ll-icon");
|
|
130
131
|
const _component_a_col = resolveComponent("a-col");
|
|
131
132
|
const _component_a_row = resolveComponent("a-row");
|
|
132
133
|
const _component_ll_form_item = resolveComponent("ll-form-item");
|
|
@@ -200,12 +201,40 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
200
201
|
"max-width": item?.tipConfig?.maxWidth ?? 406,
|
|
201
202
|
placement: item?.tipConfig?.placement ?? "top",
|
|
202
203
|
tip: item.tip,
|
|
203
|
-
"font-size": "16px",
|
|
204
204
|
ref_for: true
|
|
205
205
|
}, item?.tipConfig), null, 16, ["overlay-class-name", "max-width", "placement", "tip"])
|
|
206
206
|
],
|
|
207
207
|
2
|
|
208
208
|
/* CLASS */
|
|
209
|
+
)) : createCommentVNode("v-if", true),
|
|
210
|
+
item?.info ? (openBlock(), createElementBlock(
|
|
211
|
+
"span",
|
|
212
|
+
{
|
|
213
|
+
key: 1,
|
|
214
|
+
class: normalizeClass(unref(bem).e("tooltip-wrapper"))
|
|
215
|
+
},
|
|
216
|
+
[
|
|
217
|
+
createVNode(_component_ll_tooltip, mergeProps({
|
|
218
|
+
style: { "margin-left": "8px" },
|
|
219
|
+
"overlay-class-name": unref(bem).e("tooltip"),
|
|
220
|
+
"arrow-point-at-center": true,
|
|
221
|
+
"max-width": item?.tipConfig?.maxWidth ?? 406,
|
|
222
|
+
placement: item?.tipConfig?.placement ?? "top",
|
|
223
|
+
tip: item.info,
|
|
224
|
+
ref_for: true
|
|
225
|
+
}, item?.tipConfig), {
|
|
226
|
+
default: withCtx(() => [
|
|
227
|
+
createVNode(_component_ll_icon, {
|
|
228
|
+
"icon-name": "icon-information",
|
|
229
|
+
size: 14
|
|
230
|
+
})
|
|
231
|
+
]),
|
|
232
|
+
_: 2
|
|
233
|
+
/* DYNAMIC */
|
|
234
|
+
}, 1040, ["overlay-class-name", "max-width", "placement", "tip"])
|
|
235
|
+
],
|
|
236
|
+
2
|
|
237
|
+
/* CLASS */
|
|
209
238
|
)) : createCommentVNode("v-if", true)
|
|
210
239
|
])
|
|
211
240
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.vue2.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <a-form\n v-bind=\"computedFormOptions\"\n :id=\"id\"\n ref=\"formRef\"\n :model=\"props.formData\"\n >\n <a-row v-bind=\"props.rowOptions\">\n <a-col\n v-for=\"(item, index) in computedFormColumns\"\n :key=\"index\"\n v-bind=\"item?.colOptions ?? {}\"\n :span=\"item?.spanCol ?? 24\"\n >\n <slot name=\"formItem\" :item=\"item\" :index=\"index\">\n <ll-form-item\n :name=\"item?.key ?? index\"\n :class=\"getFormItemClass(item)\"\n v-bind=\"getBindValue(item)\"\n >\n <template #label>\n <slot name=\"label\" :item=\"item\" :index=\"index\">\n <span>{{ item.label }}</span>\n <span v-if=\"item?.tip\" :class=\"bem.e('tooltip-wrapper')\">\n <ll-tooltip\n style=\"margin-left: 8px\"\n :overlay-class-name=\"bem.e('tooltip')\"\n :arrow-point-at-center=\"true\"\n :max-width=\"item?.tipConfig?.maxWidth ?? 406\"\n :placement=\"item?.tipConfig?.placement ?? 'top'\"\n :tip=\"item.tip\"\n :font-size=\"'16px'\"\n v-bind=\"item?.tipConfig\"\n />\n </span>\n </slot>\n </template>\n <slot name=\"content\" :item=\"item\" :index=\"index\">\n <template v-if=\"!isEmpty(item.children)\">\n <a-row :gutter=\"5\" v-bind=\"item.rowOptions\">\n <a-col\n v-for=\"(child, childIndex) in item.children\"\n :key=\"childIndex\"\n :style=\"{\n display: 'flex',\n 'align-items': 'center'\n }\"\n v-bind=\"item?.colOptions ?? {}\"\n >\n <slot name=\"children\" :item=\"child\" :index=\"index\">\n <form-component\n :item=\"child\"\n :form-data=\"formData\"\n @change-field=\"handleChangeField\"\n />\n </slot>\n </a-col>\n </a-row>\n </template>\n <form-component\n v-else\n :ref=\"el => (formComponents[index] = el)\"\n :item=\"item\"\n :form-data=\"formData\"\n @change-field=\"handleChangeField\"\n />\n </slot>\n </ll-form-item>\n </slot>\n </a-col>\n </a-row>\n </a-form>\n </a-spin>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { has, isEmpty, omit } from 'lodash-es'\nimport { computed, nextTick, onMounted, reactive, ref, watch } from 'vue'\nimport { formEmits, formProps, type FormColumn } from './config'\n\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\nimport { createNamespace, deepUnref } from '@ll-plus/utils'\n\nimport formComponent from './components/form-component.vue'\n\n// 定义组件名称\ndefineOptions({ name: 'LlForm' })\n\n// Props\nconst props = defineProps(formProps)\n\nconst emits = defineEmits(formEmits)\n\nconst bem = createNamespace('form')\n\nconst formData = reactive(props.formData)\n\nconst formRef = ref()\n\nconst formComponents = ref<InstanceType<typeof formComponent>[]>(\n [] as InstanceType<typeof formComponent>[]\n)\n\nconst computedFormColumns = computed(() => {\n const formColumns = deepUnref(props.formColumns) as FormColumn[]\n return formColumns.map(e => {\n e.disabled = has(e, 'disabled') ? e.disabled : props.disabled\n if (e.children && e.children.length) {\n e.children.map(a => {\n a.disabled = has(a, 'disabled') ? a.disabled : props.disabled\n return a\n })\n }\n return e\n })\n})\n\nconst validateFields = computed(() => {\n return props.formColumns\n .filter(e => e.required || (has(e, 'rules') && e.rules.length > 0))\n .map(e => {\n return e.key\n })\n})\n\nconst computedFormOptions = computed(() => {\n return {\n scrollToFirstError: !props.validateErrorStop,\n ...props.formOptions\n }\n})\n\nconst id = ref(`ll-form-${+new Date()}`)\n\nconst validate = async (nameList?: NamePath[]) => {\n if (props.validateErrorStop) {\n clearValidate()\n if (!validateFields.value.length) return Promise.resolve()\n for (const i of validateFields.value) {\n try {\n await formRef.value.validateFields([i])\n } catch (error) {\n return Promise.reject(error) // 跳出验证循环并返回错误\n }\n }\n return Promise.resolve()\n } else {\n try {\n await formRef.value.validateFields(nameList || validateFields.value)\n return Promise.resolve()\n } catch (error) {\n return Promise.reject(error)\n }\n }\n}\n\nconst resetFields = async () => {\n await formRef.value.resetFields()\n}\n\nconst clearValidate = async (nameList?: NamePath[]) => {\n await formRef.value.clearValidate(nameList)\n}\n\nconst scrollToField = async (name: NamePath, options?: ScrollOptions) => {\n await formRef.value.scrollToField(name, options)\n}\n\nconst getBindValue = (item: FormColumn) => {\n const obj = { ...item }\n return omit(obj, ['label'])\n}\n\nconst getFormItemClass = (item = {} as FormColumn) => {\n if (props.formOptions.layout === 'horizontal') {\n if (item?.labelCol) {\n return item.labelCol.span && item.labelCol.span >= 24\n ? bem.is('label-top')\n : bem.is('label-left')\n } else {\n return bem.is('label-left')\n }\n }\n return bem.is('label-top')\n}\n\nconst handleChangeField = (item: FormColumn) => {\n emits('change', { item, value: formData[item.key], formData })\n}\n\nwatch(\n () => props.formData,\n async val => {\n for (const i in val) {\n formData[i] = val[i]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nonMounted(async () => {\n await nextTick()\n if (props.autoFocus) {\n for (const element of formComponents.value) {\n const item = element?.getItem()\n if (['input', 'textarea', 'input-number'].includes(item.type)) {\n element?.focus()\n break\n }\n }\n }\n})\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate,\n scrollToField\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.vue2.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <a-form\n v-bind=\"computedFormOptions\"\n :id=\"id\"\n ref=\"formRef\"\n :model=\"props.formData\"\n >\n <a-row v-bind=\"props.rowOptions\">\n <a-col\n v-for=\"(item, index) in computedFormColumns\"\n :key=\"index\"\n v-bind=\"item?.colOptions ?? {}\"\n :span=\"item?.spanCol ?? 24\"\n >\n <slot name=\"formItem\" :item=\"item\" :index=\"index\">\n <ll-form-item\n :name=\"item?.key ?? index\"\n :class=\"getFormItemClass(item)\"\n v-bind=\"getBindValue(item)\"\n >\n <template #label>\n <slot name=\"label\" :item=\"item\" :index=\"index\">\n <span>{{ item.label }}</span>\n <span v-if=\"item?.tip\" :class=\"bem.e('tooltip-wrapper')\">\n <ll-tooltip\n style=\"margin-left: 8px\"\n :overlay-class-name=\"bem.e('tooltip')\"\n :arrow-point-at-center=\"true\"\n :max-width=\"item?.tipConfig?.maxWidth ?? 406\"\n :placement=\"item?.tipConfig?.placement ?? 'top'\"\n :tip=\"item.tip\"\n v-bind=\"item?.tipConfig\"\n />\n </span>\n <span v-if=\"item?.info\" :class=\"bem.e('tooltip-wrapper')\">\n <ll-tooltip\n style=\"margin-left: 8px\"\n :overlay-class-name=\"bem.e('tooltip')\"\n :arrow-point-at-center=\"true\"\n :max-width=\"item?.tipConfig?.maxWidth ?? 406\"\n :placement=\"item?.tipConfig?.placement ?? 'top'\"\n :tip=\"item.info\"\n v-bind=\"item?.tipConfig\"\n >\n <ll-icon icon-name=\"icon-information\" :size=\"14\" />\n </ll-tooltip>\n </span>\n </slot>\n </template>\n <slot name=\"content\" :item=\"item\" :index=\"index\">\n <template v-if=\"!isEmpty(item.children)\">\n <a-row :gutter=\"5\" v-bind=\"item.rowOptions\">\n <a-col\n v-for=\"(child, childIndex) in item.children\"\n :key=\"childIndex\"\n :style=\"{\n display: 'flex',\n 'align-items': 'center',\n }\"\n v-bind=\"item?.colOptions ?? {}\"\n >\n <slot name=\"children\" :item=\"child\" :index=\"index\">\n <form-component\n :item=\"child\"\n :form-data=\"formData\"\n @change-field=\"handleChangeField\"\n />\n </slot>\n </a-col>\n </a-row>\n </template>\n <form-component\n v-else\n :ref=\"(el) => (formComponents[index] = el)\"\n :item=\"item\"\n :form-data=\"formData\"\n @change-field=\"handleChangeField\"\n />\n </slot>\n </ll-form-item>\n </slot>\n </a-col>\n </a-row>\n </a-form>\n </a-spin>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { has, isEmpty, omit } from 'lodash-es'\nimport { computed, nextTick, onMounted, reactive, ref, watch } from 'vue'\nimport { formEmits, formProps, type FormColumn } from './config'\n\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\nimport { createNamespace, deepUnref } from '@ll-plus/utils'\n\nimport formComponent from './components/form-component.vue'\n\n// 定义组件名称\ndefineOptions({ name: 'LlForm' })\n\n// Props\nconst props = defineProps(formProps)\n\nconst emits = defineEmits(formEmits)\n\nconst bem = createNamespace('form')\n\nconst formData = reactive(props.formData)\n\nconst formRef = ref()\n\nconst formComponents = ref<InstanceType<typeof formComponent>[]>(\n [] as InstanceType<typeof formComponent>[],\n)\n\nconst computedFormColumns = computed(() => {\n const formColumns = deepUnref(props.formColumns) as FormColumn[]\n return formColumns.map((e) => {\n e.disabled = has(e, 'disabled') ? e.disabled : props.disabled\n if (e.children && e.children.length) {\n e.children.map((a) => {\n a.disabled = has(a, 'disabled') ? a.disabled : props.disabled\n return a\n })\n }\n return e\n })\n})\n\nconst validateFields = computed(() => {\n return props.formColumns\n .filter((e) => e.required || (has(e, 'rules') && e.rules.length > 0))\n .map((e) => {\n return e.key\n })\n})\n\nconst computedFormOptions = computed(() => {\n return {\n scrollToFirstError: !props.validateErrorStop,\n ...props.formOptions,\n }\n})\n\nconst id = ref(`ll-form-${+new Date()}`)\n\nconst validate = async (nameList?: NamePath[]) => {\n if (props.validateErrorStop) {\n clearValidate()\n if (!validateFields.value.length) return Promise.resolve()\n for (const i of validateFields.value) {\n try {\n await formRef.value.validateFields([i])\n } catch (error) {\n return Promise.reject(error) // 跳出验证循环并返回错误\n }\n }\n return Promise.resolve()\n } else {\n try {\n await formRef.value.validateFields(nameList || validateFields.value)\n return Promise.resolve()\n } catch (error) {\n return Promise.reject(error)\n }\n }\n}\n\nconst resetFields = async () => {\n await formRef.value.resetFields()\n}\n\nconst clearValidate = async (nameList?: NamePath[]) => {\n await formRef.value.clearValidate(nameList)\n}\n\nconst scrollToField = async (name: NamePath, options?: ScrollOptions) => {\n await formRef.value.scrollToField(name, options)\n}\n\nconst getBindValue = (item: FormColumn) => {\n const obj = { ...item }\n return omit(obj, ['label'])\n}\n\nconst getFormItemClass = (item = {} as FormColumn) => {\n if (props.formOptions.layout === 'horizontal') {\n if (item?.labelCol) {\n return item.labelCol.span && item.labelCol.span >= 24\n ? bem.is('label-top')\n : bem.is('label-left')\n } else {\n return bem.is('label-left')\n }\n }\n return bem.is('label-top')\n}\n\nconst handleChangeField = (item: FormColumn) => {\n emits('change', { item, value: formData[item.key], formData })\n}\n\nwatch(\n () => props.formData,\n async (val) => {\n for (const i in val) {\n formData[i] = val[i]\n }\n },\n {\n deep: true,\n immediate: true,\n },\n)\n\nonMounted(async () => {\n await nextTick()\n if (props.autoFocus) {\n for (const element of formComponents.value) {\n const item = element?.getItem()\n if (['input', 'textarea', 'input-number'].includes(item.type)) {\n element?.focus()\n break\n }\n }\n }\n})\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate,\n scrollToField,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operate-icon.mjs","sources":["../../../../../../packages/components/operate-icon/src/operate-icon.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport { iconTypes } from '@ll-plus/components'\n\nimport type { IconBaseProps } from '@ll-plus/components'\nimport type { ExtractPropTypes } from 'vue'\nimport type OperateIcon from './operate-icon.vue'\n\nexport const operateIconProps = buildProps({\n /**\n * @description 是否显示dropdown\n */\n showDropdown: {\n type: Boolean,\n default: false
|
|
1
|
+
{"version":3,"file":"operate-icon.mjs","sources":["../../../../../../packages/components/operate-icon/src/operate-icon.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport { iconTypes } from '@ll-plus/components'\n\nimport type { IconBaseProps } from '@ll-plus/components'\nimport type { ExtractPropTypes } from 'vue'\nimport type OperateIcon from './operate-icon.vue'\n\nexport const operateIconProps = buildProps({\n /**\n * @description 是否显示dropdown\n */\n showDropdown: {\n type: Boolean,\n default: false,\n },\n /**\n * @description icon列表\n */\n list: {\n type: definePropType<IconBaseProps[]>(Array),\n },\n /**\n * @description 是否禁用\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 显示多少个icon,其余在弹窗中显示\n */\n showIconLimit: {\n type: Number,\n default: 3,\n },\n /**\n * @description 点击按钮传递的数据\n */\n data: {\n type: definePropType<any>(undefined),\n },\n /**\n * @description 默认icon(edit和delete)的颜色\n */\n iconType: {\n type: String,\n values: iconTypes,\n },\n /**\n * @description 触发下拉的行为\n */\n trigger: {\n type: definePropType<string[]>(Object),\n default: () => ['click'],\n },\n /**\n * @description 弹窗class类名\n */\n overlayClassName: {\n type: String,\n },\n /**\n * @description 弹窗class类名\n */\n showDropdownItemIcon: {\n type: Boolean,\n default: false,\n },\n dropdownOpen: {\n type: Boolean,\n default: false,\n },\n} as const)\n\nexport const operateIconEmits = {\n edit: (v: Event, data: any) => v || data, // 点击编辑\n delete: (v: Event, data: any) => v || data, // 点击删除\n onDropdownOpenChange: (open: boolean) => open || true, // 下拉菜单的open\n}\n\n// props\nexport type OperateIconProps = ExtractPropTypes<typeof operateIconProps>\n\n// emits\nexport type OperateIconEmits = typeof operateIconEmits\n\n// instance\nexport type OperateIconInstance = InstanceType<typeof OperateIcon>\n"],"names":[],"mappings":";;;;;;AAQO,MAAM,mBAAmB,UAAW,CAAA;AAAA;AAAA;AAAA;AAAA,EAIzC,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAAgC,KAAK,CAAA;AAAA,GAC7C;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAAoB,KAAS,CAAA,CAAA;AAAA,GACrC;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,MAAQ,EAAA,SAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,IACrC,OAAA,EAAS,MAAM,CAAC,OAAO,CAAA;AAAA,GACzB;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,oBAAsB,EAAA;AAAA,IACpB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AACF,CAAU,EAAA;AAEH,MAAM,gBAAmB,GAAA;AAAA,EAC9B,IAAM,EAAA,CAAC,CAAU,EAAA,IAAA,KAAc,CAAK,IAAA,IAAA;AAAA;AAAA,EACpC,MAAQ,EAAA,CAAC,CAAU,EAAA,IAAA,KAAc,CAAK,IAAA,IAAA;AAAA;AAAA,EACtC,oBAAA,EAAsB,CAAC,IAAA,KAAkB,IAAQ,IAAA,IAAA;AAAA;AACnD;;;;"}
|
|
@@ -13,7 +13,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
13
13
|
__name: "operate-icon",
|
|
14
14
|
props: operateIconProps,
|
|
15
15
|
emits: operateIconEmits,
|
|
16
|
-
setup(__props, { emit: __emit }) {
|
|
16
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
17
17
|
const props = __props;
|
|
18
18
|
const emits = __emit;
|
|
19
19
|
const showIconList = ref([]);
|
|
@@ -63,6 +63,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
63
63
|
dropdownOpen.value = false;
|
|
64
64
|
handleOpenChange(false);
|
|
65
65
|
};
|
|
66
|
+
const closeDropdown = () => {
|
|
67
|
+
dropdownOpen.value = false;
|
|
68
|
+
};
|
|
66
69
|
watch(
|
|
67
70
|
() => [props.list, props.showDropdown],
|
|
68
71
|
(data) => {
|
|
@@ -94,6 +97,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
94
97
|
},
|
|
95
98
|
{ immediate: true, deep: true }
|
|
96
99
|
);
|
|
100
|
+
__expose({
|
|
101
|
+
closeDropdown
|
|
102
|
+
});
|
|
97
103
|
return (_ctx, _cache) => {
|
|
98
104
|
const _component_ll_tooltip = resolveComponent("ll-tooltip");
|
|
99
105
|
const _component_a_menu_item = resolveComponent("a-menu-item");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operate-icon.vue2.mjs","sources":["../../../../../../packages/components/operate-icon/src/operate-icon.vue"],"sourcesContent":["<template>\n <div :class=\"operateIconClass\">\n <!-- 显示的icon -->\n <ll-icon-base\n v-for=\"(item, index) in showIconList\"\n v-bind=\"item\"\n :key=\"item.iconName\"\n :data=\"data\"\n :is-show=\"Object.keys(item).includes('isShow') ? item.isShow : true\"\n :tooltip-class=\"bem.e(marginButtonClass(index, showIconList.length - 1))\"\n />\n <template v-if=\"modalIconList.length === 1\">\n <ll-icon-base\n v-for=\"(item, index) in modalIconList\"\n :key=\"index\"\n v-bind=\"item\"\n :data=\"data\"\n :tooltip-class=\"`${bem.e('last-icon')}`\"\n />\n </template>\n <!-- 下拉提示的icon -->\n <a-dropdown\n v-if=\"showDropdown && modalIconList.length > 1\"\n :overlay-class-name=\"`${bem.e('dropdown')} ${props.overlayClassName}`\"\n :open=\"dropdownOpen\"\n :trigger=\"trigger\"\n @open-change=\"handleDropdownOpenChange\"\n >\n <div :class=\"bem.e('dropdown-container')\">\n <ll-tooltip title=\"更多\" placement=\"topLeft\">\n <ll-icon-base\n :is-show-tooltip=\"false\"\n :is-show-container=\"showIconList[0].isShowContainer\"\n :icon-type=\"showIconList[0].iconType\"\n :data=\"data\"\n icon-name=\"icon-more\"\n :class=\"bem.e('icon-more')\"\n />\n </ll-tooltip>\n </div>\n <template #overlay>\n <a-menu @click=\"handleDropdownParentClick\">\n <slot>\n <template v-for=\"item in modalIconList\">\n <a-menu-item\n v-if=\"Object.keys(item).includes('isShow') ? item.isShow : true\"\n :key=\"item.iconName\"\n >\n <ll-icon-base\n v-bind=\"item\"\n :data=\"data\"\n :icon-name=\"showDropdownItemIcon ? item.iconName : ''\"\n />\n </a-menu-item>\n </template>\n </slot>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport { IconBaseProps, LlIconBase } from '@ll-plus/components'\nimport { operateIconEmits, operateIconProps } from './operate-icon'\n\n// 1.defineOptions\ndefineOptions({\n name: 'LlOperateIcon',\n})\n\n// 2.props/emits\nconst props = defineProps(operateIconProps)\nconst emits = defineEmits(operateIconEmits)\n\n// 3.ref/const\nconst showIconList = ref<IconBaseProps[]>([]) // 显示的icon列表\nconst modalIconList = ref<IconBaseProps[]>([]) // 弹窗的icon列表\nconst dropdownOpen = ref(false) // 下拉菜单的open\nconst defaultList = ref([\n // 默认的icon列表\n {\n iconType: computed(() => props.iconType || 'primary'), // default默认为灰色\n isShowContainer: false, // 是否显示icon容器\n iconName: 'icon-edit',\n tooltipTitle: '编辑',\n disabled: props.disabled,\n onClick: (e: Event, data: any) => {\n emits('edit', e, data)\n },\n },\n {\n iconType: computed(() => props.iconType || 'primary'), // default默认为灰色\n isShowContainer: false, // 是否显示icon容器\n iconName: 'icon-delete',\n tooltipTitle: '删除',\n disabled: props.disabled,\n onClick: (e: Event, data: any) => {\n emits('delete', e, data)\n },\n },\n])\nconst bem = createNamespace('operate-icon')\nconst operateIconClass = computed(() => {\n const isHasDropdown = props.showDropdown && modalIconList.value.length\n return `${bem.b()} ${\n isHasDropdown ? bem.m('has-dropdown') : bem.m('no-dropdown')\n }`\n})\n// 4.methods\n// 点击更多按钮\nconst marginButtonClass = (index, length) => {\n return index < length ? 'margin-tooltip' : ''\n}\nconst handleOpenChange = (open: boolean) => emits('onDropdownOpenChange', open)\n// 下拉菜单open\nconst handleDropdownOpenChange = (open: boolean) => {\n dropdownOpen.value = open\n handleOpenChange(open)\n}\nconst handleDropdownParentClick = () => {\n dropdownOpen.value = false\n handleOpenChange(false)\n}\n\n// 5.watch\nwatch(\n () => [props.list, props.showDropdown],\n (data: any) => {\n const [newList, showDropdown] = data\n const list = newList\n ? newList.filter(Boolean).filter((item) => Boolean(item.isShow))\n : defaultList.value\n const length = list.length\n if (length >= props.showIconLimit && showDropdown) {\n showIconList.value = list\n .slice(0, props.showIconLimit - 1)\n .map((item) => ({ ...item, isShowTooltip: true })) as IconBaseProps[]\n // 默认modal里面要icon后面跟文字\n const sliceList = list.slice(props.showIconLimit - 1)\n if (sliceList.length === 1) {\n modalIconList.value = sliceList.map((item: any) => ({\n ...item,\n isShowTitle: false,\n isShowTooltip: true,\n isShowContainer: false,\n }))\n } else {\n modalIconList.value = sliceList.map((item: any) => ({\n ...item,\n isShowTitle: true,\n }))\n }\n } else {\n showIconList.value = list.map((item: any) => ({\n ...item,\n isShowTooltip: true,\n })) as IconBaseProps[]\n }\n },\n { immediate: true, deep: true },\n)\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operate-icon.vue2.mjs","sources":["../../../../../../packages/components/operate-icon/src/operate-icon.vue"],"sourcesContent":["<template>\n <div :class=\"operateIconClass\">\n <!-- 显示的icon -->\n <ll-icon-base\n v-for=\"(item, index) in showIconList\"\n v-bind=\"item\"\n :key=\"item.iconName\"\n :data=\"data\"\n :is-show=\"Object.keys(item).includes('isShow') ? item.isShow : true\"\n :tooltip-class=\"bem.e(marginButtonClass(index, showIconList.length - 1))\"\n />\n <template v-if=\"modalIconList.length === 1\">\n <ll-icon-base\n v-for=\"(item, index) in modalIconList\"\n :key=\"index\"\n v-bind=\"item\"\n :data=\"data\"\n :tooltip-class=\"`${bem.e('last-icon')}`\"\n />\n </template>\n <!-- 下拉提示的icon -->\n <a-dropdown\n v-if=\"showDropdown && modalIconList.length > 1\"\n :overlay-class-name=\"`${bem.e('dropdown')} ${props.overlayClassName}`\"\n :open=\"dropdownOpen\"\n :trigger=\"trigger\"\n @open-change=\"handleDropdownOpenChange\"\n >\n <div :class=\"bem.e('dropdown-container')\">\n <ll-tooltip title=\"更多\" placement=\"topLeft\">\n <ll-icon-base\n :is-show-tooltip=\"false\"\n :is-show-container=\"showIconList[0].isShowContainer\"\n :icon-type=\"showIconList[0].iconType\"\n :data=\"data\"\n icon-name=\"icon-more\"\n :class=\"bem.e('icon-more')\"\n />\n </ll-tooltip>\n </div>\n <template #overlay>\n <a-menu @click=\"handleDropdownParentClick\">\n <slot>\n <template v-for=\"item in modalIconList\">\n <a-menu-item\n v-if=\"Object.keys(item).includes('isShow') ? item.isShow : true\"\n :key=\"item.iconName\"\n >\n <ll-icon-base\n v-bind=\"item\"\n :data=\"data\"\n :icon-name=\"showDropdownItemIcon ? item.iconName : ''\"\n />\n </a-menu-item>\n </template>\n </slot>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport { IconBaseProps, LlIconBase } from '@ll-plus/components'\nimport { operateIconEmits, operateIconProps } from './operate-icon'\n\n// 1.defineOptions\ndefineOptions({\n name: 'LlOperateIcon',\n})\n\n// 2.props/emits\nconst props = defineProps(operateIconProps)\nconst emits = defineEmits(operateIconEmits)\n\n// 3.ref/const\nconst showIconList = ref<IconBaseProps[]>([]) // 显示的icon列表\nconst modalIconList = ref<IconBaseProps[]>([]) // 弹窗的icon列表\nconst dropdownOpen = ref(false) // 下拉菜单的open\nconst defaultList = ref([\n // 默认的icon列表\n {\n iconType: computed(() => props.iconType || 'primary'), // default默认为灰色\n isShowContainer: false, // 是否显示icon容器\n iconName: 'icon-edit',\n tooltipTitle: '编辑',\n disabled: props.disabled,\n onClick: (e: Event, data: any) => {\n emits('edit', e, data)\n },\n },\n {\n iconType: computed(() => props.iconType || 'primary'), // default默认为灰色\n isShowContainer: false, // 是否显示icon容器\n iconName: 'icon-delete',\n tooltipTitle: '删除',\n disabled: props.disabled,\n onClick: (e: Event, data: any) => {\n emits('delete', e, data)\n },\n },\n])\nconst bem = createNamespace('operate-icon')\nconst operateIconClass = computed(() => {\n const isHasDropdown = props.showDropdown && modalIconList.value.length\n return `${bem.b()} ${\n isHasDropdown ? bem.m('has-dropdown') : bem.m('no-dropdown')\n }`\n})\n// 4.methods\n// 点击更多按钮\nconst marginButtonClass = (index, length) => {\n return index < length ? 'margin-tooltip' : ''\n}\nconst handleOpenChange = (open: boolean) => emits('onDropdownOpenChange', open)\n// 下拉菜单open\nconst handleDropdownOpenChange = (open: boolean) => {\n dropdownOpen.value = open\n handleOpenChange(open)\n}\nconst handleDropdownParentClick = () => {\n dropdownOpen.value = false\n handleOpenChange(false)\n}\n\nconst closeDropdown = () => {\n dropdownOpen.value = false\n}\n\n// 5.watch\nwatch(\n () => [props.list, props.showDropdown],\n (data: any) => {\n const [newList, showDropdown] = data\n const list = newList\n ? newList.filter(Boolean).filter((item) => Boolean(item.isShow))\n : defaultList.value\n const length = list.length\n if (length >= props.showIconLimit && showDropdown) {\n showIconList.value = list\n .slice(0, props.showIconLimit - 1)\n .map((item) => ({ ...item, isShowTooltip: true })) as IconBaseProps[]\n // 默认modal里面要icon后面跟文字\n const sliceList = list.slice(props.showIconLimit - 1)\n if (sliceList.length === 1) {\n modalIconList.value = sliceList.map((item: any) => ({\n ...item,\n isShowTitle: false,\n isShowTooltip: true,\n isShowContainer: false,\n }))\n } else {\n modalIconList.value = sliceList.map((item: any) => ({\n ...item,\n isShowTitle: true,\n }))\n }\n } else {\n showIconList.value = list.map((item: any) => ({\n ...item,\n isShowTooltip: true,\n })) as IconBaseProps[]\n }\n },\n { immediate: true, deep: true }\n)\ndefineExpose({\n closeDropdown,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operate-tree.vue2.mjs","sources":["../../../../../../packages/components/operate-tree/src/operate-tree.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"loading\">\n <div :class=\"bem.b()\">\n <!-- 目录tree -->\n <a-directory-tree\n v-if=\"treeData?.length\"\n v-bind=\"attrs\"\n :block-node=\"true\"\n multiple\n :tree-data=\"treeData\"\n :expanded-keys=\"newExpandedKeys\"\n :field-names=\"fieldNames\"\n @expand=\"expand\"\n @select=\"select\"\n @mouseenter=\"handleMouseenter\"\n >\n <!-- switcher-icon-slots -->\n <template #switcherIcon=\"slots\">\n <slot name=\"switcherIcon\" v-bind=\"slots\">\n <caret-right-outlined v-if=\"!slots.expanded\" />\n <caret-down-outlined v-else />\n </slot>\n </template>\n <template #title=\"slots\">\n <div :class=\"bem.e('title')\">\n <div>\n <!-- icon-slots -->\n <div v-if=\"$slots.icon\" :class=\"bem.e('icon')\">\n <slot name=\"icon\" v-bind=\"slots\" />\n </div>\n <!-- title-slots -->\n <slot name=\"treeTitle\" v-bind=\"slots\">\n <span>\n {{ slots[fieldNames!['title']!] }}\n </span>\n </slot>\n </div>\n <!-- operate-slots -->\n <div\n :class=\"`${bem.e('operate')} ${\n props.operateDropdownOpen &&\n hoverTreeNodeItem[fieldNames!['key']!] ===\n slots[fieldNames!['key']!]\n ? bem.is('open')\n : bem.is('close')\n }`\"\n >\n <slot name=\"treeOperate\" :data=\"slots\"
|
|
1
|
+
{"version":3,"file":"operate-tree.vue2.mjs","sources":["../../../../../../packages/components/operate-tree/src/operate-tree.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"loading\">\n <div :class=\"bem.b()\">\n <!-- 目录tree -->\n <a-directory-tree\n v-if=\"treeData?.length\"\n v-bind=\"attrs\"\n :block-node=\"true\"\n multiple\n :tree-data=\"treeData\"\n :expanded-keys=\"newExpandedKeys\"\n :field-names=\"fieldNames\"\n @expand=\"expand\"\n @select=\"select\"\n @mouseenter=\"handleMouseenter\"\n >\n <!-- switcher-icon-slots -->\n <template #switcherIcon=\"slots\">\n <slot name=\"switcherIcon\" v-bind=\"slots\">\n <caret-right-outlined v-if=\"!slots.expanded\" />\n <caret-down-outlined v-else />\n </slot>\n </template>\n <template #title=\"slots\">\n <div :class=\"bem.e('title')\">\n <div>\n <!-- icon-slots -->\n <div v-if=\"$slots.icon\" :class=\"bem.e('icon')\">\n <slot name=\"icon\" v-bind=\"slots\" />\n </div>\n <!-- title-slots -->\n <slot name=\"treeTitle\" v-bind=\"slots\">\n <span>\n {{ slots[fieldNames!['title']!] }}\n </span>\n </slot>\n </div>\n <!-- operate-slots -->\n <div\n :class=\"`${bem.e('operate')} ${\n props.operateDropdownOpen &&\n hoverTreeNodeItem[fieldNames!['key']!] ===\n slots[fieldNames!['key']!]\n ? bem.is('open')\n : bem.is('close')\n }`\"\n >\n <slot name=\"treeOperate\" :data=\"slots\" />\n </div>\n </div>\n </template>\n </a-directory-tree>\n <template v-else>\n <!-- empty-slots -->\n <slot name=\"empty\">\n <ll-empty>\n <template #content>暂无数据</template>\n </ll-empty>\n </slot>\n </template>\n </div>\n </a-spin>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, useAttrs, watch } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\nimport { operateTreeEmits, operateTreeProps } from './operate-tree'\n\nimport { CaretDownOutlined, CaretRightOutlined } from '@ant-design/icons-vue'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlOperateTree' })\n\n// 2.props/emits\nconst props = defineProps(operateTreeProps)\nconst emits = defineEmits(operateTreeEmits)\n\n// 3.hooks\nconst attrs = useAttrs()\n\n// 4.ref\nconst newExpandedKeys = ref<string[]>([])\nconst hoverTreeNodeItem = ref() // 鼠标移的node的数据\nconst bem = createNamespace('operate-tree')\n\nconst handleMouseenter = ({ node }) => {\n hoverTreeNodeItem.value = node\n}\n// 5.methods\n// tree的展开事件\nconst expand = (expandedKeys: string[], data: any) => {\n newExpandedKeys.value = expandedKeys\n emits('expand', expandedKeys, data)\n}\n// tree点击树节点触发\nconst select = (selectedKeys: string[], e: Event) => {\n emits('select', selectedKeys, e)\n}\n\n// 6.watch\n// 如果有数据并且输入框有内容则展开\nwatch(\n () => props.expandedKeys,\n (keys) => {\n if (keys) {\n newExpandedKeys.value = keys as string[]\n }\n },\n {\n deep: true,\n immediate: true,\n }\n)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;AA2EA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAGd,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAGvB,IAAM,MAAA,eAAA,GAAkB,GAAc,CAAA,EAAE,CAAA,CAAA;AACxC,IAAA,MAAM,oBAAoB,GAAI,EAAA,CAAA;AAC9B,IAAM,MAAA,GAAA,GAAM,gBAAgB,cAAc,CAAA,CAAA;AAE1C,IAAA,MAAM,gBAAmB,GAAA,CAAC,EAAE,IAAA,EAAW,KAAA;AACrC,MAAA,iBAAA,CAAkB,KAAQ,GAAA,IAAA,CAAA;AAAA,KAC5B,CAAA;AAGA,IAAM,MAAA,MAAA,GAAS,CAAC,YAAA,EAAwB,IAAc,KAAA;AACpD,MAAA,eAAA,CAAgB,KAAQ,GAAA,YAAA,CAAA;AACxB,MAAM,KAAA,CAAA,QAAA,EAAU,cAAc,IAAI,CAAA,CAAA;AAAA,KACpC,CAAA;AAEA,IAAM,MAAA,MAAA,GAAS,CAAC,YAAA,EAAwB,CAAa,KAAA;AACnD,MAAM,KAAA,CAAA,QAAA,EAAU,cAAc,CAAC,CAAA,CAAA;AAAA,KACjC,CAAA;AAIA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,YAAA;AAAA,MACZ,CAAC,IAAS,KAAA;AACR,QAAA,IAAI,IAAM,EAAA;AACR,UAAA,eAAA,CAAgB,KAAQ,GAAA,IAAA,CAAA;AAAA,SAC1B;AAAA,OACF;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/index.full.js
CHANGED
|
@@ -64205,6 +64205,7 @@
|
|
|
64205
64205
|
});
|
|
64206
64206
|
return (_ctx, _cache) => {
|
|
64207
64207
|
const _component_ll_tooltip = require$$0.resolveComponent("ll-tooltip");
|
|
64208
|
+
const _component_ll_icon = require$$0.resolveComponent("ll-icon");
|
|
64208
64209
|
const _component_a_col = require$$0.resolveComponent("a-col");
|
|
64209
64210
|
const _component_a_row = require$$0.resolveComponent("a-row");
|
|
64210
64211
|
const _component_ll_form_item = require$$0.resolveComponent("ll-form-item");
|
|
@@ -64278,12 +64279,40 @@
|
|
|
64278
64279
|
"max-width": item?.tipConfig?.maxWidth ?? 406,
|
|
64279
64280
|
placement: item?.tipConfig?.placement ?? "top",
|
|
64280
64281
|
tip: item.tip,
|
|
64281
|
-
"font-size": "16px",
|
|
64282
64282
|
ref_for: true
|
|
64283
64283
|
}, item?.tipConfig), null, 16, ["overlay-class-name", "max-width", "placement", "tip"])
|
|
64284
64284
|
],
|
|
64285
64285
|
2
|
|
64286
64286
|
/* CLASS */
|
|
64287
|
+
)) : require$$0.createCommentVNode("v-if", true),
|
|
64288
|
+
item?.info ? (require$$0.openBlock(), require$$0.createElementBlock(
|
|
64289
|
+
"span",
|
|
64290
|
+
{
|
|
64291
|
+
key: 1,
|
|
64292
|
+
class: require$$0.normalizeClass(require$$0.unref(bem).e("tooltip-wrapper"))
|
|
64293
|
+
},
|
|
64294
|
+
[
|
|
64295
|
+
require$$0.createVNode(_component_ll_tooltip, require$$0.mergeProps({
|
|
64296
|
+
style: { "margin-left": "8px" },
|
|
64297
|
+
"overlay-class-name": require$$0.unref(bem).e("tooltip"),
|
|
64298
|
+
"arrow-point-at-center": true,
|
|
64299
|
+
"max-width": item?.tipConfig?.maxWidth ?? 406,
|
|
64300
|
+
placement: item?.tipConfig?.placement ?? "top",
|
|
64301
|
+
tip: item.info,
|
|
64302
|
+
ref_for: true
|
|
64303
|
+
}, item?.tipConfig), {
|
|
64304
|
+
default: require$$0.withCtx(() => [
|
|
64305
|
+
require$$0.createVNode(_component_ll_icon, {
|
|
64306
|
+
"icon-name": "icon-information",
|
|
64307
|
+
size: 14
|
|
64308
|
+
})
|
|
64309
|
+
]),
|
|
64310
|
+
_: 2
|
|
64311
|
+
/* DYNAMIC */
|
|
64312
|
+
}, 1040, ["overlay-class-name", "max-width", "placement", "tip"])
|
|
64313
|
+
],
|
|
64314
|
+
2
|
|
64315
|
+
/* CLASS */
|
|
64287
64316
|
)) : require$$0.createCommentVNode("v-if", true)
|
|
64288
64317
|
])
|
|
64289
64318
|
]),
|
|
@@ -73760,6 +73789,10 @@
|
|
|
73760
73789
|
showDropdownItemIcon: {
|
|
73761
73790
|
type: Boolean,
|
|
73762
73791
|
default: false
|
|
73792
|
+
},
|
|
73793
|
+
dropdownOpen: {
|
|
73794
|
+
type: Boolean,
|
|
73795
|
+
default: false
|
|
73763
73796
|
}
|
|
73764
73797
|
});
|
|
73765
73798
|
const operateIconEmits = {
|
|
@@ -73778,7 +73811,7 @@
|
|
|
73778
73811
|
__name: "operate-icon",
|
|
73779
73812
|
props: operateIconProps,
|
|
73780
73813
|
emits: operateIconEmits,
|
|
73781
|
-
setup(__props, { emit: __emit }) {
|
|
73814
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
73782
73815
|
const props = __props;
|
|
73783
73816
|
const emits = __emit;
|
|
73784
73817
|
const showIconList = require$$0.ref([]);
|
|
@@ -73828,6 +73861,9 @@
|
|
|
73828
73861
|
dropdownOpen.value = false;
|
|
73829
73862
|
handleOpenChange(false);
|
|
73830
73863
|
};
|
|
73864
|
+
const closeDropdown = () => {
|
|
73865
|
+
dropdownOpen.value = false;
|
|
73866
|
+
};
|
|
73831
73867
|
require$$0.watch(
|
|
73832
73868
|
() => [props.list, props.showDropdown],
|
|
73833
73869
|
(data) => {
|
|
@@ -73859,6 +73895,9 @@
|
|
|
73859
73895
|
},
|
|
73860
73896
|
{ immediate: true, deep: true }
|
|
73861
73897
|
);
|
|
73898
|
+
__expose({
|
|
73899
|
+
closeDropdown
|
|
73900
|
+
});
|
|
73862
73901
|
return (_ctx, _cache) => {
|
|
73863
73902
|
const _component_ll_tooltip = require$$0.resolveComponent("ll-tooltip");
|
|
73864
73903
|
const _component_a_menu_item = require$$0.resolveComponent("a-menu-item");
|