From 969de07fbb431492b02c4e2182bba6e09919bed9 Mon Sep 17 00:00:00 2001 From: "jlj05024111@163.com" Date: Thu, 16 Oct 2025 20:28:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=89=80?= =?UTF-8?q?=E6=9C=89=E7=BC=96=E8=BE=91=E5=99=A8=E5=9C=A8=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E9=80=8F=E4=BC=A0=E6=97=B6=EF=BC=8Cclass?= =?UTF-8?q?=E5=92=8Cstyle=E5=B1=9E=E6=80=A7=E4=B8=8D=E5=BE=80=E4=B8=8B?= =?UTF-8?q?=E9=80=8F=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + src/common/carousel/carousel.tsx | 4 ++-- src/common/date-range-picker/date-range-picker.tsx | 4 ++-- .../check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx | 3 ++- src/editor/check-box/ibiz-checkbox/ibiz-checkbox.tsx | 3 ++- src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx | 3 ++- src/editor/rate/ibiz-rate/ibiz-rate.tsx | 3 ++- src/editor/slider/ibiz-slider/ibiz-slider.tsx | 5 +++-- src/editor/stepper/ibiz-stepper/ibiz-stepper.tsx | 3 ++- src/editor/switch/ibiz-switch/ibiz-switch.tsx | 3 ++- src/editor/text-box/ibiz-input-number/ibiz-input-number.tsx | 3 ++- src/editor/text-box/input/input.tsx | 3 ++- src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx | 3 ++- .../upload/ibiz-image-cropping/ibiz-image-cropping.tsx | 4 +++- src/editor/upload/ibiz-image-select/ibiz-image-select.tsx | 5 +++-- src/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx | 4 +++- 16 files changed, 35 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d93ed3d04..f84eebf9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ ### Change +- 更新所有编辑器在进行属性透传时,class和style属性不往下透传 - 卡片部件样式调整,高度撑满视图内容 ## [0.7.41-alpha.19] - 2025-10-16 diff --git a/src/common/carousel/carousel.tsx b/src/common/carousel/carousel.tsx index 01170ab06..68cb7d133 100644 --- a/src/common/carousel/carousel.tsx +++ b/src/common/carousel/carousel.tsx @@ -1,5 +1,5 @@ import { defineComponent, PropType } from 'vue'; -import { useNamespace } from '@ibiz-template/vue3-util'; +import { useNamespace, useFilterAttribute } from '@ibiz-template/vue3-util'; import './carousel.scss'; import { ISysImage } from '@ibiz/model-core'; import { IIcon } from '@ibiz-template/runtime'; @@ -49,7 +49,7 @@ export const IBizCarousel = defineComponent({ lazy-render show-indicators={this.showIndicators} touchable={this.touchable} - {...this.attrs} + {...useFilterAttribute(this.$attrs)} > {this.images && this.images.map(image => { diff --git a/src/common/date-range-picker/date-range-picker.tsx b/src/common/date-range-picker/date-range-picker.tsx index 0c7e4de11..a20a52a04 100644 --- a/src/common/date-range-picker/date-range-picker.tsx +++ b/src/common/date-range-picker/date-range-picker.tsx @@ -10,7 +10,7 @@ import { ref, watch, } from 'vue'; -import { useNamespace } from '@ibiz-template/vue3-util'; +import { useNamespace, useFilterAttribute } from '@ibiz-template/vue3-util'; import dayjs from 'dayjs'; import './date-range-picker.scss'; import { RangePicker } from './components/range-picker/range-picker'; @@ -421,7 +421,7 @@ export const IBizDateRangeCalendar = defineComponent({ max-date={this.maxDate} onSelect={this.onSelect} onConfirm={this.onConfirm} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {{ title: () => { diff --git a/src/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx b/src/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx index 87ae280e4..b59814849 100644 --- a/src/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx +++ b/src/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx @@ -4,6 +4,7 @@ import { getEditorEmits, useFocusAndBlur, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import { isNil, equals } from 'ramda'; import './ibiz-checkbox-list.scss'; @@ -173,7 +174,7 @@ export const IBizCheckboxList = defineComponent({ direction='horizontal' v-model={this.selectArray} onChange={this.onSelectArrayChange} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {this.items.map((item, index: number) => ( ); diff --git a/src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx b/src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx index 74500bd66..a4ff5ab95 100644 --- a/src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx +++ b/src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx @@ -4,6 +4,7 @@ import { getRadioProps, useFocusAndBlur, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-radio.scss'; import { RadioButtonListEditorController } from '../radio-button-list.controller'; @@ -92,7 +93,7 @@ export const IBizRadio = defineComponent({ class={this.ns.e('group')} v-model={this.currentVal} direction='horizontal' - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {this.items.map((_item, index: number) => ( ); diff --git a/src/editor/slider/ibiz-slider/ibiz-slider.tsx b/src/editor/slider/ibiz-slider/ibiz-slider.tsx index eeac4893a..642ebf690 100644 --- a/src/editor/slider/ibiz-slider/ibiz-slider.tsx +++ b/src/editor/slider/ibiz-slider/ibiz-slider.tsx @@ -4,6 +4,7 @@ import { getSliderProps, useFocusAndBlur, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import { toNumber } from 'lodash-es'; import { SliderEditorController } from '../slider-editor.controller'; @@ -200,7 +201,7 @@ export const IBizSlider = defineComponent({ min={this.min} range={this.range} onChange={this.handleChange} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {{ button: () => { @@ -236,7 +237,7 @@ export const IBizSlider = defineComponent({ size={this.circleSize} // 显示直径 layer-color='lightgray' stroke-width='100' - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {{ default: () => { diff --git a/src/editor/stepper/ibiz-stepper/ibiz-stepper.tsx b/src/editor/stepper/ibiz-stepper/ibiz-stepper.tsx index c7e2dc3d5..5fbbe25ba 100644 --- a/src/editor/stepper/ibiz-stepper/ibiz-stepper.tsx +++ b/src/editor/stepper/ibiz-stepper/ibiz-stepper.tsx @@ -3,6 +3,7 @@ import { getEditorEmits, getStepperProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import { toNumber } from 'lodash-es'; import { StepperEditorController } from '../stepper-editor.controller'; @@ -134,7 +135,7 @@ export const IBizStepper = defineComponent({ onChange={this.handleChange} onFocus={this.onFocus} onBlur={this.onBlur} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} >, ]; } diff --git a/src/editor/switch/ibiz-switch/ibiz-switch.tsx b/src/editor/switch/ibiz-switch/ibiz-switch.tsx index 825dff31a..f88a9a444 100644 --- a/src/editor/switch/ibiz-switch/ibiz-switch.tsx +++ b/src/editor/switch/ibiz-switch/ibiz-switch.tsx @@ -4,6 +4,7 @@ import { getSwitchProps, useFocusAndBlur, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-switch.scss'; import { SwitchEditorController } from '../switch-editor.controller'; @@ -66,7 +67,7 @@ export const IBizSwitch = defineComponent({ v-model={this.currentVal} disabled={this.disabled || this.readonly} onChange={this.handleChange} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > ); diff --git a/src/editor/text-box/ibiz-input-number/ibiz-input-number.tsx b/src/editor/text-box/ibiz-input-number/ibiz-input-number.tsx index 6eb42ecd3..14fba590e 100644 --- a/src/editor/text-box/ibiz-input-number/ibiz-input-number.tsx +++ b/src/editor/text-box/ibiz-input-number/ibiz-input-number.tsx @@ -3,6 +3,7 @@ import { getEditorEmits, getInputNumberProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-input-number.scss'; import { floor } from 'lodash-es'; @@ -118,7 +119,7 @@ export const IBizInputNumber = defineComponent({ onFocus={this.onFocus} onBlur={this.onBlur} onInput={this.handleChange} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} >, unitName && {unitName}, ]; diff --git a/src/editor/text-box/input/input.tsx b/src/editor/text-box/input/input.tsx index 206aad439..b402c6b51 100644 --- a/src/editor/text-box/input/input.tsx +++ b/src/editor/text-box/input/input.tsx @@ -5,6 +5,7 @@ import { getEditorEmits, getInputProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './input.scss'; import { TextBoxEditorController } from '../text-box-editor.controller'; @@ -221,7 +222,7 @@ export const IBizInput = defineComponent({ autocomplete='new-password' clearable onClear={this.onClear} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {slots} 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 822631b4a..3c6b772c9 100644 --- a/src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx +++ b/src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx @@ -3,6 +3,7 @@ import { getEditorEmits, getUploadProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-file-upload.scss'; import { useVanUpload } from '../use/use-van-upload'; @@ -119,7 +120,7 @@ export const IBizFileUpload = defineComponent({ before-read={this.beforeUpload} after-read={this.afterRead} before-delete={this.onRemove} - {...this.$attrs} + {...useFilterAttribute(this.$attrs)} > {{ default: () => { 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 46a4dfc4f..79cb4e393 100644 --- a/src/editor/upload/ibiz-image-cropping/ibiz-image-cropping.tsx +++ b/src/editor/upload/ibiz-image-cropping/ibiz-image-cropping.tsx @@ -4,6 +4,7 @@ import { getEditorEmits, getUploadProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-image-cropping.scss'; import { showImagePreview } from 'vant'; @@ -153,6 +154,7 @@ export const IBizImageCropping = defineComponent({
{{ 'preview-cover': (file: IData) => { diff --git a/src/editor/upload/ibiz-image-select/ibiz-image-select.tsx b/src/editor/upload/ibiz-image-select/ibiz-image-select.tsx index 69eea0d0f..79e89b9be 100644 --- a/src/editor/upload/ibiz-image-select/ibiz-image-select.tsx +++ b/src/editor/upload/ibiz-image-select/ibiz-image-select.tsx @@ -4,6 +4,7 @@ import { getEditorEmits, getUploadProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-image-select.scss'; import { showImagePreview } from 'vant'; @@ -75,7 +76,7 @@ export const IBizImageSelect = defineComponent({ }, render() { return ( -
+
{{ 'preview-cover': (file: IData) => { diff --git a/src/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx b/src/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx index 4c2c05d80..97de8407b 100644 --- a/src/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx +++ b/src/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx @@ -4,6 +4,7 @@ import { getEditorEmits, getUploadProps, useNamespace, + useFilterAttribute, } from '@ibiz-template/vue3-util'; import './ibiz-image-upload.scss'; import { showImagePreview } from 'vant'; @@ -99,6 +100,7 @@ export const IBizImageUpload = defineComponent({
{{ 'preview-cover': (file: IData) => { -- Gitee From 06964689dcd59681d3dd5da533cd201ac36fddfc Mon Sep 17 00:00:00 2001 From: "jlj05024111@163.com" Date: Thu, 16 Oct 2025 20:52:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=86=85=E5=AE=B9=E4=B8=BA=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=97=B6=EF=BC=8C=E9=85=8D=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=9C=AA=E8=AF=86=E5=88=AB=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B=20=20=E4=BF=AE=E5=A4=8D=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E7=BB=84=E4=BB=B6=E6=9C=AA=E7=BB=98=E5=88=B6?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ src/common/rawitem/rawitem.tsx | 25 ++++++++++++++++++++++++- src/panel-component/index.ts | 2 ++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f84eebf9e..bcc9425c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Added +- 新增数组编辑器 - 多数据、卡片支持simple模式 - 分页导航面板支持计数器、支持左侧、右侧、下方布局 - 新增注册多数据容器(仅数据)、传送占位组件 @@ -18,6 +19,11 @@ - 更新所有编辑器在进行属性透传时,class和style属性不往下透传 - 卡片部件样式调整,高度撑满视图内容 +### Fixed + +- 修复面板直接内容为视频类型时,配置的参数未识别的问题 +- 修复页面标题组件未绘制的问题 + ## [0.7.41-alpha.19] - 2025-10-16 ### Added diff --git a/src/common/rawitem/rawitem.tsx b/src/common/rawitem/rawitem.tsx index 170af5d9d..66983e0f2 100644 --- a/src/common/rawitem/rawitem.tsx +++ b/src/common/rawitem/rawitem.tsx @@ -5,6 +5,7 @@ import { IHtmlItem, IPanelRawItem, IRawItemContainer, + IRawItemParam, ITextItem, IUnkownItem, } from '@ibiz/model-core'; @@ -93,6 +94,22 @@ export const IBizRawItem = defineComponent({ // 文本类型显示值 const rawItemText: Ref = ref(''); + // 获取直接内容参数 + const getParamsValue = (key: string): string | undefined => { + let value: string | undefined; + const params: IRawItemParam[] | undefined = rawItem?.rawItemParams; + if (!params) { + ibiz.log.error(`未配置视频播放参数:${key}}`); + return undefined; + } + params.forEach((item: IRawItemParam) => { + if (item.key === key) { + value = item.value; + } + }); + return value; + }; + // 转换各类值操作 const convertValue = () => { // 图片类型 @@ -149,7 +166,13 @@ export const IBizRawItem = defineComponent({ rawConfig = func(); switch (rawItemType.value) { case 'VIDEO': - Object.assign(playerParams.value, rawConfig); + Object.assign(playerParams.value, rawConfig, { + path: getParamsValue('path'), + autoplay: getParamsValue('autoplay'), + mute: getParamsValue('mute'), + replay: getParamsValue('replay'), + showcontrols: getParamsValue('showcontrols'), + }); break; case 'DIVIDER': Object.assign(dividerParams.value, rawConfig); diff --git a/src/panel-component/index.ts b/src/panel-component/index.ts index 4b3819d11..a6caa2921 100644 --- a/src/panel-component/index.ts +++ b/src/panel-component/index.ts @@ -16,6 +16,7 @@ import { IBizPanelItemRender, IBizAuthWxmpQrcode, IBizTeleportPlaceholder, + IBizPanelCtrlViewPageCaption, } from '@ibiz-template/vue3-util'; import IBizViewContentPanelContainer from './view-content-panel-container'; import IBizViewHeaderPanelContainer from './view-header-panel-container'; @@ -37,6 +38,7 @@ import IBizIndexBlankPlaceholder from './index-blank-placeholder'; export const IBizPanelComponents = { install: (v: App): void => { + v.use(IBizPanelCtrlViewPageCaption); v.use(IBizPanelContainer); v.use(IBizPanelCtrlPos); v.use(IBizNavPosIndex); -- Gitee