使用序号组件生成默认值

场景描述

  1. 新增数据时根据日期或者需要的格式生成序号

  2. 主键ID根据雪花算法生成唯一递增的整数序号

实现思路

使用序号(sn)组件提供的API:

     @name $UI/comp/wxSn/components/wxSn/wxSn#next
     @label 获取下个序号
     @function
     @param {String} key
     @param {String} format
     @param {String} num
     @priority 30
     @returns {Promise}

key:标识,format:格式,num:序号增量

     @name $UI/comp/wxSn/components/wxSn/wxSn#nextByDate
     @label 根据当前时间获取下个序号
     @function
     @param {String} key
     @priority 30
     @returns {Promise}
    @name $UI/comp/wxSn/components/wxSn/wxSn#snowId
     @label 获取雪花算法序号
     @function
     @priority 30
     @returns {Promise}

实现步骤

在数据集的新增后事件中可以调用序号组件提供的操作生成序号)如下:

通过操作设置

(1).根据当前时间生成标识为DD的序号

生成的序号如下:

(2).生成000X格式标识为CC的序号

生成的序号如下:

(3).主键根据雪花算法生成唯一递增序号

  1. 在数据集模型设置中,主键的数据类型可以是长数字,也可以是精确数字类型,精确数字类型需要设置长度和精度
  2. 在数据集新增后事件中设置

生成的序号如下:

二、通过代码设置

(1).根据当前时间生成标识为DD的序号

    onMainDataAfterNew(event){
        var data = event.source;//获取数据集对象
        var sn = this.comp("wxSn");//获取序号组件对象
        sn.nextByDate("DD").then(function(){
                data.setValue("no",sn.nextByDateSync("DD"));//调用序号组件nextByDate方法生成序号,然后给data的列赋值
        })
    }

(2).生成000X格式标识为CC的序号

    onMainDataAfterNew(event){
        var data = event.source;//获取数据集对象
        var sn = this.comp("wxSn");//获取序号组件对象
        sn.next("CC","%04d",1).then(function(){
                data.setValue("no",sn.nextSync("CC","%04d",1));//调用序号组件next方法生成序号,然后给data的列赋值
        })
    }

(3).根据雪花算法生成主键序号

    onMainDataAfterNew(event){
         var data = event.source;//获取数据集对象
        var sn = this.comp("wxSn0");//获取序号组件对象
        sn.snowId().then(function(){
                data.setValue("fid",sn.snowIdSync());//调用序号组件snowId方法生成主键序号,然后给主键列赋值
        })
    }

results matching ""

    No results matching ""

    results matching ""

      No results matching ""