Browse Source

矩阵填充设置效果实现

lwx_v27
liwenxuan 2 weeks ago
parent
commit
a540dd73c4
  1. 104
      src/components/DesignForm/public/form/form.vue

104
src/components/DesignForm/public/form/form.vue

@ -899,6 +899,9 @@ function showOrHide(data: any) {
//showFieldskey,optionValuevalue,radioselectArr2----
const radioSelectArr2: any[] = [];
const radioSelectZdtcszConfigArr = [];
//20240815 liwenxuan start
//console.log(props.formData.list) newModelKeyArr
for (let i = 0; i < props.formData.list.length; i++) {
@ -915,8 +918,16 @@ function showOrHide(data: any) {
) {
if (!props.formData.list[i].control.multiple) {
radioSelectShowConfigArr.push(props.formData.list[i].control.glxxsz);
if(props.formData.list[i].control.zdtcsz){
props.formData.list[i].control.zdtcsz.name = props.formData.list[i].name
radioSelectZdtcszConfigArr.push(props.formData.list[i].control.zdtcsz)
}
} else {
checkboxShowConfigArr.push(props.formData.list[i].control.glxxsz);
if(props.formData.list[i].control.zdtcsz){
props.formData.list[i].control.zdtcsz.name = props.formData.list[i].name
radioSelectZdtcszConfigArr.push(props.formData.list[i].control.zdtcsz)
}
}
} else if (props.formData.list[i].type == "checkbox") {
checkboxShowConfigArr.push(props.formData.list[i].control.glxxszForCheckBox);
@ -939,6 +950,10 @@ function showOrHide(data: any) {
} else {
checkboxShowConfigArr.push(a[w].control.glxxsz);
}
if(a[w].control.zdtcsz){
a[w].control.zdtcsz.name = a[w].name
radioSelectZdtcszConfigArr.push(a[w].control.zdtcsz)
}
//radioSelectShowConfigArr.push(a[w].control.glxxsz);
} else if (a[w].type == "checkbox") {
checkboxShowConfigArr.push(a[w].control.glxxszForCheckBox);
@ -960,6 +975,11 @@ function showOrHide(data: any) {
} else {
checkboxShowConfigArr.push(a.control.glxxsz);
}
if(a.control.zdtcsz){
a.control.zdtcsz.name = a.name
radioSelectZdtcszConfigArr.push(a.control.zdtcsz)
}
//radioSelectShowConfigArr.push(a.control.glxxsz);
} else if (a.type == "checkbox") {
checkboxShowConfigArr.push(a.control.glxxszForCheckBox);
@ -984,6 +1004,10 @@ function showOrHide(data: any) {
} else {
checkboxShowConfigArr.push(a.control.glxxsz);
}
if(a.control.zdtcsz){
a.control.zdtcsz.name = a.name
radioSelectZdtcszConfigArr.push(a.control.zdtcsz)
}
//radioSelectShowConfigArr.push(a.control.glxxsz);
} else if (a.type == "checkbox") {
checkboxShowConfigArr.push(a.control.glxxszForCheckBox);
@ -999,6 +1023,10 @@ function showOrHide(data: any) {
} else {
checkboxShowConfigArr.push(q.control.glxxsz);
}
if(q.control.zdtcsz){
q.control.zdtcsz.name = q.name
radioSelectZdtcszConfigArr.push(q.control.zdtcsz)
}
//radioSelectShowConfigArr.push(q.control.glxxsz);
} else if (q.type == "checkbox") {
checkboxShowConfigArr.push(q.control.glxxszForCheckBox);
@ -1019,6 +1047,7 @@ function showOrHide(data: any) {
newModelKeyArr = Array.from(new Set(newModelKeyArr));
//20240815 liwenxuan end
//console.log(radioSelectShowConfigArr)
//console.log(radioSelectZdtcszConfigArr)
//
const radioSelectShowConfigArr2 = JSON.parse(JSON.stringify(radioSelectShowConfigArr));
const checkboxShowConfigArr2 = JSON.parse(JSON.stringify(checkboxShowConfigArr));
@ -1237,6 +1266,81 @@ function showOrHide(data: any) {
//props.formData.config?.hideField?.push("nin2yuan4yi4wei4wo3menda3fen1ma101939")
//console.log("--constControlChange-->",key, value, data, tProp,type,attribute)//liwenxuan
nextTick(()=>{
//console.log(model.value)//
radioSelectZdtcszConfigArr.forEach(element => {
let tbx=getLastColonAfterString(element.tbx)
let tby=getLastColonAfterString(element.tby)
/* console.log(tbx)
console.log(tby) */
let rowValue = model.value[tbx]
let columnValue = model.value[tby]
let cellValue = getTableCellValueV2(element.tableData, rowValue, columnValue)
//console.log(cellValue);
model.value[element.name] = cellValue*1
//console.log(getTableCellValueV2(element.tableData, 3, 2));
});
})
}
/**
* 获取字符串最后一个英文冒号:后的字符
* @param {string} str - 待处理的原始字符串
* @returns {string} 最后一个冒号后的子串无冒号/冒号在末尾时返回空字符串
*/
function getLastColonAfterString(str) {
// 1.
if (typeof str !== 'string') {
console.warn('输入必须为字符串类型');
return '';
}
// 2.
const lastColonIndex = str.lastIndexOf(':');
// 3.
if (lastColonIndex === -1 || lastColonIndex === str.length - 1) {
return '';
}
// 4.
return str.slice(lastColonIndex + 1);
}
//
function getTableCellValueV2(tableData, rowValue, columnValue) {
try {
//
if (!tableData || typeof tableData !== 'object' || Array.isArray(tableData)) {
return undefined;
}
// nullundefined
if (rowValue == null || columnValue == null) {
return undefined;
}
//
const rowStr = String(rowValue);
const columnStr = String(columnValue);
// 使访
return tableData?.[columnStr]?.[rowStr];
} catch (error) {
// undefined
console.error('获取表格单元格值时发生错误:', error);
return undefined;
}
}
function addStringIfNotExists(arr: string[], str: string) {

Loading…
Cancel
Save