作者:黄倩婧  历史版本:1  最后编辑:黄倩婧  更新时间:2025-06-05 10:45

适用版本:v3.6.0+;

业务场景描述:

1、每个产品都有属于自己的产品编号;
2、对产品信息进行修改时,需要记录所有的变更记录。

数据模板管理配置步骤:

1、登录系统,选择【表单管理】-【数据模板管理】,点击“添加/编辑”按钮,进入模板设计页面,如下图:

2、添加变更按钮

3、设置按钮名称、按钮编码,开启级联设置,点击【级联设置】

4、选择在线表单,设置参数,把业务数据的id传递给参数changeid

5、保存数据模板

表单管理配置步骤:

1、登录系统,选择【表单管理】-【表单管理】,点击“添加/编辑”按钮,进入表单设计页面,点击“表单脚本”,如下图:

2、添加“保存”、“关闭”按钮

3、设置表单脚本

Object.assign(JForm,{
  //加载事件,实现需求:数据模板列表添加的自定义-级联-在线表单-新增配置,点击时把对应id的表单数据回填到表单里
  onLoad:function(form){
  console.info(form,this)
    form.$watch('params',(data)=>{
        //这里把级联的changeid传递进来,通过这个changeid回填表单数据
        let _id = data?.changeid
        console.info(data, _id)
      //formKey为表单key,注意修改
        if(form.$utils.isNotEmpty(_id)) {
            let params = {
          pk: _id,
          formKey: 'cpxx',
          rightsScope: 'form',
          needFormDefData: false
        }
        let _api = window?.__IBPS_CONFIG__?.API_BUSINESS_BASE_URL || '/business/v3'
        this.$request({
          url:_api+'/form/def/getFormData',
          method: 'post',
          params: params
        }).then(response => {
          //TODO:处理数据返回的逻辑,把id清空
          console.info(response)
            let boDataStr = response?.data?.boData||''
            if(form.$utils.isEmpty(boDataStr)){return}
            let boData = form.$utils.parseJSON(boDataStr) || {}
         let _formData = form.getDataByAttr(boData) || {}
         _formData['id'] = ''
                form.formData = _formData
        }).catch(error => {
            console.log(error)
        })
        }
    },{deep:true,immediate:true})
  }
});

查看配置效果

选择【表单管理】-【数据模版管理】,点击“编辑”按钮,进入数据模版,点击“预览”,如下图:

选中数据,点击“变更”

修改数据,点击【保存】

列表显示新增数据

我们可以通过产品编号来查询所有变更记录