# 六、应用

# (一)应用与应用模板

门户系统中,在组织机构管理、运营他们负责的地区时,业务应用将是管理者最经常关注的"数据集合体"。业务应用旨在将多种数据集中到一个屏幕中显示,让管理者们一目了然的掌握整体情况。

门户系统向组织管理者提供多种预设模板,通过不同模板它们可自由选择自身关心的数据对象,以此来适应不同的应用场景。

在CoreSDK中,业务应用由应用类[Application]表示,模板数据根据模板类型不同,分别由抽象类模板数据[ModelData]的具象化子类表示。如地图模板数据由地图模板数据[MapModelData]表示、通讯模板关联的数据由通讯模板数据[CommModelData]表示。更多模板类参见预设模板

# (二)应用[Application]

应用[Application]的常用属性如下:

属性名 值类型 属性描述
name String 应用名称
remark String 备注
model Model 应用模板基础信息
data ModelData 模板数据配置信息
mapConfig MapConfig 地图默认配置
themeColor Color 应用主题色
titleColor Color 应用标题色
isShowApp boolean 是否同步到移动端
isPublish boolean 是否发布

常用方法如下:(get/set方法略)

方法名 返回类型 方法描述
- - -

# 1、获取应用

初始化成功后,可直接从Cellsys的organization对象中获取应用。具体代码示例如下:

let applications = Cellsys.shared.organization.applications //applications可能为null
if (applications != nil ) {
    let application = applications.first
    /*属性获取*/
    let name = application.name //应用名称
    let remark = application.remark //备注
    let themeColor = application.themeColor//应用主题色
    let titleColor = application.titleColor//应用标题字体颜色
    let isShowApp = application.isShowApp//是否在移动端上展示
    let isPublish = application.isPublish //是否发布
    /*地图配置*/
    let mapConfig = application.mapConfig//地图默认配置
    let zoom = mapConfig.defaultZoom //默认缩放级别
    let center = mapConfig.defaultCenter //默认中心点
    /*模板信息*/
    let model = application.model//模板信息
    let modelName = model.name//模板名称
    let modelType = model.type//模板类型
    let modelSetInfo = model.modelSetInfo//模板所属集合的简易信息
    /*模板数据配置类*/
    let modelData = application.data//模板数据配置信息
    /*模板数据类可根据模板枚举类型转化为具体子类*/
    switch (model.type) {
        case ReportModel:
            let reportModelData = (ReportModelData) modelData;
            break
        case ProgressModel:
            let progressModelData = (ProgressModelData) modelData;
            break
        case CommModel:
            let commModelData = (CommModelData) modelData;
            break
        case EventModel:
            let eventModelData = (EventModelData) modelData;
            break
        case NotesModel:
            let notesModelData = (NotesModelData) modelData;
            break
        case MapModel:
            let mapModelData = (MapModelData) modelData;
            break
        default:
            //异常:未定义的模板类型
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

# 2、创建应用

let name = "应用名称"
let remark = "备注信息"
let model = Model.new(id: 1, name: "通讯", modelSetID: 2, modelSetName: "地图显示")
let mapConfig = MapConfig.new(center: MapPoint.new(latitude: 23.246300, longitude: 113.411300), zoom: 16)
let themeColor = Color.new(ribbon: Ribbon.Gray, level: RibbonLevel.L5)
let titleColor = Color.new(ribbon: Ribbon.Cyan, level: RibbonLevel.L5)
organization.createApp(name: name, remark: remark, model: model, mapConfig: mapConfig, themeColor: themeColor, titleColor:titleColor, isShowApp:true) { obj, errorMessage in
    //成功
    if (obj != nil) {
        let app = obj?.data as? Application
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.message //错误信息
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 3、修改应用

application.remark = "备注信息"
organization.updateApp(app: application!) { obj, errorMessage in
    //成功
    if (obj != nil) {
        application = (obj?.data as! Application)
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.message //错误信息
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

# 4、删除应用

organization.deleteApp(app: application!) { obj, errorMessage in
    //成功
    if (obj != nil) {
       
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.message //错误信息
    }
}
1
2
3
4
5
6
7
8
9
10
11

# (三)预设模板

# 1、预设模板总览

CoreSDK目前提供了以下预设模板(将会陆续追加):

  • 地图模板
  • 通讯模板
  • 事件模板
  • 随手记模板
  • 进度模板
  • 报告模板

# 2、模板数据类配置示例

# (1)地图模板数据类[MapModelData]

可自由配置专题、群组两种数据。

# (2)通讯模板数据类[CommModelData]

可自由配置群组数据。

# (3)事件模板数据类[EventModelData]

可自由配置事件数据。

注:有部分模板在数据类型的配置上是一样的,但它们在界面呈现、使用场景上是有所区别的。例如:事件模板、随手记模板、进度模板等都是以事件为主的应用模板,但使用场景与界面呈现会有不同。

# (4)随手记模板数据类[NotesModelData]

可自由配置事件数据。

# (5)进度模板数据类[ProgressModelData]

可自由配置事件数据。

# (6)报告模板数据类[ReportModelData]

可自由配置事件数据。