ll-plus 2.4.13 → 2.4.14

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 (113) hide show
  1. package/es/component.mjs +2 -0
  2. package/es/component.mjs.map +1 -1
  3. package/es/components/advanced-filtering/index.d.ts +2 -2
  4. package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +1 -1
  5. package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +1 -1
  6. package/es/components/cropper/index.d.ts +0 -1
  7. package/es/components/cropper/src/cropper-modal.vue.d.ts +0 -1
  8. package/es/components/form/index.d.ts +2 -2
  9. package/es/components/form/src/components/form-component.vue.d.ts +1 -1
  10. package/es/components/form/src/form.vue.d.ts +1 -1
  11. package/es/components/image/index.d.ts +112 -0
  12. package/es/components/image/src/image.d.ts +53 -0
  13. package/es/components/image/src/image.vue.d.ts +105 -0
  14. package/es/components/index.d.ts +1 -0
  15. package/es/components/key-value/index.d.ts +6 -6
  16. package/es/components/key-value/src/components/key-value-item.vue.d.ts +2 -2
  17. package/es/components/key-value/src/key-value.vue.d.ts +6 -6
  18. package/es/components/select-group/index.d.ts +1 -0
  19. package/es/components/select-group/src/select-group.vue.d.ts +1 -0
  20. package/es/index.mjs +2 -0
  21. package/es/index.mjs.map +1 -1
  22. package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs +6 -6
  23. package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs.map +1 -1
  24. package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs +1 -6
  25. package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs.map +1 -1
  26. package/es/packages/components/cropper/src/cropper-modal.vue2.mjs +16 -27
  27. package/es/packages/components/cropper/src/cropper-modal.vue2.mjs.map +1 -1
  28. package/es/packages/components/form/src/components/form-component.vue2.mjs +1 -1
  29. package/es/packages/components/form/src/components/form-component.vue2.mjs.map +1 -1
  30. package/es/packages/components/image/index.mjs +10 -0
  31. package/es/packages/components/image/index.mjs.map +1 -0
  32. package/es/packages/components/image/src/image.mjs +61 -0
  33. package/es/packages/components/image/src/image.mjs.map +1 -0
  34. package/es/packages/components/image/src/image.vue.mjs +8 -0
  35. package/es/packages/components/image/src/image.vue.mjs.map +1 -0
  36. package/es/packages/components/image/src/image.vue2.mjs +38 -0
  37. package/es/packages/components/image/src/image.vue2.mjs.map +1 -0
  38. package/es/packages/components/index.mjs +2 -0
  39. package/es/packages/components/index.mjs.map +1 -1
  40. package/es/packages/components/select-group/src/select-group.vue2.mjs +25 -23
  41. package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
  42. package/es/utils/props/runtime.d.ts +2 -2
  43. package/index.full.js +238 -161
  44. package/index.full.min.js +25 -25
  45. package/index.full.min.js.map +1 -1
  46. package/index.full.min.mjs +24 -24
  47. package/index.full.min.mjs.map +1 -1
  48. package/index.full.mjs +236 -162
  49. package/lib/component.js +67 -65
  50. package/lib/component.js.map +1 -1
  51. package/lib/components/advanced-filtering/index.d.ts +2 -2
  52. package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +1 -1
  53. package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +1 -1
  54. package/lib/components/cropper/index.d.ts +0 -1
  55. package/lib/components/cropper/src/cropper-modal.vue.d.ts +0 -1
  56. package/lib/components/form/index.d.ts +2 -2
  57. package/lib/components/form/src/components/form-component.vue.d.ts +1 -1
  58. package/lib/components/form/src/form.vue.d.ts +1 -1
  59. package/lib/components/image/index.d.ts +112 -0
  60. package/lib/components/image/src/image.d.ts +53 -0
  61. package/lib/components/image/src/image.vue.d.ts +105 -0
  62. package/lib/components/index.d.ts +1 -0
  63. package/lib/components/key-value/index.d.ts +6 -6
  64. package/lib/components/key-value/src/components/key-value-item.vue.d.ts +2 -2
  65. package/lib/components/key-value/src/key-value.vue.d.ts +6 -6
  66. package/lib/components/select-group/index.d.ts +1 -0
  67. package/lib/components/select-group/src/select-group.vue.d.ts +1 -0
  68. package/lib/index.js +69 -64
  69. package/lib/index.js.map +1 -1
  70. package/lib/packages/components/advanced-filtering/src/advanced-filtering.js +5 -5
  71. package/lib/packages/components/advanced-filtering/src/advanced-filtering.js.map +1 -1
  72. package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js +1 -6
  73. package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js.map +1 -1
  74. package/lib/packages/components/cropper/src/cropper-modal.vue2.js +16 -27
  75. package/lib/packages/components/cropper/src/cropper-modal.vue2.js.map +1 -1
  76. package/lib/packages/components/form/src/components/form-component.vue2.js +1 -1
  77. package/lib/packages/components/form/src/components/form-component.vue2.js.map +1 -1
  78. package/lib/packages/components/image/index.js +17 -0
  79. package/lib/packages/components/image/index.js.map +1 -0
  80. package/lib/packages/components/image/src/image.js +64 -0
  81. package/lib/packages/components/image/src/image.js.map +1 -0
  82. package/lib/packages/components/image/src/image.vue.js +12 -0
  83. package/lib/packages/components/image/src/image.vue.js.map +1 -0
  84. package/lib/packages/components/image/src/image.vue2.js +42 -0
  85. package/lib/packages/components/image/src/image.vue2.js.map +1 -0
  86. package/lib/packages/components/index.js +69 -64
  87. package/lib/packages/components/index.js.map +1 -1
  88. package/lib/packages/components/select-group/src/select-group.vue2.js +24 -22
  89. package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
  90. package/lib/utils/props/runtime.d.ts +2 -2
  91. package/package.json +1 -1
  92. package/theme-chalk/css/index.css +1 -1
  93. package/theme-chalk/css/table.css +1 -1
  94. package/theme-chalk/fonts/iconfont.js +1 -1
  95. package/theme-chalk/fonts/iconfont.json +84 -0
  96. package/types/packages/components/advanced-filtering/index.d.ts +2 -2
  97. package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +1 -1
  98. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +1 -1
  99. package/types/packages/components/cropper/index.d.ts +0 -1
  100. package/types/packages/components/cropper/src/cropper-modal.vue.d.ts +0 -1
  101. package/types/packages/components/form/index.d.ts +2 -2
  102. package/types/packages/components/form/src/components/form-component.vue.d.ts +1 -1
  103. package/types/packages/components/form/src/form.vue.d.ts +1 -1
  104. package/types/packages/components/image/index.d.ts +112 -0
  105. package/types/packages/components/image/src/image.d.ts +53 -0
  106. package/types/packages/components/image/src/image.vue.d.ts +105 -0
  107. package/types/packages/components/index.d.ts +1 -0
  108. package/types/packages/components/key-value/index.d.ts +6 -6
  109. package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +2 -2
  110. package/types/packages/components/key-value/src/key-value.vue.d.ts +6 -6
  111. package/types/packages/components/select-group/index.d.ts +1 -0
  112. package/types/packages/components/select-group/src/select-group.vue.d.ts +1 -0
  113. package/types/packages/utils/props/runtime.d.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  import '../../../utils/index.mjs';
2
- import { has, isNull, isUndefined, isEqual } from 'lodash-es';
2
+ import { has, isNull, isEqual, isUndefined } from 'lodash-es';
3
3
  import { buildProps, definePropType } from '../../../utils/props/runtime.mjs';
4
4
 
5
5
  "use strict";
