-V8函数列表-前端

平台简介

前端V8函数列表

  • 前端V8引擎代码与服务器端V8的编程语言均为Javascript语法。
  • 前端V8引擎支持完整ES6语法
  • 前端V8引擎集成了很多函数直接通过http调用后端接口,与V8.Post()写对应的接口地址效果一样。
  • 前端V8引擎代码在前端执行,若是直接通过调用服务器端的低代码平台通用增删改查接口,前端V8事件不会执行(服务器端V8事件会执行)。

V8.Form

访问当前表单字段值
例:var name = V8.Form.UserName;
如果是下拉框组件,设定了绑定显示字段,则可以是:V8.Form.字段名称.显示字段

V8.OldForm

访问当前表单修改前字段值
例:var oldName = V8.OldForm.UserName;

V8.FormSet

给当前表单字段赋值
例:V8.FormSet(‘UserName’, ‘张三’);
也可以使用常规js写法(只不过在某些特殊情况下可能会不生效):V8.Form.UserName = ‘张三’;

V8.Field

访问当前表单字段属性
例:var isReadonly = V8.Form.UserName.Readonly;//UserName字段当前是否是只读
包含属性:Name、Label、Config、Data(绑定数据源)、Readonly、Visible、Placeholder等等

V8.FieldSet

给当前表单字段属性赋值
例:V8.FieldSet(‘UserName’, ‘Readonly’, false);//设置UserName字段为只读

V8.FormOutAction

获取离开表单的类型,可用于离开表单、提交表单后V8引擎代码中做为判断,可能的值:Update/Insert/Close/Delete

V8.FormOutAfterAction

获取离开表单后的类型,可用于离开表单/提交表单后V8引擎代码,可能的值:Insert/Update/View/Close

V8.FormSubmitAction

表单提交类型(Insert/Update/Delete),可在“表单提交前V8引擎代码”中赋值V8.Result = false;以阻止表单提交。

V8.FormMode

获取当前Form打开的模式,可能的值:Add(新增)、Edit(编辑)、View(预览)

V8.LoadMode

当前Form的加载模式,要么为空,要么值为Design(string,设计模式),特别注意一些事件中如果使用了V8.FieldSet更改了字段属性,需要判断V8.LoadMode == 'Design’时不执行,否则保存表单设计后会持久化保存字段属性。

V8.TableRowId

获取当前Form的Id,也可以使用V8.Form.Id

V8.KeyCode

键盘事件V8可获取键盘的code值,如Enter键对应13

if(V8.KeyCode == 13){
    V8.Tips('您已经按了Enter键!');
}

V8.TableId、V8.TableName

获取当前DIY表的Id、Name

V8.EventName

前端V8事件名称,在全局V8引擎代码中比较好用,可能的值:
FormTemplateEngine:表单模板引擎
TableTemplateEngine:表格模板引擎
OpenTableBefore:弹出表格前事件
OpenTableSubmit:弹出表格提交事件
FieldOnKeyup:文本框键盘事件
FormOut:离开表单事件(指表单提交后)
FormSubmitBefore:表单提交前事件
FormIn:进入表单事件
FieldValueChange:字段值变更事件
BtnFormDetailRun:详情按钮V8按钮
V8BtnLimit:V8按钮是否显示事件
V8BtnRun:V8按钮执行事件
TableRowClick:表格行点击V8事件
PageTab:多Tab页签V8事件
WFNodeEnd:流程节点结束V8事件
WFNodeStart:流程节点开始V8事件

V8.CurrentToken

当前登陆身份token

V8.TableModel

获取当前表的对象,里面包含了Id、Name等表信息。

V8.ThisValue

访问下拉框选择后的值对象,如V8.ThisValue.Id

V8.Tips

右下角弹出消息提示,用法:V8.Tips(msgContent, true/false, time)
msgContent为消息内容
true为成功消息(1秒后消失),false为错误消息(5秒后消失)
time可传入提示框多少秒后消失

V8.CurrentUser

访问当前登陆用户信息
例:V8.CurrentUser.Id/Name/Role/Dept等等

V8.Post

//发起ajax请求,常规用法,自带token,默认Form Data参数格式(非Request Payload)
V8.Post('api url', { Id : 1 }, function(result){
    if(result.Code == 1){ ... }
})
//完整用法
V8.Post({
  url : '',//接口地址,必传。
  data : {}, //接口参数
  dataType : 'json', //默认空(Form Data),可选json(Request Payload)
  header : {}, //可选参数
  success : function(result){ }, //请求成功的回调函数,常用参数。
  fail : function(result){ }, //请求失败的回调函数,如接口报错404、500,可选参数,也可传入error,与fail一致。
});

