需求:
点击支付形式,付款计划增加一条,对应阶段描述的下拉数据也不同,增加前所有行阶段描述列表需清空,
点击加号也能新增一条,此时如果支付形式是空,则不能添加
<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;
}