From 5c1b1069eebc69acc8cb1c4d56c879a6a890171a Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Fri, 15 Aug 2025 22:02:25 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0=E9=97=A8?= =?UTF-8?q?=E6=88=B7=E8=8F=9C=E5=8D=95=E5=AE=B9=E5=99=A8=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9A=84=E8=BE=B9=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menu-portlet/app-menu-portlet/app-menu-portlet.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.scss b/src/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.scss index da4f1feb..7f2fd70b 100644 --- a/src/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.scss +++ b/src/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.scss @@ -3,11 +3,14 @@ $control-appmenu-portlet: ( 'border-color': getCssVar(color, primary), 'bg-color': getCssVar('color', 'bg', 0), 'padding': getCssVar(spacing, base-tight), + 'content-padding': getCssVar(spacing, tight) getCssVar(spacing, base), ); @include b(control-appmenu-portlet) { @include set-component-css-var('control-appmenu-portlet', $control-appmenu-portlet); + padding: getCssVar('control-appmenu-portlet', 'content-padding'); + @include e(content) { display: flex; flex-wrap: wrap; -- Gitee From 946616b50af748d847923645484ce05064eee4c6 Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Fri, 15 Aug 2025 22:04:16 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0Markdown?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=A1=86=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx b/src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx index ca8c7d77..eccc1568 100644 --- a/src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx +++ b/src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx @@ -27,6 +27,9 @@ import './ibiz-markdown-editor.scss'; * @primary * @editorparams {"name":"customtheme","parameterType":"'light' | 'dark'","description":"设置Markdown主题,未配置时跟随应用主题"} * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"} + * @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 */ -- Gitee From e0f81e2ced5108000e12aa0c5b51fb0230ac1095 Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Fri, 15 Aug 2025 22:16:47 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0=E6=A8=A1?= =?UTF-8?q?=E6=80=81=E5=8F=AF=E8=B0=83=E7=94=A8=E8=A7=86=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=87=E6=8D=A2=E8=83=BD=E5=8A=9B=EF=BC=8C?= =?UTF-8?q?modaloption=20=E5=8F=82=E6=95=B0=E6=96=B0=E5=A2=9E=20openIndica?= =?UTF-8?q?tor=20=E9=85=8D=E7=BD=AE=E9=A1=B9=EF=BC=8C=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=A8=A1=E6=80=81=E6=98=AF=E5=90=A6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=95=B0=E6=8D=AE=E5=88=87=E6=8D=A2=E6=8C=87=E7=A4=BA?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locale/en/index.ts | 4 ++ src/locale/zh-CN/index.ts | 4 ++ src/util/app-modal/app-modal-component.scss | 29 +++++++++++ src/util/app-modal/app-modal-component.tsx | 54 ++++++++++++++++++++- src/util/icon/icon.tsx | 31 ++++++++++++ src/util/index.ts | 1 + 6 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 src/util/icon/icon.tsx diff --git a/src/locale/en/index.ts b/src/locale/en/index.ts index e0dbc41b..df75a3ad 100644 --- a/src/locale/en/index.ts +++ b/src/locale/en/index.ts @@ -861,6 +861,10 @@ export default { clearTopicDesc: 'Are you sure to clear all conversation data except for the current activation item?', }, + appModal: { + prev: 'Previous record', + next: 'Next record', + }, }, // runTime ...runTimeEn, diff --git a/src/locale/zh-CN/index.ts b/src/locale/zh-CN/index.ts index 064e0387..9732897c 100644 --- a/src/locale/zh-CN/index.ts +++ b/src/locale/zh-CN/index.ts @@ -805,6 +805,10 @@ export default { clearTopic: '清空会话', clearTopicDesc: '确认清空除当前激活项外的所有会话数据?', }, + appModal: { + prev: '上一个记录', + next: '下一个记录', + }, }, // runTime ...runTimeZhCN, diff --git a/src/util/app-modal/app-modal-component.scss b/src/util/app-modal/app-modal-component.scss index c24bf04a..d8716630 100644 --- a/src/util/app-modal/app-modal-component.scss +++ b/src/util/app-modal/app-modal-component.scss @@ -9,6 +9,35 @@ $modal: ( @include b(modal) { @include set-component-css-var(modal, $modal); + @include e('record') { + @include m('prev') { + position: absolute; + top: 50%; + left: -6px; + transform: translate(-100%, -50%); + } + @include m('next') { + position: absolute; + top: 50%; + right: -6px; + font-size: getCssVar('font-size', 'regular' ); + transform: translate(100%, -50%); + } + + .el-button { + height: auto; + padding: getCssVar('spacing', 'loose') getCssVar('spacing', 'tight'); + margin: 0; + + --el-button-bg-color: #{getCssVar(color, bg, 0)}; + --el-button-text-color: #{getCssVar(color, text, 2)}; + --el-button-hover-bg-color: #{getCssVar(color, bg, 1)}; + --el-button-hover-text-color: #{getCssVar(color, text, 3)}; + --el-button-active-bg-color: #{getCssVar(color, bg, 0)}; + --el-button-active-text-color: #{getCssVar(color, text, 2)}; + } + } + &.el-dialog { overflow: visible; } diff --git a/src/util/app-modal/app-modal-component.tsx b/src/util/app-modal/app-modal-component.tsx index c3bf9f4b..e239d95a 100644 --- a/src/util/app-modal/app-modal-component.tsx +++ b/src/util/app-modal/app-modal-component.tsx @@ -14,14 +14,19 @@ import { } from '@ibiz-template/vue3-util'; import { isNumber } from 'lodash-es'; import { + EventBase, IModalData, IModalOptions, IOverlayContainer, + IViewController, Modal, + SysUIActionTag, ViewMode, + ViewShellHooks, } from '@ibiz-template/runtime'; import './app-modal-component.scss'; import { calcOpenModeStyle } from '@ibiz-template/core'; +import { ArrowLeftBold, ArrowRightBold } from '../icon/icon'; export const AppModalComponent = defineComponent({ props: { @@ -35,6 +40,7 @@ export const AppModalComponent = defineComponent({ const isShow = ref(false); const { zIndex } = useUIStore(); const modalZIndex = zIndex.increment(); + let modalView: IViewController | undefined; // 处理自定义样式 const customStyle = reactive({}); @@ -70,6 +76,18 @@ export const AppModalComponent = defineComponent({ }, }); + const viewShellHooks = new ViewShellHooks(); + + viewShellHooks.hooks.viewCreated.tapPromise( + async (_event: EventBase): Promise => { + modalView = _event.view; + }, + ); + + const handleViewCreated = (event: EventBase) => { + modalView = event.view; + }; + // Modal自身的所有关闭方式最终都走这个 const onBeforeClose = async (done: () => void) => { const isClose = await modal.dismiss(); @@ -87,6 +105,15 @@ export const AppModalComponent = defineComponent({ isShow.value = true; }; + // 上一条 + const prevRecord = () => { + modalView?.call(SysUIActionTag.PREV_RECORD); + }; + // 下一条 + const nextRecord = () => { + modalView?.call(SysUIActionTag.NEXT_RECORD); + }; + return { ns, isShow, @@ -94,9 +121,13 @@ export const AppModalComponent = defineComponent({ modalZIndex, customStyle, modal, + viewShellHooks, present, dismiss, onBeforeClose, + prevRecord, + nextRecord, + handleViewCreated, }; }, render() { @@ -115,7 +146,28 @@ export const AppModalComponent = defineComponent({ beforeClose: this.onBeforeClose, ...this.options, }, - this.$slots.default?.(this.modal), + [ + // eslint-disable-next-line vue/no-multiple-slot-args + this.$slots.default?.(this.modal, this.viewShellHooks), + this.options.openIndicator && ( +
+ + {ArrowLeftBold()} + + + {ArrowRightBold()} + +
+ ), + ], ); }, }); diff --git a/src/util/icon/icon.tsx b/src/util/icon/icon.tsx new file mode 100644 index 00000000..106b2bc7 --- /dev/null +++ b/src/util/icon/icon.tsx @@ -0,0 +1,31 @@ +const ArrowLeftBold = (): JSX.Element => ( + + + +); + +const ArrowRightBold = (): JSX.Element => ( + + + +); + +export { ArrowLeftBold, ArrowRightBold }; diff --git a/src/util/index.ts b/src/util/index.ts index 582f6286..3c1df0f8 100644 --- a/src/util/index.ts +++ b/src/util/index.ts @@ -14,3 +14,4 @@ export * from './wang-editor-util/wang-editor-util'; export { useFocusByEnter } from './keydown-util/keydown-util'; export { calcAiToolbarItemsByAc } from './ai-util/ai-util'; export { convertBtnType } from './button-util/button-util'; +export * from './icon/icon'; -- Gitee From 9bb20eef4d3f56f426684da46861bad1560a996d Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Fri, 15 Aug 2025 22:17:05 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a6f20ed..26269eb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,10 @@ - 面板首页搜索新增strictly参数,为true时不会跟着菜单折叠而改变 - 面板首页搜索新增placeholder参数,为输入框添加提示信息 +### Changed + +- 更新门户菜单容器默认显示的边距 + ## Fixed - 修复数据关系分页部件流布局模式下嵌套数据关系分页部件流布局时样式异常以及初始导航栏定位异常问题 -- Gitee