发帖

对专业版前端代码默认的事件做确认尝试

产品使用讨论区  / 应用搭建教程  / 只看大图  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2020-4-10

跳转到指定楼层

注册氚云社区,学习低代码知识,与更多氚友互动交流

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 庞聪 于 2020-4-13 14:41 编辑

刚从标准版升级到使用专业版,需要在前端代码中尝试JS,最需要的是对氚云自身提供的默认事件进行确认。而观看了一下开发手册。公共接口中有这样一个方法:
弹出提示方法        $.IShowWarn(Info);
参数说明:Info: 需要在界面上显示的文本内容。
因此,想用来对默认事件进行确认。结果是跳跃一闪而过,根本就没有暂停功能。所以就尝试使用自定义暂停功能来做一个对比。结果如愿了。同时也测试了调用JS全局代码的可行性。
依次的顺序是:点击表单新增记录"+"或打开记录->加载事件OnLoad->按钮事件OnloadAction->(编辑)->数据填定界面->提交->(提交校验OnValidate->提交前事件BeforeSubmit->提交后事件AfterSubmit->出现提交校验的校验错误提示)->提交成功->运行业务规则或调用流程!括号里是设置有提交校验的先后过程,实际上包含了提交前事件和提交后事件,这种顺序的有无,对做代码开发来说,是非常重要的!感兴趣的同行,可以直接复制使用。
这里只是做个交流,互相学习。
有需要的可直接全部复制下列的代码,取代前端的代码即可。
以下代码不调用任何控件,不受控件的影响。只是对事件进行一个弹出提示。其实只用sleep或**都可以实现暂停功能。我只用了一个文本控件,并设置了提交校验。
image.png
前端代码完全如下(注释部分实际上就是系统默认的代码,因社区屏蔽显示成“***”了。):
/* 控件接口说明:
* 1. 读取控件: this.***,*号输入控件编码;
* 2. 读取控件的值: this.***.GetValue();
* 3. 设置控件的值: this.***.SetValue(???);
* 4. 绑定控件值变化事件: this.***.BindChange(key,function(){}),key是定义唯一的方法名;
* 5. 解除控件值变化事件: this.***.UnbindChange(key);
* 6. CheckboxList、**DownList、RadioButtonList: $.***.AddItem(value,text),$.***.ClearItems();
*/
/* 公共接口:
* 1. ajax:$.SmartForm.PostForm(actionName,data,callBack,errorBack,async),
*          actionName:提交的ActionName;data:提交后台的数据;callback:回调函数;errorBack:错误回调函数;async:是否异步;
* 2. 打开表单:$.IShowForm(schemaCode, objectId, checkIsChange),
*          schemaCode:表单编码;objectId;表单数据Id;checkIsChange:关闭时,是否感知变化;
* 3. 定位接口:$.ILocation();
*/
//以上为系统默认的注释内容,从下行开始才是需要运行的代码。"**"实际上是自定义的一个函数名称"**",手工改一下就行了,请看后面的截图。
// 表单插件代码
$.extend($.JForm,{
    // 加载事件
    OnLoad:function(){
        //var myLocation = $.ILocation();
        $.IShowWarn("加载事件: OnLoad");
         **("加载事件: OnLoad");

    },

    // 按钮事件
    OnLoadActions:function(actions){
         $.IShowWarn("按钮事件: OnLoadActions");
         **("按钮事件: OnLoadActions");
    },

    // 提交校验
    OnValidate:function(actionControl){
        $.IShowWarn("提交校验: OnValidate");
        **("提交校验: OnValidate");
        return true;
    },

    // 提交前事件
    BeforeSubmit:function(action, postValue){
       $.IShowWarn("提交前事件: BeforeSubmit");
       **("提交前事件: BeforeSubmit");
    },

    // 提交后事件
    AfterSubmit:function(action, responseValue){
        $.IShowWarn("提交后事件: AfterSubmit");
        **("提交后事件: AfterSubmit");
    }
});
function sleep(obj,iMinSecond){
   if (window.eventList==null) window.eventList=new Array();
   var ind=-1;
   for (var i=0;i<window.eventList.length;i++){
     if (window.eventList==null) {
      window.eventList=obj;
      ind=i;
      break;
     }
   }

   if (ind==-1){
     ind=window.eventList.length;
     window.eventList[ind]=obj;
   }
   setTimeout("GoOn(" + ind + ")",1000);
  }

  function GoOn(ind){
   var obj=window.eventList[ind];
   window.eventList[ind]=null;
   if (obj.NextStep) obj.NextStep();
   else obj();
  }

  function **(state){
   **(state);
   sleep(this,1000);//调用暂停函数
   this.NextStep=function(){
     **("NextStep");
   }

以上代码有屏蔽部分,请再参考下方的截图:
-----------------------------------------------

  }
image.png
------------------------------------------------
image.png


回复

使用道具

0

主题

16

帖子

523

金币

氚云官方人员

Rank: 7Rank: 7Rank: 7

积分
653

氚云标准版氚云专业版

谭文 发表于 2020-4-10 19:31:03
研究的很到位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|氚云社区 |粤ICP备15096637号-1
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.