配置效果:

组合插件配置效果

这个效果是用首页设置中-组合插件添加列表进行配置的,除了待办已办之外,系统中所有列表数据都可以用组合插件添加列表插件在首页进行展示,配置方法如下

配置方法:

1.添加组合插件

进入系统设置→首页设置→勾选方案设置插件→添加组合插件→添加后点击设置组合插件

在组合插件中添加列表插件(PS.目前组合插件中支持展示三类内容,仪表板图形分析/计数组件/列表)

2.列表插件展示内容配置

列表插件展示的内容,由咱们选择的模型场景决定,所以需要配置的重中之重就是插件的名称、模型、场景

名称:展示在组合插件的tab中的文字内容

模型、场景根据数据需要填写

过滤条件:对场景中需要展示的数据进行过滤,无需要可不填

操作定义:点击组合插件当前tab右上角按钮的定义,包括按钮展示名称\跳转链接,无需要可不配置

{
    "key": "index_0",
    "func": "=function() {rootScope.super_go('common_model_category_list', {meta_state: 'todoMessage', model: 'Message'})}",
    "label": "更多"
}


示例配置:

3.配置待办分页的角标

因为角标数量是才需要进行展示,所以需要进行一下特殊配置

到待办对应的Message模型下,homepage场景中,将如下内容粘贴到list元数据的hooks里:

 "hooks": {
        "getExtraFilterDict": "=function(){return {to: SCOPE.auth.employee.id, status: 2} }",
        "afterFetchDataAsync": "=function(){let undone, done;let state;let filter = SCOPE.getAllFilterDict();if (filter?.status === 1) {filter.status = 2;state = 'homepagedone'} else if (filter?.status === 2) {filter.status = 1;state = 'homepageundone'};dataService.callHcmOpenApi('hcm.model.list', {model: 'WarnMessage',filter_dict: filter,page_index: 1,page_size: 200,extra_property: {state: state,only_list: false},biz_type: 'list',}, null, null, true).then((data) => {if (filter?.status === 1) {undone = data.count;done = SCOPE.paging.total_count;} else if (filter?.status === 2) {done = data.count;undone = SCOPE.paging.total_count;};done = done > 99 ? '99+' : done;undone = undone > 99 ? '99+' : undone;let element1 = document.createElement('div');element1.innerHTML=`<div class='unread'>${done}</div>`;if(!ELEMENT.closest('home-widget-common-container').find('.postscript')[0].hasChildNodes()) {ELEMENT.closest('home-widget-common-container').find('.postscript')[0].append(element1);} else {ELEMENT.closest('home-widget-common-container').find('.unread')[0].innerHTML = done;}});}"
    },

还不清楚配置在哪里的看图~

细心的同学可能发现了,上面的代码中只有undone返回了,没有返回done,那这是什么原因呢?

因为从实用性普适性等方面来讲,大多数情况下只需要知道待办的角标。如果老板有需要看看自己的已办成就角标,就可以返回加上done,

即将     WINDOW.postMessage({undone: undone,done: done});

同时加上    

if(done === 0) {

        done=' '

};


  • 无标签