From cc70eb27d6f36dacb1893fc0e5b3d618daee3495 Mon Sep 17 00:00:00 2001 From: zhf <1204297681@qq.com> Date: Wed, 9 Jul 2025 22:13:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0=E6=8F=8F=E8=BF=B0=E3=80=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8=E5=8F=82=E6=95=B0=E9=80=82=E9=85=8D=E5=B0=8F?= =?UTF-8?q?=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/editor/array/ibiz-array/ibiz-array.tsx | 25 +++++++++++----- .../color-picker-editor.controller.ts | 5 +++- .../ibiz-color-picker/ibiz-color-picker.tsx | 27 ++++++++++------- .../data-picker/ibiz-mpicker/ibiz-mpicker.tsx | 10 +++++-- .../ibiz-picker-dropdown.tsx | 1 + .../ibiz-picker-select-view.tsx | 12 ++++++-- .../ibiz-transfer-picker.tsx | 6 +++- .../ibiz-number-range-picker.tsx | 17 +++++++---- .../ibiz-file-upload/ibiz-file-upload.tsx | 10 +++---- .../ibiz-image-cropping.tsx | 25 +++++++++++----- src/editor/upload/upload-editor.controller.ts | 30 +++++++++++++++++++ src/editor/upload/use/use-iview-upload.ts | 9 +++++- 12 files changed, 134 insertions(+), 43 deletions(-) diff --git a/src/editor/array/ibiz-array/ibiz-array.tsx b/src/editor/array/ibiz-array/ibiz-array.tsx index 7a3deb678..f4773073a 100644 --- a/src/editor/array/ibiz-array/ibiz-array.tsx +++ b/src/editor/array/ibiz-array/ibiz-array.tsx @@ -14,15 +14,15 @@ import './ibiz-array.scss'; * * @description 使用el-input组件封装,提供数组数据的输入能力,其呈现样式为多个携带自增自减按钮的输入框。支持编辑器类型包含:`数组编辑器` * @primary - * @editorparams {"name":"editorStyle","parameterType":"'default' | 'url' | 'img'","defaultvalue":"'default'","description":"当设置为 'url' 时,输入框会显示内容的前缀和后缀;设置为 'img' 时,鼠标移入输入框的提示信息将以图片形式展示"} - * @editorparams {"name":"size","parameterType":"'large' | 'default' | 'small'","defaultvalue":"'default'","description":"el-input组件属性"} + * @editorparams {"name":"editorstyle","parameterType":"'default' | 'url' | 'img'","defaultvalue":"'default'","description":"当设置为 'url' 时,输入框会显示内容的前缀和后缀,鼠标移入输入框的提示信息将以链接形式展示;设置为 'img' 时,鼠标移入输入框的提示信息将以图片形式展示"} + * @editorparams {"name":"size","parameterType":"'large' | 'default' | 'small'","defaultvalue":"'default'","description":"el-input组件的size属性"} * @editorparams {"name":"limit","parameterType":"number","defaultvalue":0,"description":"默认不限制输入项数量,若设置了非零的限制数,当输入项数量超出该限制时,自增按钮将隐藏"} - * @editorparams {"name":"maxLength","parameterType":"number","description":"设置单个输入框可输入内容的最大长度"} - * @editorparams {"name":"showWordLimit","parameterType":"boolean","defaultvalue":false,"description":"是否显示统计字数,仅在 editorStyle 参数设置为 'url' 并且数据类型为 'text' 时生效"} - * @editorparams {"name":"prepend","parameterType":"string","description":"该配置内容会显示在每个输入框的头部,仅在 editorStyle 参数设置为 'url' 时生效"} - * @editorparams {"name":"append","parameterType":"string","description":"该配置内容会显示在每个输入框的尾部,仅在 editorStyle 参数设置为 'url' 时生效"} - * @editorparams {"name":"target","parameterType":"'_blank' | '_parent' | '_self' | '_top'","defaultvalue":"'_blank'","description":"该参数用于控制输入框移入时文字提示链接的打开方式,仅在 editorStyle 参数不为 'img' 时生效"} - * @editorparams {"name":"triggerMode","parameterType":"'blur' |' input'","defaultvalue":"'blur'","description":"指定编辑器触发 `emit` 事件的模式,input: 输入框值变更时触发emit,blur:输入框blur时触发blur"} + * @editorparams {"name":"maxlength","parameterType":"number","description":"设置单个输入框可输入内容的最大长度,仅在 editorstyle 参数设置为 'url' 时生效"} + * @editorparams {"name":"showwordlimit","parameterType":"boolean","defaultvalue":false,"description":"是否显示字数限制,仅在 editorstyle 参数设置为 'url',并且数据类型为 'text' 时生效"} + * @editorparams {"name":"prepend","parameterType":"string","description":"该配置内容会显示在每个输入框的头部,仅在 editorstyle 参数设置为 'url' 时生效"} + * @editorparams {"name":"append","parameterType":"string","description":"该配置内容会显示在每个输入框的尾部,仅在 editorstyle 参数设置为 'url' 时生效"} + * @editorparams {"name":"target","parameterType":"'_blank' | '_parent' | '_self' | '_top'","defaultvalue":"'_blank'","description":"该参数用于控制文字提示链接的打开方式,仅在 editorstyle 参数设置为 'url' 时生效"} + * @editorparams {"name":"triggermode","parameterType":"'blur' |' input'","defaultvalue":"'blur'","description":"指定编辑器触发 `change` 值变更事件的模式,input: 输入框输入时触发事件,blur:输入框blur时触发事件"} * @ignoreprops autoFocus | overflowMode * @ignoreemits infoTextChange */ @@ -60,6 +60,9 @@ export const IBizArray = defineComponent({ if (editorModel.editorParams.editorStyle) { editorStyle = editorModel.editorParams.editorStyle; } + if (editorModel.editorParams.editorstyle) { + editorStyle = editorModel.editorParams.editorstyle; + } if (editorModel.editorParams.size) { size = editorModel.editorParams.size; } @@ -69,9 +72,15 @@ export const IBizArray = defineComponent({ if (editorModel.editorParams.maxLength) { maxLength = toNumber(editorModel.editorParams.maxLength); } + if (editorModel.editorParams.maxlength) { + maxLength = toNumber(editorModel.editorParams.maxlength); + } if (editorModel.editorParams.showWordLimit) { showWordLimit = c.toBoolean(editorModel.editorParams.showWordLimit); } + if (editorModel.editorParams.showwordlimit) { + showWordLimit = c.toBoolean(editorModel.editorParams.showwordlimit); + } if (editorModel.editorParams.prepend) { prepend = editorModel.editorParams.prepend; } diff --git a/src/editor/color-picker/color-picker-editor.controller.ts b/src/editor/color-picker/color-picker-editor.controller.ts index 28bb89699..13bbaa49a 100644 --- a/src/editor/color-picker/color-picker-editor.controller.ts +++ b/src/editor/color-picker/color-picker-editor.controller.ts @@ -20,9 +20,12 @@ export class ColorPickerEditorController extends EditorController { protected async onInit(): Promise { await super.onInit(); - const { defaultVal } = this.editorParams; + const { defaultVal, defaultval } = this.editorParams; if (defaultVal) { this.defaultVal = JSON.parse(defaultVal); } + if (defaultval) { + this.defaultVal = JSON.parse(defaultval); + } } } diff --git a/src/editor/color-picker/ibiz-color-picker/ibiz-color-picker.tsx b/src/editor/color-picker/ibiz-color-picker/ibiz-color-picker.tsx index fa3ca1c9c..4690c6dce 100644 --- a/src/editor/color-picker/ibiz-color-picker/ibiz-color-picker.tsx +++ b/src/editor/color-picker/ibiz-color-picker/ibiz-color-picker.tsx @@ -14,12 +14,12 @@ import './ibiz-color-picker.scss'; * * @description 用于颜色选择,支持单选和多选模式,根据需求选择一个或多个颜色。支持编辑器类型包含:`颜色选择器` * @primary - * @editorparams {"name":"defaultVal","parameterType":"string[]","defaultvalue":[],"description": "表示在颜色选择器初始化时默认呈现的颜色数组。当编辑器的自定义模式 `CUSTOM` 值为 true 时,该默认值生效,会按照此数组显示默认颜色"} - * @editorparams {"name":"MULTIPLE","parameterType":"boolean","defaultvalue":false,"description": "该参数用于控制颜色选择器是否支持多选功能。默认情况下为单选模式,当该值设置为 true 时,启用多选模式,用户可以选择多个颜色"} - * @editorparams {"name":"CUSTOM","parameterType":"boolean","defaultvalue":false,"description": "该参数决定颜色选择器是否处于自定义模式。默认不启用自定义模式,当值为 true 时,启用自定义模式,此时可以按照自定义的方式进行颜色选择和设置,例如自定义颜色列表等相关操作"} - * @editorparams {"name":"TYPE","parameterType":"'ITEM' | 'ITEMS'","defaultvalue":"'ITEMS'","description": "用于设置下拉选择的颜色数组的显示类型。当值为 'ITEM' 时,表示下拉选择的颜色数组仅有一个颜色;当值为 'ITEMS' 时,表示下拉选择的颜色数组包含多个颜色"} - * @editorparams {"name":"isHiddenText","parameterType":"boolean","defaultvalue":false,"description": "用于控制是否隐藏颜色选择器中的颜色文本显示。默认情况下不隐藏颜色文本,当该值设置为 true 时,会隐藏颜色文本的显示,仅展示颜色选择相关的组件"} - * @editorparams {"name":"CUSTOMCOLORLIST","parameterType":"string","description": "该参数用于设置自定义的颜色列表值,其格式是一个字符串形式的JSON数组。例如配置示例:`CUSTOMCOLORLIST=[{'text':'颜色名字','value':['#123123','#111222','#333322','#11ff33']}]`,通过此配置可以自定义颜色选择器中显示的颜色选项"} + * @editorparams {"name":"defaultval","parameterType":"string[]","defaultvalue":[],"description": "表示在颜色选择器初始化时默认呈现的颜色数组。当编辑器的自定义模式 `custom` 值为 true 时,该参数生效,会按照此数组显示默认颜色"} + * @editorparams {"name":"multiple","parameterType":"boolean","defaultvalue":false,"description": "该参数用于控制颜色选择器是否支持多选功能。默认情况下为单选模式,当该值设置为 true 时,启用多选模式,用户可以选择多个颜色"} + * @editorparams {"name":"custom","parameterType":"boolean","defaultvalue":false,"description": "该参数决定颜色选择器是否处于自定义模式。默认不启用自定义模式,当值为 true 时,启用自定义模式,此时可以按照自定义的方式进行颜色选择和设置,例如自定义颜色列表等相关操作"} + * @editorparams {"name":"type","parameterType":"'ITEM' | 'ITEMS'","defaultvalue":"'ITEMS'","description": "用于设置下拉选择的颜色数组的显示类型。当值为 'ITEM' 时,表示下拉选择的颜色数组仅有一个颜色;当值为 'ITEMS' 时,表示下拉选择的颜色数组包含多个颜色"} + * @editorparams {"name":"ishiddentext","parameterType":"boolean","defaultvalue":false,"description": "用于控制是否隐藏颜色选择器中的颜色文本。默认情况下不隐藏颜色文本,当该值设置为 true 时,会隐藏颜色文本,仅展示颜色选择相关的组件"} + * @editorparams {"name":"customcolorlist","parameterType":"{text:string;value:string[]}[]","description": "该参数用于设置自定义的颜色列表,其格式是一个对象形式的JSON数组。配置示例:`customcolorlist=[{'text':'颜色名字','value':['#123123','#111222','#333322','#11ff33']}]`,通过此配置可以自定义颜色选择器中显示的颜色选项"} * @ignoreprops autoFocus | overflowMode * @ignoreemits enter | infoTextChange */ @@ -37,20 +37,24 @@ export const IBizColorPicker = defineComponent({ const colorPicker: Ref = ref(null); // 是否多选 - const multiple = c.editorParams?.MULTIPLE === 'true'; + const multiple = + c.editorParams?.MULTIPLE === 'true' || + c.editorParams?.multiple === 'true'; // 是否自定义模式 - const isCustom = c.editorParams?.CUSTOM === 'true'; + const isCustom = + c.editorParams?.CUSTOM === 'true' || c.editorParams?.custom === 'true'; // 设置下拉选择的颜色数组是否仅有一个,TYPE值为ITEM | ITEMS - const type = c.editorParams?.TYPE; + const type = c.editorParams?.TYPE || c.editorParams?.type; // 自定义颜色列表值,这个值格式是一个字符串json数组, /** * 配置示例: * CUSTOMCOLORLIST = [{"text":"颜色名字","value":["#123123","#111222","#333322","#11ff33"]}] */ - const customColorList = c.editorParams?.CUSTOMCOLORLIST || ''; + const customColorList = + c.editorParams?.CUSTOMCOLORLIST || c.editorParams?.customcolorlist || ''; const predefineColors = ref([ '#000000', @@ -214,7 +218,8 @@ export const IBizColorPicker = defineComponent({ show-alpha {...this.$attrs} > - {this.c.editorParams?.isHiddenText === 'true' ? null : ( + {this.c.editorParams?.isHiddenText === 'true' || + this.c.editorParams?.ishiddentext === 'true' ? null : ( {this.currentVal} )} diff --git a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx index 155235e46..6e3e5e1c5 100644 --- a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx +++ b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx @@ -23,7 +23,11 @@ import './ibiz-mpicker.scss'; * * @description 使用el-select组件封装,用于选择多项数据,支持 AC 实时搜索,输入关键词即可从服务器获取数据;通过模态窗口呈现自定义样式的选择界面,解决下拉选择展示、检索及样式的局限。支持编辑器类型包含:`地址框(选择)`、`地址框(支持选择、AC)` * @primary - * @editorparams {"name":"overflowMode","parameterType":"'auto' | 'ellipsis'","defaultvalue":"'auto'","description":"文本超出呈现模式。当参数值值为 'auto' 时,宽度按照内容展开;当参数值为 'ellipsis' 时,若内容超出宽度则会显示省略号"} + * @editorparams {"name":"overflowmode","parameterType":"'auto' | 'ellipsis'","defaultvalue":"'auto'","description":"用于控制该编辑器下拉区域的宽度显示方式。当参数值为 'auto' 时,下拉区域宽度会根据内容自动展开;当参数值为 'ellipsis' 时,下拉区域宽度将与输入框保持一致,若内容超出宽度则会显示省略号,鼠标悬浮在内容上时会出现 tooltip 提示信息"} + * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"} + * @editorparams {"name":"objectidfield","parameterType":"string","description":"值类型为OBJECTS时的对象标识属性"} + * @editorparams {"name":"objectnamefield","parameterType":"string","description":"值类型为OBJECTS时的对象名称属性。也用于控制是否触发下拉区域数据的默认加载,配置时会触发默认加载,不配置时不会触发默认加载"} + * @editorparams {"name":"objectvaluefield","parameterType":"string","description":"值类型为OBJECTS时的对象值属性"} * @ignoreprops overflowMode */ export const IBizMPicker = defineComponent({ @@ -398,7 +402,9 @@ export const IBizMPicker = defineComponent({ }, render() { const overflowMode = - this.c.editorParams.overflowMode || ibiz.config.pickerEditor.overflowMode; + this.c.editorParams.overflowMode || + this.c.editorParams.overflowmode || + ibiz.config.pickerEditor.overflowMode; const isEllipsis = overflowMode === 'ellipsis'; // 编辑态内容 diff --git a/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx b/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx index cacc25f27..df42afbc7 100644 --- a/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx +++ b/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx @@ -28,6 +28,7 @@ import './ibiz-picker-dropdown.scss'; * @description 使用el-select组件封装,用于选择单项数据,仅以下拉列表的方式呈现选择数据。支持编辑器类型包含:`数据选择(下拉)` * @primary * @editorparams {"name":"overflowmode","parameterType":"'auto' | 'ellipsis'","defaultvalue":"'auto'","description":"用于控制该编辑器下拉区域的宽度显示方式。当参数值为 'auto' 时,下拉区域宽度会根据内容自动展开;当参数值为 'ellipsis' 时,下拉区域宽度将与输入框保持一致,若内容超出宽度则会显示省略号,鼠标悬浮在内容上时会出现 tooltip 提示信息"} + * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"} * @editorparams {"name":"objectidfield","parameterType":"string","description":"值类型为OBJECT时的对象标识属性"} * @editorparams {"name":"objectnamefield","parameterType":"string","description":"值类型为OBJECT时的对象名称属性"} * @editorparams {"name":"objectvaluefield","parameterType":"string","description":"值类型为OBJECT时的对象值属性"} diff --git a/src/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.tsx b/src/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.tsx index 14da7f47d..78f32e2e2 100644 --- a/src/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.tsx +++ b/src/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.tsx @@ -26,7 +26,11 @@ import './ibiz-picker-select-view.scss'; * @description 使用el-dropdown,el-input,el-select组件封装,用于以可展开的下拉形式呈现配置的选择界面视图,并且该组件支持打开数据链接视图。支持编辑器类型包含:`数据选择(下拉视图)`、`数据选择(下拉视图、数据链接)` * @primary * @editorparams {"name":"multiple","parameterType":"boolean","defaultvalue":false,"description":"当该参数值设置为 true 时,启用多选模式,允许同时选择多个数据项"} - * @editorparams {"name":"pickupViewHeight","parameterType":"number","defaultvalue":500,"description":"下拉选择视图的高度"} + * @editorparams {"name":"pickupviewheight","parameterType":"number","defaultvalue":500,"description":"下拉选择视图的高度"} + * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"} + * @editorparams {"name":"objectidfield","parameterType":"string","description":"值类型为OBJECT或者OBJECTS时的对象标识属性"} + * @editorparams {"name":"objectnamefield","parameterType":"string","description":"值类型为OBJECT或者OBJECTS时的对象名称属性"} + * @editorparams {"name":"objectvaluefield","parameterType":"string","description":"值类型为OBJECT或者OBJECTS时的对象值属性"} * @ignoreprops overflowMode * @ignoreemits infoTextChange */ @@ -634,7 +638,11 @@ export const IBizPickerSelectView = defineComponent({ params: this.params, viewId: this.c.pickupView.id, style: { - height: `${this.c.editorParams?.pickupViewHeight || 500}px`, + height: `${ + this.c.editorParams?.pickupViewHeight || + this.c.editorParams?.pickupviewheight || + 500 + }px`, width: this.pickViewWidth, }, state: { diff --git a/src/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.tsx b/src/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.tsx index 7c5c33cf7..0df78bbba 100644 --- a/src/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.tsx +++ b/src/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.tsx @@ -27,7 +27,11 @@ import './ibiz-transfer-picker.scss'; * @editorparams {"name":"titles","parameterType":"string[]","defaultvalue":"[\"可选列表\",\"已选列表\"]","description":"用于自定义列表标题,该值为字符串数组。其中下标为 0 的字符串对应穿梭框左侧列表的标题,下标为 1 的字符串对应穿梭框右侧列表的标题"} * @editorparams {"name":"buttontexts","parameterType":"string[]","defaultvalue":"[\"删除\",\"添加\"]","description":"用于自定义按钮显示文字,该值为字符串数组。其中下标为 0 的字符串对应左侧按钮文字,下标为 1 的字符串对应右侧按钮文字"} * @editorparams {"name":"remotesearch","parameterType":"boolean","defaultvalue":"false","description":"是否启用远程过滤搜索功能。左侧列表默认采用本地过滤搜索,若此值为 true,则会开启远程过滤搜索"} - * @ignoreprops autoFocus | overflowMode | controlParams + * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"} + * @editorparams {"name":"objectidfield","parameterType":"string","description":"值类型为OBJECTS时的对象标识属性"} + * @editorparams {"name":"objectnamefield","parameterType":"string","description":"值类型为OBJECTS时的对象名称属性。也用于控制是否触发左侧列表数据的默认加载,配置时会触发默认加载,不配置时不会触发默认加载"} + * @editorparams {"name":"objectvaluefield","parameterType":"string","description":"值类型为OBJECTS时的对象值属性"} + * @ignoreprops autoFocus | overflowMode * @ignoreemits blur | focus | enter */ export const IBizTransferPicker = defineComponent({ diff --git a/src/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.tsx b/src/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.tsx index f6fdf6a0b..1a8443da8 100644 --- a/src/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.tsx +++ b/src/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.tsx @@ -15,11 +15,12 @@ import './ibiz-number-range-picker.scss'; * * @description 使用el-input-number组件封装,用于输入数值范围,如:1~10。支持编辑器类型包含:`数值范围编辑框` * @primary - * @editorparams {"name":"maxvalue","parameterType":"number","defaultvalue":"Infinity","description":"el-input-number组件max属性,设置右侧输入框最大输入值"} - * @editorparams {"name":"minvalue","parameterType":"number","defaultvalue":"Infinity","description":"el-input-number组件min属性,设置左侧输入框最小输入值"} - * @editorparams {"name":"valueSeparator","parameterType":"string","defaultvalue":"'-'","description":"值分割符,是最大值与最小值转为字符串时的分隔符号"} - * @editorparams {"name":"rangeSeparator","parameterType":"string","defaultvalue":"'~'","description":"选择范围时的分隔符,是数值范围组件在呈现时中间位置的分隔符"} - * @editorparams {"name":"triggerMode","parameterType":"'blur' |' input'","defaultvalue":"'blur'","description":"指定编辑器触发 `emit` 事件的模式,input: 输入框值变更时触发emit,blur:输入框blur时触发blur"} + * @editorparams {name:precision,parameterType:number,description:el-input-number组件的precision属性,设置数值精度} + * @editorparams {"name":"maxvalue","parameterType":"number","defaultvalue":"Infinity","description":"el-input-number组件的max属性,设置右侧输入框最大输入值"} + * @editorparams {"name":"minvalue","parameterType":"number","defaultvalue":"-Infinity","description":"el-input-number组件的min属性,设置左侧输入框最小输入值"} + * @editorparams {"name":"valueseparator","parameterType":"string","defaultvalue":"'-'","description":"值分隔符,是最大值与最小值转为字符串时的分隔符号"} + * @editorparams {"name":"rangeseparator","parameterType":"string","defaultvalue":"'~'","description":"选择范围时的分隔符,是数值范围组件在呈现时中间位置的分隔符"} + * @editorparams {"name":"triggermode","parameterType":"'blur' |' input'","defaultvalue":"'blur'","description":"指定编辑器触发 `change` 值变更事件的模式,input: 输入框输入时触发事件,blur:输入框blur时触发事件"} * @ignoreprops autoFocus | overflowMode * @ignoreemits infoTextChange */ @@ -70,9 +71,15 @@ export const IBizNumberRangePicker = defineComponent({ if (editorModel.editorParams.valueSeparator) { valueSeparator = editorModel.editorParams.valueSeparator; } + if (editorModel.editorParams.valueseparator) { + valueSeparator = editorModel.editorParams.valueseparator; + } if (editorModel.editorParams.rangeSeparator) { rangeSeparator = editorModel.editorParams.rangeSeparator; } + if (editorModel.editorParams.rangeseparator) { + rangeSeparator = editorModel.editorParams.rangeseparator; + } } // 关系表单项集合 diff --git a/src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx b/src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx index e34e3c08d..b274ddd0c 100644 --- a/src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx +++ b/src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx @@ -15,11 +15,11 @@ import './ibiz-file-upload.scss'; * * @description 使用el-upload组件封装,用于点击上传文件。支持编辑器类型包含:`文件控件`、`文件控件(单项)` * @primary - * @editorparams {"name":"isDrag","parameterType":"boolean","defaultvalue":false,"description":"el-upload组件drag属性"} - * @editorparams {"name":"multiple","parameterType":"boolean","defaultvalue":true,"description":"el-upload组件属性"} - * @editorparams {"name":"accept","parameterType":"string","description":"el-upload组件属性"} - * @editorparams {"name":"uploadParams","parameterType":"string","description":"图片或文件上传时,用于计算上传路径"} - * @editorparams {"name":"exportParams","parameterType":"string","description":"图片或文件下载时,用于计算下载路径"} + * @editorparams {"name":"isdrag","parameterType":"boolean","defaultvalue":false,"description":"el-upload组件的drag属性"} + * @editorparams {"name":"multiple","parameterType":"boolean","defaultvalue":true,"description":"el-upload组件的multiple属性,类型为文件控件(单项)时默认值为false"} + * @editorparams {"name":"accept","parameterType":"string","description":"el-upload组件的accept属性"} + * @editorparams {"name":"uploadparams","parameterType":"string","description":"上传参数,图片或文件上传时,用于计算上传路径"} + * @editorparams {"name":"exportparams","parameterType":"string","description":"下载参数,图片或文件下载时,用于计算下载路径"} * @editorparams {"name":"osscat","parameterType":"string","description":"用于计算上传和下载路径的OSS参数"} * @ignoreprops autoFocus | overflowMode * @ignoreemits blur | focus | enter | infoTextChange diff --git a/src/editor/upload/ibiz-image-cropping/ibiz-image-cropping.tsx b/src/editor/upload/ibiz-image-cropping/ibiz-image-cropping.tsx index 7d0d63984..8b7f42de4 100644 --- a/src/editor/upload/ibiz-image-cropping/ibiz-image-cropping.tsx +++ b/src/editor/upload/ibiz-image-cropping/ibiz-image-cropping.tsx @@ -15,15 +15,16 @@ import './ibiz-image-cropping.scss'; /** * 图片裁剪上传 * - * @description 使用el-upload,el-image-viewer组件封装,用于对图片进行裁剪处理后再执行上传操作。支持编辑器样式为`裁剪上传`,基于`图片控件`编辑器进行扩展 + * @description 使用el-upload,el-image-viewer组件封装,用于对图片进行裁剪处理后再执行上传操作。基于`图片控件`编辑器进行扩展,编辑器样式代码名称为:PICTURE_CROPPING * @primary - * @editorparams {"name":"cropWidth","parameterType":"number","defaultvalue":400,"description":"设置图片截取区域的宽度"} - * @editorparams {"name":"cropHeight","parameterType":"number","defaultvalue":200,"description":"设置图片截取区域的高度"} - * @editorparams {"name":"autoPreview","parameterType":"boolean","defaultvalue":false,"description":"当输入参数 `readonly` 为 true 并且该参数为 true 时。加载完图片后将自动调整图片大小达到预览态,且鼠标移入后不显示图片处理工具栏"} - * @editorparams {"name":"accept","parameterType":"string","description":"el-upload组件属性"} - * @editorparams {"name":"uploadParams","parameterType":"string","description":"图片或文件上传时,用于计算上传路径"} - * @editorparams {"name":"exportParams","parameterType":"string","description":"图片或文件下载时,用于计算下载路径"} + * @editorparams {"name":"cropwidth","parameterType":"number","defaultvalue":400,"description":"设置图片截取区域的宽度"} + * @editorparams {"name":"cropheight","parameterType":"number","defaultvalue":200,"description":"设置图片截取区域的高度"} + * @editorparams {"name":"autopreview","parameterType":"boolean","defaultvalue":false,"description":"当输入参数 `readonly` 为 true 并且该参数为 true 时。加载完图片后将自动调整图片大小达到预览态,且鼠标移入后不显示图片处理工具栏"} + * @editorparams {"name":"accept","parameterType":"string","description":"el-upload组件的accept属性"} + * @editorparams {"name":"uploadparams","parameterType":"string","description":"上传参数,图片上传时,用于计算上传路径"} + * @editorparams {"name":"exportparams","parameterType":"string","description":"下载参数,图片下载时,用于计算下载路径"} * @editorparams {"name":"osscat","parameterType":"string","description":"用于计算上传和下载路径的OSS参数"} + * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"} * @ignoreprops autoFocus | overflowMode * @ignoreemits blur | focus | enter | infoTextChange */ @@ -76,11 +77,21 @@ export const IBizImageCropping = defineComponent({ cropareaWidth: Number(c.editorParams.cropWidth), }); } + if (c.editorParams?.cropwidth) { + Object.assign(cropRect, { + cropareaWidth: Number(c.editorParams.cropwidth), + }); + } if (c.editorParams?.cropHeight) { Object.assign(cropRect, { cropareaHeight: Number(c.editorParams.cropHeight), }); } + if (c.editorParams?.cropheight) { + Object.assign(cropRect, { + cropareaHeight: Number(c.editorParams.cropheight), + }); + } // 本地准备裁剪上传的文件 const tempFileList: Ref = ref(); diff --git a/src/editor/upload/upload-editor.controller.ts b/src/editor/upload/upload-editor.controller.ts index 21c0a7289..41b35d87a 100644 --- a/src/editor/upload/upload-editor.controller.ts +++ b/src/editor/upload/upload-editor.controller.ts @@ -79,13 +79,23 @@ export class UploadEditorController extends EditorController { uploadParams, exportParams, autoPreview, + isdrag, + uploadparams, + exportparams, + autopreview, } = this.editorParams; if (isDrag) { this.isDrag = Boolean(isDrag); } + if (isdrag) { + this.isDrag = Boolean(isdrag); + } if (autoPreview) { this.autoPreview = autoPreview; } + if (autopreview) { + this.autoPreview = autopreview; + } if (multiple) { this.multiple = Boolean(multiple); } @@ -105,6 +115,16 @@ export class UploadEditorController extends EditorController { ); } } + if (uploadparams) { + try { + this.uploadParams = JSON.parse(uploadparams); + } catch (error) { + throw new RuntimeModelError( + uploadparams, + ibiz.i18n.t('editor.upload.uploadJsonFormatErr'), + ); + } + } if (exportParams) { try { this.exportParams = JSON.parse(exportParams); @@ -115,6 +135,16 @@ export class UploadEditorController extends EditorController { ); } } + if (exportparams) { + try { + this.exportParams = JSON.parse(exportparams); + } catch (error) { + throw new RuntimeModelError( + exportparams, + ibiz.i18n.t('editor.upload.exportJsonFormatErr'), + ); + } + } } } } diff --git a/src/editor/upload/use/use-iview-upload.ts b/src/editor/upload/use/use-iview-upload.ts index 53a5f1d61..e1cbbf40b 100644 --- a/src/editor/upload/use/use-iview-upload.ts +++ b/src/editor/upload/use/use-iview-upload.ts @@ -82,11 +82,18 @@ export function useIViewUpload( () => props.data, newVal => { if (newVal) { + const editorParams = { ...c.editorParams }; + if (editorParams.uploadparams) { + editorParams.uploadParams = JSON.parse(editorParams.uploadparams); + } + if (editorParams.exportparams) { + editorParams.exportParams = JSON.parse(editorParams.exportparams); + } const urls = ibiz.util.file.calcFileUpDownUrl( c.context, c.params, newVal, - c.editorParams, + editorParams, ); uploadUrl.value = urls.uploadUrl; downloadUrl.value = urls.downloadUrl; -- Gitee