@@ -11,9 +11,9 @@ const initValue = (columns, values) => {
11
11
  let value = has(values, column.key) ? values[column.key] : null;
12
12
  if (has(column, "options") && !column.unUseDefaultOption) {
13
13
  if (column.type === "checkbox-group" || has(column, "mode")) {
14
- value = isNull(value) || isUndefined(value) || Array.isArray(value) && value.length === 0 ? [ALL_VALUE] : value;
14
+ value = !hasValue(value) || Array.isArray(value) && value.length === 0 ? [ALL_VALUE] : value;
15
15
  } else {
16
- value = isNull(value) || isUndefined(value) ? ALL_VALUE : value;
16
+ value = !hasValue(value) ? ALL_VALUE : value;
17
17
  }
18
18
  }
19
19
  copyValues[column.key] = value;
@@ -24,12 +24,12 @@ const initValue = (columns, values) => {
24
24
  const filterAllValue = (values, column) => {
25
25
  let value = null;
26
26
  if (Array.isArray(values)) {
27
- value = values.filter((item) => item !== ALL_VALUE);
27
+ value = values.filter((item) => item !== ALL_VALUE || !hasValue(values));
28
28
  if (column && column.type === "number-range") {
29
29
  value = values ? values.every((e) => !isNull(e)) ? values : null : null;
30
30
  }
31
31
  } else {
32
- value = values === ALL_VALUE ? null : values;
32
+ value = values === ALL_VALUE || !hasValue(values) ? null : values;
33
33
  }
34
34
  return value;
35
35
  };
@@ -69,7 +69,7 @@ const findLabelByValue = (tree, value) => {
69
69
  return _findLabel(tree).join(",");
70
70
  };
71
71
  const hasValue = (value) => {
72
- return Array.isArray(value) ? value.length > 0 : !isNull(value) && !isUndefined(value);
72
+ return Array.isArray(value) ? value.length > 0 : !isNull(value) && !isUndefined(value) && value !== "";
73
73
  };
74
74
  const advancedFilteringProps = buildProps({
75
75
  filterColumns: {
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-filtering.mjs","sources":["../../../../../../packages/components/advanced-filtering/src/advanced-filtering.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport { has, isNull, isUndefined, isEqual } from 'lodash-es'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormProps as AntFormProps, TooltipProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\nimport type advancedFiltering from './advanced-filtering.vue'\nimport type advancedFilteringParams from './components/advanced-filtering-params.vue'\nimport type advancedFilteringTags from './components/advanced-filtering-tags.vue'\n\nexport interface IAvancedFilteringTag {\n label: string\n key: string\n value: string | string[]\n showValue: string | string[]\n}\n\nexport const ALL_VALUE: string = '_ALL'\n\nexport type FilterColumn = FormColumn<{\n unUseDefaultOption?: boolean\n defaultOptionLabel?: string\n}>\n\nexport const initValue = (columns: FilterColumn[], values: any) => {\n const copyValues = {}\n if (columns.length) {\n columns.forEach(column => {\n let value: any = has(values, column.key) ? values[column.key] : null\n if (has(column, 'options') && !column.unUseDefaultOption) {\n if (column.type === 'checkbox-group' || has(column, 'mode')) {\n value =\n isNull(value) ||\n isUndefined(value) ||\n (Array.isArray(value) && value.length === 0)\n ? [ALL_VALUE]\n : value\n } else {\n value = isNull(value) || isUndefined(value) ? ALL_VALUE : value\n }\n }\n copyValues[column.key] = value\n })\n }\n\n return copyValues\n}\n\nexport const filterAllValue = (\n values: string | string[],\n column: FilterColumn\n): any => {\n let value: any = null\n if (Array.isArray(values)) {\n value = values.filter(item => item !== ALL_VALUE)\n if (column && column.type === 'number-range') {\n value = values ? (values.every(e => !isNull(e)) ? values : null) : null\n }\n } else {\n value = values === ALL_VALUE ? null : values\n }\n\n return value\n}\n\nexport const treeDataFormat = (\n arr = [] as any[],\n fieldNames: { [key: string]: string }\n) => {\n let options = [] as any[]\n if (!arr) return []\n options = arr.map((e: any) => {\n const obj: any = {}\n obj.label = e[fieldNames.label]\n obj.value = e[fieldNames.value]\n if (e[fieldNames.children] && e[fieldNames.children].length) {\n obj.children = treeDataFormat(e[fieldNames.children], fieldNames)\n }\n\n return obj\n })\n return options\n}\n\n// const isEqual = (val1,val2)=>{\n\n// }\n\nexport const findLabelByValue = (\n tree: FilterColumn['options'],\n value: any\n): string => {\n // 递归函数,用于遍历 Tree 数据\n function _findLabel(nodes: FilterColumn['options']): string[] {\n const labels: string[] = []\n if (!nodes) return []\n for (const node of nodes) {\n if (isEqual(node.value, value)) {\n labels.push(node.label)\n }\n if (node.children && node.children.length > 0) {\n const childLabels = _findLabel(node.children)\n if (childLabels) {\n labels.push(...childLabels)\n }\n }\n }\n return labels.length > 0 ? labels : []\n }\n // 开始递归查找\n return _findLabel(tree).join(',')\n}\n\nexport const hasValue = (value: any) => {\n return Array.isArray(value)\n ? value.length > 0\n : !isNull(value) && !isUndefined(value)\n}\n\nexport const advancedFilteringProps = buildProps({\n filterColumns: {\n type: definePropType<FilterColumn[]>(Array),\n default: () => []\n },\n value: {\n type: Object,\n default: () => ({})\n },\n formOptions: {\n type: definePropType<AntFormProps>(Object),\n default: () => ({ layout: 'vertical' })\n },\n overlayStyle: {\n type: definePropType<TooltipProps['overlayStyle']>(Object),\n default: () => ({\n width: '500px'\n })\n }\n} as const)\n\nexport const advancedFilteringParamsProps = buildProps({\n filterColumns: {\n type: definePropType<FilterColumn[]>(Array),\n default: () => []\n },\n value: {\n type: Object,\n default: () => ({})\n },\n formOptions: {\n type: definePropType<AntFormProps>(Object),\n default: () => ({ layout: 'vertical' })\n },\n showFooter: {\n type: Boolean,\n default: false\n }\n} as const)\n\nexport const advancedFilteringEmits = {\n change: (value: Record<string, any>) => !!value,\n 'update:value': (value: Record<string, any>) => !!value\n}\n\nexport const advancedFilteringParamsEmits = {\n close: () => true,\n confirm: () => true,\n changeValue: (value: Record<string, any>) => !!value,\n 'update:value': (value: Record<string, any>) => !!value\n}\n\nexport const advancedFilteringTagsEmits = {\n change: (value: Record<string, any>) => !!value,\n 'update:value': (value: Record<string, any>) => !!value\n}\n\n// props\nexport type AdvancedFilteringProps = ExtractPropTypes<\n typeof advancedFilteringProps\n>\n\nexport type AdvancedFilteringParamsProps = ExtractPropTypes<\n typeof advancedFilteringParamsProps\n>\n\n// emits\nexport type AdvancedFilteringEmits = typeof advancedFilteringEmits\n\nexport type AdvancedFilteringParamsEmits = typeof advancedFilteringParamsEmits\n\nexport type AdvancedFilteringTagsEmits = typeof advancedFilteringTagsEmits\n\n// instance\nexport type AdvancedFilteringInstance = InstanceType<typeof advancedFiltering>\n\nexport type AdvancedFilteringParamsInstance = InstanceType<\n typeof advancedFilteringParams\n>\n\nexport type AdvancedFilteringTagsInstance = InstanceType<\n typeof advancedFilteringTags\n>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advanced-filtering.mjs","sources":["../../../../../../packages/components/advanced-filtering/src/advanced-filtering.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport { has, isNull, isUndefined, isEqual } from 'lodash-es'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormProps as AntFormProps, TooltipProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\nimport type advancedFiltering from './advanced-filtering.vue'\nimport type advancedFilteringParams from './components/advanced-filtering-params.vue'\nimport type advancedFilteringTags from './components/advanced-filtering-tags.vue'\n\nexport interface IAvancedFilteringTag {\n label: string\n key: string\n value: string | string[]\n showValue: string | string[]\n}\n\nexport const ALL_VALUE: string = '_ALL'\n\nexport type FilterColumn = FormColumn<{\n unUseDefaultOption?: boolean\n defaultOptionLabel?: string\n}>\n\nexport const initValue = (columns: FilterColumn[], values: any) => {\n const copyValues = {}\n if (columns.length) {\n columns.forEach(column => {\n let value: any = has(values, column.key) ? values[column.key] : null\n if (has(column, 'options') && !column.unUseDefaultOption) {\n if (column.type === 'checkbox-group' || has(column, 'mode')) {\n value =\n !hasValue(value) || (Array.isArray(value) && value.length === 0)\n ? [ALL_VALUE]\n : value\n } else {\n value = !hasValue(value) ? ALL_VALUE : value\n }\n }\n copyValues[column.key] = value\n })\n }\n\n return copyValues\n}\n\nexport const filterAllValue = (\n values: string | string[],\n column: FilterColumn\n): any => {\n let value: any = null\n if (Array.isArray(values)) {\n value = values.filter(item => item !== ALL_VALUE || !hasValue(values))\n if (column && column.type === 'number-range') {\n value = values ? (values.every(e => !isNull(e)) ? values : null) : null\n }\n } else {\n value = values === ALL_VALUE || !hasValue(values) ? null : values\n }\n\n return value\n}\n\nexport const treeDataFormat = (\n arr = [] as any[],\n fieldNames: { [key: string]: string }\n) => {\n let options = [] as any[]\n if (!arr) return []\n options = arr.map((e: any) => {\n const obj: any = {}\n obj.label = e[fieldNames.label]\n obj.value = e[fieldNames.value]\n if (e[fieldNames.children] && e[fieldNames.children].length) {\n obj.children = treeDataFormat(e[fieldNames.children], fieldNames)\n }\n\n return obj\n })\n return options\n}\n\n// const isEqual = (val1,val2)=>{\n\n// }\n\nexport const findLabelByValue = (\n tree: FilterColumn['options'],\n value: any\n): string => {\n // 递归函数,用于遍历 Tree 数据\n function _findLabel(nodes: FilterColumn['options']): string[] {\n const labels: string[] = []\n if (!nodes) return []\n for (const node of nodes) {\n if (isEqual(node.value, value)) {\n labels.push(node.label)\n }\n if (node.children && node.children.length > 0) {\n const childLabels = _findLabel(node.children)\n if (childLabels) {\n labels.push(...childLabels)\n }\n }\n }\n return labels.length > 0 ? labels : []\n }\n // 开始递归查找\n return _findLabel(tree).join(',')\n}\n\nexport const hasValue = (value: any) => {\n return Array.isArray(value)\n ? value.length > 0\n : !isNull(value) && !isUndefined(value) && value !== ''\n}\n\nexport const advancedFilteringProps = buildProps({\n filterColumns: {\n type: definePropType<FilterColumn[]>(Array),\n default: () => []\n },\n value: {\n type: Object,\n default: () => ({})\n },\n formOptions: {\n type: definePropType<AntFormProps>(Object),\n default: () => ({ layout: 'vertical' })\n },\n overlayStyle: {\n type: definePropType<TooltipProps['overlayStyle']>(Object),\n default: () => ({\n width: '500px'\n })\n }\n} as const)\n\nexport const advancedFilteringParamsProps = buildProps({\n filterColumns: {\n type: definePropType<FilterColumn[]>(Array),\n default: () => []\n },\n value: {\n type: Object,\n default: () => ({})\n },\n formOptions: {\n type: definePropType<AntFormProps>(Object),\n default: () => ({ layout: 'vertical' })\n },\n showFooter: {\n type: Boolean,\n default: false\n }\n} as const)\n\nexport const advancedFilteringEmits = {\n change: (value: Record<string, any>) => !!value,\n 'update:value': (value: Record<string, any>) => !!value\n}\n\nexport const advancedFilteringParamsEmits = {\n close: () => true,\n confirm: () => true,\n changeValue: (value: Record<string, any>) => !!value,\n 'update:value': (value: Record<string, any>) => !!value\n}\n\nexport const advancedFilteringTagsEmits = {\n change: (value: Record<string, any>) => !!value,\n 'update:value': (value: Record<string, any>) => !!value\n}\n\n// props\nexport type AdvancedFilteringProps = ExtractPropTypes<\n typeof advancedFilteringProps\n>\n\nexport type AdvancedFilteringParamsProps = ExtractPropTypes<\n typeof advancedFilteringParamsProps\n>\n\n// emits\nexport type AdvancedFilteringEmits = typeof advancedFilteringEmits\n\nexport type AdvancedFilteringParamsEmits = typeof advancedFilteringParamsEmits\n\nexport type AdvancedFilteringTagsEmits = typeof advancedFilteringTagsEmits\n\n// instance\nexport type AdvancedFilteringInstance = InstanceType<typeof advancedFiltering>\n\nexport type AdvancedFilteringParamsInstance = InstanceType<\n typeof advancedFilteringParams\n>\n\nexport type AdvancedFilteringTagsInstance = InstanceType<\n typeof advancedFilteringTags\n>\n"],"names":[],"mappings":"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"}
@@ -68,13 +68,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
68
68
  () => props.value,
69
69
  (val) => {
70
70
  const value = cloneDeep(val);
71
- const cloneInnerValue = cloneDeep(innerValue.value);
72
71
  const obj = initValue(computeFormColumns.value, value);
73
- const comparedObj = initValue(
74
- computeFormColumns.value,
75
- cloneInnerValue
76
- );
77
- if (JSON.stringify(obj) !== JSON.stringify(comparedObj)) {
72
+ if (JSON.stringify(val) !== JSON.stringify(innerValue.value)) {
78
73
  innerValue.value = cloneDeep(obj);
79
74
  }
80
75
  if (key.value === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-filtering-params.vue2.mjs","sources":["../../../../../../../packages/components/advanced-filtering/src/components/advanced-filtering-params.vue"],"sourcesContent":["<template>\n <a-card title=\"高级筛选\" :class=\"bem.b()\" :bordered=\"false\">\n <template #extra>\n <ll-icon\n icon-name=\"icon-close2\"\n :style=\"{\n cursor: 'pointer'\n }\"\n @click=\"handleClose\"\n />\n </template>\n <div :class=\"bem.m('content')\">\n <ll-form\n v-if=\"props.filterColumns.length > 0\"\n v-bind=\"$attrs\"\n :form-columns=\"computeFormColumns\"\n :form-options=\"props.formOptions\"\n :form-data=\"innerValue\"\n :row-options=\"\n $attrs['row-options'] || {\n gutter: 30\n }\n \"\n @change=\"handleChange\"\n />\n <div v-else :class=\"bem.m('empty')\">\n <p>暂无数据</p>\n </div>\n </div>\n <div v-if=\"props.showFooter\" :class=\"bem.m('footer')\">\n <ll-button\n type=\"primary\"\n style=\"margin-right: 16px\"\n @click=\"handleAdvancedFilterConfirm\"\n >\n 确定\n </ll-button>\n <ll-button @click=\"handleClose\">取消</ll-button>\n </div>\n </a-card>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, computed } from 'vue'\nimport { has, cloneDeep } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport { LlForm } from '@ll-plus/components'\nimport {\n advancedFilteringParamsProps,\n advancedFilteringParamsEmits,\n ALL_VALUE,\n initValue,\n filterAllValue\n} from '../advanced-filtering'\n\nimport type { FormChangeEvent } from '@ll-plus/components'\n\ndefineOptions({ name: 'LlAdvancedFilteringParams' })\n\nconst props = defineProps(advancedFilteringParamsProps)\n\nconst emits = defineEmits(advancedFilteringParamsEmits)\n\nconst bem = createNamespace('advanced-filtering-params')\n\nconst innerValue = ref({})\n\nconst key = ref(0)\n\nconst computeFormColumns = computed(() => {\n return props.filterColumns.map(column => {\n if (has(column, 'options')) {\n if (\n (column.options.length && column.options[0].value === ALL_VALUE) ||\n column.unUseDefaultOption\n ) {\n return column\n }\n column.options = [\n {\n label: column?.defaultOptionLabel ?? '全部',\n value: ALL_VALUE\n },\n ...column.options\n ]\n }\n return column\n })\n})\n\nconst handleClose = () => {\n emits('close')\n}\n\nconst handleAdvancedFilterConfirm = () => {\n emits('confirm')\n}\n\nconst handleChange = (params: FormChangeEvent) => {\n setData(params)\n}\n\nconst setData = (params: FormChangeEvent) => {\n const value = cloneDeep(params.formData)\n const obj: Record<string, any> = {}\n computeFormColumns.value.forEach(item => {\n const i = item.key\n obj[i] = filterAllValue(value[i], item)\n })\n emits('update:value', obj)\n emits('changeValue', { ...params, formData: obj })\n}\n\nwatch(\n () => props.value,\n val => {\n const value = cloneDeep(val)\n const cloneInnerValue = cloneDeep(innerValue.value)\n const obj: Record<string, any> = initValue(computeFormColumns.value, value)\n\n const comparedObj: Record<string, any> = initValue(\n computeFormColumns.value,\n cloneInnerValue\n )\n if (JSON.stringify(obj) !== JSON.stringify(comparedObj)) {\n innerValue.value = cloneDeep(obj)\n }\n if (key.value === 0) {\n innerValue.value = cloneDeep(obj)\n key.value++\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// watch(\n// () => innerValue.value,\n// val => {\n// setData(val)\n// },\n// {\n// deep: true,\n// immediate: true\n// }\n// )\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advanced-filtering-params.vue2.mjs","sources":["../../../../../../../packages/components/advanced-filtering/src/components/advanced-filtering-params.vue"],"sourcesContent":["<template>\n <a-card title=\"高级筛选\" :class=\"bem.b()\" :bordered=\"false\">\n <template #extra>\n <ll-icon\n icon-name=\"icon-close2\"\n :style=\"{\n cursor: 'pointer'\n }\"\n @click=\"handleClose\"\n />\n </template>\n <div :class=\"bem.m('content')\">\n <ll-form\n v-if=\"props.filterColumns.length > 0\"\n v-bind=\"$attrs\"\n :form-columns=\"computeFormColumns\"\n :form-options=\"props.formOptions\"\n :form-data=\"innerValue\"\n :row-options=\"\n $attrs['row-options'] || {\n gutter: 30\n }\n \"\n @change=\"handleChange\"\n />\n <div v-else :class=\"bem.m('empty')\">\n <p>暂无数据</p>\n </div>\n </div>\n <div v-if=\"props.showFooter\" :class=\"bem.m('footer')\">\n <ll-button\n type=\"primary\"\n style=\"margin-right: 16px\"\n @click=\"handleAdvancedFilterConfirm\"\n >\n 确定\n </ll-button>\n <ll-button @click=\"handleClose\">取消</ll-button>\n </div>\n </a-card>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, computed } from 'vue'\nimport { has, cloneDeep } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport { LlForm } from '@ll-plus/components'\nimport {\n advancedFilteringParamsProps,\n advancedFilteringParamsEmits,\n ALL_VALUE,\n initValue,\n filterAllValue\n} from '../advanced-filtering'\n\nimport type { FormChangeEvent } from '@ll-plus/components'\n\ndefineOptions({ name: 'LlAdvancedFilteringParams' })\n\nconst props = defineProps(advancedFilteringParamsProps)\n\nconst emits = defineEmits(advancedFilteringParamsEmits)\n\nconst bem = createNamespace('advanced-filtering-params')\n\nconst innerValue = ref({})\n\nconst key = ref(0)\n\nconst computeFormColumns = computed(() => {\n return props.filterColumns.map(column => {\n if (has(column, 'options')) {\n if (\n (column.options.length && column.options[0].value === ALL_VALUE) ||\n column.unUseDefaultOption\n ) {\n return column\n }\n column.options = [\n {\n label: column?.defaultOptionLabel ?? '全部',\n value: ALL_VALUE\n },\n ...column.options\n ]\n }\n return column\n })\n})\n\nconst handleClose = () => {\n emits('close')\n}\n\nconst handleAdvancedFilterConfirm = () => {\n emits('confirm')\n}\n\nconst handleChange = (params: FormChangeEvent) => {\n setData(params)\n}\n\nconst setData = (params: FormChangeEvent) => {\n const value = cloneDeep(params.formData)\n const obj: Record<string, any> = {}\n computeFormColumns.value.forEach(item => {\n const i = item.key\n obj[i] = filterAllValue(value[i], item)\n })\n emits('update:value', obj)\n emits('changeValue', { ...params, formData: obj })\n}\n\nwatch(\n () => props.value,\n val => {\n const value = cloneDeep(val)\n // const cloneInnerValue = cloneDeep(innerValue.value)\n const obj: Record<string, any> = initValue(computeFormColumns.value, value)\n\n // const comparedObj: Record<string, any> = initValue(\n // computeFormColumns.value,\n // cloneInnerValue\n // )\n // console.log({ obj, comparedObj, val }, innerValue.value)\n if (JSON.stringify(val) !== JSON.stringify(innerValue.value)) {\n innerValue.value = cloneDeep(obj)\n }\n if (key.value === 0) {\n innerValue.value = cloneDeep(obj)\n key.value++\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// watch(\n// () => innerValue.value,\n// val => {\n// setData(val)\n// },\n// {\n// deep: true,\n// immediate: true\n// }\n// )\n</script>\n"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ import { dataURLtoBlob } from '../../../utils/file.mjs';
8
8
 
9
9
  "use strict";
10
10
  const _hoisted_1 = ["src"];
11
- const _hoisted_2 = ["src"];
12
11
  var _sfc_main = /* @__PURE__ */ defineComponent({
13
12
  ...{ name: "LlCropperModal" },
14
13
  __name: "cropper-modal",
@@ -20,7 +19,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
20
19
  const bem = createNamespace("cropper-modal");
21
20
  const src = ref(props.avatar || "");
22
21
  const avatar = ref(props.avatar || "");
23
- console.log(src, avatar, "avatar");
24
22
  const open = ref(false);
25
23
  const previewSource = ref("");
26
24
  const cropper = ref();
@@ -60,10 +58,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
60
58
  avatar.value = previewSource.value;
61
59
  open.value = false;
62
60
  }
63
- const handleAvatarClick = (_, avatarSrc) => {
64
- src.value = avatarSrc;
65
- avatar.value = avatarSrc;
66
- };
67
61
  return (_ctx, _cache) => {
68
62
  const _component_ll_icon = resolveComponent("ll-icon");
69
63
  const _component_ll_button = resolveComponent("ll-button");
@@ -373,28 +367,23 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
373
367
  _: 1
374
368
  /* STABLE */
375
369
  }, 8, ["open"]),
376
- renderSlot(_ctx.$slots, "default", {}, () => [
377
- createElementVNode(
378
- "div",
379
- {
380
- class: normalizeClass(unref(bem).e("cropper-avatar")),
381
- onClick: handleOpen
382
- },
383
- [
384
- !avatar.value ? (openBlock(), createBlock(_component_ll_avatar, {
385
- key: 0,
386
- size: 64,
387
- onClick: handleAvatarClick
388
- })) : (openBlock(), createElementBlock("img", {
389
- key: 1,
370
+ createElementVNode(
371
+ "div",
372
+ {
373
+ class: normalizeClass(unref(bem).e("cropper-avatar")),
374
+ onClick: handleOpen
375
+ },
376
+ [
377
+ renderSlot(_ctx.$slots, "default", { src: avatar.value }, () => [
378
+ createVNode(_component_ll_avatar, {
390
379
  src: avatar.value,
391
- alt: ""
392
- }, null, 8, _hoisted_2))
393
- ],
394
- 2
395
- /* CLASS */
396
- )
397
- ])
380
+ size: 64
381
+ }, null, 8, ["src"])
382
+ ])
383
+ ],
384
+ 2
385
+ /* CLASS */
386
+ )
398
387
  ],
399
388
  64
400
389
  /* STABLE_FRAGMENT */
@@ -1 +1 @@
1
- {"version":3,"file":"cropper-modal.vue2.mjs","sources":["../../../../../../packages/components/cropper/src/cropper-modal.vue"],"sourcesContent":["<template>\n <ll-modal\n :open=\"open\"\n :title=\"'图片裁剪'\"\n width=\"800px\"\n :keyboard=\"false\"\n :mask-closable=\"false\"\n :ok-text=\"'确定'\"\n @cancel=\"open = false\"\n @ok=\"handleOk\"\n >\n <div :class=\"bem.b()\">\n <div :class=\"bem.e('left')\">\n <div :class=\"bem.e('cropper')\">\n <cropper-image\n v-if=\"src\"\n :src=\"src\"\n height=\"300px\"\n :circled=\"circled\"\n @cropend=\"handleCropend\"\n @on-ready=\"handleReady\"\n />\n </div>\n <div :class=\"bem.e('toolbar')\">\n <Upload\n :file-list=\"[]\"\n accept=\"image/*\"\n :before-upload=\"handleBeforeUpload\"\n >\n <ll-tooltip :title=\"'选择图片'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n @click=\"handlerToolbar('reset')\"\n >\n <ll-icon icon-name=\"icon-upload\" />\n </ll-button>\n </ll-tooltip>\n </Upload>\n <ll-space>\n <ll-tooltip :tip=\"'重置'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('reset')\"\n >\n <ll-icon icon-name=\"icon-refresh\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'逆时针旋转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('rotate', -45)\"\n >\n <ll-icon icon-name=\"icon-counter-clockwise\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'顺时针旋转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('rotate', 45)\"\n >\n <ll-icon icon-name=\"icon-flip-horizontal\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'水平翻转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('scaleX')\"\n >\n <ll-icon icon-name=\"icon-flip-horizontal\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'垂直翻转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('scaleY')\"\n >\n <ll-icon icon-name=\"icon-flip-vertical\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'放大'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('zoom', 0.1)\"\n >\n <ll-icon icon-name=\"icon-amplify1\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'缩小'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('zoom', -0.1)\"\n >\n <ll-icon icon-name=\"icon-scale\" />\n </ll-button>\n </ll-tooltip>\n </ll-space>\n </div>\n </div>\n <div :class=\"bem.e('right')\">\n <div :class=\"bem.e('preview')\">\n <img v-if=\"previewSource\" :src=\"previewSource\" :alt=\"'预览'\" />\n </div>\n <template v-if=\"previewSource\">\n <div :class=\"bem.e('group')\">\n <ll-avatar :src=\"previewSource\" size=\"large\" />\n <ll-avatar :src=\"previewSource\" :size=\"48\" />\n <ll-avatar :src=\"previewSource\" :size=\"64\" />\n <ll-avatar :src=\"previewSource\" :size=\"80\" />\n </div>\n </template>\n </div>\n </div>\n </ll-modal>\n <slot>\n <div :class=\"bem.e('cropper-avatar')\" @click=\"handleOpen\">\n <ll-avatar v-if=\"!avatar\" :size=\"64\" @click=\"handleAvatarClick\">\n </ll-avatar>\n\n <img v-else :src=\"avatar\" alt=\"\" />\n </div>\n </slot>\n</template>\n<script lang=\"ts\" setup>\n//@ts-ignore\nimport type Cropper from 'cropperjs'\n\nimport { ref } from 'vue'\nimport { Upload } from 'ant-design-vue'\nimport { createNamespace, dataURLtoBlob, type Nullable } from '@ll-plus/utils'\nimport CropperImage from './cropper-image.vue'\nimport {\n cropperModalProps,\n cropperModalEmits,\n type CropendResult\n} from './cropper-image'\n\ndefineOptions({ name: 'LlCropperModal' })\nconst props = defineProps(cropperModalProps)\nconst emits = defineEmits(cropperModalEmits)\nconst bem = createNamespace('cropper-modal')\nconst src = ref(props.avatar || '')\nconst avatar = ref(props.avatar || '')\nconsole.log(src, avatar, 'avatar')\nconst open = ref(false)\nconst previewSource = ref('')\nconst cropper = ref<Nullable<Cropper>>()\nlet scaleX = 1\nlet scaleY = 1\n\n// Block upload\nfunction handleBeforeUpload(file: File) {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n src.value = ''\n previewSource.value = ''\n reader.onload = function (e) {\n src.value = (e.target?.result as string) ?? ''\n // filename = file.name\n }\n return false\n}\nfunction handleOpen() {\n open.value = true\n}\nfunction handleCropend({ imgBase64 }: CropendResult) {\n previewSource.value = imgBase64\n}\n\nfunction handleReady(cropperInstance: Cropper) {\n cropper.value = cropperInstance\n}\nfunction handlerToolbar(event: string, arg?: number) {\n if (event === 'scaleX') {\n scaleX = arg = scaleX === -1 ? 1 : -1\n }\n if (event === 'scaleY') {\n scaleY = arg = scaleY === -1 ? 1 : -1\n }\n cropper?.value?.[event]?.(arg)\n}\n\nasync function handleOk() {\n const blob = dataURLtoBlob(previewSource.value)\n emits('confirm', { blob, previewSource: previewSource.value })\n avatar.value = previewSource.value\n open.value = false\n}\nconst handleAvatarClick = (_: any, avatarSrc: string) => {\n src.value = avatarSrc\n avatar.value = avatarSrc\n}\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cropper-modal.vue2.mjs","sources":["../../../../../../packages/components/cropper/src/cropper-modal.vue"],"sourcesContent":["<template>\n <ll-modal\n :open=\"open\"\n :title=\"'图片裁剪'\"\n width=\"800px\"\n :keyboard=\"false\"\n :mask-closable=\"false\"\n :ok-text=\"'确定'\"\n @cancel=\"open = false\"\n @ok=\"handleOk\"\n >\n <div :class=\"bem.b()\">\n <div :class=\"bem.e('left')\">\n <div :class=\"bem.e('cropper')\">\n <cropper-image\n v-if=\"src\"\n :src=\"src\"\n height=\"300px\"\n :circled=\"circled\"\n @cropend=\"handleCropend\"\n @on-ready=\"handleReady\"\n />\n </div>\n <div :class=\"bem.e('toolbar')\">\n <Upload\n :file-list=\"[]\"\n accept=\"image/*\"\n :before-upload=\"handleBeforeUpload\"\n >\n <ll-tooltip :title=\"'选择图片'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n @click=\"handlerToolbar('reset')\"\n >\n <ll-icon icon-name=\"icon-upload\" />\n </ll-button>\n </ll-tooltip>\n </Upload>\n <ll-space>\n <ll-tooltip :tip=\"'重置'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('reset')\"\n >\n <ll-icon icon-name=\"icon-refresh\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'逆时针旋转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('rotate', -45)\"\n >\n <ll-icon icon-name=\"icon-counter-clockwise\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'顺时针旋转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('rotate', 45)\"\n >\n <ll-icon icon-name=\"icon-flip-horizontal\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'水平翻转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('scaleX')\"\n >\n <ll-icon icon-name=\"icon-flip-horizontal\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'垂直翻转'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('scaleY')\"\n >\n <ll-icon icon-name=\"icon-flip-vertical\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'放大'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('zoom', 0.1)\"\n >\n <ll-icon icon-name=\"icon-amplify1\" />\n </ll-button>\n </ll-tooltip>\n <ll-tooltip :tip=\"'缩小'\" placement=\"bottom\">\n <ll-button\n type=\"primary\"\n size=\"small\"\n :disabled=\"!src\"\n @click=\"handlerToolbar('zoom', -0.1)\"\n >\n <ll-icon icon-name=\"icon-scale\" />\n </ll-button>\n </ll-tooltip>\n </ll-space>\n </div>\n </div>\n <div :class=\"bem.e('right')\">\n <div :class=\"bem.e('preview')\">\n <img v-if=\"previewSource\" :src=\"previewSource\" :alt=\"'预览'\" />\n </div>\n <template v-if=\"previewSource\">\n <div :class=\"bem.e('group')\">\n <ll-avatar :src=\"previewSource\" size=\"large\" />\n <ll-avatar :src=\"previewSource\" :size=\"48\" />\n <ll-avatar :src=\"previewSource\" :size=\"64\" />\n <ll-avatar :src=\"previewSource\" :size=\"80\" />\n </div>\n </template>\n </div>\n </div>\n </ll-modal>\n <div :class=\"bem.e('cropper-avatar')\" @click=\"handleOpen\">\n <slot :src=\"avatar\">\n <ll-avatar :src=\"avatar\" :size=\"64\" />\n </slot>\n </div>\n</template>\n<script lang=\"ts\" setup>\n//@ts-ignore\nimport type Cropper from 'cropperjs'\n\nimport { ref } from 'vue'\nimport { Upload } from 'ant-design-vue'\nimport { createNamespace, dataURLtoBlob, type Nullable } from '@ll-plus/utils'\nimport CropperImage from './cropper-image.vue'\nimport {\n cropperModalProps,\n cropperModalEmits,\n type CropendResult\n} from './cropper-image'\n\ndefineOptions({ name: 'LlCropperModal' })\nconst props = defineProps(cropperModalProps)\nconst emits = defineEmits(cropperModalEmits)\nconst bem = createNamespace('cropper-modal')\nconst src = ref(props.avatar || '')\nconst avatar = ref(props.avatar || '')\nconst open = ref(false)\nconst previewSource = ref('')\nconst cropper = ref<Nullable<Cropper>>()\nlet scaleX = 1\nlet scaleY = 1\n\n// Block upload\nfunction handleBeforeUpload(file: File) {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n src.value = ''\n previewSource.value = ''\n reader.onload = function (e) {\n src.value = (e.target?.result as string) ?? ''\n // filename = file.name\n }\n return false\n}\nfunction handleOpen() {\n open.value = true\n}\nfunction handleCropend({ imgBase64 }: CropendResult) {\n previewSource.value = imgBase64\n}\n\nfunction handleReady(cropperInstance: Cropper) {\n cropper.value = cropperInstance\n}\nfunction handlerToolbar(event: string, arg?: number) {\n if (event === 'scaleX') {\n scaleX = arg = scaleX === -1 ? 1 : -1\n }\n if (event === 'scaleY') {\n scaleY = arg = scaleY === -1 ? 1 : -1\n }\n cropper?.value?.[event]?.(arg)\n}\n\nasync function handleOk() {\n const blob = dataURLtoBlob(previewSource.value)\n emits('confirm', { blob, previewSource: previewSource.value })\n avatar.value = previewSource.value\n open.value = false\n}\n</script>\n"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
15
15
  const formData = reactive(props.formData);
16
16
  const getBindValue = (item) => {
17
17
  const obj = { ...item };
18
- return omit(obj, ["label"]);
18
+ return omit(obj, ["label", "onChange", "change"]);
19
19
  };
20
20
  const handleChange = (...arg) => {
21
21
  const item = props.item;
@@ -1 +1 @@
1
- {"version":3,"file":"form-component.vue2.mjs","sources":["../../../../../../../packages/components/form/src/components/form-component.vue"],"sourcesContent":["<template>\n <template v-if=\"checkedType.includes(item.type)\">\n <component\n :is=\"`ll-${item.type}`\"\n v-model:checked=\"formData[item.key]\"\n v-bind=\"getBindValue(item)\"\n @change=\"handleChange\"\n />\n </template>\n <template v-else>\n <component\n :is=\"`ll-${item.type}`\"\n v-model:value=\"formData[item.key]\"\n v-bind=\"getBindValue(item)\"\n @change=\"handleChange\"\n />\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport { omit, has } from 'lodash-es'\nimport {\n formComponentProps,\n formComponentEmits,\n checkedType,\n type FormColumn\n} from '../config'\n\nconst props = defineProps(formComponentProps)\n\nconst emits = defineEmits(formComponentEmits)\n\nconst formData = reactive(props.formData)\n\nconst getBindValue = (item: FormColumn) => {\n const obj = { ...item }\n return omit(obj, ['label'])\n}\n\nconst handleChange = (...arg) => {\n const item: FormColumn = props.item\n if (has(item, 'change')) {\n item.change(...arg)\n }\n if (has(item, 'onChange')) {\n item.onChange(...arg)\n }\n emits('changeField', item)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAM,MAAA,QAAA,GAAW,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAExC,IAAM,MAAA,YAAA,GAAe,CAAC,IAAqB,KAAA;AACzC,MAAM,MAAA,GAAA,GAAM,EAAE,GAAG,IAAK,EAAA,CAAA;AACtB,MAAA,OAAO,IAAK,CAAA,GAAA,EAAK,CAAC,OAAO,CAAC,CAAA,CAAA;AAAA,KAC5B,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,IAAI,GAAQ,KAAA;AAC/B,MAAA,MAAM,OAAmB,KAAM,CAAA,IAAA,CAAA;AAC/B,MAAI,IAAA,GAAA,CAAI,IAAM,EAAA,QAAQ,CAAG,EAAA;AACvB,QAAK,IAAA,CAAA,MAAA,CAAO,GAAG,GAAG,CAAA,CAAA;AAAA,OACpB;AACA,MAAI,IAAA,GAAA,CAAI,IAAM,EAAA,UAAU,CAAG,EAAA;AACzB,QAAK,IAAA,CAAA,QAAA,CAAS,GAAG,GAAG,CAAA,CAAA;AAAA,OACtB;AACA,MAAA,KAAA,CAAM,eAAe,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"form-component.vue2.mjs","sources":["../../../../../../../packages/components/form/src/components/form-component.vue"],"sourcesContent":["<template>\n <template v-if=\"checkedType.includes(item.type)\">\n <component\n :is=\"`ll-${item.type}`\"\n v-model:checked=\"formData[item.key]\"\n v-bind=\"getBindValue(item)\"\n @change=\"handleChange\"\n />\n </template>\n <template v-else>\n <component\n :is=\"`ll-${item.type}`\"\n v-model:value=\"formData[item.key]\"\n v-bind=\"getBindValue(item)\"\n @change=\"handleChange\"\n />\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport { omit, has } from 'lodash-es'\nimport {\n formComponentProps,\n formComponentEmits,\n checkedType,\n type FormColumn\n} from '../config'\n\nconst props = defineProps(formComponentProps)\n\nconst emits = defineEmits(formComponentEmits)\n\nconst formData = reactive(props.formData)\n\nconst getBindValue = (item: FormColumn) => {\n const obj = { ...item }\n return omit(obj, ['label', 'onChange', 'change'])\n}\n\nconst handleChange = (...arg) => {\n const item: FormColumn = props.item\n if (has(item, 'change')) {\n item.change(...arg)\n }\n if (has(item, 'onChange')) {\n item.onChange(...arg)\n }\n emits('changeField', item)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAM,MAAA,QAAA,GAAW,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAExC,IAAM,MAAA,YAAA,GAAe,CAAC,IAAqB,KAAA;AACzC,MAAM,MAAA,GAAA,GAAM,EAAE,GAAG,IAAK,EAAA,CAAA;AACtB,MAAA,OAAO,KAAK,GAAK,EAAA,CAAC,OAAS,EAAA,UAAA,EAAY,QAAQ,CAAC,CAAA,CAAA;AAAA,KAClD,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,IAAI,GAAQ,KAAA;AAC/B,MAAA,MAAM,OAAmB,KAAM,CAAA,IAAA,CAAA;AAC/B,MAAI,IAAA,GAAA,CAAI,IAAM,EAAA,QAAQ,CAAG,EAAA;AACvB,QAAK,IAAA,CAAA,MAAA,CAAO,GAAG,GAAG,CAAA,CAAA;AAAA,OACpB;AACA,MAAI,IAAA,GAAA,CAAI,IAAM,EAAA,UAAU,CAAG,EAAA;AACzB,QAAK,IAAA,CAAA,QAAA,CAAS,GAAG,GAAG,CAAA,CAAA;AAAA,OACtB;AACA,MAAA,KAAA,CAAM,eAAe,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ import '../../utils/index.mjs';
2
+ import Image from './src/image.vue.mjs';
3
+ export { FALL_BACK_IMG, imageProps } from './src/image.mjs';
4
+ import { withInstall } from '../../utils/with-install.mjs';
5
+
6
+ "use strict";
7
+ const LlImage = withInstall(Image);
8
+
9
+ export { LlImage, LlImage as default };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/image/index.ts"],"sourcesContent":["import { withInstall } from '@ll-plus/utils'\n\nimport Image from './src/image.vue'\n\nexport const LlImage = withInstall(Image)\nexport default LlImage\nexport * from './src/image'\n\n// 把ZIcon组件类型合并带全局组件中 到时候使用时有提示\ndeclare module 'vue' {\n export interface GlobalComponents {\n LlImage: typeof Image\n }\n}\n"],"names":[],"mappings":";;;;;;AAIa,MAAA,OAAA,GAAU,YAAY,KAAK;;;;"}
@@ -0,0 +1,61 @@
1
+ import '../../../utils/index.mjs';
2
+ import { buildProps, definePropType } from '../../../utils/props/runtime.mjs';
3
+
4
+ "use strict";
5
+ const imageProps = buildProps({
6
+ // buildProps和defineprops一样
7
+ /**
8
+ * @description 图像描述
9
+ */
10
+ alt: {
11
+ type: String
12
+ },
13
+ /**
14
+ * @description 加载失败容错地址
15
+ */
16
+ fallback: {
17
+ type: String
18
+ },
19
+ /**
20
+ * @description 图像宽度
21
+ */
22
+ width: {
23
+ type: definePropType([Number, String])
24
+ },
25
+ /**
26
+ * @description 图像高度
27
+ */
28
+ height: {
29
+ type: definePropType([Number, String])
30
+ },
31
+ /**
32
+ * @description 加载占位, 为 true 时使用默认占位,有插槽
33
+ */
34
+ placeholder: {
35
+ type: Boolean
36
+ },
37
+ /**
38
+ * @description 预览参数,为 false 时禁用
39
+ */
40
+ preview: {
41
+ type: definePropType([Boolean, Object]),
42
+ default: true
43
+ },
44
+ /**
45
+ * @description 图片地址
46
+ */
47
+ src: {
48
+ type: definePropType([Boolean, Object]),
49
+ default: true
50
+ },
51
+ /**
52
+ * @description 自定义 mask 有插槽
53
+ */
54
+ previewMask: {
55
+ type: definePropType([false, Function])
56
+ }
57
+ });
58
+ const FALL_BACK_IMG = "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+l1vpCgAAAAFzUkdCAK7OHOkAAAaDSURBVHgB7ZtbaBxVGMc3N5KASTQNGwy5+GCKGGzuWFIoRBRRaBGESGlBRAKFog9VakAQ9M1Ln9SHioj00Ye0oKYqFoLWRk2yuVAlhm2STUQja9VsbLrJ7mb9fyWzHWbPTLbbnbNj8l8YZuZ85/r7n++cM2dmfT7+SIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESMDrBAq8VsHFxcWTqNNLOK4lk8nBwsLCwYaGhmmv1dOt+nhKkFAo1FJQUHBF0dg5hA1ubm6ea2pqGkGcpCLOjgjylCDwjrdB9eVtyP4O+3l4z7lwODzc1dUV2yb+/8rsKUHm5+fvKy4ursiUIDzl7/r6+l8zjc94JHDbBLR5yNTUlD8ej/ejVz+I4ab6tmuauwRxlD+LxcJQR0fHRSPbpaWlaoS/gfp9j/NIY2PjVcOm86xFkPHx8f1o1AUcd+tsXAZlvdfZ2fmCxFtYWLgXIv1mShPG9YiIg/MlzFc/6JivXBcEDSoIBAI/o1EPmBrrpctDEOWzubm5Wsxfyw4Vmy4rKzvg9/v/dYhzx6bCO85hmwwmJyebEEW3GLIs/hTH6zjO4DD3fNze+qHDPCV3FRUVa7dClVf7otFoh9KSw8DiHOalzCqRSOzFuKy0uRQYQXmHMD98Y+Q/Njb2CsLO4v6wEWacMUzd7Cw1NTU3MI8YwcoznoNWlYYcBrruIahrSQ7rm0lWp8xiSAKM/SsA/yxE+UORwc36wRaHbUNhN4KSsVjM9YlehyBGg7ScS0pKPlEV1N7e/g96+JcqmynMadgKNjc3R0xxXbncaYKsz8zM2EKDl8jKyennJMiEU8Jc2XaaIKXoxQ/ZwcEE3m1n2wq3FQRpA9ukzYl5pwniw7B0WpbaVjqY2GU1ddAabrm/brk332oRxPVVlrlFmq4fwXPPMI6BlZWViaqqqloIdBRlv7Zd+Yi3hsldGQ1zk5Yhy+uCyKrnAxwHcLQrSakDDwLu5crKSpzSvUWdxOfDHLOG+CrzUl1d3Z8qQ67DvDxkyeT8qGxtANLD6LkfZtF4dXe3yQjl2M0hWoYrqZZXBVnDXPAkxPhWKil7SHi26Aewd+XexZ9SEHQGLcOVtMuLgmwC/NHu7u7vrOAhzItZeoo1K7t7pSDoHLvXQyDGKYA/b0csGAweh83Wbpcuw3ClIEVFRbvWQz6CGKed4PX19SUikcgReEqaBxnpIOpPW56kBGzEs56RThU/rPOtpJeGrHGAPmGFpLrv7e3Fxmv0MGy/KOxnVldX22TOwarpMdgz3hBEfNVziLbhStriFUGuoUc/LaAVgJVBPT09f+H9xRNIl9owRA9/EwuB48hHNgp92L+6DPszuEwoM0kPTPMQpNc2XEl1vCCILPyPoUeH0vk4h7S2ts7LagyxIhDjLIa7AWsK5HsBUF+1hqvuVUOWzgld6uQFQd5Br/5CBSiTMIgQAMje8vLyfrv48JS3YPvczm4KV3nIrhqyRgEzo95rgpZ2KaK0tLTYvsuAhyRxPIeETq9oJV+rIBF8NSkf6Wn75dNDrkOMI4AZ09FaDF1hDD/PO5WlGLImREynNLm25VOQkxDD9TdwZmB42BwCYKctGKuHaJ3Qpa752lwMouwQPg963AxMxzW85CuIcgxllVnLwwOgbNmkguExWucPKThfgtyPsrOeyFPEsriAGLapIID1OUS7IPkcsmzB5NFgHrJu4OvFGd11cV0Q9Drb1Y/uxqrKQ/1SYxSuzYJMw5syfaBUZZ1VmOuCYFyezapm+hKlFhb4hswsiPbhSprsuiB4KFtEOao9J33InUu6aJjxqWiJcQ3v0L7CkrJdFwQNS2LlIlvmUaOxHjp/jeeTj436oJ7Vpuu8eIiWVRbW/8Ojo6Nt2E0dwDjdBpH2GA3XfUb5cZQ/i/MQPrB+H9s2qQc//F1iP2xSpdjGxobqr3WuV9d+Deh60d4qAC++/KWlpT9CqCbULIAVVmc+aqjFQ/LRMLsyAbxweXl5DzzAv+Wp9yDuPhwnYKuVdAi/JOd8/HadIAJ5fX39Lgyf9QDfjHlDvs7fi2B5kVWJ4yru5c+n/JEACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACSgJ/Af2KftV6Fu+WQAAAABJRU5ErkJggg==";
59
+
60
+ export { FALL_BACK_IMG, imageProps };
61
+ //# sourceMappingURL=image.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.mjs","sources":["../../../../../../packages/components/image/src/image.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Image from './image.vue'\n\nexport interface ImagePreviewType {\n visible?: boolean\n onVisibleChange?: (visible, prevVisible) => void\n getContainer: string | HTMLElement | (() => HTMLElement)\n src?: string\n maskClassName?: string\n current?: number\n}\n\nexport const imageProps = buildProps({\n // buildProps和defineprops一样\n /**\n * @description 图像描述\n */\n alt: {\n type: String\n },\n /**\n * @description 加载失败容错地址\n */\n fallback: {\n type: String\n },\n /**\n * @description 图像宽度\n */\n width: {\n type: definePropType<number | string>([Number, String])\n },\n /**\n * @description 图像高度\n */\n height: {\n type: definePropType<number | string>([Number, String])\n },\n /**\n * @description 加载占位, 为 true 时使用默认占位,有插槽\n */\n placeholder: {\n type: Boolean\n },\n /**\n * @description 预览参数,为 false 时禁用\n */\n preview: {\n type: definePropType<boolean | ImagePreviewType>([Boolean, Object]),\n default: true\n },\n /**\n * @description 图片地址\n */\n src: {\n type: definePropType<boolean | ImagePreviewType>([Boolean, Object]),\n default: true\n },\n /**\n * @description 自定义 mask 有插槽\n */\n previewMask: {\n type: definePropType<false | (() => any)>([false, Function])\n }\n} as const)\n\n// props\nexport type ImageProps = ExtractPropTypes<typeof imageProps> // ExtractPropTypes和defineCpmponent类似\n\n// instance\nexport type ImageInstance = InstanceType<typeof Image>\n\nexport const FALL_BACK_IMG =\n 'data:image/jpeg;base64,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'\n"],"names":[],"mappings":";;;;AAcO,MAAM,aAAa,UAAW,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,GACxD;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,GACxD;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,cAAA,CAA2C,CAAC,OAAA,EAAS,MAAM,CAAC,CAAA;AAAA,IAClE,OAAS,EAAA,IAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,cAAA,CAA2C,CAAC,OAAA,EAAS,MAAM,CAAC,CAAA;AAAA,IAClE,OAAS,EAAA,IAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,cAAA,CAAoC,CAAC,KAAA,EAAO,QAAQ,CAAC,CAAA;AAAA,GAC7D;AACF,CAAU,EAAA;AAQH,MAAM,aACX,GAAA;;;;"}
@@ -0,0 +1,8 @@
1
+ import _sfc_main from './image.vue2.mjs';
2
+ import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
3
+
4
+ "use strict";
5
+ var Image = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "image.vue"]]);
6
+
7
+ export { Image as default };
8
+ //# sourceMappingURL=image.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,38 @@
1
+ import { defineComponent, computed, resolveComponent, openBlock, createBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
2
+ import '../../../utils/index.mjs';
3
+ import { imageProps, FALL_BACK_IMG } from './image.mjs';
4
+ import { createNamespace } from '../../../utils/create-namespace.mjs';
5
+
6
+ "use strict";
7
+ var _sfc_main = /* @__PURE__ */ defineComponent({
8
+ ...{
9
+ name: "LlImage"
10
+ },
11
+ __name: "image",
12
+ props: imageProps,
13
+ setup(__props) {
14
+ const props = __props;
15
+ const bem = createNamespace("image");
16
+ const computedFallback = computed(
17
+ () => props.fallback ? props.fallback : FALL_BACK_IMG
18
+ );
19
+ return (_ctx, _cache) => {
20
+ const _component_a_image = resolveComponent("a-image");
21
+ return openBlock(), createBlock(_component_a_image, mergeProps({
22
+ class: unref(bem).b()
23
+ }, props, { fallback: computedFallback.value }), {
24
+ placeholder: withCtx(() => [
25
+ renderSlot(_ctx.$slots, "placeholder")
26
+ ]),
27
+ previewMask: withCtx(() => [
28
+ renderSlot(_ctx.$slots, "previewMask")
29
+ ]),
30
+ _: 3
31
+ /* FORWARDED */
32
+ }, 16, ["class", "fallback"]);
33
+ };
34
+ }
35
+ });
36
+
37
+ export { _sfc_main as default };
38
+ //# sourceMappingURL=image.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.vue2.mjs","sources":["../../../../../../packages/components/image/src/image.vue"],"sourcesContent":["<template>\n <a-image :class=\"bem.b()\" v-bind=\"props\" :fallback=\"computedFallback\">\n <!-- 占位插槽 -->\n <template #placeholder>\n <slot name=\"placeholder\" />\n </template>\n <!-- 自定义mask插槽 -->\n <template #previewMask>\n <slot name=\"previewMask\" />\n </template>\n </a-image>\n</template>\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\nimport { imageProps } from './image'\n\nimport { FALL_BACK_IMG } from './image'\n\ndefineOptions({\n name: 'LlImage'\n})\n\nconst props = defineProps(imageProps)\n\nconst bem = createNamespace('image')\n\n// 加载失败容错地址\nconst computedFallback = computed(() =>\n props.fallback ? props.fallback : FALL_BACK_IMG\n)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAwBA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,GAAA,GAAM,gBAAgB,OAAO,CAAA,CAAA;AAGnC,IAAA,MAAM,gBAAmB,GAAA,QAAA;AAAA,MAAS,MAChC,KAAA,CAAM,QAAW,GAAA,KAAA,CAAM,QAAW,GAAA,aAAA;AAAA,KACpC,CAAA;;;;;;;;;;;;;;;;;;;;;"}
@@ -19,6 +19,7 @@ export { LlFormItem } from './form-item/index.mjs';
19
19
  export { LlIcon } from './icon/index.mjs';
20
20
  export { LlIconBase } from './icon-base/index.mjs';
21
21
  export { LlIconPicker } from './icon-picker/index.mjs';
22
+ export { LlImage } from './image/index.mjs';
22
23
  export { LlInput } from './input/index.mjs';
23
24
  export { LlInputNumber } from './input-number/index.mjs';
24
25
  export { LlKeyValue } from './key-value/index.mjs';
@@ -82,6 +83,7 @@ export { iconBaseProps, iconTypes } from './icon-base/src/icon-base.mjs';
82
83
  export { iconPickerProps } from './icon-picker/src/config/icon-picker.mjs';
83
84
  export { iconPickerModalEmits, iconPickerModalProps } from './icon-picker/src/config/modal.mjs';
84
85
  export { iconPickerSearchEmits, iconPickerSearchProps } from './icon-picker/src/config/search.mjs';
86
+ export { FALL_BACK_IMG, imageProps } from './image/src/image.mjs';
85
87
  export { inputProps } from './input/src/input.mjs';
86
88
  export { inputNumberEmits, inputNumberProps } from './input-number/src/input-number.mjs';
87
89
  export { getKeyValueItem, keyValueEmits, keyValueProps } from './key-value/src/config/key-value.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,10 @@
1
1
  import { defineComponent, ref, computed, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createVNode, withCtx, createCommentVNode, normalizeStyle, Fragment, renderList, createBlock, createTextVNode, toDisplayString, renderSlot, normalizeProps, mergeProps } from 'vue';
2
- import { isNull, isUndefined } from 'lodash-es';
2
+ import { has } from 'lodash-es';
3
3
  import { selectGroupProps, selectGroupEmits, LEFT_SELECT_MIN_WIDTH } from './select-group.mjs';
4
4
  import '../../../utils/index.mjs';
5
+ import '../../advanced-filtering/index.mjs';
5
6
  import { createNamespace } from '../../../utils/create-namespace.mjs';
7
+ import { hasValue } from '../../advanced-filtering/src/advanced-filtering.mjs';
6
8
 
7
9
  "use strict";
8
10
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -10,7 +12,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
10
12
  __name: "select-group",
11
13
  props: selectGroupProps,
12
14
  emits: selectGroupEmits,
13
- setup(__props, { emit: __emit }) {
15
+ setup(__props, { expose: __expose, emit: __emit }) {
14
16
  const props = __props;
15
17
  const emits = __emit;
16
18
  const typeSelectValue = ref("1");
@@ -49,13 +51,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
49
51
  );
50
52
  };
51
53
  watch(
52
- () => [props.selectValue, props.data],
53
- ([selectValue, newData]) => {
54
+ () => props.data,
55
+ (newData) => {
56
+ let list = [];
54
57
  if (newData && newData.length) {
55
- const list = newData.map((item) => {
58
+ list = newData.map((item) => {
56
59
  const newItem = { ...item };
57
60
  if (newItem.showFormType === "select") {
58
- if (newItem.options?.length && !newItem.noFirstAddAll) {
61
+ if (has(newItem, "options") && !newItem.noFirstAddAll) {
59
62
  newItem.options = [
60
63
  {
61
64
  label: "\u5168\u90E8",
@@ -63,7 +66,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
63
66
  },
64
67
  ...newItem.options
65
68
  ];
66
- } else if (newItem.list?.length && !newItem.noFirstAddAll) {
69
+ } else if (has(newItem, "list") && !newItem.noFirstAddAll) {
67
70
  newItem.list = [
68
71
  {
69
72
  name: "\u5168\u90E8",
@@ -75,16 +78,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
75
78
  }
76
79
  return newItem;
77
80
  });
78
- let firstItem = list[0];
79
- const findItem = list.find((item) => item.value === selectValue);
80
- if (findItem) {
81
- firstItem = findItem;
82
- }
83
- if (firstItem.showFormType === "select" && !firstItem.noFirstAddAll) {
84
- value.value = -1;
85
- }
86
- selectItem.value = firstItem;
87
- typeSelectValue.value = selectValue ? selectValue : firstItem.value;
88
81
  newList.value = list;
89
82
  }
90
83
  },
@@ -93,20 +86,29 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
93
86
  immediate: true
94
87
  }
95
88
  );
89
+ const setSelectGroup = (selectValue, currentValue) => {
90
+ typeSelectValue.value = selectValue;
91
+ value.value = currentValue;
92
+ };
96
93
  watch(
97
- () => [props.value, typeSelectValue.value],
94
+ () => [props.value, props.selectValue],
98
95
  ([currentValue, selectValue]) => {
99
- const find = props.data.find((e) => e.value === selectValue);
100
- if (find && find.showFormType === "select" && !find.noFirstAddAll) {
101
- value.value = isNull(currentValue) || isUndefined(currentValue) || Array.isArray(currentValue) && currentValue.length === 0 ? -1 : currentValue;
102
- } else {
103
- value.value = currentValue;
96
+ typeSelectValue.value = selectValue || newList.value[0].value;
97
+ if (typeSelectValue.value) {
98
+ const find = newList.value.find((e) => e.value === typeSelectValue.value);
99
+ selectItem.value = find;
100
+ if (find && find.showFormType === "select" && !find.noFirstAddAll) {
101
+ value.value = !hasValue(currentValue) ? -1 : currentValue;
102
+ } else {
103
+ value.value = currentValue;
104
+ }
104
105
  }
105
106
  },
106
107
  {
107
108
  immediate: true
108
109
  }
109
110
  );
111
+ __expose({ setSelectGroup });
110
112
  return (_ctx, _cache) => {
111
113
  const _component_a_select_option = resolveComponent("a-select-option");
112
114
  const _component_a_select = resolveComponent("a-select");