应用简称为app, 是由多个视图、模型、服务、模板、类型特征描述、菜单描述、资源描叙、插件等文件组成的单个独立应用模块,负责解决某一领域范围的问题。应用分为内部应用和专业应用
单个应用内的模块之间可以互相依赖,应用之间则通过服务方式间接依赖,以保持单个应用的可插拔特性。
例如:
查看服务列表
# -*- coding: utf-8 -*-
"""百度地图模型服务"""
from common.utils import dispatch
from map import model_baidu_map as model #pylint: disable=import-error
######################################## 访问令牌服务 ########################################
@dispatch('get_baidu_ak')
def _() -> str:
"""得到百度地图访问码
Returns:
返回百度访问码
"""
return model.get_baidu_ak()
from common.utils import invoke
user_name = invoke('get_user_name')
通过在类型特征描述上定义"ui_disable_actions"可禁用缺省命令
<typetraits ... ui_disable_actions="cmd_add;..." ...>
...
</typetraits>
可禁用的预定义命令包括:
通过重载"get_action_group_list_final"可增加命令组
@dispatch('/plan_main_point/show_list/get_action_group_list_final')
def _(type_name: str, action_type: str, type_traits_element: xml_element_type, result_group_list: list, context_dict: dict) -> None: #pylint: disable=line-too-long, nused-argument
"""命令组列表完成事件
重载本函数可添加修改命令组和命令
Args:
type_name: 类型名称
action_type: 动作名称
type_traits_element: 类型特征xml节点
result_group_list: 命令组结果列表
context_dict: 场景字典
"""
click_url = "update_latitude_longitudes('{}', this)".format(type_name)
result_group_list.insert(1, [{'id': 'cmd_update_latitude_longitudes', 'name': '更新经纬度坐标', 'onclick': click_url, 'class': 'btn-success'},])
通过重载"get_script_file_list_final"可增加内联脚本文件(脚本文件放置于该app的"templates"子目录下)
@dispatch('/plan_main_point/show_list/get_script_file_list_final')
def _(type_name: str, action_type: str, type_traits_element: xml_element_type, script_file_list: list, context_dict: dict) -> None: #pylint: disable=unused-argument
"""内联脚本文件列表完成事件
通过重载本函数, 提供指定类型、指定行为的内联脚本文件特化
Args:
type_name: 类型名称
action_type: 行为名称
type_traits_element: 类型特征xml节点
context_dict: 场景字典
"""
script_file_list.append('plan_main_point_show_list.js')