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.
Files changed (38) hide show
  1. package/es/components/form/src/config/form.d.ts +1 -0
  2. package/es/components/operate-icon/index.d.ts +5 -0
  3. package/es/components/operate-icon/src/operate-icon.d.ts +1 -0
  4. package/es/components/operate-icon/src/operate-icon.vue.d.ts +5 -0
  5. package/es/packages/components/form/src/config/form.mjs.map +1 -1
  6. package/es/packages/components/form/src/form.vue2.mjs +30 -1
  7. package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
  8. package/es/packages/components/operate-icon/src/operate-icon.mjs +4 -0
  9. package/es/packages/components/operate-icon/src/operate-icon.mjs.map +1 -1
  10. package/es/packages/components/operate-icon/src/operate-icon.vue2.mjs +7 -1
  11. package/es/packages/components/operate-icon/src/operate-icon.vue2.mjs.map +1 -1
  12. package/es/packages/components/operate-tree/src/operate-tree.vue2.mjs.map +1 -1
  13. package/index.full.js +41 -2
  14. package/index.full.min.js +21 -21
  15. package/index.full.min.js.map +1 -1
  16. package/index.full.min.mjs +22 -22
  17. package/index.full.min.mjs.map +1 -1
  18. package/index.full.mjs +41 -2
  19. package/lib/components/form/src/config/form.d.ts +1 -0
  20. package/lib/components/operate-icon/index.d.ts +5 -0
  21. package/lib/components/operate-icon/src/operate-icon.d.ts +1 -0
  22. package/lib/components/operate-icon/src/operate-icon.vue.d.ts +5 -0
  23. package/lib/packages/components/form/src/config/form.js.map +1 -1
  24. package/lib/packages/components/form/src/form.vue2.js +30 -1
  25. package/lib/packages/components/form/src/form.vue2.js.map +1 -1
  26. package/lib/packages/components/operate-icon/src/operate-icon.js +4 -0
  27. package/lib/packages/components/operate-icon/src/operate-icon.js.map +1 -1
  28. package/lib/packages/components/operate-icon/src/operate-icon.vue2.js +7 -1
  29. package/lib/packages/components/operate-icon/src/operate-icon.vue2.js.map +1 -1
  30. package/lib/packages/components/operate-tree/src/operate-tree.vue2.js.map +1 -1
  31. package/package.json +1 -1
  32. package/theme-chalk/css/form.css +1 -1
  33. package/theme-chalk/css/index.css +1 -1
  34. package/theme-chalk/css/operate-tree.css +1 -1
  35. package/types/packages/components/form/src/config/form.d.ts +1 -0
  36. package/types/packages/components/operate-icon/index.d.ts +5 -0
  37. package/types/packages/components/operate-icon/src/operate-icon.d.ts +1 -0
  38. package/types/packages/components/operate-icon/src/operate-icon.vue.d.ts +5 -0
@@ -14,6 +14,7 @@ export interface BasicFormColumn extends FormItemProps {
14
14
  spanCol?: number | 24;
15
15
  colOptions?: ColProps;
16
16
  tip?: string;
17
+ info?: string;
17
18
  tipConfig?: TooltipProps;
18
19
  type: FormType;
19
20
  unit?: string;
@@ -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\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 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":";;;;AAwDO,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;;;;"}
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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"}
@@ -64,6 +64,10 @@ const operateIconProps = buildProps({
64
64
  showDropdownItemIcon: {
65
65
  type: Boolean,
66
66
  default: false
67
+ },
68
+ dropdownOpen: {
69
+ type: Boolean,
70
+ default: false
67
71
  }
68
72
  });
69
73
  const operateIconEmits = {
@@ -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\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} 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;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;;;;"}
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\"></slot>\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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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");