自定义删除按钮

说明:自定义删除信息,并判断当前批量选择的数据是否在关联业务表存在,不存在才允许删除,存在则需要提示。

Object.assign(JTemplate,{
  //加载事件
  onLoad:function(template){

  },


 //按钮提交前置事件
  beforeSubmit:function(template, action, position, selection, data, callback){
    if (action == 'consumableRemove') {
      const selectCodes = []
      const selectIds = []
      if (position === 'toolbar') {
        const selections = template.$refs.crud.$selections
        if (template.$utils.isEmpty(selections)) {
          template.$message({
            type: 'warning',
            message: template.$t('common.dialog.selectedRecords')
          })
          return callback(false)
        }
        selections.forEach(item => {
          selectCodes.push(item.registration_no_)
          selectIds.push(item.id_)
        })
      } else {
        selectCodes.push(data.registration_no_)
        selectIds.push(data.id_)
      }
      this.beforeRemove(template, callback, selectCodes.join(','), selectIds.join(','))
    }

   callback(true) 
  },

  beforeRemove(template, callback, selectCodes, selectIds){
    this.$request({
      // 调用后端脚本类请求
      url: '/business/v3/form/def/getScriptValue',
      method: 'post',
      data: {
        'script': `  
        List<String> queryParams = new ArrayList<>();
        queryParams.add("registration_no_");
        Map<String, String> whereParams = new HashMap<String,String>();  
        whereParams.put("registration_no_","${selectCodes}"); 
        jdbcScript.queryDataForList("w_origin_sample",queryParams,whereParams,null);
          `
      }
    }).then(response => {
      if (this.$template.$utils.isEmpty(response.data)) {
      // 判断是否存在
        this.removeData(template,selectIds)
      }else{
        this.$template.$message({
            type: 'warning',
            message: '该数据已在原始实验样本存在,不能删除!'
          })
      }
    }).catch(error => {
      console.log(error)
    })
  },

  removeData(template,selectIds){
    this.$template.$confirm('确认永久删除吗?', '提示', {
      type: 'warning'
    }).then(() => {
      this.$request({
        // 调用后端脚本类请求
        url: '/business/v3/form/def/getScriptValue',
        method: 'post',
        data: {
          'script': `
          import java.util.HashMap;
          import java.util.Map;
          Map<String,Object> valMaps = new HashMap<String,Object>();
          valMaps.put("id_", "${selectIds}");
          jdbcScript.deleteDataBySql("w_register_apply",valMaps,"=");  
            `
        }
      }).then(response => {
        this.$template.$message.success('删除成功!')
        this.$template.search()
      }).catch(error => {
        console.log(error)
      })
    }).catch((err) => { console.log(err) })
  } 

});
作者:黄春艳  创建时间:2025-09-01 16:38
最后编辑:黄春艳  更新时间:2025-09-01 16:55