
暂无个人介绍
//input对象是输入对象//outputs.add所添加的就是输出变量,具体看官方描述,可以供后面节点使用//groovy代码如下//'{"firstname":"页","lastname":"一","age":18}' 我返回的JSON格式 import groovy.json.*; //引入JSON包 //将JSON数据转换成对象 result.toString()加了toString()实测时需要这样转换下 JSONObject jsonObject=JSON.parseObject(result.toString()); outputs.add("姓","firstname",jsonObject.firstname); //提取姓 outputs.add("名","lastname",jsonObject.lastname); //提取名 outputs.add("年龄","age",jsonObject.age); //提取年龄
例如我在页面加载完毕,无限打印字符串页一当你想再次预览或者再次进入页面就会卡死,有些开发者会直接在后台删除该页面其实大可不必,按照下面步骤解决死循环卡死页面.1.在进入死循环页面之前,提前打开浏览器F12【推荐使用google内核浏览器】,切换到 源代码\来源 标签2.点击进入死循环页面,然后点击右侧暂停脚本按钮会出现下图提示3.鼠标长按暂停按钮,点击停止脚本执行4.这时就可以进入编辑界面了5.进入的同时按下F12,这时会处于 源代码\来源 面板,等待设计器加载完毕 点击暂停按钮6.鼠标长按暂停按钮,点击停止脚本执行7.此时就可以进入JS面板,修改\注释掉刚刚的死循环代码,保存页面恢复正常
你有没有觉得在JS面板测试一些简单的代码很麻烦,不管测试什么代码都要频繁保存预览看效果。如何不用频繁保存预览也能离线本地快速测试简单的代码,快速查看对象所有属性和方法,自动代码提示等。方法就是利用好浏览器的F12控制面板中的控制台在宜搭设计页面按F12打开控制台在控制台面板可以直接快速测试各种js代码通过在控制台输入输入各种代码,按回车他会立即执行并显示执行结果[强烈推荐]宜搭默认自带的Lodash插件数组、对象处理利器,封装好了各种超级方便的方法,宜搭数据处理利器_. 下划线就是lodash这个对象 详情官网https://www.lodashjs.com/例如:取一个数组中的最大值离线快速查看window.loginUser等对象的属性loginUser这个对象里面存着用户登录信息这里只是举例离线快速打印这个对象离线快速测试宜搭组件的api、查看组件属性1.在JS面板中的页面加载完毕里面写入以下代码window._that=this; //_that就是当前表单的上下文,就是js面板中的this2.点击预览==>新窗口中打开3.在新窗口中的控制台就可以离线快速测试宜搭组件的api不用频繁保存预览去测试,这样做还可以减轻宜搭服务器压力初学者测试好,了解这个api后就可运用到js面板,关键是它还有完善的代码提示功能例如:离线测试多选组件的各种方法和查看该组件的属性你还可以对着这些对象右键单击快速复制属性路径或者属性的值这样做,就不用在js面板中依次输入data.data[0].formData.字段名[0].字段属性它会体贴的快速给你复制出来例如下图快速复制出data[2].text快速离线查看测试宜搭封装的工具函数utils,有时候记不住api名称,又懒得翻文档,用这个方法就能有完整的代码提示这里你可以放心测试,因为是离线本地测试,它不会把测试代码保存到服务器上那怕是你在这里写了死循环,刷新一下就恢复了,不会造成你表单卡死无法恢复的情况教你个小技巧,如果是多行代码,你可以利用vsCode写好,粘贴到这里直接执行看效果
🔲修改之前(多选组件预览状态)✅修改后 (多选组件预览状态)两段代码,一种是原始方法,一种是react的函数组件方法,两段代码都可以用,选择你认为好理解的代码即可.原始方法//将这段代码放到页面加载完成事件里面 export function didMount() { if (this.utils.isViewPage()) { //checkboxField_lbfz35vr替换成你的多选组件filedId let checkBoxEle = this.$('checkboxField_lbfz35vr'); let newHtml = `<div style="font-size: 15px;padding:5px;"><span style="color: #a2a3a5;">${checkBoxEle.get('label')}</span><br/><br/>`; checkBoxEle.getValue().forEach(item => { newHtml += `<div style="padding-bottom: 4px;line-height:22px">${item}</div>` }) newHtml += '</div><br/>'; ReactDOM.findDOMNode(checkBoxEle).innerHTML = newHtml; } }react函数组件方法function Yeyidiv(props) { let { checkBoxEle } = props; const rootStyle = { fontSize: "15px", padding: "6px", } const titleStyle={ color: "#a2a3a5", } const itemStyle={ paddingBottom: "4px;", lineHeight: "22px", } return ( <div style={rootStyle}> <span style={titleStyle}>{checkBoxEle.get('label')}</span><br /><br /> {checkBoxEle.getValue().map(item => <div style={itemStyle}>{item}</div>)} <br /> </div> ) } // 当页面渲染完毕后马上调用下面的函数,这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。 export function didMount() { if (this.utils.isViewPage()) { //checkboxField_lbfz35vr替换成你的多选组件filedId let checkBoxEle = this.$('checkboxField_lbfz35vr'); ReactDOM.render( <Yeyidiv checkBoxEle={checkBoxEle} />, ReactDOM.findDOMNode(checkBoxEle) ); } }
效果如下,合计1.点击表格组件=>其他=>编辑代码 function afterFetch(data, extraInfo) { /** * 打印出表格展示的数据,它的结构是数组内包含N个对象 * 一定要在浏览器中按F12,点击控制台,点击报表预览,控制台会打印出表格展示的数据 * 格式如下[{'名称字段':'名称'},{'价格字段':'价格'}] * 查看完成可以在 console.log(data);前面加上双斜杠//注释掉,不让这段代码执行 */ console.log(data); return data; }2.在浏览器中按F12=>点击控制台=>再点击报表的预览按钮,控制台会打印出表格展示的数据,获取到字段信息.3.点击表格组件=>其他=>编辑代码(覆盖粘贴入以下代码)根据步骤2获取到的字段信息,按注释修改(field_lb92v43a和field_lb92v438字段)为你获取的字段信息 function afterFetch(data, extraInfo) { //field_lb92v43a和field_lb92v438都是需要修改的字段 //把字段的属性转浮点数,对这个属性进行求和(这里就是把价格求和) const total = _.sumBy(data, (o) => parseFloat(o['field_lb92v43a'])); //添加到表格展示数据末尾 data.push({ "field_lb92v438": "合计", //名称字段下方添加1个合计名称 "field_lb92v43a": total //求和结果添加到价格字段下方 }); return data; } 4.给合计行添加醒目颜色(大工告成)
"['李爱伟']".replace(/[^\u4e00-\u9fa5]/g,"") "['李爱伟']"换成你的姓名字段返回值 正则只取汉字
2023年01月
2022年12月
2022年11月
你将生产线排序试试
第一步:按1楼的办
第二步:把当前扫码人的信息保存到手机本地里面,下次打开此表单关联带出数据
使用:localStorage
参考:https://www.runoob.com/w3cnote/localstorage-spec.html
this.$('组件ID').setValidation([{ 'type':'required' }])
https://www.lodashjs.com/ 这是lodash插件下划线_指向这个插件对象
https://alidocs.dingtalk.com/i/p/Y7kmbokZp3pgGLq2/docs/lo1YvX0prG98kvEAreP1JPw7xzbmLdEZ?spm=a2q5o.26736379.0.0.327a40bdD099ji&dontjump=true
ctrl+c复制下方代码,然后到宜搭可视化设计器里面ctrl+v
{"type":"nodeSchema","componentsMap":{},"componentsTree":[{"componentName":"Div","props":{"useFieldIdAsDomId":true,"onClick":{"type":"JSExpression","value":"this.utils.legaoBuiltin.execEventFlow.bind(this, [this.onClick])","events":[{"name":"onClick","id":"onClick","params":{},"type":"actionRef","uuid":"1669692102531_1"}]},"visibility":["PC","MOBILE"],"width":"","customClassName":"","className":"div_lb1lrbdr","behavior":"NORMAL","__style__":":root {\n justify-content: space-around;\n align-items: center;\n position: fixed;\n bottom: 120px;\n border-color: #ffffff;\n box-shadow: rgba(31, 56, 88, 0.2) 4px 4px 15px 0px;\n right: 10px;\n opacity: 1.00;\n padding: 5px;\n flex-direction: row;\n display: block;\n border-radius: 10px;\n background: #ffffff;\n width: 60px;\n height: 70px;\n}\n","fieldId":"div_kzw1m5rk","height":"","events":{"ignored":true},"onMouseEnter":{"ignored":true},"onMouseLeave":{"ignored":true}},"condition":true,"loopArgs":["",""],"hidden":false,"title":"","isLocked":false,"conditionGroup":"","children":[{"componentName":"Div","props":{"useFieldIdAsDomId":false,"visibility":["PC","MOBILE"],"width":"","customClassName":"","className":"div_lb1lrbdq","behavior":"NORMAL","__style__":":root {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: 12px;\n cursor: pointer;\n justify-content: flex-end;\n}\n","fieldId":"div_kzw1m5rj","height":"","events":{"ignored":true},"onClick":{"ignored":true},"onMouseEnter":{"ignored":true},"onMouseLeave":{"ignored":true}},"condition":true,"loopArgs":["",""],"hidden":false,"title":"","isLocked":false,"conditionGroup":"","children":[{"componentName":"Div","props":{"useFieldIdAsDomId":false,"visibility":["PC","MOBILE"],"width":"","customClassName":"","className":"div_lb1lrbdo","behavior":"NORMAL","__style__":":root {\n\n}\n","fieldId":"div_kzs1pe9c","height":"","events":{"ignored":true},"onClick":{"ignored":true},"onMouseEnter":{"ignored":true},"onMouseLeave":{"ignored":true}},"condition":true,"hidden":false,"title":"","isLocked":false,"conditionGroup":"","children":[{"componentName":"Image","props":{"preview":false,"autoHeight":false,"visibility":["PC","MOBILE"],"src":"/fileHandle?appType=default_tianshu_app&fileName=f3a37de9-5318-4fb7-85c1-990457dba40e.png&instId=&type=download","alt":"Image 404","className":"image_lb1lrbdn","fit":"cover","round":"0","width":"","autoWidth":false,"roundRadius":"0","__style__":":root {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n margin-bottom: 0px;\n filter: grayscale(0%);\n width: 35px;\n}\n","height":"","fieldId":"image_kzw1m5rh","events":{"ignored":true},"onClick":{"ignored":true}},"condition":true,"loopArgs":["item","index"],"hidden":false,"title":"","isLocked":false,"conditionGroup":""}]},{"componentName":"Text","props":{"maxLine":0,"visibility":["PC","MOBILE"],"showTitle":false,"contentPaddingMobile":"0","className":"text_lb1lrbdp","behavior":"NORMAL","content":{"use":"zh_CN","en_US":"Tips content","zh_CN":"打印","type":"i18n"},"__style__":":root {\n line-height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #0099CC;\n filter: grayscale(0%);\n font-size: 13px;\n}\n","fieldId":"text_kzw1m5ri","events":{"ignored":true},"onClick":{"ignored":true}},"condition":true,"loopArgs":["item","index"],"hidden":false,"title":"","isLocked":false,"conditionGroup":""}]}]}]}
这个不好吗
下面公式判断某个日期组件内的日期是否在当天9点至次日9点
实际运用中可能不需要这个公式
{"text":"IF(AND(GE(日期,DAYBEGIN(TIMESTAMP(TODAY()))+32400000),LE(日期,DAYEND(TIMESTAMP(TODAY()))+32401000)),\"在\",\"不在\")","marks":[{"from":{"line":0,"ch":10,"sticky":null},"to":{"line":0,"ch":14,"sticky":null},"value":"dateField_lbk6nfgy","invalid":false},{"from":{"line":0,"ch":57,"sticky":null},"to":{"line":0,"ch":61,"sticky":null},"value":"dateField_lbk6nfgy","invalid":false}],"isCmData":true}
https://developer.aliyun.com/ask/466945?spm=a2c6h.13262185.profile-m.10.f5c347b3C2tNVA
你仔细检查下,"<10"里面是否包含其他符号,eq判断的是绝对相等
数据管理页的权限是继承原表单的权限,你设置下原表单权限试下。
宜搭不能开发微信小程序。
如果希望开发阶段希望子表单显示出所有字段,方便编辑和查看.可以按上图操作,开发完后,修改回来就是.
{"type":"nodeSchema","componentsMap":{},"componentsTree":[{"componentName":"Text","props":{"content":{"type":"i18n","use":"zh_CN","en_US":"Tips content","zh_CN":"屏幕100%宽度"},"behavior":"HIDDEN","contentPaddingMobile":"0","__style__":{},"fieldId":"text_lbafkh3v","events":{"ignored":true},"onClick":{"ignored":true},"showTitle":false,"maxLine":0},"hidden":false,"title":"","isLocked":false,"condition":true,"conditionGroup":""}]}
如果只是单纯想屏幕100%宽度,复制上面代码到开发界面即可
1. 千人前面,随着组织下宜搭应用越来越多,常用应用比较分散,有的应用入口较深。 2. 通过酷应用的形式,此应用可以群内一键分享、一键收藏、一键访问,可把常用应用,放到群内快速访问入口,用户为不必找各种应用而烦恼.
{"text":"DAYBEGIN(TIMESTAMP(NOW()))","marks":[],"isCmData":true}
我感觉你公式设置得不对,日期必须返回为时间戳,集成自动化的才能完毕筛选.
DAYBEGIN 这个公式获取当天最小日期
DAYEND 这个公式获取当天最大日期
你可以参考着修改
给你一段代码
const a=[1000,2000,2000,3000];
const tableValue = this.$('需要赋值的子表单').getValue();
const newTableValue=tableValue.map((item,index)=>{
item['子表内需要修改的字段']=a[index];
return item;
})
this.$('需要赋值的子表单').setValue(newTableValue);