场景1:高级列表自定义弹窗集成设计表单

  1. 高级列表集成按钮

  2. 按钮示例代码

// 常见的工具类
const { loadCmp, useCompModal ,message} = configs.utils;

// 获取高级列表对象实体,用于控制列表刷新
const tableRef = configs.context.getCompRef({ code: 'b213a0'})

const LCPDetailTemplate = loadCmp({ sourceName: 'cir-lcp-sdk', exposesKey: 'LCPDetailTemplate' });

// 获取当前行的数据
const { invQty,itemCd,mainId,buyerChnName,dataType,id,zmFzr,wyFzr,swFzr,buyerDomainCode } = configs.data.extraData.record;

const itemId = id===mainId?'':mainId;

if(invQty<=0){
// tips业务提示
  message.warning('当前库存数量小于0,不需要进行处置拆分!');
}else{
  let ContentRef ;
  // 使用弹窗
  useCompModal(LCPDetailTemplate, {
    title: '数据处置',
    width: '70%',
    bodyStyle: { minHeight: 500, height: 500, padding: 0 },// 指定窗口大小
    onCancel:function(){
     // 控制列表数据刷新
      tableRef.refresh();
    },
    onOk: async function(){
        // 此段代码用于控制点击弹窗的ok按钮控制内部集成单据的保存按钮
        // ContentRef为当前渲染模版的运行实例对象
      const { RenderRef, FormUtils, GlobalContext } = ContentRef || {};
      const renderContext = RenderRef?.current?.getContext?.();
      const eventCenter = RenderRef?.current?.getEventCenter?.();
      if (!eventCenter) throw new Error('当前关联表单页面渲染引擎事件中心未正常加载!');
      GlobalContext?.pageTools?.setDetailPageLoading?.(true);
      const { setCommonName: _setCommonName } = FormUtils || {};
      // 获取弹窗表单的按钮配置
      const btnConfig = renderContext?.getBtnConfig({attrCode:'SPLIT',formCode:'',btnCode:'BUTTON_EF745678627E7'});

      GlobalContext?.pageTools?.setDetailPageLoading?.(true);
      const { setCommonName: _setCommonName } = FormUtils || {};
      // 通过渲染引擎的事件中心调用表单详情保存事件
      const savedResp = await eventCenter.runEvent({
        code: 'csbCusViewTableModal_handleRelyByCreateaa', // 此处code须为全局唯一,顾根据开发者的场景重写值内容
        config: btnConfig?.config,
      });
      GlobalContext?.pageTools?.setDetailPageLoading?.(false);
      if (savedResp?.success) tableRef.refresh();
      return savedResp?.success;
      // 控制列表数据刷新
      tableRef.refresh();
    },
    didMount: (ref) => {
    // 用于传递当前表单数据体
      ContentRef = ref;
    }
  }, {
      // 具体表单对象配置信息
    appId:'510e4864c85146fb81282ae6fe883865',
    tenantId:'c518f53d-b405-4111-afe1-5c082b284971',
    classId:'9187e9b7701f4d20b83cc6e4470067df', // 加载当前表单配置的对象id
    pageId:itemId, // 需要从后端加载表单数据的主键id
    metaConfig:{
    // 需要默认初始化的表单数据
      formDefaultData:{
        'BASE_6412AEFD46FC':invQty,
        'ITEM_NUMBER':itemCd,
        'BASE_29C809A1DD758':mainId,
        'BASE_ACB7BD9D4D5DF':buyerDomainCode,
        'BASE_C0DA7DE65B294':dataType,
        'ID':mainId,
        'SW_FZR':swFzr,
        'WK_FZR':wyFzr,
        'ZM_FZR':zmFzr
      }
    }
  });
}

场景2:列表数据操作按钮校验

  1. 高级列表集成按钮

  2. 示例代码

const { loadCmp, useCompModal ,message} = configs.utils;
const { invQty,itemCd,mainId,buyerChnName,dataType,id } = configs.data.extraData.record;
if(id === mainId){   
    response = { success: false};
    message.warn('当前数据并未做拆单处置,无法保存!');
}

场景3:表单提交数据逻辑校验

  1. 表单集成保存按钮

  2. 示例代码

const { loadCmp, useCompModal ,message} = configs.utils;
const { REMAIN} = configs.data?.allData;
console.log(configs.data?.allData);
if(REMAIN<0){   
    response = { success: false};
    message.warn('库存处置总数量大于实际库存数量,无法处置!');
}
作者:王浩彬  创建时间:2023-01-05 16:57
最后编辑:袁子涵  更新时间:2024-12-11 10:09