V8.Get

发起ajax请求,V8.Get(‘api url’, {}, function(result){})

V8.ChineseToPinyin(chinese, fullPyLen, type)

中文转拼音
fullPyLen: 2(默认),前几个字全拼音;type : 1 驼峰(默认),2全大写,3全小写

V8.RefreshTable({ _PageIndex : -1 })

刷新表格数据列表,_PageIndex传入-1表示跳转到最后一页。
一般用于页面更多按钮、行更多按钮等刷新当前表格。
注意与【V8.TableRefresh】不同的是它是刷新当前主表单里面的子表格(将来会优化函数命名)。

V8.Router.Push(url):页面跳转

V8.Window.Open(url):打开新页面

V8.OpenForm(formModel, type)

打开表单,type:‘View’/‘Edit’/‘Add’,如在[行更多V8按钮]事件中:V8.OpenForm(V8.Form, ‘Edit’)

V8.OpenFormWF(formModel, type)

打开带流程信息的表单。(目前是获取此数据对应的最后一个流程)

V8.TableRowSelected

获取已选择的行数组,每行包含了所有数据

V8.SearchSet/SearchAppend({FieldName : value, FieldName2 : value})

表格Tabs设置搜索条件

V8.IsNull(value):判断某个值是否为空

当值为null、undefined、‘’(空字符串)、‘null’(null字符串)、‘undefined’(undefined字符串),均返回true

父表中对子表操作:

V8.TableSearchAppend(V8.Field.子表Name, {FiedlName : value, FieldName2 : value})

V8.TableSearchSet(V8.Field.子表Name, {FiedlName : value, FieldName2 : value})

V8.TableRefresh(V8.Field.子表Name, { _PageIndex : -1 })
_PageIndex传入-1表示跳转到最后一页。(注意与【V8.RefreshTable】不同的是它一般是用于模块引擎中行更多按钮、页面更多按钮刷新当前表格,将来会优化函数命名)。

V8.FormSubmit

提交表单。
V8.FormSubmit({CloseForm:true, SavedType:‘Insert’, Callback : function})
CloseForm:是否关闭Form表单;
SavedType:保存表单后的操作Insert/Update/View
Callback:回调函数

子表中对父级操作:

V8.ParentForm:访问父级表单所有字段
支持在子表的子表中,使用V8.ParentForm.ParentForm对父表赋值。

[已废除]V8.ParentFormSet(‘字段名’, ‘值’):给父表单某个字段赋值
请使用V8.ParentForm.FormSet(‘字段名’, ‘值’)

V8.AddSysLog

