发布日期:2022-07-05

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

  • 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
    • 202312201440:
      • 修复一个元组件,在不同页面内,被同时打开时,组件内表格最大化失效问题。
      • 修改其他已知的BUG
      • 漏洞安全升级:
        • spring-5.3.30 -> 5.3.31
        • spring-boot-2.7.16 -> 2.7.18
        • tomcat-9.0.80 -> 9.0.83
    • 202311291118:
      • 修复开发环境推算控件默认名称时无法校验tabpage下控件的问题。
      • 修复新能源车牌号识别问题
      • 修复打包文件中,资源文件中文名称的情况下,在linux下升级后变成乱码问题
      • 修改其他已知问题
    • 202310311047:
      • 修复缓存内存溢出问题。
    • 202310180925:
      • 修复谷歌浏览器下代码字体变小问题。
    • 202310101716:
      • 修复调试时,数组元素为空的情况下,无法打开数组列表问题
      • 框架漏洞升级:
        • spring-5.3.29 -> 5.3.30
        • spring-boot-2.7.14 -> 2.7.16
        • tomcat-9.0.78 -> 9.0.80
        • jackson-databind-2.13.5 -> 2.15.2
        • com.google.guava:guava-31.1-jre -> 32.1.2-jre
        • cn.hutool:hutool-core-5.3.3 -> 5.8.22
        • commons-net-3.5 -> 移除
        • commons-httpclient-3.1 -> 移除
    • 202309221531:
      • 修复SQL升级语句归档号不能超过10的问题
      • 修改其他已发现的BUG
    • 202309011544:
      • 增加WPS文件预览功能,实现与solution.wps.cn在线预览服务对接
        • 登录weboffice开放平台创建应用,配置相应的回调地址
        • 在系统配置文件中设置weboffice申请到的AppSecret 、AppID
      • 修复报表日期查询中,带有时间的日期格式,点击月报错问题
      • $vs.http.xxx方法增加新参数$ignoreError:忽略服务器返回的错误码。默认false(返回码超过400就会抛出异常),true - 不管服务端返回什么码,都会读取服务端返回的数据不会抛出异常,需要开发者自行解析请求是否正确
    • 202308241303:
      • 底层包版本升级(2.6.8 -> 2.7.14)
      • 开发环境打包优化:加快打包速度,解决打包时内存溢出问题
      • 修复了开发环境打包经常报连接超时问题
      • 修复对话框关闭后,页面上点击回车仍旧会触发对话框事件的问题
    • 202307031113:
      • 修正表格数字值如:0.00000021这类的数据,在js中,显示科学计数问题,需要升级主数据且所有相关页面全编译发包
      • 修正其他已知的问题。
    • 202306091122:
      • 开发环境增加编译包文件清理功能,清理规则:
        • 一般编译包默认保存15天
        • 开发者可以手工推迟清理时间
        • 每个系统至少保留3个编译包
      • 修正$vs.redis.setnx$vs.redis.rename递归循环调用问题
      • 日常其他已知问题修复。
    • 202305230828:
      • $vs.cipher增加新加密解密API
        • $vs.cipher.hmacSHA512($data:string,$secret:string,$charset:string):string
        • $vs.cipher.hmacSHA512B($data:byte[],$secret:byte[]):byte[]
        • $vs.cipher.hmacSHA512S($data:string,$secret:string):byte[]
        • $vs.cipher.rsaPrivateEncode($str:string, $key:string,$len:int):string
        • $vs.cipher.rsaPublicEncode($str:string, $key:string,$len:int):string
        • $vs.cipher.rsaPublicDecode($str:string, $key:string,$len:int):string
        • $vs.cipher.rsaPrivateDecode($str:string, $key:string,$len:int):string
        • $vs.cipher.rsaSign($str:string, $key:string,$type:string):string
        • $vs.cipher.rsaVerify($str:string, $sign:string, $key:string,$type:string):boolean
    • 202305150944:
      • 数据权限分配增加“不控制当前用户的此项数据权限”功能,分配权限时,若为当前用户(或角色)勾选了此项选项,则当前用户将拥有此数据权限项下的所有权限,如:为“总经理”角色的“部门数据权限”勾选此选项,则所有属于“总经理”角色的用户在查询报表或者做单时,不再控制部门权限。
    • 202304261358:
      • 增加HTTP接口对代理服务器的支持,系统打包配置增加如下项:
        • golden.system.proxy.host: HTTP代理服务器地址,如:proxy.guthon.com
        • golden.system.proxy.port: HTTP代理服务器地址端口,如:8080
        • golden.system.proxy.user-name: HTTP代理服务器地登录用户(如果需要身份验证)
        • golden.system.proxy.password: HTTP代理服务器地登录密码(如果需要身份验证)
    • 202304191534:
      • 报表增加自定义导出文件名称参数_report_name_,在 report.load({_report_name_:'导出文件名称',BILL_NO:'HT201220912039'})(润乾报表支持)
      • 修复其他已知的问题。
    • 202303210958:
      • 增加调用主页面和子页面的查询API
        • $vs.proc.callMainPageFind():主页面分页查询
        • $vs.proc.callMainPageList():主页面不分页查询
        • $vs.proc.callMainPageSum():主页面汇总合计查询
        • $vs.proc.callDetailPageSearch():子页面查询
      • 角色权限审计、用户权限审计中加入默认查询权限、过滤禁用模块
    • 202303170912:
      • 修复Oracle数据库下,$vs.dbTools.batchUpdate方法数据类型不一致时,报ORA-01790: 表达式必须具有与对应表达式相同的数据类型错误问题。
      • 新增远程数据源访问函数:$vs.dbTools.connect($ip,$port,$userName,$pass,$dbType,$dbName)
      • 新增文件二进制内容读取函数:$vs.file.getFileBytes($path)
    • 202302161731:
      • 修正$vs.redis.setnx$vs.redis.rename递归循环调用问题
      • 修正偶发性用户丢失问题
      • 异步线程不再支持 $vs.request,在异步线程中,获取返回的是null
      • 修正多言无法翻译问题
    • 202302091642:
      • $vs.file新增接收HTTP上传文件方法
        • $vs.file.parseAndSaveFileToPrivate() : 解析并上传私有文件
        • $vs.file.parseAndSaveFileToPublic() : 解析并上传公有文件
    • 202302081200:
      • 修正$vs.redis.setnx$vs.redis.rename递归循环调用问题
      • 表格控件增加API:
        • table.setSingleSelect(b):设置表格为单选或者多选模式
        • table.isSingleSelect(): 返回当前表格是多选还是单选模式
      • $vs.proc.isHaveProc方法增加跨库查询功能。
    • 202301111331:
      • $vs.proc.callPageSave增加$ignoreDataAuth参数,用于保存时禁止判断数据权限
      • $vs.proc.callPageUpdate增加$ignoreDataAuth参数,用于修改时禁止判断数据权限
      • $vs.proc.callPageRemove增加$ignoreDataAuth参数,用于删除时禁止判断数据权限
      • 新增$vs.auth.offCurThreadDataAuth()函数,用于禁用当前线程所有数据权限判断操作(可漫游到远程调用及子线程)
    • 202301101412:
      • 添加正则表达式支持:
        • $vs.regexp.match($str,$exp)
        • $vs.regexp.matchIgnore($str,$exp)
        • $vs.regexp.findFirst($str,$exp)
        • ……
          #set($str='123Abc,AGD9090,asdf')  // 原始搜索字符串
          #set($exp='[a-z]+') // 正则
          //
          $vs.log.info($vs.regexp.findFirst($str,$exp)) // --> bc
          $vs.log.info($vs.regexp.findFirstIgnore($str,$exp)) // --> Abc
          $vs.log.info($vs.regexp.findAll($str,$exp)) // --> ["bc","asdf"]
          $vs.log.info($vs.regexp.findAllIgnore($str,$exp)) // --> ["Abc","AGD","asdf"]
          //
          #set($matcher = $vs.regexp.match($str,$exp))
          #set($list = $vs.util.newList())
          #while ($matcher.find())
            $list.add($matcher.group())
            #set($start = $matcher.start()) // 匹配字符串开始位置
            #set($end = $matcher.end()) // 匹配字符串结束位置
          #end
    • 202301041005:
      • 增加inputformcheckboxradio的必输验证.
    • 202212131440:
      • 日程消息不与系统ID关联,修复取不到系统ID时报错。
      • 站内信新增附件上传及查看功能。
      • 放开站内信选择用户和权限时需要管理员权限限制。
    • 202212081017:
      • 企业版表格导出功能控制:当前登录用户无导出权限时,禁止企业版表格导出excel功能。
      • 增加单据新增保存及修改保存性能报告数据,默认超过2s的操作会打印性能报告
      • 单据新增保存及修改保存性能优化(2000条保存时间从240秒下降到2秒)
    • 202211251721:
      • 修复主表格合计字段中,出现主表和关联表格相同字段而报错问题。
    • 202211291155:
      • 修复开发环境特殊建表SQL解析时导致死循环问题
    • 202211251428:
      • 打包后数据库密码支持加密保存
      • 修复gUtil.openDialog函数无法打开选单窗口问题
      • 修复定时作业立即执行时,路由到远程协同端的定时任务报请登录后再操作问题。
    • 202211101047
      • 取消任务栏页面风格下,自动添加窗口标题.
      • 修复下拉过滤不支持特殊字符(如:&)问题
      • 修复主页面、主表格下拉按钮排第一个时,弹出的下拉菜单被主菜单遮挡问题。
  • 重要变更

    • 明细表格detailTableinputForm全表加载检测,自本版本始默认开启,由低版本升级上来的项目注意检查各自代码是否存在问题,若要关闭检查,则手动添加参数golden.control.load.is-skip-check=true来关闭(所有微服务都需要添加)。
    • 日志中心表结构变更通知:
      • 自今日起,1.42版本的日志表中的text字段全部转为记录表,原大文本字段保留,类型全部转换为varchar(1),请及时调整日志详模块,否则查看日志详情时,会不显示发送和接收报文内容;其他版本不受此影响

