切换下拉时表格增加一条数据

需求:

点击支付形式,付款计划增加一条,对应阶段描述的下拉数据也不同,增加前所有行阶段描述列表需清空,

点击加号也能新增一条,此时如果支付形式是空,则不能添加

<div class="form_content_bg">
  <create-form-view
                    ref="createFormRef"
                    :allUiViews="allUiViews"
                    :cusFormObj="cusFormObj"
                    :cusColumnObj="cusColumnObj"
                    :custableConfigDatas="custableConfigDatas"
                    :formData="formData"
                    :dataSource="dataSource"
                    :operateflag="operateflag"
                    @addRow="addRow"
                    @deleteRow="deleteRow"
                    ></create-form-view>
    </div>

切换支付形式:

//支付形式树形结构取的是code  获取值时需要转换 
 let paymentTypeList: Array<any> = [];

 const cusFormObj = reactive<any>({
     //支付形式
      payment_type: {
        chooseModal: async function (column: any, event: any) {
          console.log('==eeeeee===', column);
          let id = '';
          paymentTypeList.forEach((item: any) => {
            if (event == item.code) {
              id = item.id;
            }
          });

          addPlan(id);
        },
      },
 }

点击加号时

//获取支付形式选中值 传给新增方法  
const addRow = (dataSource: any, getAttribute: any) => {
      if (contractData.formData.baseContractDTO.payment_type) {
        console.log(
          '==dataSource============s===',
          contractData.formData.baseContractDTO.payment_type,
        );
        //取id 因为树形结构取的是code  需要遍历一下
        let id = '';
        paymentTypeList.forEach((item: any) => {
          if (contractData.formData.baseContractDTO.payment_type == item.code) {
            id = item.id;
          }
        });
        addPlan(id);
      } else {
        message.info('请选择支付形式');
      }
    };

新增一条

const addPlan = async (event: any) => {
  const res: any = await getRelation({
    primary_code: 'APM_PAY_MODE',
    priElementId: event,
  });
  if (res.status_code == '0000') {
    stageDes = res.data.data;
    
    stageDes.forEach(item => {
      item.value = item.code;
      item.label = item.name;
    });
  }
  //清空付款计划下拉
  (contractData.dataSource.baseContractPayplanDTOS as any).forEach((item: any) => {
    item.stage_msg = '';//原始数据所有条value清空
  });
  
  //表格中特有属性  赋值之后所有下拉都是这个数据
  custableConfigDatas.baseContractPayplanDTOS.cusColumnObj.stage_msg.options = stageDes as any;

  if (stageDes.length != 0) {
    (contractData.dataSource.baseContractPayplanDTOS as any).push({
      pay_plan: contractData.dataSource.baseContractPayplanDTOS.length + 1,
      stage_msg: stageDes[0].value,
    });
  }
    };

回显

//获取录入回显数据
    const detailData = async (data = {}) => {
      const res: any = await getDetailData({ billID: billId });
      if (res.status_code == '0000') {
        if (res.data.baseContractDTO) {
          contractData.formData.baseContractDTO = {
            ...contractData.formData.baseContractDTO,
            ...res.data.baseContractDTO,
          };
          //阶段描述
          if (contractData.formData.baseContractDTO.payment_type) {
            const res: any = await getRelation({
              primary_code: 'APM_PAY_MODE',
              priElementId: contractData.formData.baseContractDTO.payment_type,
            });
            if (res.status_code == '0000') {
              res.data.data.forEach((item: any) => {
                item.value = item.code;
                item.label = item.name;
              });
              //表格中特有属性  赋值之后所有下拉都是这个数据
              custableConfigDatas.baseContractPayplanDTOS.cusColumnObj.stage_msg.options = res.data
                .data as any;
            }
          }
        }

获取试图数据时 获取支付形式时 没转换成树形结构之前保存一份

if (column.data_type == '5' || column.data_type == '18') {
  console.log('=====column.field_code==', column.field_code);
  
  if (column.field_code == 'payment_type') {
    paymentTypeList = res.data;
    contractData.formData.baseContractDTO.payment_type=''
  }
  // 下拉类型的option数据,可根据情况自己获取对应的value,title
  res.data = converJson(
    res.data,
    'id',
    'parent_id',
    'id&id,name&text',
    '',
    '',
    '',
    '',
    '',
  ) as any;
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值