当前位置: 首页 > news >正文

iBizModel 日历部件(PSSYSCALENDAR)模型体系详解

iBizModel 日历部件(PSSYSCALENDAR)模型体系详解

引言

iBizModel 系统日历部件模型体系是 iBizModel 架构中专门用于处理时间相关数据可视化与交互的核心组成部分。该体系基于 PSSYSCALENDAR 模型构建,提供了完整的日历功能实现框架,支持从简单的日程显示到复杂的时间轴项目管理等多种应用场景。系统日历部件不仅具备丰富的数据展示能力,还集成了强大的交互逻辑和扩展机制,是企业级应用中时间管理功能的重要基础。

🌐 在线体验

点击访问iBizAppHUB示例系统查看日历部件更多场景
在这里插入图片描述

⚡ 提示:点击右侧调试工具栏,可直接查看指定视图在iBizModeling工具的配置。
在这里插入图片描述

模型体系架构

核心模型关系图

PSSYSCALENDAR
PSSYSCALENDARITEM
PSSYSCALENDARLOGIC
PSSYSCALENDARITEMRV
PSDATAENTITY
PSDETOOLBAR
PSCTRLLOGICGROUP
PSSYSCSS
PSDEDATASET
PSDEFIELD
PSDEVIEWBASE
PSDELOGIC
PSDEUIACTION
d

模型层级结构详解

1. PSSYSCALENDAR(日历部件模型)

作为日历部件体系的根模型,PSSYSCALENDAR 定义了日历的整体框架和基础配置。其核心属性包括:

  • calendarstyle:日历样式枚举,支持天(DAY)、周(WEEK)、月(MONTH)、时间轴(TIMELINE)等多种显示模式
  • navviewpos:导航视图位置控制,支持右侧、下方等多种布局方式
  • groupmode:数据分组模式,支持自动分组、代码表分组等高级功能
  • psdeid:关联的实体模型

PSSYSCALENDAR 通过引用 PSDATAENTITY 建立数据基础,通过 PSDETOOLBAR 集成操作工具,通过 PSCTRLLOGICGROUP 附加控制逻辑,形成了完整的日历功能框架。

2. PSSYSCALENDARITEM(日历部件项模型)

作为日历数据展示的核心,PSSYSCALENDARITEM 定义了具体的数据项配置:

  • beginpsdefidendpsdefid:时间范围定义,支持精确的时间区间控制
  • itemtype:项类型标识,支持多数据源混合显示
  • psdeid:数据集所在实体
  • psdedsid:数据集引用,确保数据查询的灵活性
  • viewactions:操作控制集合,支持建立、编辑、删除等完整CRUD操作

每个日历项可以独立配置样式、颜色、图标等视觉属性,并支持拖拽编辑、上下文菜单等交互功能。

3. PSSYSCALENDARITEMRV(日历项引用视图模型)

该模型提供了日历项与详细视图的关联机制:

  • psdeviewbaseid:关联的实体视图,支持点击日历项跳转到详细页面
  • name:引用模式定义,控制视图打开方式
  • viewparams:视图参数传递,支持上下文数据传递

通过引用视图机制,日历部件实现了从概览到详情的无缝导航体验。

4. PSSYSCALENDARLOGIC(日历部件逻辑模型)

逻辑模型为日历部件提供了动态行为控制:

  • triggertype:触发类型,支持定时器、视图事件、部件事件等多种触发方式
  • dstlogictype:目标逻辑类型,支持实体界面逻辑、系统预置逻辑、前端插件等处理目标
  • timer:定时器间隔,支持周期性逻辑执行

逻辑模型使得日历部件可以根据业务规则动态调整显示内容、控制用户操作权限、实现复杂的交互流程。

关键技术特性

多数据源集成能力

PSSYSCALENDAR 支持通过多个 PSSYSCALENDARITEM 集成不同实体的数据,在同一个日历界面中显示来自多个业务模块的时间相关数据。例如,在项目管理系统可以同时显示任务计划、会议安排和资源预约。

灵活的视图配置

通过 calendarstyle 枚举,日历部件支持六种内置视图样式和用户自定义样式。每种样式都针对特定的使用场景优化:

  • 天视图:适合精细的日程安排
  • 周视图:平衡细节和概览
  • 月视图:提供长期规划视角
  • 时间轴:适合项目进度跟踪
  • 复合时间轴:结合时间轴和传统日历优势

强大的交互控制

通过 PSSYSCALENDARLOGIC 和 PSSYSCALENDARITEM 的协同,日历部件支持丰富的交互功能:

  • 拖拽调整时间:直接通过拖拽修改事件时间
  • 上下文菜单:右键快捷操作
  • 实时数据更新:定时器驱动的数据刷新
  • 条件显示控制:基于业务规则的动态显示

扩展性设计

模型体系通过插件机制(pssyspfpluginid)支持功能扩展,前端样式通过 PSSYSCSS 引用支持主题定制,确保了系统的可维护性和可扩展性。

DSL 代码实现示例

基于工具返回的模型信息,以下是完整的系统日历部件 DSL 实现示例:

