Fuguo-Preference

来自ling
跳转至: 导航搜索

模块功能

  • 功能包含:定义系统属性(包含属性分类,属性覆盖设置),全局系统属性值定义,机构层级属性值定义,用户层级系统属性值定义.
  • 根据属性定义动态执行业务逻辑
  • 属性值取值逻辑:用户>机构>全局,如果全局层面也没有值就会抛出异常
  • 支持文本,日期,数字类型
  • 有效配合 项目初始化与配置 当系统不存在有效datasource配置的时候启动数据源文件配置,系统属性配置,并写入规定目录供系统启动时调用,如果有,就调用系统属性设置模块(自检,默认值,初始化,启动相应模块)
  • preference.view.PreferenceDefineManager.ling用于定义属性
  • preference.view.PreferenceCategoryValueManager.ling 属性分类中值维护
  • preference.view.PreferenceValueManager.ling 用于动态根据属性分类使用iframetab控件调用preference.view.PreferenceCategoryValueManager.ling页面,维护所有的属性分类

系统的结构

  1. 接口调用排序
  2. 完成启动时系统属性配置完整有效性的自检
  3. 安装系统时提供属性的默认值

Pl.preference.classdiagram.png

属性完整有效性自检

属性的默认值

全局属性,机构属性,用户属性

  • categoryId=?必须
  • 全局属性:preference.view.PreferenceCategoryValueManager.ling?categoryId=1
  • 机构属性:preference.view.PreferenceCategoryValueManager.ling?categoryId=1&orgId=1
  • 用户属性:preference.view.PreferenceCategoryValueManager.ling?categoryId=1&userId=1

表和model设计说明

dao设计说明

server设计说明

view设计说明

对延时生效的支持

  • 已经从设计上支持,单使用上还没实现
  • 维护属性值界面要做成1:N

基础知识

dorado.datatype.BooleanDataType - 逻辑对象类型。 dorado.datatype.CharacterDataType - 字符对象类型。 dorado.datatype.DateDataType - 日期类型。 dorado.datatype.FloatDataType - 浮点对象类型。 dorado.datatype.IntegerDataType - 整数对象类型。 dorado.datatype.PrimitiveBooleanDataType - 原生逻辑类型。 dorado.datatype.PrimitiveCharDataType - 原生字符对象类型。 dorado.datatype.PrimitiveFloatDataType - 原生浮点类型。 dorado.datatype.PrimitiveIntDataType - 原生整数类型。 dorado.datatype.StringDataType - 字符串类型。

PreferenceView.java

PreferenceDefineManager.view.xml

PreferenceValueManager.view.xml

PreferenceCategoryValueManager.view.xml

参考技巧 Dorado7常用代码#tag的使用 Dorado7常用代码#view init

  • 获取url中的参数和动态显示
var categoryId = '${param["categoryId"]}';
var orgId = '${param["orgId"]}';
var userId = '${param["userId"]}';
// @Bind view.onReady
!function(self, arg) {
	view.set("^default.visible", true);
	if (orgId != '') {
		view.set("^org.visible", true);
	}
	if (userId != '') {
		view.set("^user.visible", true);
	}
}

utils设计说明

示例代码

常见问题

下拉类型 下拉描述信息 的配置方法

dropDownType、dropDownMeta、dropDownScript这三个属性用于共同描述下拉框的属性。

  • dropDownType和dropDownMeta
dropDownType用于指定下拉框的基本类型,该类型目前有如下6中取值:
  • list - 静态的下拉框
这将最终生成dorado中的ListDropDown。定义list时需要与dropDownMeta配合,例如:在dropDownMeta中定义"A;B;C;D;E ",将在下拉框中显示"A"、"B"、"C"、"D"、"E"这5个选项。
  • map - 支持值参照的静态下拉框
值参照即内部值与显示值的转换。这将最终生成dorado中的ListDropDown,且其mapValue属性为true。
例如:在dropDownMeta中定义"true=男;false=女",表示将true翻译为“男”、false翻译为“女”,最终下拉框中将显示"男"、"女"这两个选项。
  • date - 日期下拉框
这将最终生成dorado中的DateDropDown。
  • ref - 表示对ViewModel已声明的某个下拉框的引用
定义ref时需要与大小类配合,此时的dropDownMeta应设置为引用的大小类的code。
  • url - 自定义下拉框
这将最终生成dorado中的CustomDropDown。由于dorado中的自定义下拉框事实是一个独立的JSP页面,因此此时dropDownMeta的值应为该JSP页面的URL。
  • subwindow - 以子窗体方式显示的自定义下拉框
这将最终生成dorado中的CustomDropDown,且其openMode属性为"subwindow"。由于dorado中的自定义下拉框事实是一个独立的JSP页面,因此此时dropDownMeta的值应为该JSP页面的URL。
  • dropDownScript
dropDownScript中可以输入一段JavaScript脚本用于对前面定义个下拉框进行进一步的定制。
例如对于一个subwindow类型的下拉框,设置其dropDownScript为:
dropdown.setAutoDropDown(true);
dropdown.setWidth("300px");
dropdown.setHeight("250px");
表示将该下拉框设置为自动打开,且其打开时的默认宽度和高度分别为300px和250px。

系统关闭登录

参考系统关闭登录

快速链接