主报表表格汇总合计算法变更兼容性警告:

 - 原先算法:
        select <用户自定义汇总表达式> from <原生SQL汇总语句FROM后的部分> 
 - 调整为:
        select sum(field) from ( select 原生SQL from xxx )
 - 实例(原):
        select 
            sum(Amt) as AMT,
            sum(a.AMC) as AMC,
            sum(case when status =1 then amt else -amt end) as AMD
        from table where billNo=#{bilNo}

    AMT、AMC 为正常字段,AMD为表达式字段,这种表达式在老的算法里是支持.
    其中AMC字段,新算法为了兼容老算法会把 a.AMC 转换为 AMC。
    但类似 AMD 这些个性化表达式字段,无法进行转换,需要开发者自己调整,否则会报错,新的算法如下:

        select 
            sum(AMT) as AMT,
            sum(AMC) as AMC,
            sum(AMD) as AMD
        from (
            select 
                AMT,
                a.AMC,
                case when status =1 then amt else -amt end as AMD,
                a.billNo as billNo,
                ....
            from tabe1 a,table2 b
            where a.billNo = b.billNo
        ) t

    在新的算法中,如果AMD仍旧使用 case when status =1 then amt else -amt end 子句将会出错。
  • 新增功能

    • $vs.dbTools增加新方法:
      • $vs.dbTools.clearDatabaseCache()清理当前线程内的MYBATIS一级缓存(一般用于需要实时读取数据库同一条记录的情况)
    • 服务端谷神脚本增加直接调用页面保存方法:
      • $vs.proc.callPageSave():服务端调用页面的单据新增方法(一般用于接口等需要创建单据时与原保存代码复用的场景)。
      • $vs.proc.callPageUpdate():服务端调用页面的单据修改方法(一般用于接口等需要创建单据时与原保存代码复用的场景)。
    • 报表增加分组小计功能:
      • 默认所有报表都支持分组小计功能
      • 功能入口:主数据报表右上角更多功能菜单按钮点击后,下拉菜单中会多出分组小计查询菜单项
      • 有些特殊报表不支持的,请在表格的属性中,选择“禁用分组小计功能”关闭当前报表的分组小计功能
      • 主数据表格mainTable增加API:table.setGroupSubTotal(fields)通过代码的方式开启分组小计功能
      • 当用户开启分组小计时,此表格导出EXCEL的内容也会同步分组小计
    • $vs.util增加新的API:
      • $vs.util.urlEncode($str:string):string对字符串进行URLEncode编码
      • $vs.util.urlDecode($str:string):string对字符串进行URLDecode解码
    • 加入第三方IP库Ip2region支持
      • 此功能主要用于将IP转换为详细的地址(国家、省、市、区等);
      • 使用些功能需要将地址数据库放于系统运行目录下,并重启服务。
    • 加入UniApp消息推送功能
      • 此功能先在Dcloud平台创建应用,应用类型选择uni-app;点击应用名称,进入应用详情,选择uniPush 1.0后,编辑应用详细信息进行保存,然后再点击消息推送,查看相应的推送参数,并配置到开发平台应用发布中;
      • 在开发平台消息模版设置中对APP消息参数进行配置,其中详情地址为APP中打开详情页跳转地址。
      • app开发时在登录页面嵌入相关代码,详见APP消息推送开发文档
    • 加入用户权限审计报表
      • 用于查看所有用户、所有模块的权限分配情况,可根据关键字检索;
      • 可以查看拥有某一功能权限的所有用户信息;
      • 支持导出用户权限审计数据。
    • 加入角色权限审计报表
      • 用于查看所有角色、所有模块的权限分配情况,可根据关键字检索;
      • 可以查看拥有某一功能权限的所有角色信息;
      • 支持导出角色权限审计数据。
    • 新增用户会话信息修改功能:
      • $vs.user增加属性$vs.user.disUserName属性,业务程序可以设置这个属性用于在用户登录后,右上角显示个性化的用户姓名如:您好,XXX部门XXX。
      • 新增API$vs.cache.reputUserSession()方法,用于把当前会话中的用户信息同步更新到redis中,用法如下
        #set($vs.user.DEPT_CODE = '001')  // <-- 切换当前登录用户的部门编码
        #set($vs.user.ORG_CODE = '002')   // <-- 切换当前登录用户的机构编码
        #set($vs.user.disUserName = '高达总部研发部张三丰') // <-- 设置个性化右上角显示名称
        //
        $vs.cache.reputUserSession(); // <-- 把上面对`$vs.user`用户信息的修改更新到redis,注意:此方法没有参数
    • 侧边栏窗口功能优化:
      • gUtil.openSideWin增加参数:isAppendToBody,表示窗口是否添加到全局,默认false,窗口内容添加到调用窗口内。
      • $vm.openSideWin增加参数:isAppendToBody,表示窗口是否添加到全局,默认false,窗口内容添加到调用窗口内。
    • 页面风格支持单页模式:
      • 开启方法:编辑主数据系统属性->勾选“禁用任务栏(单页模式)”
      • 开启后效果:运行系统主菜单切换时,上次打开的主界面将会被强制关闭(也就是一次只能打开一个主页面,类似服务端渲染中的页面刷新效果)
    • 增加可获取返回值的线程方法调用:
      • $vs.thread.runFutureTask($strProcName:string,$funName:string,$args:Object...):FutureTaskResult
      • $vs.thread.runServiceCompFutureTask($strCompId:string,$args:Object):FutureTaskResult
      • 使用方法:
        // 开启线程
        #set($future1 = $vs.thread.runFutureTask('com.golden.bdp.basic.imported','getMembers','000001'))
        #set($future2 = $vs.thread.runServiceCompFutureTask('com.golden.bdp.tms.main.serviceActionDemo',$vs.util.newMap()))
        #set($member = $future1.get()) // 等待线程返回
        #set($info = $future2.get()) // 等待线程返回
        /*
         #set($member = $future1.get(6000)) // <-- 设置获取等待时间的方法
         #set($bool = $future1.cancel(true))
         #set($bool = $future1.isDone())
         #set($bool = $future1.isCancelled())
        */
        $vs.log.info($member)
        $vs.log.info($info)
    • 增加全局常量栈功能:常量栈($vs.stock),用于寄存常量,可以在任意后台谷神脚本中获取设置的常量值
      • 注意事项:
        • 1、常量栈只可以在系统脚本系统启动初始化脚本中初始化,初始化脚本可以调用过程函数,在过程函数中初始化常量栈;其他任何地方的谷神脚本都再不允许初始化常量栈。
        • 2、微服务系统之间常量栈的值互不共享(主数据的常量栈无法在业务服务中读取,反之亦然),同时常量栈在同一业务微服务(如:贸易系统)不同集群服务间不共享
      • 代码示例(系统启动初始化脚本):
        #set($vs.stock.BT01031="BT01031")  // 采购合同(此注释会在代码提示中读取)
        #if ($vs.util.isNotNull($vs.util.getSystemId()))
           #set($vs.stock.BT01032="BT01032")  // 销售合同(此注释会在代码提示中读取)
        #end
        $vs.proc.invoke('com.golden.stock','init') // <-- 也可以把代码写到过程函数在过程函数中初始化常量栈
      • 读取示例(任意谷神脚本处执行):
        #if ($billType eq $vs.stock.BT01031)
          // to do ....
        #end
    • 谷神脚本增加函数变量支持语法
      • 函数变量:函数本身可以赋值到一个变量里去。
      • 调用示例:
        #set($funs = $vs.util.newMap()) // 创建父级对象
        #set($funs.funA = @funA) // <-- 函数不允许赋值给一级对象(函数必须有父级对象)
        $funs.funA(1) // 函数调用
        #function funA($a)
          return $a + 1
        #end
    • 常量栈支持二级分类:
      • 调用示例(系统初始化脚本里执行):
         #set($vs.stock.billTypes = $vs.util.newMap())
         #set($vs.stock.billTypes.BT001001 = 'BT001001')
    • 常量栈支持全局函数注册:
      • 调用示例(系统初始化脚本里执行):
         #set($vs.stock.funs = $vs.util.newMap())
         #set($vs.stock.funs.stockFunA = @stockFunA)
         #set($vs.stock.funs.stockFunB = @stockFunB)
         
         #function stockFunA($a)
             return $vs.stock.funs.stockFunB($a)
         #end
         
         #function stockFunB($a)
             #set($a=$a + 1)
         
             #if ($a > 100) 
                 return $a
             #end
         
             return $vs.stock.funs.stockFunB($a) // 递归调用
         #end
    • 常量支持代码提示:
      • 编写谷神脚本代码时输入$vs.sotck.后,会弹出项目已初始的常量代码,模块开发时提示当前系统下的常量,过程函数开发时提示当前数据源下的常量
      • 开发环境启动时自动加载所有初始化脚本中注册的常量
      • 初始化脚本保存之后自动更新常量数据,需要手动刷新开发平台页面进行重新加载
    • 系统脚本中,增加自定义系统脚本(JS、CSS)的功能:
      • 支持新增CSS、JS脚本新增,基本功能同默认系统脚本。
      • 打包时会自动将新增的脚本合并至原脚本文件中;
      • 场景导入时会自动导入新增的系统脚本。
    • 系统初始化脚本增加立即执行功能:主要是用于刷新常量栈变量及函数使用(免去频繁重复启动系统)。
    • inputForm下拉字段功能升级:
      • 增加api:form.setSelectValue(field,value):用于通过设置一个下拉字段预期的值,来获取显示值和反射值
        inputForm.setSelectValue('STATUS_NAME',1);
        // 等同于:
        // var resut = gUtil.getServerData('com.golden.getCache',{CODE:1})
        // inputForm.set(STATUS_NAME,result.name)
        // inputForm.set(STATUS,result.code)
      • form.set(field,value)增加新功能:判断,若field为下拉字段,则会把value作为显示名称,去解析下拉值,并反射对应code字段
        inputForm.set('STATUS_NAME','暂停');
        // 等同于:
        // var resut = gUtil.getServerData('com.golden.getCache',{CODE:1})
        // inputForm.set(STATUS_NAME,result.name)
        // inputForm.set(STATUS,result.code)
    • 菜单支持静态传参:
      • 模块菜单打开主页面时,支持静态传递自定义字符串参数
      • 设置方法:开发环境->模块开发->菜单属性修改->传递参数
      • 注意事项:传递的参数是一个字符串,在窗口 onOpen中的args参数中接收,字符串不可以包含双引号。
    • 增加初始化用户登录环境API:
      • $vs.auth.doUserFieldLoginPC()$vs.auth.doUserFieldLoginAPP()
      • 用途:一般用于三方系统单点登录。
      • 建议实现:
        • 与三方系统约定通信密钥
        • 建立映射地址的服务组件,如:/gdpaas/comps/login.htm
        • 三方地址访问登录地址,并传递token
        • 服务组件接受token,并根据通信密钥验证,还原得到用户编码
        • 调用本方法完成浏览器cookie的登录环境初始化
        • 页面重定向到谷神相关页面,单点登录完成。
      • 使用限制:
        • 必须在浏览器访问进程内调用,其他(如:异步线程、定时作业)不可访问
        • 必须在主数据环境下访问,其他微服务不允许调用本方法
    • 服务端谷神脚本增加直接调用页面删除方法:
      • $vs.proc.callPageRemove():服务端调用页面的单据删除方法(一般用于接口等需要后台删除单据时与原保存代码复用的场景)。
    • 保存提交按钮增加新事件:
      • saveData : 数据保存前触发(事务内)
    • $vs.proc.callPageSave、$vs.proc.callPageUpdate、$vs.proc.callPageRemove增加$ignoreTrans参数:
      • 参数用途:默认请情况下,$vs.proc.callPageSave方法必须在非事务内调用,若要强制在事务内调用,则必须设置此参数为true
      • 不良影响:强制在事务内运行可能会导致严重不良影响、数据库死锁、事务混乱等问题。实际调用过程中,一次保存,会调用beforeSave > saveData > 框架保存数据 > afterSave > complateSave这几个事件,而beforeSavecomplateSave这两个事件是非事务内的,如果此处强制在总事务内运行,则这两个事件也会带上主事务,从可能会而导致数据库死锁。
      • 举例如下:
        • 例1:在complateSave事件中开启了异步线程,需要在异步线程中读取主单据保存后的数据,但是由于此处和主事务是一个事务,主事务并没有提交,故,在异步线程中,无法读取保存后的数据
        • 例2:在complateSave事件中发起了三方接口调用,此接口会反馈结果,并修改主单据,但是由于主单据未提交事务,故三方接口会被数据库锁死,但是在complateSave事件中一直在等待三方接口的返回,不返回又无法提交事务,这样就会导致数据库死锁。
    • 开发平台增加API帮助中心:
      • 显示API目录树:页面端脚本工具、服务端脚本工具,点击查看具体工具下的函数信息
      • 支持按函数名称、函数描述进行检索
    • 消息提醒功能优化:
      • 当前打开的浏览器标签页不是谷神业务系统页面且有新消息时,谷神业务系统标签页显示消息提醒,提醒有新消息
      • 当页面切换至谷神业务系统时,关掉标签显示的消息提醒
    • 数据字典功能优化: 增加拖动移动常用代码位置的功能
    • $vs.math新增API:
      • $vs.math.sin($d:double):double
      • $vs.math.asin($d:double):double
      • $vs.math.cos($d:double):double
      • $vs.math.acos($d:double):double
      • $vs.math.toRadians($d:double):double
      • $vs.math.toDegrees($d:double):double
    • $vs.util新增函数:
      • $vs.util.fill($len,$char):string返回重复指定次数的字符串
    • SQLTools增加新方法:
      • SQLTools.UUID()转换为数据库的UUID函数,一般返回36位长度的字符串。
    • 数据库查询功能:
      • 开发平台数据库管理模块下面加入数据库查询模块,主要用于开发人员无需VPN登录,直接在线进行数据库表和视图查询,方便进行远程开发;
      • 支持双击表名进行表数据查询,还可以点击下拉菜单,同时也支持直接输入SQL语句进行查询;
      • 支持查看表结构;
      • 支持选择表字段自动生成Select 语句、Update语句;
      • 支持根据表生成Insert语句;
      • 支持根据表内容生成SET代码;
      • 支持表字段排序、双击表内容自动生成“字段:内容”。
    • 新增模块参数功能:
      • 模块参数为开发平台提供给开发者自由配置复杂参数的功能。
      • 模块参数具有产品继承性,产品可以通过导出场景发布到项目;项目若对本参数进行任何形式的修改,则下次产品升级到项目时就不再对本参数进行升级。
      • 模块参数可随打包/增量发布从开发环境导出到生产环境。
      • 新增相关API函数:
        • $vs.properties.getModuleConfig($configId):Map
        • $vs.properties.getModuleConfigValue($configId,$path):Object
  • 功能优化

    • 开发平台插件管理模块中插件上传时加入最后修改人信息。
    • 表格列中加入选择区域后进行类似EXCEL合计信息。
    • 修正应用参数管理模块部分查询条件无效。
    • 修改缓存监控管理为树形结构展示及过滤。
    • 修改根据导出字段进行EXCEL导出时,字段隐藏也可以导出。
    • 产品服务组件代码继承到项目后,由原先的@inherit()变为return @inherit()
    • 加入单独代码版本的控制,防止高版本导入低版本。
    • 修正ORACLE环境下设计自定义报表时选择计算字段下报错,分组字段显示出分组相关信息。
    • 过滤时如果页面上没有合计信息,则自动加入页面合计。
    • 修改开发平台 系统页面加入菜单无法显示问题,加入不允许在系统页面下加入菜单的控制。
    • 开发平台 插件管理模块插件删除时删除相关信息(插件资源、插件权限等)。
    • 开发平台 单据类型管理模块加入导入、导出到项目功能。
    • 开发平台 数据字典列表模块加入导入、导出到项目功能。
    • 开发平台 定时任务管理模块加入是否允许用户修改功能和查询条件,运营平台中分布式调度设置模块只显示允许修改的定时任务。
    • 修复开发环境下,产品代码断点无法进入的问题
    • 业务日志中,增加调用链编码字段,方便结合文件日志和业务日志关联查看。
    • 开发平台 定时任务管理加入查询条件。
    • 开发平台代码保存时加入#end标签匹配检测,未能完全匹配时给出错误提示。
    • 修正开发平台编写代码时如果块代码末尾有注释,运行时报错问题。
    • 删除自定义报表时删除相关联的菜单。
    • 消息提示框加入移动端位置适配。
    • 修复tabpage控件套tabpage控件的情况下,编译js文件错乱问题。
      • 开发平台禁用模块时自动禁用子模块及菜单,启用时自动启用子模块及菜单。
      • 修复定时任务设置“用户可修改”之后未能发布至测试、生产环境问题。
    • 将单据保存时字段太长异常转换为具体的错误提示信息
    • 列表中设置分组小计可以添加保存方案中
    • 日期禁用时增加日期、减少日期图标禁用
    • 针对非空下拉字段不检测显示字段,检查数据库保存字段
    • 开发平台控件修改名字后自动修改代码中的名字
    • inputForm数字格式化事件从原先的失去焦点提前到onchange前
    • inputForm增加初始化页面时自动加载数据的选择,默认启用
    • detailTable增加初始化页面时自动加载数据的选择,默认启用
    • 修复谷神脚本字符串转义字符无法表达问题,现在使用#set($str='aa\nbbb')可以输出换行符
    • 支持K8S Docker 模式下部署(在开发者中心审核授权文件时,必须选择当前项目使用K8S部署模式)。
  • 代码结构版本号

    • 当前代码结构版本号:1.0.0
      注:相同的代码结构版本号的版本开发的页面代码可以相互导出/升级。
文档更新时间: 2025-06-16 09:35   作者:weir