绘制器脚本
在绘制器脚本中,可根据当前部件数据绘制内容,需返回一段html格式的字符串,iBizHUB会将返回的字符串以v-html的形式替换掉部件内容。
参数
名称 | 类型 | 描述 |
---|---|---|
context | IApiContext | 当前视图上下文 |
params | IApiParams | 当前视图参数 |
data | IApiData[] | IApiData | undefined | 当前业务数据 |
targetName | string | 部件名称 |
view | IApiViewController | 当前视图 |
ctrl | IApiControlController | 当前部件 |
document | Document | 当前文档对象 |
selector | (className: string) => HTMLCollectionOf<Element> | 元素选择器 |
env | IEnvironment | 当前环境对象 |
appSession | IApiData | 当前应用会话对象 |
topViewSession | IApiData | 当前顶级视图会话对象 |
viewSession | IApiData | 当前视图会话对象 |
viewParam | IApiParams | 当前视图参数 |
app | IApiAppHubController | 当前应用 |
topView | IApiViewController | 当前顶级视图 |
parentView | IApiViewController | undefined | 当前父视图 |
parent | IApiViewController | undefined | 当前父视图 |
util | { message: IApiMessageUtil, notification: IApiNotificationUtil,modal: IApiModalUtil,confirm: IApiConfirmUtil,openView: IApiOpenViewUtil} | 工具集 |
dataArg | { total: number, totalx: number | undefined } | 仅多数据部件存在,返回总数 |
调用示例
基于当前数据绘制自定义绘制部件
typescript
const items = ctrl.state.items;
let htmlArr = '';
if (items && items.length > 0) {
// 按照 sj 属性升序排序
items.sort((a, b) => {
const sjA = new Date(a.data.sj);
const sjB = new Date(b.data.sj);
return sjA - sjB;
});
htmlArr = `<div class='time-line'>
<div class='time-line-left'>
${items.map((children, lineIndex) => {
const { title, sj, content_name, content_key, type, bmsah, xfjsh, aqzy, fxdj, id, is_local } = children.data;
let contentHTML = `
<div class='time-line-item__dot' title='${aqzy}' click="ibiz.util.action.execAndResolved('open_xfxx@xfyf_xfxx', {context, params, data: [data], view, ctrl } , 'xfyf__xfyfweb')" data="{'id':'${xfjsh}', 'xfjsh': '${xfjsh}'}">
</div>`;
return contentHTML;
}).join('')}
</div>
</div>`;
}
return htmlArr;