功能流程预处理-ag尊龙凯时
sen
5439
前言
本文档仅介绍功能流程中的【交互-预处理】步骤的编程使用,其他涉及编程的地方由相应文档进行介绍。
编程方法体
代码如下: 复制代码
function prepare($programstore,$form,vue){
//$programstore:功能表单对象
//$form:暂时用不上
//vue:全局vue对象
}
$programstore
获取步骤的数据
$programstore.getters["getformvalue"]("步骤id");
获取集合步骤的数据
$programstore.getters["getformvalue"]("步骤id")["data"];
功能禁止提交
$programstore.dispatch("error/settext","按钮提示文本");
取消禁止提交
$programstore.dispatch("error/settext","");
设置整个步骤的值,一般配合获取步骤的值来使用
代码如下: 复制代码
$programstore.dispatch("set", {
procedure: "步骤id",
value: {},//步骤的值
});
设置集合步骤数据(固定写法)
代码如下: 复制代码
let list=[];
let view = $programstore.getters["view/getview"]("集合步骤id");
let tablestore = view.tablestore;
tablestore.dispatch("setdata", _.clonedeep(list));
监控,可监控步骤、属性
代码如下: 复制代码
$programstore.watch(()=>{
let obj = "需监控的对象"
return obj
},function(value,oldvalue){
//上面return的值有变化时执行此函数,value为变化后的值,oldvalue为变化前的值
//do something..
})
示例
监控步骤数据,步骤数据有变动时会执行
代码如下: 复制代码
$programstore.watch(()=>{
return $programstore.getters["getformvalue"]("步骤id");
},function(value,oldvalue){
//do something..
if (!_.isequal(value, oldvalue)) {//数据改动
}
})
监控步骤中某个属性
代码如下: 复制代码
$programstore.watch(()=>{
return programstore.getters["getformvalue"]("步骤id")["属性id"];
},function(value,oldvalue){
//do something..
})
设置某个步骤的某个字段的值(自带监控,自动计算)
代码如下: 复制代码
$programstore.util.compute("步骤id","属性id",(root)=>{
//root为整个功能的值,root["步骤id"]可获取步骤值
let result = 1;
return result;//计算结果
})
提交功能
$programstore.dispatch("submit");
隐藏步骤
代码如下: 复制代码
$programstore.dispatch("helper/hide",{
procedure:$procedure//步骤id
})
隐藏步骤中一个属性
代码如下: 复制代码
$programstore.dispatch("helper/hide",{
procedure:$procedure,//步骤id
field:$field,//属性id
})
显示步骤
代码如下: 复制代码
$programstore.dispatch("helper/show",{
procedure:$procedure,//步骤id
})
显示步骤中一个属性
代码如下: 复制代码
$programstore.dispatch("helper/show",{
procedure:$procedure,//步骤id
field:$field,//属性id
})
禁止填写某个属性
代码如下: 复制代码
$programstore.dispatch("helper/disable",{
procedure:$procedure,//步骤id
field: $field,//属性id
});
恢复填写某个属性
代码如下: 复制代码
$programstore.dispatch("helper/enable",{
procedure:$procedure,//步骤id
field: $field,//属性id
});
获取当前功能id
$programstore.getters["program"]._flow;
功能钩子
代码如下: 复制代码
$programstore.dispatch("handler/set", {
before: async function (store, form) {
//提交前钩子,return false时将会阻止提交功能
// 停止提交
// return false;
},
after: async function (store, result) {
//提交后钩子
//阻止关闭窗口
// return false;
}
})
隐藏集合步骤的删除按钮(固定写法)
代码如下: 复制代码
let view = $programstore.getters["view/getview"]("集合步骤id");
view.gettablestore().dispatch("plugin/disable",{
type:"extend",
key:"remove",
});
vue
获取当前用户对象(用户表)
vue.$store.getters["context/user"];
查询数据表的数据(异步)
代码如下: 复制代码
vue.$store.dispatch("data/show", {
dataset: "数据表id",
query: {
query: {//查询条件
"field": value
},
empty: false,
cache:300,//缓存秒数
page: {
index: 1,
size: 100
}
}
}).then(res => {
let data = res.data.data;//查询到的数据collection
});
关闭当前层级弹窗、窗口
vue.$store.dispatch("modal/pop")
插入按钮(pc端)
代码如下: 复制代码
vue.$store.dispatch("component/build", function (h) {
return h("bmbutton", {
on: {
click() {//点击事件
alert("click")
}
}
}, "按钮名")
}).then(function (view) {
let buttonelement = view.$el;
//按钮样式
buttonelement.style.position = "absolute";
buttonelement.style.right = "65px";
buttonelement.style.height = "40px";
//按钮插入到指定元素前
let inserttoelement = document.queryselector(`.modal-header-fullscreen`);
inserttoelement.append(buttonelement);
})
弹窗打开自定义页
代码如下: 复制代码
vue.$$modal.show("bmpage", {
fullscreen: true,//是否全屏
props: {
page:"自定义页id",
},
oktext:"确认按钮文本",
onok:function(){},//点击确认按钮触发的事件
});
调用功能
代码如下: 复制代码
vue.$$cmd({
type:"program",
value:{
flow:"",//功能id
skip:true,//是否直接提交功能
data:{},//功能表单传值
option:{
fullscreen:flase,//是否全屏打开窗口
}
}
},{
callback:function(res){}//功能运行完毕后的回调函数,res是功能返回值
});
弹出一个确认弹窗
代码如下: 复制代码
vue.$$modal.confirm("标题", "弹窗内容,支持html", {
onok() {
//点击确定后执行的代码块
alert("ok")
},
});
开启全局加载动画
vue.$store.dispatch("view/loading/setvisible",true)
关闭全局加载动画
vue.$store.dispatch("view/loading/setvisible",false)
通过经纬度获取位置信息(经纬度可通过企业微信的js-sdk获取)
代码如下: 复制代码
vue.$store.dispatch("helper/lbs/getpoi",{
type:"weixin",
lat:"经度",
lng:"纬度"
}).then((list)=>{
console.log(list)
})
移动端扫描二维码
vue.$$modal.scan({type:"qrcode"}).then(code=>{})
code为扫描结果
移动端扫描条形码
vue.$$modal.scan({mode:"barcode",decoder:"code_128_reader"}).then(code=>{})
decoder为条形码类型,可选的类型有:code_128_reader、...
让你的想法快速变成软件吧~
数据库直连
数据功能流程
air引擎
多项目管理