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

简介: 本文档只做参考使用,请结合具体需求修改,如有问题,概不负责!!!!因本章涉及页面代码,请确保宜搭使用版本可使用页面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)
    }
    }
    
目录
相关文章
|
7月前
宜搭如何将组件的标题根据日期组件的日期动态变化?
宜搭如何将组件的标题根据日期组件的日期动态变化?
57 1
|
8月前
|
数据格式
宜搭自定义页面组件 TablePc 渲染错误
宜搭自定义页面组件 TablePc 渲染错误
174 4
|
JavaScript
【分享】宜搭js代码验证组件校验结果(触发组件校验)
有时候需要手动触发校验,特别是自定义页面,校验通过才进行下一步 by 页一
1038 1
|
JavaScript API 数据处理
【分享】宜搭开发,快速离线测试代码、组件api、组件属性
【分享】利用好浏览器的控制台功能(F12=>控制台) by 页一
978 2
【分享】宜搭开发,快速离线测试代码、组件api、组件属性
宜搭组件-多选框所选内容如何判断对错
考试场景: 用户通过多选框选择了答案,如何在页面中就判断出所填内容的对错。 难点: 多选框选择是有前后顺序的,无法单纯比对答案来判断所选内容对错。 例如多选框选项ABCD,答案BD,用户先选D再选B,单纯比对会被判断为错误。
238 2
宜搭组件-多选框所选内容如何判断对错
|
编解码 运维 监控
4.1 钉钉宜搭大屏介绍|学习笔记
快速学习4.1 钉钉宜搭大屏介绍
1694 0
4.1 钉钉宜搭大屏介绍|学习笔记
|
存储 安全 数据可视化
走进钉钉宜搭|学习笔记(一)
快速学习走进钉钉宜搭
801 0
走进钉钉宜搭|学习笔记(一)
|
2月前
|
JavaScript
基于钉钉的宜搭创建付款流程
基于钉钉的宜搭创建付款流程
44 0
|
2月前
|
JavaScript 数据可视化 前端开发
钉钉宜搭通过js触发子表单数据联动
钉钉宜搭通过js触发子表单数据联动
|
2月前
宜搭直接链接跳转至特定人员钉钉的聊天窗口
宜搭直接链接跳转至特定人员钉钉的聊天窗口

热门文章

最新文章