发布日期:2022-02-15

1.4.0版本目前已进入维护状态,不再新增功能,项目可继续使用,但无法获得以后版本发布的新功能。

  • BUG修正

    • 202506160932:
      • 修复日志文件下载权限问题
      • 修复其他已知BUG
    • 202501101522:
      • 修复gUtil.round对负数四舍五入问题,如:
        // JS和其他语言对 -0.5 负数round的结果存在偏差
        // 原计算结果:
        gUtil.round(-1.235,2) = -1.23 
        // 现调整结果:
        gUtil.round(-1.235,2) = -1.24
        // 正数结果不变:
        gUtil.round(1.235,2) = 1.24
      • 修复其他已知BUG
    • 202406201247:
      • 地区库世界国家数据补全(遗漏了巴勒斯坦、哈萨克斯坦、法罗群岛、摩纳哥、南苏丹等几国)
      • 更新最新(2023年)国家统计局地区库,取消已合并的区、新增新的地区
      • 修复其他已知BUG
    • 202403151628:
      • 修复一个元组件,在不同页面内,被同时打开时,组件内表格最大化失效问题。
      • 修改其他已知的BUG
    • 202311291118:
      • 修复开发环境推算控件默认名称时无法校验tabpage下控件的问题。
      • 修复新能源车牌号识别问题
      • 其他累积BUG修复
      • 修复打包文件中,资源文件中文名称的情况下,在linux下升级后变成乱码问题
      • 修改其他已知问题
    • 202310311047:
      • 修复缓存内存溢出问题。
    • 202310180925:
      • 修复谷歌浏览器下代码字体变小问题。
      • 修复调试时,数组元素为空的情况下,无法打开数组列表问题
    • 202309221531:
      • 修复SQL升级语句归档号不能超过10的问题
      • 修改其他已发现的BUG
    • 202309011544:
      • 增加WPS文件预览功能,实现与solution.wps.cn在线预览服务对接
        • 登录weboffice开放平台创建应用,配置相应的回调地址
        • 在系统配置文件中设置weboffice申请到的AppSecret 、AppID
    • 202308311634:
      • 修复报表日期查询中,带有时间的日期格式,点击月报错问题
    • 202308241303:
      • 开发环境打包优化:加快打包速度,解决打包时内存溢出问题
      • 修复了开发环境打包经常报连接超时问题
      • 修复对话框关闭后,页面上点击回车仍旧会触发对话框事件的问题
    • 202307031113:
      • 修正表格数字值如:0.00000021这类的数据,在js中,显示科学计数问题,需要升级主数据且所有相关页面全编译发包
      • 修正其他已知的问题。
    • 202306091122:
      • 开发环境增加编译包文件清理功能,清理规则:
        • 一般编译包默认保存15天
        • 开发者可以手工推迟清理时间
        • 每个系统至少保留3个编译包
      • 修正$vs.redis.setnx$vs.redis.rename递归循环调用问题
      • 日常其他已知问题修复。
    • 202303170912:
      • 修复Oracle数据库下,$vs.dbTools.batchUpdate方法数据类型不一致时,报ORA-01790: 表达式必须具有与对应表达式相同的数据类型错误问题。
    • 202302161731:
      • 修正$vs.redis.setnx$vs.redis.rename递归循环调用问题
      • 修正偶发性用户丢失问题
      • 异步线程不再支持 $vs.request,在异步线程中,获取返回的是null
    • 202301161506:
      • 修复主数据新安装时,启动失败问题
      • 修复其他已知的BUG。
    • 202212081017:
      • 企业版表格导出功能控制:当前登录用户无导出权限时,禁止企业版表格导出excel功能。
    • 202211291155:
      • 修复开发环境特殊建表SQL解析时导致死循环问题
    • 202211251428:
      • 打包后数据库密码支持加密保存
      • 修复gUtil.openDialog函数无法打开选单窗口问题
    • 202211101047
      • 修复下拉过滤不支持特殊字符(如:&)问题
      • 修复谷神脚本字符串转义字符无法表达问题,现在使用#set($str='aa\nbbb')可以输出换行符
      • 修复主页面、主表格下拉按钮排第一个时,弹出的下拉菜单被主菜单遮挡问题。
    • 202210311144:
      • 修复定时调度中,最后一天设定的情况下,短月(30天月)过渡到长月(31天月)时日期计算不正确的问题。
      • 修复主页面中,用户即保存了查询条件模板,又保存了表格模板,且表格模板含有排序的情况下,触发两次查询,且数据被覆盖问题。
    • 202210180857:
      • $vs.date.getDbDate():返回数据类型变更为Date类型
      • 新增$vs.date.getDbTimeStamp():返回TimeStamp(带毫秒)类型
    • 202209281713:
      • 远程访问组件设置等待超时时间(10分钟)
      • 修复定时作业环境下的业务日志无法写到日志中心的问题
      • 服务组件允许接受数组类型的json字符串,但是会转为 $form.list下的内容
      • 修复INT类型数据未做自动类型转换问题而导致的Oracle批量新增失败的问题
    • 202209221139:
      • 修复Oracle数据库下,明细表格批量数据保存时,部分数字类型的行没有填制(null)的情况下,报“表达式必须具有与对应表达式相同的数据类型”问题。
    • 202209151531:
      • 增加导出代码报告功能
        • 导出方法:开发环境->应用管理->更多操作->代码报告
      • 明细表格detailTableinputForm加载数据由原先任意条件就可以加载全表数据改为需要传值特殊条件才可以加载全表数据(防止条件匹配失败而导致的全表加载内存溢出);若确实需要加载所有数据,则传值查询条件:{isLoadAll:true}
        • 本功能默认关闭,可以通过添加参数golden.control.load.is-skip-check=false来开启。
        • 开发启用方式:在资源管理服务中,添加微服务应用的系统额外配置
        • 生产/测试环境:在打包时,增加自定义配置
        • 注意:每个微服务应用都需要添加此配置
      • gUtil函数功能扩展:gUtil.exportTemplate(pageId,fileName,columnInfo) :根据程序中定义字段下载Excel导入模板
      • 修改系统异常消息提示框,并将保存时字段太长异常,转换为具体的错误提示信息
      • 修正EXCEL导入时手机号尾数为0时转换为科学计数问题
    • 202208301146:
      • 修正inputBox地区组合setFieldMustInput无效问题。
      • 修复导出时,谷神脚本报表未调用afterLoad事件的问题。
      • 修复tabpage控件套tabpage控件的情况下,编译js文件错乱问题。
    • 202208031408:
      • 修复开发环境下,产品代码断点无法进入的问题
      • 修复Oracle数据库下,SQLTools.dateIntervalDAY日期差出现小数问题
      • 修复钉钉、微信、企业微信后台用户发送消息给协同用户时,无法找到用户信息的问题
    • 202207251709:
      • 修正$vs.http返回时校验JSON格式失败的问题。
      • 服务端谷神脚本增加直接调用页面保存方法:
        • $vs.proc.callPageSave():服务端调用页面的单据新增方法(一般用于接口等需要创建单据时与原保存代码复用的场景)。
        • $vs.proc.callPageUpdate():服务端调用页面的单据修改方法(一般用于接口等需要创建单据时与原保存代码复用的场景)。
      • $vs.util增加新的API:
        • $vs.util.urlEncode($str:string):string对字符串进行URLEncode编码
        • $vs.util.urlDecode($str:string):string对字符串进行URLDecode解码
    • 202207180906:
      • 修复用户在无菜单权限时,登录报错的问题
      • 修复$vs.dbTools.batchUpdate一次修改行数过多时,重复执行第一页的情况
      • 修复企业微信发送消息时,用户ID中含有空格的情况下无法收到消息的问题
    • 202207061121:
      • 修复邮件附件中文名称过长时,附件文字被下划线替代的问题。
      • $vs.dbTools增加新方法:$vs.dbTools.clearDatabaseCache()清理当前线程内的MYBATIS一级缓存(一般用于需要实时读取数据库同一条记录的情况)
    • 202206280957:
      • 修复$vs.dbTools.batchUpdate方法,当数据超过1000条时,只能更新部分数据问题。
    • 202206270931:
      • 窗口打开数限制在15个
      • 原验证规则正数名称更名为大于等于零;增加正数验证规则(大于0不等于0)
      • 润乾报表支持独立部署
    • 202206211322:
      • 框架升级(2.3.10->2.6.8)
      • 修复文件下载时未能根据上传文件名称下载的问题
    • 202205261141:
      • 修正协同主数据定时任务在管理端主数据里立即执行时,无法调度问题
      • 修正下拉选择控件粘帖后不会触发过滤问题
      • 修正谷神数据源报表字段排序问题
    • 202205231613:
      • 修正了微信扫描登录的情况下,由于浏览器缓存而导致无法正常登录的问题。
      • 修正了主菜单收缩/展开导致右侧工作区控件高度错乱问题
    • 202205191653:
      • 数据字典升级规则修正:对于用户不能修改的数据字典类型,开发环境删除条目后,生产环境也同步删除;对于允许进用户修改的类型,则不删除
    • 202205071047:
      • 增加报表查询耗时分析功能,分析报表耗时环节
        • 启用方式:在配置文件application-conf.properties增加配置项golden.runtime.min-time-to-show=xxxx
        • 参数含义:报表执行超过多少时间后,在日志文件中打印耗时分析数据
        • 参数单位:毫秒,默认5000,即,不配置的情况下,如果报表查询耗时超过5秒,则会自动打印耗时分析数据。
    • 202205061033:
      • 报表用户添加自定义查询条件(查询条件设计器)增加统一启用/禁用设置,默认不启用查询条件设计器功能
        • 启用方式:应用管理->主数据->编辑->参数设置->查询条件设计器开启
    • 202204281652:
      • 修复定时调度下,$vs.dbTools.remoteList只能触发一次,第二次报无权限的问题。
      • 修正#try语句return没有结束过程的BUG。
    • 202204251537:
      • 查询条件设计,增加字段时,增加按字段名称排序
      • 元组件角色授权问题
      • excel导出数据时按排序的数据进行导出
      • 元桌面默认组件升级时报错
    • 202204201639:
      • echart.js 版本升级
      • 数据字典新增时,增加code重复判断
    • 202204191617:
      • 修正$vs.sqlTools.like无法正常工作问题
      • 优化三方接口accessToken无效时提示的错误编码。
    • 202204181635:
      • 代码打包编译时,不再打包发布预警监控调度(预警监控属于项目行为不具备升级功能)。
      • 后台保存时,增加对下拉必输字段反射值的非空校验
      • 下拉控件BUG调整(当过滤无数据时,用户点击下拉空白处会导致下拉无法关闭的问题)
  • 底层包版本升级说明 2.3.10->2.6.8

