绘制器脚本
在绘制器脚本中,可根据当前部件数据绘制内容,需返回一段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;