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.
- package/es/component.mjs +2 -0
- package/es/component.mjs.map +1 -1
- package/es/components/advanced-filtering/index.d.ts +2 -2
- package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +1 -1
- package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +1 -1
- package/es/components/cropper/index.d.ts +0 -1
- package/es/components/cropper/src/cropper-modal.vue.d.ts +0 -1
- package/es/components/form/index.d.ts +2 -2
- package/es/components/form/src/components/form-component.vue.d.ts +1 -1
- package/es/components/form/src/form.vue.d.ts +1 -1
- package/es/components/image/index.d.ts +112 -0
- package/es/components/image/src/image.d.ts +53 -0
- package/es/components/image/src/image.vue.d.ts +105 -0
- package/es/components/index.d.ts +1 -0
- package/es/components/key-value/index.d.ts +6 -6
- package/es/components/key-value/src/components/key-value-item.vue.d.ts +2 -2
- package/es/components/key-value/src/key-value.vue.d.ts +6 -6
- package/es/components/select-group/index.d.ts +1 -0
- package/es/components/select-group/src/select-group.vue.d.ts +1 -0
- package/es/index.mjs +2 -0
- package/es/index.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs +6 -6
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs +1 -6
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs.map +1 -1
- package/es/packages/components/cropper/src/cropper-modal.vue2.mjs +16 -27
- package/es/packages/components/cropper/src/cropper-modal.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/components/form-component.vue2.mjs +1 -1
- package/es/packages/components/form/src/components/form-component.vue2.mjs.map +1 -1
- package/es/packages/components/image/index.mjs +10 -0
- package/es/packages/components/image/index.mjs.map +1 -0
- package/es/packages/components/image/src/image.mjs +61 -0
- package/es/packages/components/image/src/image.mjs.map +1 -0
- package/es/packages/components/image/src/image.vue.mjs +8 -0
- package/es/packages/components/image/src/image.vue.mjs.map +1 -0
- package/es/packages/components/image/src/image.vue2.mjs +38 -0
- package/es/packages/components/image/src/image.vue2.mjs.map +1 -0
- package/es/packages/components/index.mjs +2 -0
- package/es/packages/components/index.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.vue2.mjs +25 -23
- package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
- package/es/utils/props/runtime.d.ts +2 -2
- package/index.full.js +238 -161
- package/index.full.min.js +25 -25
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +24 -24
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +236 -162
- package/lib/component.js +67 -65
- package/lib/component.js.map +1 -1
- package/lib/components/advanced-filtering/index.d.ts +2 -2
- package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +1 -1
- package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +1 -1
- package/lib/components/cropper/index.d.ts +0 -1
- package/lib/components/cropper/src/cropper-modal.vue.d.ts +0 -1
- package/lib/components/form/index.d.ts +2 -2
- package/lib/components/form/src/components/form-component.vue.d.ts +1 -1
- package/lib/components/form/src/form.vue.d.ts +1 -1
- package/lib/components/image/index.d.ts +112 -0
- package/lib/components/image/src/image.d.ts +53 -0
- package/lib/components/image/src/image.vue.d.ts +105 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/key-value/index.d.ts +6 -6
- package/lib/components/key-value/src/components/key-value-item.vue.d.ts +2 -2
- package/lib/components/key-value/src/key-value.vue.d.ts +6 -6
- package/lib/components/select-group/index.d.ts +1 -0
- package/lib/components/select-group/src/select-group.vue.d.ts +1 -0
- package/lib/index.js +69 -64
- package/lib/index.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js +5 -5
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js +1 -6
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js.map +1 -1
- package/lib/packages/components/cropper/src/cropper-modal.vue2.js +16 -27
- package/lib/packages/components/cropper/src/cropper-modal.vue2.js.map +1 -1
- package/lib/packages/components/form/src/components/form-component.vue2.js +1 -1
- package/lib/packages/components/form/src/components/form-component.vue2.js.map +1 -1
- package/lib/packages/components/image/index.js +17 -0
- package/lib/packages/components/image/index.js.map +1 -0
- package/lib/packages/components/image/src/image.js +64 -0
- package/lib/packages/components/image/src/image.js.map +1 -0
- package/lib/packages/components/image/src/image.vue.js +12 -0
- package/lib/packages/components/image/src/image.vue.js.map +1 -0
- package/lib/packages/components/image/src/image.vue2.js +42 -0
- package/lib/packages/components/image/src/image.vue2.js.map +1 -0
- package/lib/packages/components/index.js +69 -64
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.vue2.js +24 -22
- package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
- package/lib/utils/props/runtime.d.ts +2 -2
- package/package.json +1 -1
- package/theme-chalk/css/index.css +1 -1
- package/theme-chalk/css/table.css +1 -1
- package/theme-chalk/fonts/iconfont.js +1 -1
- package/theme-chalk/fonts/iconfont.json +84 -0
- package/types/packages/components/advanced-filtering/index.d.ts +2 -2
- package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +1 -1
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +1 -1
- package/types/packages/components/cropper/index.d.ts +0 -1
- package/types/packages/components/cropper/src/cropper-modal.vue.d.ts +0 -1
- package/types/packages/components/form/index.d.ts +2 -2
- package/types/packages/components/form/src/components/form-component.vue.d.ts +1 -1
- package/types/packages/components/form/src/form.vue.d.ts +1 -1
- package/types/packages/components/image/index.d.ts +112 -0
- package/types/packages/components/image/src/image.d.ts +53 -0
- package/types/packages/components/image/src/image.vue.d.ts +105 -0
- package/types/packages/components/index.d.ts +1 -0
- package/types/packages/components/key-value/index.d.ts +6 -6
- package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +2 -2
- package/types/packages/components/key-value/src/key-value.vue.d.ts +6 -6
- package/types/packages/components/select-group/index.d.ts +1 -0
- package/types/packages/components/select-group/src/select-group.vue.d.ts +1 -0
- package/types/packages/utils/props/runtime.d.ts +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '../../../utils/index.mjs';
|
|
2
|
-
import { has, isNull,
|
|
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 =
|
|
14
|
+
value = !hasValue(value) || Array.isArray(value) && value.length === 0 ? [ALL_VALUE] : value;
|
|
15
15
|
} else {
|
|
16
|
-
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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"}
|
package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAM,MAAA,GAAA,GAAM,gBAAgB,2BAA2B,CAAA,CAAA;AAEvD,IAAM,MAAA,UAAA,GAAa,GAAI,CAAA,EAAE,CAAA,CAAA;AAEzB,IAAM,MAAA,GAAA,GAAM,IAAI,CAAC,CAAA,CAAA;AAEjB,IAAM,MAAA,kBAAA,GAAqB,SAAS,MAAM;AACxC,MAAO,OAAA,KAAA,CAAM,aAAc,CAAA,GAAA,CAAI,CAAU,MAAA,KAAA;AACvC,QAAI,IAAA,GAAA,CAAI,MAAQ,EAAA,SAAS,CAAG,EAAA;AAC1B,UACG,IAAA,MAAA,CAAO,OAAQ,CAAA,MAAA,IAAU,MAAO,CAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,KAAA,KAAU,SACtD,IAAA,MAAA,CAAO,kBACP,EAAA;AACA,YAAO,OAAA,MAAA,CAAA;AAAA,WACT;AACA,UAAA,MAAA,CAAO,OAAU,GAAA;AAAA,YACf;AAAA,cACE,KAAA,EAAO,QAAQ,kBAAsB,IAAA,cAAA;AAAA,cACrC,KAAO,EAAA,SAAA;AAAA,aACT;AAAA,YACA,GAAG,MAAO,CAAA,OAAA;AAAA,WACZ,CAAA;AAAA,SACF;AACA,QAAO,OAAA,MAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,KACf,CAAA;AAEA,IAAA,MAAM,8BAA8B,MAAM;AACxC,MAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,KACjB,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,CAAC,MAA4B,KAAA;AAChD,MAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAAA,KAChB,CAAA;AAEA,IAAM,MAAA,OAAA,GAAU,CAAC,MAA4B,KAAA;AAC3C,MAAM,MAAA,KAAA,GAAQ,SAAU,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AACvC,MAAA,MAAM,MAA2B,EAAC,CAAA;AAClC,MAAmB,kBAAA,CAAA,KAAA,CAAM,QAAQ,CAAQ,IAAA,KAAA;AACvC,QAAA,MAAM,IAAI,IAAK,CAAA,GAAA,CAAA;AACf,QAAA,GAAA,CAAI,CAAC,CAAI,GAAA,cAAA,CAAe,KAAM,CAAA,CAAC,GAAG,IAAI,CAAA,CAAA;AAAA,OACvC,CAAA,CAAA;AACD,MAAA,KAAA,CAAM,gBAAgB,GAAG,CAAA,CAAA;AACzB,MAAA,KAAA,CAAM,eAAe,EAAE,GAAG,MAAQ,EAAA,QAAA,EAAU,KAAK,CAAA,CAAA;AAAA,KACnD,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAO,GAAA,KAAA;AACL,QAAM,MAAA,KAAA,GAAQ,UAAU,GAAG,CAAA,CAAA;AAE3B,QAAA,MAAM,GAA2B,GAAA,SAAA,CAAU,kBAAmB,CAAA,KAAA,EAAO,KAAK,CAAA,CAAA;AAO1E,QAAI,IAAA,IAAA,CAAK,UAAU,GAAG,CAAA,KAAM,KAAK,SAAU,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AAC5D,UAAW,UAAA,CAAA,KAAA,GAAQ,UAAU,GAAG,CAAA,CAAA;AAAA,SAClC;AACA,QAAI,IAAA,GAAA,CAAI,UAAU,CAAG,EAAA;AACnB,UAAW,UAAA,CAAA,KAAA,GAAQ,UAAU,GAAG,CAAA,CAAA;AAChC,UAAI,GAAA,CAAA,KAAA,EAAA,CAAA;AAAA,SACN;AAAA,OACF;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
[
|
|
384
|
-
|
|
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
|
-
|
|
392
|
-
}, null, 8,
|
|
393
|
-
]
|
|
394
|
-
|
|
395
|
-
|
|
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 <
|
|
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":";;;;;;;;;;;;;;;;AAqJA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AACd,IAAM,MAAA,GAAA,GAAM,gBAAgB,eAAe,CAAA,CAAA;AAC3C,IAAA,MAAM,GAAM,GAAA,GAAA,CAAI,KAAM,CAAA,MAAA,IAAU,EAAE,CAAA,CAAA;AAClC,IAAA,MAAM,MAAS,GAAA,GAAA,CAAI,KAAM,CAAA,MAAA,IAAU,EAAE,CAAA,CAAA;AACrC,IAAM,MAAA,IAAA,GAAO,IAAI,KAAK,CAAA,CAAA;AACtB,IAAM,MAAA,aAAA,GAAgB,IAAI,EAAE,CAAA,CAAA;AAC5B,IAAA,MAAM,UAAU,GAAuB,EAAA,CAAA;AACvC,IAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AACb,IAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AAGb,IAAA,SAAS,mBAAmB,IAAY,EAAA;AACtC,MAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA,CAAA;AAC9B,MAAA,MAAA,CAAO,cAAc,IAAI,CAAA,CAAA;AACzB,MAAA,GAAA,CAAI,KAAQ,GAAA,EAAA,CAAA;AACZ,MAAA,aAAA,CAAc,KAAQ,GAAA,EAAA,CAAA;AACtB,MAAO,MAAA,CAAA,MAAA,GAAS,SAAU,CAAG,EAAA;AAC3B,QAAI,GAAA,CAAA,KAAA,GAAS,CAAE,CAAA,MAAA,EAAQ,MAAqB,IAAA,EAAA,CAAA;AAAA,OAE9C,CAAA;AACA,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AACA,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,KACf;AACA,IAAS,SAAA,aAAA,CAAc,EAAE,SAAA,EAA4B,EAAA;AACnD,MAAA,aAAA,CAAc,KAAQ,GAAA,SAAA,CAAA;AAAA,KACxB;AAEA,IAAA,SAAS,YAAY,eAA0B,EAAA;AAC7C,MAAA,OAAA,CAAQ,KAAQ,GAAA,eAAA,CAAA;AAAA,KAClB;AACA,IAAS,SAAA,cAAA,CAAe,OAAe,GAAc,EAAA;AACnD,MAAA,IAAI,UAAU,QAAU,EAAA;AACtB,QAAS,MAAA,GAAA,GAAA,GAAM,MAAW,KAAA,CAAA,CAAA,GAAK,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OACrC;AACA,MAAA,IAAI,UAAU,QAAU,EAAA;AACtB,QAAS,MAAA,GAAA,GAAA,GAAM,MAAW,KAAA,CAAA,CAAA,GAAK,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OACrC;AACA,MAAS,OAAA,EAAA,KAAA,GAAQ,KAAK,CAAA,GAAI,GAAG,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAA,eAAe,QAAW,GAAA;AACxB,MAAM,MAAA,IAAA,GAAO,aAAc,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,MAAA,KAAA,CAAM,WAAW,EAAE,IAAA,EAAM,aAAe,EAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAC7D,MAAA,MAAA,CAAO,QAAQ,aAAc,CAAA,KAAA,CAAA;AAC7B,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AAAA,KACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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,
|
|
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,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";
|
|
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 {
|
|
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
|
-
() =>
|
|
53
|
-
(
|
|
54
|
+
() => props.data,
|
|
55
|
+
(newData) => {
|
|
56
|
+
let list = [];
|
|
54
57
|
if (newData && newData.length) {
|
|
55
|
-
|
|
58
|
+
list = newData.map((item) => {
|
|
56
59
|
const newItem = { ...item };
|
|
57
60
|
if (newItem.showFormType === "select") {
|
|
58
|
-
if (newItem
|
|
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
|
|
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,
|
|
94
|
+
() => [props.value, props.selectValue],
|
|
98
95
|
([currentValue, selectValue]) => {
|
|
99
|
-
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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");
|