新增日志
例:V8.AddSysLog({Title : ‘库存同步’, Type:‘SyncStock’, Content:‘张三调用了库存同步接口,同步后库存为100。’)
参数值均为自定义。

V8.ReloadForm:重新加载当前表单

例:V8.ReloadForm({Id : ‘xxxx-xxxx-xxxx’}, ‘Edit/View’);//以编辑或预览模式重新加载当前表单

V8.HideFormBtn

隐藏编辑/删除按钮
V8.HideFormBtn(‘Update/Delete’):

V8.HideFormTab(tabName)

隐藏某个表单Tab标签页,用法:V8.HideFormTab(‘tabName(在表单属性中配置的Tab名称)’)

V8.ShowFormTab(tabName)

显示某个表单Tab标签页,用法:V8.HideFormTab(‘tabName(在表单属性中配置的Tab名称)’)

V8.ClickFormTab(tabName)

选中某个表单Tab标签页

V8.GetFormTabs

获取表单所有Tab标签页。

V8.ConfirmTips

确认提示框
例:V8.ConfirmTips(‘确认审批?’, okCallback, cancelCallback, option)。 option为可选参数,可配置:{Title:‘’,OkText:‘’,CancelText:‘’,Icon:‘’}

V8.ShowTableChildHideField

将子表已隐藏的字段强制显示出来,并且刷新子表。

V8.ShowTableChildHideField(‘子表fieldName’,[‘fieldName’,‘fieldName’]);
V8.RefreshChildTable(fieldModel, V8.Row):刷新子表
例:V8.RefreshChildTable(V8.Field.子表列名, V8.Row),第二个参数可传入parentFormModel。

V8.GetChildTableData(‘子表字段名称’);

V8.CurrentTableData

V8.WF.StartWork:发起流程:

V8.WF.StartWork({        
    FlowDesignId:'',//流程图Id,必传        
    FormData:JSON.stringify({}),//可选,也可以传入{} object类型,内部会自动序列化        
    TableRowId:'',//关联的数据Id,必传        
    NoticeFields:JSON.stringify([]),//通知数据,可选,格式:[{Id:'字段Id',Name:'字段名',Label:'字段名称',Value:'值'}],如果是数组类型,内部会自动序列化        
    //还可以传入选择的下一步审批人、添加的审批人、审批意见 等等    
}, function(result){//这是回调函数处理,result返回了Receivers、ToNodeName等

});

V8.SendSystemMessage

发送系统消息

//消息内容var msgContent = ‘测试v8发送系统消息!’ + new Date().toString();//内容增加路由跳转msgContent += ‘测试页面跳转’;//发送系统消息V8.SendSystemMessage({ Content: msgContent, ToUserId: ‘c19e70d1-b7b3-4eaa-933d-e8f59c85562f’}, function(result){ V8.Tips(JSON.stringify(result));});
V8.FormWF:访问当前是否打开了带流程界面的表单,返回值:
{
IsWF:true/false, //是否打开了带流程界面的表单
WorkType:‘’,//StartWork、ViewWork
FlowDesignId:‘流程图Id’
}

V8.Base64:base64加解密

V8.Base64.endcode(‘待加密字符串’);//加密
V8.Base64.dedcode(‘待解密字符串’);//解密
V8.Base64.isValid(‘已加密字符串’);//判断是否是已加密的base64格式

V8.OpenDialog(param):打开一个定制组件对话框

例子;

V8.OpenDialog({    
    ComponentName:'NodeColConfig',//必传,其余参数可选。组件名称,二次开发必须提前预注册。    
    Title: '测试定制组件标题',    
    OpenType:'',//可传:Drawer    
    TitleIcon: 'fas fa-plus',//标题左侧的图标   
    Width: '70%',   
    DataAppend:{//传入自定义附加数据,DataAppend为固定参数名称        
        Abc:123,        
        Name:'张三'    
    }
});
//在定制组件内props接收V8对象:
props: {    
    DataAppend:{        
        type: Object,        
        default: () => {}    
    }},
    mounted() {    
        //this.DataAppend.V8包含了绝大部分可使用的V8内置函数,可以使用V8事件一样的写法。    
        //获取已打开的表单中(或已选中的一条表格数据)的Title字段值。    
        var title = this.DataAppend.V8.Form.Title;    
        //访问传过来的自定义数据    
        var name = this.DataAppend.Name;//张三    
        //刷新diy表格    
        this.DataAppend.V8.RefreshTable();    
        //关闭当前对话框    
        this.DataAppend.V8.CloseThisDialog();
    }

V8.NewGuid()

生成一个前端Guid值

await V8.NewServerGuid()

生成一个服务器端Guid值

V8._

访问underscore对象,常用的js实用库,如:V8._.where(…)。underscore用法见:https://underscorejs.org/ https://underscorejs.net/

V8.ModuleEngine:

模块引擎相关

V8.ApiEngine:

接口引擎

V8.DataSourceEngine:

数据源引擎

V8.OpenAnyForm:

打开一个任意表单

V8.OpenAnyForm({
  TableName: "Diy_ShouhouDD", //必传。打开哪张表。
  FormMode: "Edit", //必传。打开的模式:Add、Edit、View
  Id: V8.Form.Id, //当FormMode为Edit、View时,必传Id。
  DialogType: "Dialog", //可选。打开的方式,不传则默认为表单属性设置的打开方式。
  SelectFields: ["ZhipaiXX", "ShouhouRY"], //可选。只查询、显示哪些字段。不传则默认显示。
  Width: "765px", //可选。弹出层的宽度。不传则默认为表单属性设置的弹出宽度。
  DataAppend: {
    //传入自定义附加数据,DataAppend为固定参数名称。可在指定的打开表单V8事件中使用V8.DataAppend访问。
    Abc: 123,
    Name: "张三",
  },
  //替换掉提交事件。可选。
  EventReplace: {
    //这3个参数一定会接收到,必须执行callback(DosResult)
    Submit: async function (v8, param, callback) {
      //调用指派接口
      var result = await V8.ApiEngine.Run({
        ApiEngineKey: "shouhoudd_zhipai",
        Id: v8.Form.Id,
        ShouhouRY: V8.Form.ShouhouRY,
        ShouhouRYID: V8.Form.ShouhouRYID,
        ShouhouRYDH: V8.Form.ShouhouRYDH,
      });
      callback(result);
    },
  },
});

- 系列文档

Logo

低代码爱好者的网上家园

更多推荐