发布日期:2021-12-10

  • 新增功能

    • 谷神脚本语言对临时表的支持:

      • $vs.dbTools.createTempTable($sql,$where,$isEnableDataAuth):临时表建表
      • $vs.dbTools.dropTempTable($tableId):删除指定临时表
      • $vs.dbTools.dropAllTempTable():删除所有当前线程的临时表
      • 使用方法:
        createTempTable必须是MYSQL语法(不管您当前使用的是何种数据库),且代码可以在所有谷神支持的数据库上运行。
        代码示例:
        // 直接建表语句创建临时表
        $vs.dbTools.createTempTable(`
              CREATE TEMPORARY TABLE tmp_contract (
                  FPHM varchar(30) NOT NULL,    -- 合同号码
                  MBCODE varchar(30) NOT NULL,
                  MBNAME varchar(200) DEFAULT NULL,
                  HZCODE varchar(30) NOT NULL,
                  HZNAME varchar(200) DEFAULT NULL,
                  CREATE_TIME datetime DEFAULT NULL,
                  AMT decimal(18,2) DEFAULT NULL,
                  DEPT_CODE varchar(10) DEFAULT NULL,
                  ORG_CODE varchar(10) DEFAULT NULL,
                  USER_ID varchar(30) DEFAULT NULL,
                  PRIMARY KEY (FPHM), /*<-- 主键*/
                  INDEX IX_SBILLBATCH_1 (FPHM,MBCODE), -- 索引
                  UNIQUE INDEX IX_SBILLBATCH_2 (FPHM,MBCODE,HZCODE) -- 唯一索引
              )
        `);
        // 通过SQL直接建立临时表
        $vs.dbTools.createTempTable(`
          CREATE TABLE tmp_select_contract as select 
              FPHM, MBCODE, MBNAME, HZCODE, HZNAME, CREATE_TIME, AMT,
              DEPT_CODE, ORG_CODE, USER_ID
          FROM qs_contract
          where fphm = :FPHM
        `,$form);
        临时表可以使用$vs.dbTools.*下的所有方法。

        请注意:在临时表使用完后请及时用$vs.dbTools.dropAllTempTable()清理临时表

    • 主表格数据源增加谷神脚本选项:开发者可以选择SQL或者用代码来编写报表的数据源

      • 谷神脚本数据源代码编写如下:

        $vs.dbTools.createTempTable(`
             CREATE TEMPORARY TABLE tmp_contract (
                 FPHM varchar(30) NOT NULL,    -- 合同号码
                 MBCODE varchar(30) NOT NULL,
                 MBNAME varchar(200) DEFAULT NULL,
                 HZCODE varchar(30) NOT NULL,
                 HZNAME varchar(200) DEFAULT NULL,
                 CREATE_TIME datetime DEFAULT NULL,
                 AMT decimal(18,2) DEFAULT NULL,
                 DEPT_CODE varchar(10) DEFAULT NULL,
                 ORG_CODE varchar(10) DEFAULT NULL,
                 USER_ID varchar(30) DEFAULT NULL,
                 PRIMARY KEY (FPHM), /*<-- 主键*/
                 INDEX IX_SBILLBATCH_1 (FPHM,MBCODE), -- 索引
                 UNIQUE INDEX IX_SBILLBATCH_2 (FPHM,MBCODE,HZCODE) -- 唯一索引
             )
        `);
        
        #set($sql = `
             INSERT INTO tmp_contract (
                 FPHM, MBCODE, MBNAME, HZCODE, HZNAME, CREATE_TIME, AMT,
                 DEPT_CODE, ORG_CODE, USER_ID
             ) 
             SELECT 
                 FPHM, MBCODE, MBNAME, HZCODE, HZNAME, CREATE_TIME, AMT,
                 DEPT_CODE, ORG_CODE, USER_ID
             FROM qs_contract
             where fphm = :FPHM -- 注意此处的查询条件表达式
        `)
        
        $vs.dbTools.execute($sql,$form) // <-- 把数据写进临时表去
        
        // 判断当前是否为分页
        #if ($form.pageSize eq null or $form.pageSize == 0)
         #set($isPage = false)
        #else
         #set($isPage = true)
        #end
        
        #if ($isSum)
         $vs.log.info($sumFields)
        
         #set($sql = `
             select 
                 sum(AMT) as AMT
             from tmp_contract
             where fphm = :FPHM
         `)
         #set($page = $vs.dbTools.uniqueResult($sql,$form))
        #else
         #set($sql = `
             select 
                 FPHM, MBCODE, MBNAME, HZCODE, HZNAME, CREATE_TIME, AMT,
                 DEPT_CODE, ORG_CODE, USER_ID
             from tmp_contract
             where fphm = :FPHM 
             and DEPT_CODE = DATA_AUTH('DEPT_CODE') -- 数据权限表达式
         `)
        
         #if ($isPage)
             #set($page = $vs.dbTools.findPage($sql,$form,true))
         #else
             #set($page = $vs.dbTools.list($sql,$form,true))
         #end
        #end
        
        $vs.dbTools.dropAllTempTable(); // 删除所有临时表
        
        return $page;
    • 新增密码复杂度配置功能:

      • 开发平台应用管理->更多操作->登录设置进行密码强度设置
        • 密码强度:选择相应组合后,设置密码时必须包含相应的字符,
        • 密码长度:分6位以上、8位以上、10位以上、12位以上
        • 强制修改密码:默认0不控制,大于0时将按要求的月份到期强制要求修改密码
        • 首次登录修改密码:用户第一次使用初始密码登录的强制要求修改密码
    • 新增访问控制配置功能:

      • 开发平台应用管理->更多操作->登录设置进行启用设置,默认不启用
      • 配置模块需要有超级管理员权限,在应用平台:系统设置->访问控制管理中进行配置
    • 新增安全日志查询:登录修改密码访问控制等)记录和日志查询功能

      • 安全日志查询模块需要有超级管理员权限,在应用平台:系统设置->系统日志查询中进行查看
    • 用户登录密码保护加强:用户登录时,对用户输入的密码进行再次加密,保证数据传输过程中的安全性和完整性。

    • inputFormgridForm增加折叠线框控制功能:

      • inputForm.foldbox('info-box').hide():隐藏折叠线及其下的所有控件
      • inputForm.foldbox('info-box').show():显示折叠线及其下的所有控件
      • inputForm.foldbox('info-box').isShow():返回折叠线框是否处于可视状态
      • inputForm.foldbox('info-box').open():打开折叠线框显示其下控件
      • inputForm.foldbox('info-box').close():关闭折叠线框隐藏其下控件
      • inputForm.foldbox('info-box').isOpen():返回折叠线框是否处于打开状态
      • inputForm.foldbox('info-box').getTitle():返回折叠线框的标题
      • inputForm.foldbox('info-box').setTitle():设置折叠线框的标题
    • 系统应用参数增加字段初始值,用于在产品升级项目时默认值。

    • 表格EXCEL导出增加如下功能:

      • 不再导出被用户手工隐藏的字段
      • 导出文件默认以菜单命名
    • 数据权限增加视图支持:数据权限设置中,数据源来源增加对视图的支持,允许选择数据权限的数据来源为视图。

    • 增加用户数据权限查询方法:

      • $vs.auth.getUserDataAuths($userId:string,$authFieldId:string)
      • $vs.auth.getUserDataAuths($userId:string)
      • $vs.auth.getUsersDataAuths($userIds:List<string>,$authFieldId:string)
      • $vs.auth.getUsersDataAuths($userIds:List<string>)
    • 下拉组件支持谷神脚本:下拉组件新支持谷神脚本计算获取数据(不可用于缓存代码换算名称)

      • 示例代码:

        #set($sql = `
         select * from basic_user where user_type = 10
         and SQLTools.like(user_name,#{_keyword_}) // _keyword_ 为用户输入的关键字
        `)
        
        #set($page=$vs.dbTools.findPage($sql,$form))
        
        #foreach ($item in $page.result) // 必须每条记录都添加 code 和 name 属性
         #set($item.code = $item.USER_ID)
         #set($item.name = $item.USER_NAME)
        #end
        
        return $page;
    • inputFormgridFormsearchForm增加方法:

      • inputForm.setTitle(fieldId,title)
      • inputForm.getTitle(fieldId)
    • 新增word转pdf文件方法:$vs.file.wordToPdf($filePath):string 由于依赖冲突本功能已取消

    • 新增文件下载方法:

      • $vs.file.getFileToTemp($filePath):string:下载私有文件到本地临时目录
      • $vs.file.getWebFileToTemp($filePath):string:下载公有文件到本地临时目录
    • 主数据表格字段增加允许取消字段分组合计功能:当报表的SQL为GROUP BY时,开启此功能可以在表格右上角的更多菜单中找到分组合计字段菜单项,用户可以在此菜单内选择取消那些合计字段而达到动态合计数据的效果。

    • 表格右上角更多菜单中增加隐藏显示字段功能:方便用户显示/隐藏字段.

    • 新增在线用户管理:在应用平台:系统设置->在线用户管理可以查询当前用户在线情况,特殊情况下强制退出某些操作员

      • 可以设置用户在线会话数,限制平台的同时在线人数,在开发平台应用管理->程序发布->添加标准配置中进行设置
    • 新增菜单信息查询方法:$vs.auth.getMenus($mkId)

    • 页面按钮增加调起点击事件方法:self.button('bnt').click()

    • inputForm控件字段增加占位文字功能,可以额外提示用户字段含义。

    • 开发环境增加开发日志查询功能。

    • 系统脚本新增版本对比功能

    • 新增试升级报告:导入场景之前可以先进行试升级,并查看相应报告

    • 消息弹窗操作性优化:确认弹出框,加入左右键选择、ESC退出、Enter确认

    • 导航菜单栏操作性优化:加入菜单收藏功能

    • 预警监控功能升级:数据来源增加谷神报表,可以读取并执行已经存在的报表。

    • inputForminputGrid控件增加富文本编辑器RichEditor:

      • 开启方法:控件text类型字段启用大文本编辑后再启用富文本编辑属性。
    • inputForm..inputGrid控件增加APIinputForm.richEditor('field'):

      • inputForm.richEditor('field').getEditor()
      • inputForm.richEditor('field').clear()
      • inputForm.richEditor('field').isFocus()
      • inputForm.richEditor('field').setFocus()
      • inputForm.richEditor('field').lostFocus()
      • inputForm.richEditor('field').getHtml()
      • inputForm.richEditor('field').getText()
      • inputForm.richEditor('field').insertContent()
      • inputForm.richEditor('field').setContent()
      • inputForm.richEditor('field').appendContent()
      • inputForm.richEditor('field').hasContent()
      • inputForm.richEditor('field').getSelectedText()
      • inputForm.richEditor('field').enabled()
      • inputForm.richEditor('field').disabled()
      • inputForm.richEditor('field').getLocalData()
      • inputForm.richEditor('field').clearLocalData()
    • 对话框UI更改:

      • gUtil.alert(msg,fun,iconType):iconType 1 - 成功 2- 警告 3 - 错误
      • gUtil.alertWarn(msg,fun):警告对话框
      • gUtil.alertError(msg,fun):错误对话框
文档更新时间: 2022-01-12 10:45   作者:姜一维