序号 包名 原版本 新版本
1 spring-boot 2.3.10.RELEASE 2.6.8
2 spring-cloud Hoxton.SR11 2021.0.3
3 spring-framework 5.2.14.RELEASE 5.3.20
4 hibernate 5.4.30.Final 5.6.9.Final
5 tomcat 9.0.45 9.0.63
6 fastjson 1.2.76 1.2.83
7 mybatis 3.5.6 3.5.6
  • 新增功能

    • 多版本支持:谷神支持多版本打包(需要升级资源管理服务),打包服务将根据开发环境的版本确定包版本,项目若不升级开发环境版本,则将始终使用项目指定的版本
    • 增加消息模版标题解析函数:$vs.message.buildMessageTitle()用来解析消息标题。
    • 登录用户表增加EMAIL字段
    • 我收藏的菜单:新增我收藏的菜单功能,用户可以收藏菜单,并且也可以对收藏的菜单进行分组管理
    • 表格隐藏字段优化:在表格字段属性设置页面中,表格隐藏字段支持允许用户手工放出选项,当开发者启用此选项后,隐藏字段将被允许终端用户启用(放出显示),并且可以保存格式。
    • 主表格增加缓存分页功能:
      • 开启方式:主表格属性->基础设置(TAB页)-> 开启分页 -> 开启磁盘缓存分页数据选项
      • 作用原理:
        • 当用户点击查询、切换每页显示条数、API发起的查询(mainTable.load())时,会触发缓存分页查询,服务器会把符合用户查询过滤条件的所有数据从数据库中加载出来,并保存到应用服务器本地磁盘。
        • 当用户点击页码切换时,后台服务器将不会从数据库加载数据,而是直接从应用服务器已经缓存的磁盘分页文件中加载数据。
      • 分页缓存数据有效期:
        • 默认情况下,用户加载数据后,30分钟内未翻页,则数据失效,缓存数据文件从磁盘中删除
        • 当用户在缓存数据失效前发起切换分页操作,则数据有效期将在此时间基础上,往后延30分钟
        • 当用户点击查询按钮或者其他方式发起查询操作时,上次的缓存数据自动失效(不管是否已经过时),重新从数据库中加载数据。
      • 支持范围:
        • 主数据表格(子数据表格不支持)
        • SQL数据源谷神脚本数据源均支持
        • 谷神脚本数据源中的临时表功能原则上支持,但是由于临时表要求在同一个会话内,故,加载数据采用同步加载,对查询有一定的时延(通常100页数据时延2秒左右)
    • 对话框窗口、选单窗口增加“隐藏关闭按钮”功能,启用后,窗口的关闭按钮将不显示
    • 新增剪贴板API函数:gUtil.setClipboardData(text):将文本内容放到剪贴板
    • 新增侧边框窗口:用于从浏览器右侧弹出侧边框功能
      • 启用方式:新增窗口时,选择侧边框类型
      • 新增相关API:
        • $vm.openSideWin(pageId,data,openType,callback,isBackDrop,title):打开侧边框
        • $vm.closeSideWin():关闭侧边框(仅在侧边框窗口内可以调用)
        • $vm.sideWinCallback(args):回调给主窗口
        • gUtil.openSideWin(pageId,data,openType,callback,isBackDrop,title):动态打开侧边框
      • 窗口事件支持:支持onShow外所有的窗口事件。
        • 注意:当窗口被重复打开时,会重复调用onOpen事件,并传递新的窗口调用参数。
      • 控件支持:支持所有谷神系统的控件
      • 按钮支持:类似对话框窗口,侧边框也可以有操作按钮(显示在窗口右上角),开发者同样可以不显示这些按钮。
    • 新增API:
      • $vs.log.writeBusLog($billTypeCode,$billNo,$optType,$bill,$systemId)增加新参数$systemId允许开发者定义将要记录的日志落到那个系统编码名下。
    • UI组件新增事件:新增组件事件onCreate组件被创建并添加到父级后触发。
    • 开发日志优化:开发日志中,增加业务名称字段,用于显示本次开发动作相关对象的名称(如:页面名称)
    • GuthonScript语法增加三元表达式支持:
      • #set($var = $form and $vs.util.isNotNull($form.BILL_NO)) ? 1 : 0)
    • 外系统单点登录支持:支持外系统以谷神账户为基础的单点登录功能(详见谷神系统外部接口标准文档)。
    • 子页面权限规则调整:
      • 原子页面的权限访问级别是跟着子页面所在的菜单走的(分别为:不控制登录操作员管理员
      • 现在将子页面访问权限增加一项控制(即开启子页面自己的不控制登录操作员管理员权限)
      • 当子页面权限未设置,或者设置为操作员管理员时,走现有的判断逻辑(即挂靠到页面所在菜单,若子页面所在菜单为登录权限,则这个子页面也同样是登录权限)
      • 当子页面权限设置为不控制或者登录时,即便子页面所在菜单权限为操作员(甚至管理员),且未分配给当前操作员权限,当前操作员仍旧可以访问这个子页面。
      • 用途举例:此功能可以用于制作一个公共的子页面,并设置子页面权限为登录权限,这样就可以在系统内任意模块打开这个子页面,而不需要分配对应的权限。
    • SQLTools新增函数:
      • SQLTools.groupConcat(field):聚合函数字段行转列,注意SQLServer不支持此方法,若此函数运行在SQLServer环境下,会抛出异常。
      • SQLTools.instr(field,ch):查找字符串函数(所有数据库通用)
    • 增加用户生产环境添加数据字典功能:
      • 开发环境若设置了数据字典为允许用户修改,则终端用户可以修改添加数据字典条目
      • 终端修改功能位置:超级管理员登录->右上角个人头像->系统设置->数据字典管理
    • 字段默认增加产品继承项目默认值:
      • 本次增加出厂默认名称出厂默认状态禁用项目修改三个项目
      • 出厂默认名称和出厂默认状态这两项在产品字段模版新导出到项目时有效,将项目新增记录的名称和状态设置为出厂默认值(防止产品环境的调试信息带到项目)
      • 禁用项目修改这个是控制项目不允许修改这条产品设置好的字段模版的名称及启用状态。
    • 产品场景导出功能调整:
      • 不再导出已签出未提交的代码:若页面(或者过程函数)被签出,没有提交,则会去寻找上一次提交的记录作为导出代码(防止产品未开发完成的数据被导出到项目)
      • 导出场景时增加依赖资源文件的导出
    • 开发环境增加只读权限控制:
      • 启用方式:开发环境-> 基础设置 -> 开发人员管理 -> 权限分配
      • 只支持只读权限,若为某用户勾上了模块,则这个用户对此模块只读,不可保存。
    • 按钮组功能升级:
      • 按钮组下拉按钮颜色将根据第一个按钮设置(即等于按钮组的第一个按钮设置的颜色)
      • 当按钮组下所有的按钮都被隐藏时,按钮组隐藏
    • 树控件功能升级:
      • 增加树控件过滤功能(在树控件属性设置界面开启页面过滤即可)
      • 增加复选功能(在树控件属性设置界面开启允许多选即可)
      • 增加一次加载所有数据功能(在树控件属性设置界面开启即可)
      • 增加如下API:
        • treeBox.getCheckedNodes():获取所有选择的节点(多选)
        • treeBox.checkAllNodes(checked):选择/取消所有节点的选择状态
        • treeBox.checkNode(node,checked):选择/取消单个节点
        • treeBox.setCheckDisabled(node,disabled,inheritParent,inheritChildren): 禁用 或 解禁 某个节点的可选状态
      • 增加控件页面事件:
        • onBeforeCheck:启用多选时,勾选或取消勾选之前的回调函数,并且根据返回值确定是否允许勾选或取消勾选
        • onCheck:启用多选时,被勾选 或 取消勾选的事件
    • 表格EXCEL导出功能调整
      • 表格EXCEL导出时,支持按用户调整好的表格字段显示顺序/是否隐藏属性导出EXCEL,即支持所见即所得功能
    • 系统名词更名:原系统UI组件现正式更名为元组件
    • 新增元空间功能:
      • 新增元组件管理:
        • 元 组 件:原名UI组件,是在模块开发中添加的一类特殊窗口,可以和其他窗口容器一样使用谷神的相关控件。
        • 元组件管理:
          • 本模块为谷神元桌面系统的配套模块,通过本模块注册的元组件才可以在谷神元桌面中被添加到谷神首页。
          • 元组件注册时,可以选择是否允许手动刷新、定时刷新时间间隔、访问权限范围、宽度支持情况等参数
          • 元组件调用的服务组件访问设置为不控制或登录权限,如需要权限设置,请在元组件授权模块控制
          • 元组件加载完成后会自动调用控件中的doMthod方法加载数据,传入参数为refresh
        • 元桌面组件开发支持:
          • 桌面用元组件开发方式、方法、流程和原先的UI组件开发一致。
          • 元组件页面事件doMethod中,元桌面会发起两种类型的通知:
            • refresh: 用户手动刷新或者桌面第一次加载时调用,通知当前组件刷新数据。
            • timer: 组件定时设置的刷新时间间隔已到时,元桌面会通知当前组件刷新数据。
      • 新增元桌面系统:
        • 开启方式:应用管理->应用属性->首页面板选择为谷神桌面后,用户访问这个系统时,将会启动谷神桌面系统(系统桌面默认模版,请到元桌面管理模块定制)。
        • 用户登录谷神开发的系统后,会显示默认定制的元桌面组件,用户可以进行添加卡片删除卡片顺序移动等用户个性化桌面定制操作。
      • 元桌面模版定制:
        • 开发者可以在元桌面管理里定制用户默认的桌面模版。
      • 元组件授权功能:
        • 元桌面系统支持有需要的组件通过授权后才可以被用户使用的功能
        • 启用方式:在注册元组件时,选择访问控制权限为授权访问
        • 授权访问的组件,用户在没有被分配权限前,无法添加到自己的个性化桌面上。
        • 授权方式:系统管理员登录->系统设置->元组件授权管理功能里对元组件进行权限分配,可以选择组件按业务员和角色进行授权。
      • 新增元桌面日历组件:
        • 默认显示当前月份日历含农历信息和选中日期的详细日程信息
        • 每日信息中显示当天的日程安排信息,默认显示两条,点击每天右侧显示详细的日程信息
        • 针对选择日期可新增日程信息、编辑已有日程、删除日程,日程消息包含主题、时间、提醒、描述等信息
        • 根据日程的提醒设置进行站内消息提醒,需要预告在消息模板中进行系统类型(日程)消息模板设置
        • vs.message.createCalendarNotice增加业务中创建日程提醒方法
    • 文件上传字段新增加事件:onAfterFileUpload用于当文件上传成功后的回调
    • 地区表增加境外国家名单。
    • 报表增加用户添加自定义查询条件功能:
      • 启动方式:升级谷神开发环境到最新版,并编译系统
      • 自定义查询条件分为系统级和用户级,系统级查询条件为所有用户都会显示;用户级查询条件为操作员私有添加的查询条件
      • 系统管理员添加设计的查询条件即为系统级查询条件,会推广应用到所有用户;
      • 普通用户添加设计的查询条件为用户私有,只有添加者可以看到。
      • 适用范围:普通谷神报表(谷神脚本数据源和子查询SQL报表,不支持)
  • 功能优化

    • 优化了checkboxradio未选中的情况下,被禁用时,背景设置为灰色
    • 优化了数据权限分配时,默认勾上自己所在部门的权限且不可更改
    • 优化了当下拉框反应慢(数据较多)时,用户多次输入过滤条件,导致返回的结果错乱问题。
    • 优化了自定义sql查询中,字段小写,返回数据时也是小写的问题,现在统一返回字段名均为大写。
    • 优化了表格页面排序(主表格需要按住shift键),增加按中文拼音排序功能。
    • 优化了MYSQL报表无法按中文排序的缺陷,增加按中文拼音排序功能。
    • 优化了主表格分页栏,在分页数多的情况下,增加快速翻页功能。
    • 优化了导出EXCEL功能,可以根据页面主表格字段顺序、是否显示等页面设置来导出Excel文件,以达到所见即所得的效果。
    • 优化了当只有一个系统设置了用户首页时,系统切换不会触发用户首页的onShow事件的问题。
    • 优化了Oracle数据库下的Clob字段读取转换问题。
    • 优化了查询控件日期(带时间)查询框当月等按钮换行问题。
    • 优化了$vs.sqlHelper.listIn($list,$strTableFieldId)$vs.sqlHelper.listNotIn($list,$strTableFieldId)方法,允许参数$list可以是其他类型的集合,如:List<int>
    • 优化了前台对话框提示内容太长时,页面无限滚动问题,现修改为弹出框内容太长时,高度固定并显示滚动条滚动查看更多内容。
  • 代码结构版本号

    • 当前代码结构版本号:不支持
文档更新时间: 2025-06-16 09:35   作者:weir