diff --git a/CHANGELOG.md b/CHANGELOG.md index 2eb160439c163fb805ab937bf3afb9e3d8e7a592..b5910503babfd9bd508a17cef2ee31abe81aff3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,11 @@ - 新增树表格数据返回数据中无父数据项按顶级节点展示 - drbar部件支持SINGLEITEMGROUP控件动态参数(当分组只有一个分组项时,设置为true显示分组,否则不显示分组) - 表格列行编辑支持部件逻辑的属性注入 +- 全局message添加notice方法 + +### Changed + +- 调整markopendata消息的呈现,用中间消息提示 ### Fixed diff --git a/src/util/message-util/message-util.ts b/src/util/message-util/message-util.ts index 795e3aa90dc1ebf0bf9a75484ae650c6f06a4d5a..1e9487355ee21a9c02f17de04974dc0acdb20985 100644 --- a/src/util/message-util/message-util.ts +++ b/src/util/message-util/message-util.ts @@ -1,5 +1,8 @@ import { IMessageUtil } from '@ibiz-template/runtime'; -import { ElMessage } from 'element-plus'; +import { IMessageParams } from '@ibiz-template/runtime/out/interface/util/i-message-util/i-message-util'; +import { useNamespace } from '@ibiz-template/vue3-util'; +import { ElMessage, MessageOptions } from 'element-plus'; +import { isNil, mergeRight } from 'ramda'; /** * 消息通知 @@ -11,6 +14,8 @@ import { ElMessage } from 'element-plus'; * @implements {IMessageUtil} */ export class MessageUtil implements IMessageUtil { + protected ns = useNamespace('message'); + info( msg: string, duration?: number | undefined, @@ -58,4 +63,48 @@ export class MessageUtil implements IMessageUtil { showClose: closable, }); } + + /** + * 格式化参数 + * @author lxm + * @date 2024-03-21 02:22:27 + * @protected + * @param {IMessageParams} params + * @return {*} {MessageOptions} + */ + protected formatParams(params: IMessageParams): MessageOptions { + const paramsWithDefault = mergeRight( + { + type: 'info', + }, + params, + ); + + const messageOpts: MessageOptions = {}; + Object.keys(paramsWithDefault).forEach(key => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const value = paramsWithDefault[key as keyof IMessageParams] as any; + switch (key) { + case 'duration': + if (!isNil(value)) { + messageOpts.duration = value * 1000; + } + break; + case 'styleType': + if (!isNil(value)) { + messageOpts.customClass = this.ns.m(value); + } + break; + + default: + (messageOpts as IData)[key] = value; + break; + } + }); + return messageOpts; + } + + notice(params: IMessageParams): void { + ElMessage(this.formatParams(params)); + } } diff --git a/src/view-engine/edit-view.engine.ts b/src/view-engine/edit-view.engine.ts index 78068a821cbcecd83a82fbbb7ca94285f74ba83d..ab9595a54079b388ba4776db8056bed7aa2ffd64 100644 --- a/src/view-engine/edit-view.engine.ts +++ b/src/view-engine/edit-view.engine.ts @@ -16,9 +16,9 @@ import { getControl, getControlsByView, MarkOpenDataActionType, + ViewMode, } from '@ibiz-template/runtime'; import { IAppDEEditView } from '@ibiz/model-core'; -import { isNil } from 'ramda'; export class EditViewEngine extends ViewEngineBase { /** @@ -346,7 +346,7 @@ export class EditViewEngine extends ViewEngineBase { initMarkOpenData(): void { // 非路由的编辑视图不需要触发 if ( - isNil(this.view.modal.routeDepth) || + ![ViewMode.ROUTE, ViewMode.ROUTE_MODAL].includes(this.view.modal.mode) || !this.view.model.markOpenDataMode ) { return; @@ -378,12 +378,13 @@ export class EditViewEngine extends ViewEngineBase { break; } - ibiz.notification.info({ - position: 'bottom-right', - title: '通知', - desc: `${ + ibiz.message.notice({ + message: `${ modes.includes('DISPLAYOPPERSON') ? data.username : '有人' } ${actionMsg} ${this.view.state.caption}-${dataInfo}`, + showClose: true, + duration: 3, + styleType: 'alert', }); if ( diff --git a/src/web-app/App.scss b/src/web-app/App.scss index fa125b69b4217e80779f461f21472ef9a4024165..e97f4a013b10a80c10d7127b1882978f33a4b7d8 100644 --- a/src/web-app/App.scss +++ b/src/web-app/App.scss @@ -10,3 +10,42 @@ html, body { margin: 0; border: 0; } + +// message-util的样式 +.#{bem(message,'','alert')}{ + &.el-message{ + --el-message-padding : 8px 16px; + + .el-message__icon,.el-message__content{ + color: inherit; + } + + .el-message__closeBtn{ + color : #a8abb2; + } + } + + .el-message__content{ + line-height: 24px; + } + + &.el-message--info{ + color: #909399; + background-color: #f4f4f5; + } + + &.el-message--success{ + color: #67c23a; + background-color: #f0f9eb; + } + + &.el-message--warning{ + color: #e6a23c; + background-color: #fdf6ec; + } + + &.el-message--error{ + color: #f56c6c; + background-color: #fef0f0; + } +} \ No newline at end of file