宜搭低代码开发高级认证例题1-待办列表

1、进行中待办和已完成待办界面相同

关键代码就是重要度默认为1星

2、新增自定义页面Todolist

2.1主要参数设置-新建远和API

getTodoList和getDoneList代码相同

绑定代码:`/${window.pageConfig.appType || window.g_config.appKey}/v1/form/searchFormDatas.json`

绑定代码:`/${window.pageConfig.appType || window.g_config.appKey}/v1/form/saveFormData.json`

绑定代码:`/${window.pageConfig.appType || window.g_config.appKey}/v1/form/deleteFormData.json`

绑定代码:`/${window.pageConfig.appType || window.g_config.appKey}/v1/form/updateFormData.json`

2.2 新建变量

3、主要JS代码如下:

/**
* 尊敬的用户,你好:页面 JS 面板是高阶用法,一般不建议普通用户使用,如需使用,请确定你具备研发背景,能够自我排查问题。当然,你也可以咨询身边的技术顾问或者联系宜搭平台的技术支持获得服务(可能收费)。
* 我们可以用 JS 面板来开发一些定制度高功能,比如:调用阿里云接口用来做图像识别、上报用户使用数据(如加载完成打点)等等。
* 你可以点击面板上方的 「使用帮助」了解。
*/// 当页面渲染完毕后马上调用下面的函数,这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {console.log(`「页面 JS」:当前页面地址 ${location.href}`);this.$('dialog_one').hide();this.$('dialog_two').hide();this.getTodoList(); // 获取数据this.getDoneList(); // 获取数据
}/**
* 获取数据 - 高级版 进行中的待办
*/
export function getTodoList() {const { pageSize, currentPage, searchFieldData = {}, dynamicOrderData = {} } = this.state;this.dataSourceMap.getTodoList.load({formUuid: 'FORM-F2C0FE8F01D74EEA922E0329875252F4C0I5',pageSize,currentPage,searchFieldJson: JSON.stringify(searchFieldData),dynamicOrder: JSON.stringify(dynamicOrderData),}).then((res) => {const { totalCount = 0, data = [] } = res;const result = data.map((item) => {const { formInstId, formUuid, formData = {} } = item;return {formInstId,formUuid,...formData,};});this.setState({tableData: {currentPage,data: result,totalCount,},tableIsLoading: false,});}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});this.setState({tableIsLoading: false,});});
}/**
* tablePc onFetchData
* @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 onFetchData(params) {const { pageSize } = this.state;if (params.from === 'search' || params.pageSize !== pageSize) {params.currentPage = 1;}const orderTypeText = {'desc': '-', // 降序'asc': '+', // 升序};let dynamicOrderData = {};dynamicOrderData[params.orderColumn] = orderTypeText[params.orderType];this.setState({currentPage: params.currentPage,pageSize: params.pageSize,searchFieldData: { radioField_lxin6d6o: params.searchKey }, // 搜索功能tableIsLoading: true,});this.getTodoList();
}/**
* 获取数据 - 高级版 已完成待办
*/
export function getDoneList() {const { pageSize, currentPage, searchFieldData = {}, dynamicOrderData = {} } = this.state;this.dataSourceMap.getDoneList.load({formUuid: 'FORM-ECED72855006441B8057B5279BCA548FE5YH',pageSize,currentPage,searchFieldJson: JSON.stringify(searchFieldData),dynamicOrder: JSON.stringify(dynamicOrderData),}).then((res) => {const { totalCount = 0, data = [] } = res;const result = data.map((item) => {const { formInstId, formUuid, formData = {} } = item;return {formInstId,formUuid,...formData,};});this.setState({tableDoneData: {currentPage,data: result,totalCount,},tableIsLoading: false,});}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});this.setState({tableIsLoading: false,});});
}/**
* tablePc onFetchData
* @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 onFetchDoneData(params) {const { pageSize } = this.state;if (params.from === 'search' || params.pageSize !== pageSize) {params.currentPage = 1;}const orderTypeText = {'desc': '-', // 降序'asc': '+', // 升序};let dynamicOrderData = {};dynamicOrderData[params.orderColumn] = orderTypeText[params.orderType];this.setState({currentPage: params.currentPage,pageSize: params.pageSize,searchFieldData: { radioField_lxlayzcx: params.searchKey }, // 搜索功能tableIsLoading: true,});this.getDoneList();
}let isUpdate = false;
let updateformInstId = '';
let deleteformInstId = '';
/**
* dialog onCancel
*/
export function onCancel() {console.log('onCancel');this.$('dialog_one').hide();
}/**
* dialog onClose
*/
export function onClose() {console.log('onClose');this.$('dialog_one').hide();
}/**
* dialog onCancel
*/
export function onCancelDelete() {console.log('onCancel');this.$('dialog_two').hide();
}/**
* dialog onClose
*/
export function onCloseDelete() {console.log('onClose');this.$('dialog_two').hide();
}// 打开新增窗口
export function onOpenDialog() {isUpdate = false;this.$('dialog_one').set('title', '新增待办');this.$('dialog_one').show(() => {this.$('textField_lxjrxjj8').reset(); // 待办事项this.$('radioField_lxjrxjj9').reset(); // 分类this.$('rateField_lxjrxjja').setValue(1),// 重要度this.$('dateField_lxjrxjjb').reset(); // 提醒日期this.$('textareaField_lxjrxjjc').reset(); // 待办详情});
}// 打开修改窗口
export function onEditDialog(rowData) {isUpdate = true;this.$('dialog_one').set('title', '更新待办');this.$("dialog_one").show(() => {this.$('textField_lxjrxjj8').setValue(rowData.textField_lxin6d6m),// 待办事项this.$('radioField_lxjrxjj9').setValue(rowData.radioField_lxin6d6o),// 分类this.$('rateField_lxjrxjja').setValue(rowData.rateField_lxin6d6s_value),// 重要度this.$('dateField_lxjrxjjb').setValue(rowData.dateField_lxin6d6u),// 提醒日期this.$('textareaField_lxjrxjjc').setValue(rowData.textareaField_lxin6d6w),// 待办详情this.updateformInstId = rowData.formInstId});
}/**
* 保存新增/修改数据窗口
*/
export function onOpenDialogOk() {this.$('dialog_one').set('confirmState', 'LOADING'); // 开启对话框加载状态let todo = this.$('textField_lxjrxjj8').getValue(); // 待办事项let asort = this.$('radioField_lxjrxjj9').getValue(); // 分类let importance = this.$('rateField_lxjrxjja').getValue(); // 重要度let remindtime = this.$('dateField_lxjrxjjb').getValue(); // 提醒日期let detail = this.$('textareaField_lxjrxjjc').getValue(); // 待办详情let formData = {"textField_lxin6d6m": todo, // 待办事项"radioField_lxin6d6o": asort, // 分类"rateField_lxin6d6s": importance, // 重要度"dateField_lxin6d6u": remindtime, // 提醒日期"textareaField_lxin6d6w": detail, // 待办详情};let formDataJson = [];if (isUpdate) {//更新数据let params = {formInstId: this.updateformInstId,updateFormDataJson: JSON.stringify(formData)};this.dataSourceMap.updateData.load(params).then(() => {this.$('dialog_one').set('confirmState', 'NORMAL'); // 关闭对话框加载状态this.$('dialog_one').hide();this.utils.toast({title: '更新成功',type: 'success',});setTimeout(() => {this.setState({tableIsLoading: true,});this.getTodoList(); // 获取数据}, 1000);}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});this.$('dialog_one').set('confirmState', 'NORMAL'); // 关闭对话框加载状态});} else {//保存数据let params = {formUuid: "FORM-F2C0FE8F01D74EEA922E0329875252F4C0I5",appType: pageConfig.appType,formDataJson: JSON.stringify(formData)};this.dataSourceMap.saveData.load(params).then(() => {this.$('dialog_one').set('confirmState', 'NORMAL'); // 关闭对话框加载状态this.$('dialog_one').hide();this.utils.toast({title: '保存成功',type: 'success',});setTimeout(() => {this.setState({tableIsLoading: true,});this.getTodoList(); // 获取数据}, 1000);}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});this.$('dialog_one').set('confirmState', 'NORMAL'); // 关闭对话框加载状态});}
}// 进行中事项删除框
export function onDeleteDialog(rowData) {this.$('dialog_two').show(() => {this.deleteformInstId = rowData.formInstId;});
}/**
* dialog onOk
*/
export function onDeleteOk() {this.$('dialog_two').set('confirmState', 'LOADING'); // 开启对话框加载状态this.dataSourceMap.deleteData.load({ formInstId: this.deleteformInstId}).then(() => {this.$('dialog_two').set('confirmState', 'NORMAL'); // 关闭对话框加载状态this.$('dialog_two').hide();this.utils.toast({title: '删除成功',type: 'success',});setTimeout(() => {this.setState({tableIsLoading: true,});this.getTodoList(); // 获取数据this.getDoneList();}, 1000);}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});this.$('dialog_two').set('confirmState', 'NORMAL'); // 关闭对话框加载状态});
}/**
* 选择(或取消选择)数据之后的回调
* @param selected Boolean 是否选中
* @param rowData Object 当前操作行
* @param selectedRows Array 选中的行数据
*/    
export function onSelect(selected, rowData, selectedRows) {console.log(selected, rowData, selectedRows);//删除todolist里这条数据this.dataSourceMap.deleteData.load({ formInstId: rowData.formInstId }).then(() => {setTimeout(() => {this.setState({tableIsLoading: true,});this.getTodoList(); // 获取数据}, 1000);}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});}); //保存上面删除的数据到donelistlet params = {formUuid: "FORM-ECED72855006441B8057B5279BCA548FE5YH",appType: pageConfig.appType,formDataJson: JSON.stringify({"textField_lxlayzcu": rowData.textField_lxin6d6m, // 待办事项"radioField_lxlayzcx": rowData.radioField_lxin6d6o, // 分类"rateField_lxlayzcz": rowData.rateField_lxin6d6s, // 重要度"dateField_lxlayzd1": rowData.dateField_lxin6d6u, // 提醒日期"textareaField_lxlayzd3": rowData.textareaField_lxin6d6w // 待办详情})};this.dataSourceMap.saveData.load(params).then(() => {this.utils.toast({title: '操作成功!',type: 'success',});setTimeout(() => {this.setState({tableIsLoading: true,});this.getDoneList(); // 获取数据}, 1000);}).catch(({ message }) => {this.utils.toast({title: message,type: 'error',});}); 
}

4、字段与绑定

数据字段对应的是进行中待办所录入的信息字段,要一一对应绑定在这里

已完成待办中所绑定

与进行中的待办相同

与进行中的待办相同

5、新增/更新对话框

进行中和已完成待办共用的删除对话框

注意:

重要度是用枚举方式来绑定

[{"color": "grey","text": "1","value": 1,"__sid__": "serial_lxsixjuy"},{"color": "blue","text": "2","value": 2,"__sid__": "serial_lxsixjuz"},{"color": "yellow","text": "3","value": 3,"__sid__": "serial_lxsixjv0"},{"color": "green","text": "4","value": 4,"__sid__": "serial_lxsixjv1"},{"color": "red","text": "5","value": 5,"__sid__": "serial_lxsixjv2"}
]

最后就可以进行测试操作

测试完成后把应用名称与应用跳转地址提交答案即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福州代理记账服务财务专业知识会计助手

福州的代理记服务可探索企业和个体工商户处理财务和会计工作。选择合适的代理记服务不仅可以节省成本,还可以确保财务工作专业、合规。以下是一些关于代理记服务的关键信息和财务信息,供您参考: https://www.9733.cn/news/detail/180.html …

C++ ─── vector的实现

知识点: ① 因为vector是模版,所以声明和定义都放在.h中,防止出现编译错误 .h不会被编译,在预处理中.h在.cpp中展开所以在编译时只有.cpp 而 .cpp顺序编译,只会进行向上查找,因此至少有函数的声明。 ②memc…

【数据结构与算法】堆排序算法 详解

堆排序算法 Status heapAdjust(ElemType *a, int s, int m) {ElemType t a[s];for (int j s * 2 1; j < m; j j * 2 1) {if (j < m && a[j] < a[j 1]) {j;}if (t > a[j]) {break;}a[s] a[j];s j;}a[s] t;return OK; }Status heapSort(ElemType *a…

xhs 旋转验证码剖析和协议算法实现

【作者主页】&#xff1a;小鱼神1024 【擅长领域】&#xff1a;JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#…

计算机视觉的职业规划

Hi&#xff0c;大家好。我是茶桁。 今天这节课呢&#xff0c;咱们先不着急讲原理&#xff0c;先来讲讲职业规划的话题。 如果想要直接上手企业级的 AI 项目&#xff0c;可以看看咱们的「AI 人工智能企业项目实战」。 趋势和薪资 首先&#xff0c;先来讲讲就业的趋势。其实学…

JavaWeb——MySQL:DDL

目录 3. DQL:查询 ​编辑3.3 排序查询&#xff08;order by&#xff09; &#xff08;1&#xff09;排序 &#xff08;2&#xff09;多字段排序&#xff1a; &#xff08;3&#xff09;总结&#xff1a; 3. DQL:查询 查询是使用最多、最频繁的操作&#xff0c;因为前面的…

开心汉化轻量级工单与知识库一体化管理系统源码

开心汉化发布&#xff1a;轻量级工单与知识库一体化管理系统源码 我们很高兴地宣布&#xff0c;开心汉化团队现已发布一款轻量级工单与知识库一体化管理系统的汉化源码。该系统不仅功能强大&#xff0c;而且易于部署和管理&#xff0c;适用于各类企业或个人管理大量工单数据的…

微软结束将数据中心置于海底的实验

2016 年&#xff0c;微软 宣布了一项名为"纳蒂克项目"&#xff08;Project Natick&#xff09;的实验。基本而言&#xff0c;该项目旨在了解数据中心能否在海洋水下安装和运行。经过多次较小规模的测试运行后&#xff0c;该公司于 2018 年春季在苏格兰海岸外 117 英尺…

密码学及其应用 —— Java中的安全性

1. 简介 Java是一种广泛使用的编程语言&#xff0c;特别是在企业级解决方案中&#xff0c;比如使用J2EE、JavaBeans等技术。在Web开发领域&#xff0c;Java也有其应用&#xff0c;如客户端的applet和服务器端的Servlets/JSP。 1.1 Java的特点 面向对象&#xff1a;Java是一种面…

【个人博客搭建】(26)发布后端webapi项目

1、选择启动的webapi&#xff0c;右击发布 2、选择左下角的“显示所有设置” 在上一页按钮那边是发布文件夹的目录 地址&#xff0c; 现在界面的就是配置的信息&#xff0c; 配置&#xff1a;Debug、Release 目标框架&#xff1a;我们用的net8.0&#xff0c;就是他&#xff…

FPGA学习笔记(5)——硬件调试与使用内置的集成逻辑分析仪(ILA)IP核

如果要对信号进行分析&#xff0c;可以使用外置的逻辑分析仪&#xff0c;但成本较高&#xff0c;对初学者来说没有必要&#xff0c;可以使用Xilinx Vivado内自带的逻辑分析仪IP核对信号进行分析&#xff0c;不过需要占用一定的芯片资源。 本节采用上一节配置的LED灯闪烁代码&a…

学习记录697@数据通信基础之异步通信和同步通信

最近在看计算机网络物理层部分&#xff0c;涉及到异步通信和同步通信&#xff0c;这个和通信知识相关。 异步通信和同步通信都是为了解决时钟同步问题&#xff0c;这个和编程中的同步和异步是不一样的概念。 时钟同步 我的理解是&#xff0c;发送者发送一系列信号&#xff0…

手机定位技术全解析:原理、发展与应用

1. 引言 背景介绍 最近&#xff0c;神仙姐姐刘亦菲主演的电视剧《玫瑰的故事》中的一段情节引发了广泛讨论。剧中&#xff0c;方协文&#xff08;丈夫&#xff09;对玫瑰&#xff08;妻子&#xff09;的控制欲变本加厉&#xff0c;竟然偷偷在她的手机上安装监控软件&#xff…

python笔记3

1.通过乘法多次打印&#xff0c;以及字符串相加的合体打印 xzzz yyyy print(xy) print(x*10)#与一个数为打印多少次 2.设置俩个变量&#xff0c;可以通过下面的方法来判断是否一个元素是否在另一个元素中&#xff0c;返回bool值 xzzz yyyy print(xy) print(x*10)#与一个数为打…

Android app Java层异常捕获方案

背景&#xff1a; 在Android app运行中&#xff0c;有时一些无关紧要的异常出现时希望App 不崩溃&#xff0c;能继续让用户操作&#xff0c;可以有效提升用户体验和增加业务价值。 新流程&#xff1a; 哪些场景需要Catch Crash Config配置信息&#xff1a; 支持从网络上获…

PPT录屏怎么录?PPT录屏,3种方法简单操作

在数字化时代&#xff0c;PPT已经成为我们日常工作、学习和生活中不可或缺的一部分。无论是商务报告、教学课件还是产品展示&#xff0c;PPT都能帮助我们更加生动、直观地传递信息。然而&#xff0c;有时候我们会面临PPT录屏怎么录的问题。这时&#xff0c;一个好的PPT录屏功能…

合同与合规管理:国企数字化转型之路

在全球经济一体化的背景下&#xff0c;国有企业作为国家经济的重要支撑&#xff0c;其稳健的操作和高效的管理备受瞩目。随着市场经济条件的不断演变和法规的日益严格&#xff0c;传统的手动处理合同和合规管理方式已逐步显示出局限性。采纳先进的合同管理系统和合规管理系统从…

【C++11(二)】lambda表达式和可变参数模板

一、可变参数模板 C11的新特性可变参数模板 能够让您创建可以接受 可变参数的函数模板和类模板 // Args是一个模板参数包&#xff0c;args是一个函数形参参数包 // 声明一个参数包Args...args&#xff0c;这个参数包中可以包含0到任意个模板参数。 template <class ...Arg…

科普文:贝叶斯过滤器判定垃圾邮件

简介 贝叶斯分类的运作是借着使用标记(一般是字词&#xff0c;有时候是其他)与垃圾邮件、非垃圾邮件的关连&#xff0c;然后搭配贝叶斯推断来计算一封邮件为垃圾邮件的可能性。 贝叶斯垃圾邮件过滤是非常有威力的技术&#xff0c;可以修改自己以符合个别使用者的需要&#xff0…

C# Onnx Yolov8-OBB 旋转目标检测 行驶证副页条码+编号 检测,后续裁剪出图片并摆正显示

C# Onnx Yolov8-OBB 旋转目标检测 行驶证副页条码编号 检测&#xff0c;后续裁剪出图片并摆正显示 目录 效果 模型信息 项目 代码 下载 效果 模型信息 Model Properties ------------------------- date&#xff1a;2024-06-25T10:59:15.206586 description&#xff1a;…