UI组件相关的API
脚本配置入口
1添加动作 | 2选择触动时机 | 3选择脚本 |
---|---|---|
4编辑当前选择的脚本 | 5解绑脚本 | 6绑定脚本 |
脚本管理
在表单设计器-表单属性
中点击脚本管理
,弹出侧边栏,在侧边栏中对脚本进行增、删、改操作
编程模式
this关键字的使用说明
this关键字用于定义函数的场景中,如果方法调用已经跳出当前函数,则不能直接使用this关键字 其他调用场景可以使用FormAPI来代替
this.ui方法说明
ui方法,可以获取表单中的字段,组件(非数据库字段),入参针对获取的信息有所不同,可以是字段名或字段id(boItemModel的id),可获取到对应的字段;可以是组件id,获取到对应的组件信息 ui方法,要控制一下组件不存在时候,链式调用不报错,返回值提供一个错误信息:字段/组件不存在 grid方法也需要做同样处理
表单的UI组件提供了一些常用的方法,可以获取值和控制UI组件
获取当前字段
this.ui("字段名").getVal();//取值
this.ui("字段名").setVal("新的值","新的显示值");//赋值,组件内容会处理显示规则,新的显示值可选
this.ui("字段名").getObj();//获取字段对象
获取主表字段(子表中)
this.parent("字段名").getVal();//获取父页面的或者父表的字段内容,仅限子表场景中使用,如果是字段子表场景,仅获取上一级的数据内容
this.ui("字段名","表名").getVal();//获取指定表的字段内容,可以用于多层级的字段子表,直接获取某一层级的表的数据,“表名”不指定,获取当前的数据
获取字段状态
this.ui("字段名").getStatus();//获取字段的状态,
//返回:
// normal 正常态,表单原始态,包括存储字段设置的状态、节点设置的状态
// readonly 只读,后台设置的状态,所有前台设置后的结果
// hidden 隐藏,后台设置的状态,所有前台设置后的结果
this.ui("字段名").isExist();//获取字段是否存在,返回true/false
this.grid("表名").isExist();//获取表格是否存在,返回true/false
获取字段dom状态
this.ui("字段名").isVisible();//获取字段dom的显示状态
this.grid("表名").isVisible();//获取字段
修改字段状态
this.ui("字段名").setReadOnly(true/false);//设置是否只读
this.ui("字段名").setHidden(true/false);//设置隐藏,true:隐藏;false:显示,注意同时隐藏标题
this.ui("字段名").setRequired(true/false);//设置必填,true:必填;false:选填
定位/滚动到组件
this.ui("字段名").locate()
this.grid("表名").locate()
刷新表单
this.api.refreshPage()// 刷新表单,数据重新加载
this.api.reloadPage()// 刷新表单,整个页面重新加载
刷新组件
对有数据源的UI或者子表进行刷新,子表行选择,翻页
this.ui("字段名").refresh()
this.grid("表名").refresh(callback)
this.grid("表名").gotoPage("页码")
提供基本交互
消息提示
this.feedback.msg("消息内容","消息类型");//PC端,移动端对外暴露的都是这个API,内部采用对应的客户端来实现
//示例
this.feedback.msg("提示信息","success")
this.feedback.msg("提示信息","warning")
this.feedback.msg("提示信息","info")
this.feedback.msg("提示信息","error")
this.feedback.validateMsg("")
this.feedback.bannerMsg([{"
bgColor":"",
"fontColor":"",
"msg":""
}])// 提供横幅提示效果,支持多条展示
对话框交互
this.feedback.dialog(options:dialogOption|"close");//对话框,参数内容可以和elementui的保持一致,内容支持text、html、支持调用awsui组件,传入close字符串时可以调用关闭
declare interface DialogButtonModel {
text: string;
click: () => void;
type?: "primary" | "danger"
}
declare interface DialogConfig {
title?: string;
/**
* 扩展参数(详细参见elementui-dialog)
*/
extendParams?: any;
/**
* render方法优先
*/
contextRender?: any;
/**
* 支持html
*/
html?:string;
/**
* dialog按钮
*/
buttons?: DialogButtonModel[]
}
//示例代码1(弹出dialog里一个地址簿):
const config = {
filter: {
addressType: "user",//固定值
isAdvMode: true,//固定值
addressSetting: {
range: "department|position|role|team",//固定值
delimiter: " ",//分隔符,根据实际情况使用,通常是空格,可以是半角逗号,竖线
choiceType: "single",//single:单选;multiple:多选
leafType: "user"//叶子节点类型,现在固定为user
},
sourceField: "UID",//固定值
targetField: "address",//固定值
deptTargetField: ""//留空
},
separator: " "//分隔符和上面的delimiter一致
}
const testConfig = {
data: {
value: "zhf",
address: JSON.stringify(config),
sid: settingParam.sessionId,
appId: "",
addressDomId: "address",
formData: "",
cmd: "CLIENT_AWSUI_ADDRESSBOOK",
},
title: "人员",
height: 556,
disabled: false,//是否禁用
readonly: false,//是否只读
maxRowNumber: false,//设置是否一行显示,如果一行展示,选多后不会挤高度,否则自适应选择的内容撑高
}
this.feedback.dialog({
title: "测试标题3333",
extendParams: {width: "500px"},
contextRender: ({h, resolve}) => {
return [
h("span", () => "分配人员:"),
h(resolve("AwsuiAddress"),
{
propsOptions: testConfig,
modelValue: "admin",
'onUpdate:modelValue': value => alert("设置的值:" + value),
}
),
h(resolve("AwsuiButton"), {onClick: e => alert(231)}, () => "按钮示例")
]
},
buttons: [{
text: "关闭此按钮", click: () => {
alert("点击此按钮就关闭");
window.formApi.behavior.dialog.closeDialog()
}, type: "danger"
}]
})
//示例代码2(弹出dialog里一个html页面):
this.feedback.dialog({
title: "测试标题",
extendParams: {width: "500px"},
html:"<div>这是一段html</div><br><p>这是一段html</p>",
buttons: [{
text: "关闭此按钮", click: () => {
alert("点击此按钮就关闭");
this.feedback.dialog("close")
}, type: "danger"
}]
})
侧边栏交互
this.feedback.drawer({"参数"});//弹出侧边栏,参数内容可以和elementui的保持一致,内容支持text、html、支持调用awsui组件,传入close字符串时可以调用关闭,同时参照elementui和vant
//示例1,类似于dialog,style用于mobile,size用于pc
this.feedback.drawer({
extendParams:{size:"70%",position:"right",style:{height:"100%",minWidth:'80%'}},
contextRender: ({h, resolve}) => {
return [
h("span","分配人员222:"),
h(resolve("AwsuiButton"), {onClick: e => alert(231)}, ()=>"按钮示例333")
]
}
})
消息确认框交互
this.feedback.msgBox({"参数"});//消息确认框,参数内容可以和elementui的保持一致
//示例
{
title: string;
message: string;
ok?: () => void;
cancel?: () => void;
/**
* 是否显示取消按钮 false,
*/
"showCancelButton"?: boolean;
/**
* 是否显示确定按钮 true,
*/
"showConfirmButton"?: boolean;
/**
* 是否显示取消按钮false,
*/
"cancelButtonText"?: string;
/**
* 是否显示取消按钮false,
*/
"confirmButtonText"?: string;
}
formUserApi.feedback.msgBox({
title: "标题",
message: "内容"
})
Seven
010-62962343-690
liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区