「宜搭」如何在选择部门组件后,自动带出该部门下的成员,并查询该成员当月考勤天数

简介: 本文档只做参考使用,请结合具体需求修改,如有问题,概不负责!!!!因本章涉及页面代码,请确保宜搭使用版本可使用页面JS该篇只会获取当前部门下的成员,不包含下级部门;注意:涉及到钉钉接口,请严格按照钉钉开放接口文档要求操作;若此文章对您有帮助,记得点下赞同哦~
  • 因宜搭部门组件不会直接返回该部门下的成员,可通过「宜搭连接器」调用钉钉接口返回部门成员;
  • 根据获取到的成员Id结合宜搭官方连接器获取该员工的当月的考勤天数
  • 实现效果:image.png
  • 【获取部门下员工】调用钉钉开放平台接口,需要保证该接口已经在钉钉开放平台开通权限;接口权限开通可参考文档:https://open.dingtalk.com/document/isvapp/address-book-permissions
  • 获取该接口的身份验证参数,可参考:https://open.dingtalk.com/document/orgapp/obtain-orgapp-token
    宜搭自定义连接器使用参考:https://docs.aliwork.com/docs/yida_support/wtwabe/zevvr1/_1/zbq17y
    可以通过以下步骤实现该功能:
    1、宜搭连接器工厂创建自定义连接器,调用获取钉钉成员的接口
    钉钉接口文档参考:https://open.dingtalk.com/document/isvapp/queries-the-complete-information-of-a-department-user
    连接器配置,可按照以下步骤:
    image.png
    image.png
    image.png
    可先在连接器工厂发起测试,身份验证「新增账号」-参数按照获取身份验证的方式拿到appKey及密钥
    image.png
    image.png
    2、宜搭数据源调用连接器
    宜搭数据源处调连接器使用参考:https://docs.aliwork.com/docs/yida_support/wtwabe/zevvr1/_2/gtkly9/stbfik#ZUnMw
    image.png
    3、【获取员工考勤】
  • 如何获取每月开始/结束时间,可参考宜搭API:https://docs.aliwork.com/docs/developer/api/yidaAPI#thisutilsgetdatetimerangewhen-type
    宜搭数据源处直接调用宜搭官方连接器
    如下图:
    image.png
    image.png
    4、部门组件添加回调事件
    image.png
    参考代码:

    export async function onChange(ctx) {
         
    const inputs = JSON.stringify({
         
      "body": {
         
        "cursor": "0",
        "size": "10",
        "dept_id": ctx.value[0].value
      }
    })
    try {
         
      const res = await this.dataSourceMap.getdeptMember.load({
         //获取部门成员
        inputs: inputs
      })
      const {
          list } = res.result
      if (list.length == 0) {
          return; }
      const promises = list.map(async (item) => {
         
        const inputsT = JSON.stringify({
         
          "from_date": this.utils.getDateTimeRange(new Date, 'month')[0],
          "to_date": this.utils.getDateTimeRange(new Date, 'month')[1],
          "userid": [item.userid]
        })
        try {
         
          const result = await this.dataSourceMap.getWorkDays.load({
         //获取考勤天数
            inputs: inputsT
          })
          const newResult = JSON.parse(result)
          return {
         
            name: item.name,
            userid: item.userid,
            should_work_value: newResult.should_work_value,//应出勤天数
            workDay: newResult.work_value,//实际出勤天数
          }
        } catch (error) {
         
          console.log(error)
          return null;
        }
      })
      const arr = await Promise.all(promises);
      const filteredArr = arr.filter((item) => item !== null);
      const memberArr = filteredArr.map((item) => {
         
        return {
         
          "employeeField_lp6jxb0a":
            [{
         
              label: item.name,
              value: item.userid
            }],
          "numberField_lp95pxxq": item.workDay,
          "numberField_lp95pxxr": item.should_work_value
    
        }
      })
      this.$('tableField_lp6jxb09').setValue(memberArr)
    } catch (error) {
         
      console.log(error)
    }
    }
    
目录
相关文章
|
数据格式
宜搭自定义页面组件 TablePc 渲染错误
宜搭自定义页面组件 TablePc 渲染错误
266 4
宜搭如何将组件的标题根据日期组件的日期动态变化?
宜搭如何将组件的标题根据日期组件的日期动态变化?
134 1
【分享】宜搭快捷复制组件fieldId插件\方法
开发过程中需要频繁复制组件的 fieldId 时 by 页一
1147 1
【分享】宜搭快捷复制组件fieldId插件\方法
|
编解码 运维 监控
4.1 钉钉宜搭大屏介绍|学习笔记
快速学习4.1 钉钉宜搭大屏介绍
4.1 钉钉宜搭大屏介绍|学习笔记
|
存储 安全 数据可视化
|
7月前
|
JavaScript
基于钉钉的宜搭创建付款流程
基于钉钉的宜搭创建付款流程
169 0
|
数据可视化
钉钉宜搭线上训练营开营啦!
还在独自摸索低代码苦于没有专业人员指导学习吗? 还在烦恼如何将业务场景搬到钉钉宜搭提高效率么? 集成&自动化、连接器、酷应用、数据大屏这些炫酷能力你会用么?
457 0
|
7月前
|
JavaScript 数据可视化 前端开发
钉钉宜搭通过js触发子表单数据联动
钉钉宜搭通过js触发子表单数据联动
|
7月前
宜搭直接链接跳转至特定人员钉钉的聊天窗口
宜搭直接链接跳转至特定人员钉钉的聊天窗口
|
7月前
在钉钉宜搭中,要实现单选关联选项设置与图文展示的关联
在钉钉宜搭中,要实现单选关联选项设置与图文展示的关联
445 7