查看: 724|回复: 6

部门人员列表展示

升级   0.72%

10

主题

11

回帖

72

积分

注册会员

Rank: 2

积分
72
发表于 2024-10-30 16:13:49 | 显示全部楼层 |阅读模式
怎么获取系统登录者的同部门所有用户,并遍历展示到列表
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2024-11-1 10:18:04 | 显示全部楼层
获取当前用户:https://www.o2oa.net/api/module-session.html#module-session   用户里有身份列表,同一个用户可能有多身份,所以需要循环身份列表,
身份列表里有组织id,根据组织id可以拿到组织:https://www.o2oa.net/api/module-org.html#.getUnit
获取组织下的所有成员:https://www.o2oa.net/api/module-org.html#.listIdentityWithUnit
回复

使用道具 举报

升级   0.72%

10

主题

11

回帖

72

积分

注册会员

Rank: 2

积分
72
发表于 2024-11-4 09:41:35 | 显示全部楼层
请问我再datatable里声明了 一个变量 var personNameList = {};并通过for循环给 personNameList.add()添加了数据添加不上是为何? 这个声明的变量是在 datatable的onload 事件中的,那这个personNameList变量可以 在这个表格的 ,某一列的input 输入框中的 默认值创建时  获取这个值么?
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2024-11-4 09:44:44 | 显示全部楼层
您是要在表单的datatable里,列表展示当前登录者的同部门所有用户?
那么可以在数据表格的默认值里加,通过return {"data":[],"total":{}}的方式默认加上,data里就是数据表格里存储的条目数据
回复

使用道具 举报

升级   0.72%

10

主题

11

回帖

72

积分

注册会员

Rank: 2

积分
72
发表于 2024-11-4 10:06:45 | 显示全部楼层
论坛管理员 发表于 2024-11-4 09:44
您是要在表单的datatable里,列表展示当前登录者的同部门所有用户?
那么可以在数据表格的默认值里加,通过 ...

嗯 国企里同部门,有事业编人员 和 企业合同工 ,我想查出同部门 下 企业合同工的人员。1我先给人员添加了属性type = company (代表企业合同工)。2然后定义 var personNameList = [] ,用
var personList = this.org.listPersonWithUnit( unit );中通过 {"name":"type","person":"李支彬@362f7b2e-b6fd-440a-a6be-96ca397567a2@P","attributeList":["company"]}]里 attributeList找到 这些企业合同工(现在没存上)赋值给personNameList 3.然后再创建列表展示
回复

使用道具 举报

升级   0.72%

10

主题

11

回帖

72

积分

注册会员

Rank: 2

积分
72
发表于 2024-11-4 10:23:35 | 显示全部楼层
/**
                 * 在数据表格末尾添加条目。
                 * @param {Object} [data] 添加条目的数据。
                 * @return {MWF.xApplication.process.Xform.DatatablePC.Line} 添加的数据表格条目
                 * @example
                 * var line = this.form.get("dt1").addLine();
                 */
               
        var unitid = this.session.user.identityList[0].unit;     //    获取组织id

        var personList1 = this.org.listPersonWithUnit( unitid );     //根据组织id获取人员

        console.log("datatable -->"+JSON.stringify(personList1)+" !");
        var namesList = [];
                //var dataSet = new Set();
                 for (var i = 0; i < personList1.length; i++) {
               
                                 
                                var promise = this.org.listPersonAllAttribute( personList1[i], true);
                                 
                 promise.then(function(attributeObjectList){
                                         
        
                                   for (var j = 0; j < attributeObjectList.length; j++) {
                                           var nl = attributeObjectList[j].name;
                                           var attributeList = attributeObjectList[j].attributeList;
                                            console.log("nl-->"+JSON.stringify(nl));
                                                if(attributeList == "company"){
                                                        console.log("attributeList"+ JSON.stringify(attributeList));
                                                        //1 没有添加上是为何?
                                              namesList.add(personList1[i].name);
                                               
                                                }
                                                console.log("attributeList2"+ JSON.stringify(attributeList));
                                   }
                                  
                 })
               //2添加重复的行序      1 1  2  2 3  3  4  4  5  5
                                 var line = this.form.get("datatable").addLine();
        
         
        }
               
console.log("211111 - "+JSON.stringify(namesList));//输出为空

for (var i = 0; i < namesList.length; i++) {
//         var line = this.form.get("datatable").addLine();
}
代码里 有俩问题,1 nameList存不上值 2.创建行有重复。请问您我要怎么改呢??
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2024-11-6 09:33:12 | 显示全部楼层
单看脚本无法定位问题,要调试才行,但是按照您的需求,应该是使用var line = this.form.get("dt1").insertLine(0,data);这样的方式去插入数据才对
this.org.listPersonAllAttribute( personList1[i], true);这个是同步方法,不是promise,最后增加参数true才是promise,您可以仔细看一下api
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread