宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用)

这篇具有很好参考价值的文章主要介绍了宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

目标:

操作步骤:

一、主要涉及的接口

二、代码及说明步骤


目标:

  • 试题截图及步骤代码说明,很快完成考试。

操作步骤:

这里基础的两个页面创建很简单,直接省略。

直接说自定义页面——Todolist

接口文档:

跨应用数据源API | 钉钉宜搭·帮助中心

一、主要涉及的接口

①、获取待办 :/dingtalk/web/APP_XXXXXXXXXXXXX/v1/form/searchFormDatas.json

②、删除:/dingtalk/web/APP_XXXXXXXXXXXXX/v1/form/deleteFormData.json

③、获取已完成待办:

/dingtalk/web/APP_XXXXXXXXXXXXX/v1/form/searchFormDatas.json

④、 提交待办信息表单:

/dingtalk/web/APP_XXXXXXXXXXXXX/v1/form/saveFormData.json

⑤、更新修改待办信息表单:

/dingtalk/web/APP_XXXXXXXXXXXXX/v1/form/updateFormData.json

二、代码及说明步骤

①、列表

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

说明:顶部操作:新建代办;   操作列:编辑/删除;  行选择器:单选/多选

列表代码:

1-1. 待办列表:

//获取进行中待办数据
export function getTodoListData() {
  this.dataSourceMap.getTodoTasks.load().then(res => {
    //console.log(res)
    //以下根据返回内容重构数据对象,使数据格式符合宜搭组件格式要求
    let toDoData = []
    for (let i = 0; i < res.data.length; i++) {
      let tmpData = res.data[i].formData
      //此处另外添加formInstId属性,用于之后的复选框功能
      tmpData['formInstId'] = res.data[i].formInstId
      //将每一个重构的对象存入到全局变量ToDoData
      toDoData.push(tmpData)
    }
    console.log('v0', toDoData)
    //表格展示数据源。其中,currentPage和totalCount的取值会影响到表格分页器的展示
    this.setState({
      toDoListData: {
        data: toDoData,
        currentPage: res.currentPage,
        totalCount: res.totalCount
      }
    })
    //原表单真实数据集,用于后续的搜索功能
    state.ToDoData_1['data'] = toDoData
  })
 
}

1-2. 完成列表:

//获取已完成待办数据
export function getDoneListData() {
  this.dataSourceMap.getFinishTasks.load().then(res => {
    console.log(res)
    //以下根据返回内容重构数据对象,使数据格式符合宜搭组件格式要求
    let toDoData = []
    for (let i = 0; i < res.data.length; i++) {
      let tmpData = res.data[i].formData
      //此处另外添加formInstId属性,用于之后的复选框功能
      tmpData['formInstId'] = res.data[i].formInstId
      //将每一个重构的对象存入到全局变量ToDoData
      toDoData.push(tmpData)
    }
    console.log('v2', toDoData)
    //表格展示数据源。其中,currentPage和totalCount的取值会影响到表格分页器的展示
    this.setState({
      doneListData: {
        data: toDoData,
        currentPage: res.currentPage,
        totalCount: res.totalCount
      }
    })
    //原表单真实数据集,用于后续的搜索功能
    state.doneListData_1['data'] = toDoData
  })
  console.log('v28888', state.doneListData_1)
}

搜索

1-3. 待办搜索:

/**
* tablePc onToDoFetchData
* @param params.currentPage 当前页码
* @param params.pageSize 每页显示条数
* @param params.searchKey 搜索关键字
* @param params.orderColumn 排序列
* @param params.orderType 排序方式(desc,asc)
* @param params.from 触发来源(order,search,pagination)
*/
export function onToDoFetchData(params) {
  // 如果是搜索的话翻页重置到 1
  if (params.from === 'search') {
    params.currentPage = 1;

    //判断搜索框内是否有值,有则根据搜索框内的内容,对照toDoData_1中的数据集进行比对,这里,将【分类】的值作为搜索的类别。
    if (params.searchKey) {
      let tmpToDoData = state.ToDoData_1['data']
      let tmpTodoArr = []
      //遍历tmpTodoData集合,比较指定键对应的值是否与search属性中的值相等,如果相等,则添加到tmpToDoArr数组中,最后,将数组重新赋值给表格展示数据源toDoListData。
      for (let i = 0; i < tmpToDoData.length; i++) {
        if (tmpToDoData[i]['radioField_lhomxns9'] == params.searchKey) {
          tmpTodoArr.push(tmpToDoData[i])
        }
      } 
      this.setState({
        toDoListData: {
          data: tmpTodoArr,
          currentPage: params.currentPage,
          totalCount: tmpTodoArr.length
        }
      })
    } else{
      this.setState({
        toDoListData: {
          data: state.ToDoData_1['data'],
          currentPage: params.currentPage,
          totalCount: state.ToDoData_1['data'].length
        }
      })
    }

  }
}

1-4.  已完成搜索:

/**
 * 已完成的搜索
* tablePc onToDoFetchData
* @param params.currentPage 当前页码
* @param params.pageSize 每页显示条数
* @param params.searchKey 搜索关键字
* @param params.orderColumn 排序列
* @param params.orderType 排序方式(desc,asc)
* @param params.from 触发来源(order,search,pagination)
*/
export function onDoneFetchData(params) {
  // 如果是搜索的话翻页重置到 1
  if (params.from === 'search') {
    params.currentPage = 1;

    //判断搜索框内是否有值,有则根据搜索框内的内容,对照toDoData_1中的数据集进行比对,这里,将【分类】的值作为搜索的类别。
    if (params.searchKey) {
      let tmpToDoData = state.doneListData_1['data']
      let tmpTodoArr = []
      //遍历tmpTodoData集合,比较指定键对应的值是否与search属性中的值相等,如果相等,则添加到tmpToDoArr数组中,最后,将数组重新赋值给表格展示数据源toDoListData。
      for (let i = 0; i < tmpToDoData.length; i++) {
        if (tmpToDoData[i]['radioField_lhomxns9'] == params.searchKey) {
          tmpTodoArr.push(tmpToDoData[i])
        }
      }
      this.setState({
        doneListData: {
          data: tmpTodoArr,
          currentPage: params.currentPage,
          totalCount: tmpTodoArr.length
        }
      })
    } else {
      this.setState({
        doneListData: {
          data: state.doneListData_1['data'],
          currentPage: params.currentPage,
          totalCount: state.doneListData_1['data'].length
        }
      })
    }

  }

说明:

在搜索的时候,需要建立动作绑定方法。

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

注:这个搜索是通过分类搜索的,所以代码里的判断是对分类唯一操作键的判断。 

1-5. 编辑代码:

//修改待办: 打开对话框
export function onUpdataBarItemClick(selectedRowKeys, records) {
 
  this.$('dialog_lhsjdzz3').show()

  
  const title = selectedRowKeys.textField_lhomxns7
  const type = selectedRowKeys.radioField_lhomxns9
  const degree = selectedRowKeys.rateField_lhomxnsb
  const time = selectedRowKeys.dateField_lhpocmef
  const note = selectedRowKeys.textareaField_lhpocmeh
  const formInstId = selectedRowKeys.formInstId

  this.setState({
    title: title
  })
  this.setState({
    type: type
  })
  this.setState({
    degree: degree
  })
  this.setState({
    time: time
  })
  this.setState({
    noInfo: note
  })
  this.setState({
    formInstId: formInstId
  })


}

这里特别注意:  

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

这个是编辑修改按钮,需要把这行数据渲染出来,因此,在这里,我新建了几个变量。

1-6. 删除代码:


//删除进行中的待办
export function onDelToDoClick(rowData) {
  this.$('dialog_lhpv0960').show()
  this.setState({
    toDoRowData: rowData
  })

}
//调用删除API,此处就是前述提到的接口复用,只要在js中调用接口,不在数据源面板设置参数值,就可以通过修改参数值,就可以删除已有的任意一条数据,包括已完成待办。
export function delToDoItem(data) {
  var formInstId = data;
  if (undefined == data){
    formInstId = state.toDoRowData.formInstId
  }
  
  
  let params = {
    formInstId: formInstId
  }
  this.dataSourceMap.deleteToDoList.load(params).then(res => {
    this.$('dialog_lhpv0960').hide()
    this.getTodoListData()
    this.getDoneListData()
  }).catch(err => {
    console.log(err)
  })
}

1-7. 删除取消:


/**
* 删除取消 
*/
export function onCancel() {
  this.$('dialog_lhpv0960').hide();
  return;
}

②、新增待办

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

 宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

 说明: 这里的唯一键要一直,不然列表显示不出来。

代码:

//新建进行中待办
export function updateTodoList() {
  //获取对应组件的输入值
  let title = this.$('textField_lhomxns7').getValue()  //待办事项
  let type = this.$('radioField_lhomxns9').getValue()  //分类
  let degree = this.$('rateField_lhomxnsb').getValue()  //重要度
  let time = this.$('dateField_lhpocmef').getValue()  //提醒时间
  let note = this.$('textareaField_lhpocmeh').getValue()  //待办详情
  //将要新建的内容转换为json对象
  let dataJson = {
    "textField_lhomxns7": title,
    "radioField_lhomxns9": type,
    "rateField_lhomxnsb": degree,
    "dateField_lhpocmef": time,
    "textareaField_lhpocmeh": note
  }
  dataJson = JSON.stringify(dataJson)
 
  //构建新建接口所需的json参数对象
  let params = {
    formUuid: "FORM-XXXXXXXXXXX",
    appType: "APP_XXXXXXXXXXX",
    formDataJson: dataJson
  }
  this.dataSourceMap.addInfoForm.load(params).then(res => {
    //console.log('2222%', res)
    this.$('dialog_lhpv095o').hide();
    this.getTodoListData()
    this.utils.toast("保存成功")
    //window.location.reload();
  }).catch(err => {
    console.log('#', err) //打印错误,可选
  })
}

③、修改

修改给设置默认值:

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

 宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

说明:这个默认值实在编辑的时候,打开编辑框,给变量赋值。然后设置。

新增和修改使用的两个接口,所以,需要在复制一个修改窗口:

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

 特别说明:修改接口的唯一键不能和新增的一样,不然保存会保存,唯一键重复。这里代码可以这样写:


//修改进行中待办表单
export function updateInfoForm(){
  let formInstId = state.formInstId
  //获取对应组件的输入值
  let title = this.$('textField_lhsjdzyy').getValue()  //待办事项
  let type = this.$('radioField_lhsjdzyz').getValue()  //分类
  let degree = this.$('rateField_lhsjdzz0').getValue()  //重要度
  let time = this.$('dateField_lhsjdzz1').getValue()  //提醒时间
  let note = this.$('textareaField_lhsjdzz2').getValue()  //待办详情
  //将要新建的内容转换为json对象
  let dataJson = {
    "textField_lhomxns7": title,
    "radioField_lhomxns9": type,
    "rateField_lhomxnsb": degree,
    "dateField_lhpocmef": time,
    "textareaField_lhpocmeh": note
  }
  dataJson = JSON.stringify(dataJson)
  console.log('dataJson%', dataJson)
  console.log('formInstId%', formInstId)
  //构建新建接口所需的json参数对象
  let params = {
    formInstId: formInstId,
    updateFormDataJson: dataJson
  }
  this.dataSourceMap.updateInfoForm.load(params).then(res => {
    console.log('updateInfoForm111', res)
    this.$('dialog_lhsjdzz3').hide();
    this.getTodoListData()
    this.utils.toast("修改成功")
  }).catch(err => {
    console.log('#', err) //打印错误,可选
  })
}

如图:

宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

1指的是修改窗口的唯一键。2代表列表的唯一键,把1赋值给2,然后调用接口即可实现修改操作。

 宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用),宜搭低代码高级考试,低代码,javascript,阿里云

修改改变

//这里无需重新访问接口,只需调用先前的接口,传入勾选行的元组即可,这里是先创建全局变量【hvDoneData】,再将rowData赋值给它,在传入addInfoForm。
/**
* 选择(或取消选择)数据之后的回调
* @param selectedRowKeys Array 选中行的 key
* @param records Array 选中行的数据
*/
export function onSelectChange(selectedRowKeys, records) {
  // console.log('%%', selectedRowKeys, records[0]);
  this.setState({
    hvDoneData: records[0]
  })
  this.updateDoneList(state.hvDoneData)
  this.delToDoDataItem(records[0])
}

//更新已完成待办,即在已完成待办表单中新建进行中待办的删除项
export function updateDoneList(data) {
  delete data.formInstId
  let dataJson = JSON.stringify(data)
  let params = {
    formUuid: "FORM-UPXXXXXXXX",
    appType: "APP_XXXXXXXXXXXX",
    formDataJson: dataJson
  }
  this.dataSourceMap.addInfoForm.load(params).then(res => {
    console.log('%', res)
    this.getDoneListData()
  }).catch(err => {
    console.log(err)
  })
}

 说明:这里是点击进行中单选按钮后,直接修改状态到已完成列表中。

重要度枚举JS代码

[
  {
    "color": "grey",
    "text": "1",
    "value": 1,
    "__sid__": "serial_lhzpxn86"
  },
  {
    "color": "blue",
    "text": "2",
    "value": 2,
    "__sid__": "serial_lhzpxn87"
  },
  {
    "color": "yellow",
    "text": "3",
    "value": 3,
    "__sid__": "serial_lhzpxn88"
  },
  {
    "color": "green",
    "text": "4",
    "value": 4,
    "__sid__": "serial_lhzpxn89"
  },
  {
    "color": "red",
    "text": "5",
    "value": 5,
    "__sid__": "serial_lhzpxn8a"
  }
]

整体大致是这样,希望可以帮助到你。

如果有问题,欢迎留言。文章来源地址https://www.toymoban.com/news/detail-605202.html

到了这里,关于宜搭低代码开发师(高级)创建待办列表应用 流程截图及实例代码(避坑专用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 宜搭低代码开发师(高级)考试选择题错误整理集(自己整理的,考试前是50多分,看了后答题93分)

    目录 完成高级选择题认证目标: 这是我考了无数次,整理的错题集,希望能够帮助到你。  考试前的样子-57分  考试后的样子-93分 试题内容如下: 五分钟搞定它 1. 简易流程编译器中可以使用 并行分支 节点   A 错误 2. 页面数据源面板中配置远程数据源接口,接口有跨域问

    2024年02月14日
    浏览(34)
  • 宜搭低代码高级认证实操题1 todolist

    进行中待办 已完成待办 待办事项 待办事项远程api和变量配置 回调函数 回调函数 页面js 数据绑定表 todoList doneList 动作设置 操作列 顶部操作:新增待办

    2024年04月09日
    浏览(49)
  • 阿里云宜搭低代码开发师(中级)实操题二:会员住房信息统计系统

    会员信息表 1、首先在“会员信息表”中组建所需的表单元素: 2、在“数据管理”中批量导入提供的Excel数据: 多图混合报表 新建报表,命名为“多图混合报表”: 顶部筛选栏中,新建四个筛选项:小区档次、职业、教育水平、创建时间区间: 新建“人群人数分布图”柱状

    2024年02月07日
    浏览(84)
  • 阿里云宜搭低代码开发师(中级)实操题一:仓库库存管理系统

    创建客户信息表 创建进货登记表 创建出货登记表 创建仓库库存表 然后,回到进货登记表的表单,设置数据联动,也就是进货数量加入到仓库库存表对应物品上。 1 2 3 去出货登记表的表单,同理。 1 2 3 OK,大功告成!

    2024年02月17日
    浏览(37)
  • 宜搭低代码快速上手使用手册

    广东数据项目组中,需要进行四员协同的开发工作,四员协同这个模块简单点说就是通过表单和流程相结合,进行数据收集和流程流转。在宜搭低代码中,可以直接用成员组件完成钉钉内的流程表单提交,和钉钉app相结合。基于广州项目组地市客户之前已经用过宜搭,故省局

    2024年02月22日
    浏览(26)
  • 【宜搭】低代码开发师高级认证实操题2指导

    知识点: 云原生 宜搭自动化 java 云部署 FaaS连接器配置 流程表单 难度: 中等 在本文中,我将根据题目的每一点要求,对于我在实操过程中遇到的难点进行比较详细的介绍,供大家参考,希望能够对大家有所帮助。 解题步骤: 表单的创建 三个普通表单,密钥维护页 敏感信

    2023年04月13日
    浏览(23)
  • 【宜搭】低代码开发师高级认证实操题1难点指导

    难度: 较难 知识点: 远程数据源 表单创建 表格组件使用 js增删改查功能代码编写 在本文中,我将根据题目的每一点要求,对于我在实操过程中遇到的难点进行比较详细的介绍,供大家参考,希望能够对大家有所帮助。 解题步骤: 创建页面 根据要求创建两个普通表单和一

    2024年01月25日
    浏览(24)
  • 微搭低代码从入门到精通04-创建自定义应用

    微搭中的应用分为两类,模型应用和自定义应用。上一篇我们介绍了模型应用的创建方法,本篇我们介绍一下自定义应用的创建方法。 登录微搭的控制台,在左侧的菜单里点击应用,点击新建应用,选择新建自定义应用 输入应用的名称 这里的支持平台一共有三个选项,如果

    2024年02月14日
    浏览(78)
  • iOS开发Swift-12-列表UI,TableViewController,动态响应Button勾选-待办事项App(1)

    1.创建新项目 为项目添加图标 2.将Table View Controller添加到界面中 将箭头移动到Table View上来,代表它是首页(根页面).选中ViewController,点击Delete,对它进行删除.将代码ViewController.swift也删除掉. 新建一个Cocoa Touch Class. 将TableViewController的class设置成TodosViewController. 2.为cell取名为TodoC

    2024年02月09日
    浏览(35)
  • 【宜搭】低代码开发师中级证书选择题库

    题目 正确选项内容 正确选项 1 关联表单组件在开启多选模式的情况下,也可以进行数据填充。 错误 2 普通表单中组件的唯一标识可以通过双击唯一标识进行修改。 错误 3 以下哪个函数可以正确获取成员的工号? USERFIELD( 成员 ,\\\"businessWorkNo\\\") D 4  以下哪个不属于报表页面中的

    2024年02月02日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包