//iBizModelDSL建模指令,目标:构建企业级项目管理系统日历部件
def de_project = "ProjectManagement.PROJECT"
def de_task = "ProjectManagement.TASK" 
def de_meeting = "ProjectManagement.MEETING"
def mod_pm = "ProjectManagement"// 主项目日历 - 月视图,支持多数据源
pssyscalendar(psmoduleid: mod_pm,codename: "ProjectMainCalendar",name: "项目主日历",psdeid: de_project,calendarstyle: "MONTH",navviewpos: "RIGHT",navviewheight: 400.0,navviewshowmode: 0,enableedit: 1,busyindicator: 1,emptytext: "暂无日程安排",pssyscssid: "System.CalendarTheme",quickpsdetoolbarid: "ProjectManagement.QuickToolbar",batpsdetoolbarid: "ProjectManagement.BatchToolbar"
){// 项目任务项pssyscalendaritem(itemtype: "project_task",name: "项目任务",psdeid: de_task,psdedsid: de_task + ".ActiveTasks",beginpsdefid: de_task + ".PLAN_START_DATE",endpsdefid: de_task + ".PLAN_END_DATE",textpsdefid: de_task + ".TASK_NAME",colorpsdefid: de_task + ".PRIORITY_COLOR",bkcolorpsdefid: de_task + ".STATUS_BGCOLOR",iconpsdefid: de_task + ".TASK_ICON",enableviewactions: 1,viewactions: 31, // 支持建立、编辑、查看、删除、拷贝editmode: 1,maxsize: 1000,psdetoolbarid: "ProjectManagement.TaskContextMenu",psdeviewbaseid: de_task + ".TaskDetailView"){pssyscalendaritemrv(name: "edit",psdeviewbaseid: de_task + ".TaskEditView")pssyscalendaritemrv(name: "view", psdeviewbaseid: de_task + ".TaskDetailView")}// 会议安排项pssyscalendaritem(itemtype: "meeting",name: "会议安排", psdeid: de_meeting,psdedsid: de_meeting + ".UpcomingMeetings",beginpsdefid: de_meeting + ".MEETING_START_TIME",endpsdefid: de_meeting + ".MEETING_END_TIME",textpsdefid: de_meeting + ".MEETING_TITLE",contentpsdefid: de_meeting + ".MEETING_AGENDA",color: "#2E7D32",bkcolor: "#E8F5E8",enableviewactions: 1,viewactions: 7, // 支持建立、编辑、查看editmode: 0,psdeviewbaseid: de_meeting + ".MeetingDetailView")
}// 项目时间轴日历 - 用于项目进度跟踪
pssyscalendar(psmoduleid: mod_pm,codename: "ProjectTimeline",name: "项目时间轴",psdeid: de_project, calendarstyle: "TIMELINE",groupmode: "AUTO",grouppsdefid: de_project + ".PROJECT_PHASE",navviewpos: "BOTTOM",navviewheight: 300.0,enableedit: 1
){pssyscalendaritem(itemtype: "timeline_task",name: "时间轴任务",psdeid: de_task,psdedsid: de_task + ".TimelineTasks",beginpsdefid: de_task + ".ACTUAL_START_DATE",endpsdefid: de_task + ".ACTUAL_END_DATE",textpsdefid: de_task + ".TASK_NAME",progresspsdefid: de_task + ".PROGRESS_PERCENT",levelpsdefid: de_task + ".TASK_LEVEL",enableviewactions: 1,viewactions: 15)
}// 个人工作台日历 - 天视图,支持快速操作
pssyscalendar(psmoduleid: mod_pm,codename: "PersonalWorkbench",name: "个人工作台",psdeid: de_task,calendarstyle: "DAY",navviewpos: "NONE",enableedit: 1,quickpsdetoolbarid: "ProjectManagement.PersonalQuickToolbar"
){pssyscalendaritem(itemtype: "personal_tasks",name: "个人任务",psdeid: de_task,psdedsid: de_task + ".PersonalTasks",beginpsdefid: de_task + ".PLAN_START_DATE",endpsdefid: de_task + ".PLAN_END_DATE", textpsdefid: de_task + ".TASK_NAME",colorpsdefid: de_task + ".URGENCY_COLOR",enableviewactions: 1,viewactions: 31,editmode: 1)
}

模型体系优势总结

iBizModel 系统日历部件模型体系通过层次化的模型设计和丰富的配置选项,为企业级应用提供了强大的时间数据管理能力。

http://www.dtcms.com/a/482495.html

相关文章:

  • Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?
  • 一个网站上能不能放两个域名 两个备案号沧县做网站价格
  • GPIO 也是一个接口,还有 QEMU GPIODEV 和 GUSE
  • 网站制作公司电话山东专业网站建设公司
  • 第 8 篇:更广阔的世界 - 加载 3D 模型
  • C/C++---_access 和 access 函数 文件/目录状态判断
  • Linux内存管理-缓存系统中的Major和Minor详解
  • 8 读写分离-实战
  • 手机网站建设西安检查网站是否做301
  • 网站Favicon图标:小图标背后的大作用 引言
  • 什么是GEO生成式引擎优化?GEO科普:定义、原理与应用指南
  • 使用 Gensim 进行主题建模(LDA)与词向量训练(Word2Vec)的完整指南
  • 诺奖解码外周免疫耐受,泰克生物以抗体工具链加速机制研究突破
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P05-07 广播效果资产标签
  • 南阳专业做网站抖音代运营平台
  • 网站公司怎么做的好天津海外seo
  • 二级网站建设方案模板做ppt的网站叫什么名字
  • Java优选算法——位运算
  • Linux编辑器vim
  • 大模型-去噪扩散概率模型(DDPM)采样算法详解
  • LeetCode 398:随机数索引
  • 通过公网STUN服务器实现UDP打洞
  • 手机怎样设计网站建设哪个网站有做兼职的
  • 分布式专题——44 ElasticSearch安装
  • Java HTTP编程深度解析:从基础到微服务通信的完整架构实践
  • 3dgs train.py详解
  • Ruby Socket 编程
  • 阿里云linux主机如何添加2个网站中山网站建设方案托管
  • React 状态管理中的循环更新陷阱与解决方案
  • 手机h5免费模板网站深圳网页设计培训要多久