diff --git a/src/views/boardGenerate/index1.vue b/src/views/boardGenerate/index1.vue index 58ab641..b11163e 100644 --- a/src/views/boardGenerate/index1.vue +++ b/src/views/boardGenerate/index1.vue @@ -806,6 +806,11 @@ 配置表格 + + + 配置表格 + + @@ -1264,6 +1269,80 @@ 添加 + + {{ (getInputData(nodeDataForm.id) || {}).tableData }} + + + + + + + + + + + + + + + + + + + + + + @@ -1548,6 +1627,8 @@ const selectIconInput = ref(''); const collapseActiveName = ref('1'); const loading = ref(false); const pageSettingVisible = ref(false); +const tableCellOptionsVisible = ref(false); +const cellOptionsVisible = ref(false); const tableOptionsVisible = ref(false); const tableClassOptionsVisible = ref(false); const swiperOptionsVisible = ref(false); @@ -1566,6 +1647,7 @@ const nodes = ref([{ const edges = ref([]); const customData = ref([]); const customBoard = ref([]); +const cellOption = ref({}); const boardData = ref({}); const pageData = ref({}); const customDataForm = ref({}); @@ -1814,6 +1896,87 @@ const pitchOnNode = (e) => { nodeDataForm.value = e; customDataForm.value = e.data.customData; }; + +const cellClick = (e) => { + cellOption.value = { + ...(nodeAttrForm.value.tableOptions?.[e.cellIndex] || {}), + $index: e.$index, + $cellIndex: e.cellIndex + + }; + console.log(e); + cellOptionsVisible.value = true; + console.log(cellOption.value); +}; + +const cellTypeChange = (value) => { + if (!nodeAttrForm.value.tableCellOptions) { + nodeAttrForm.value.tableCellOptions = []; + } + let option = (nodeAttrForm.value.tableCellOptions || []).find(e => e.index === cellOption.value.$index && e.cellIndex === cellOption.value.$cellIndex) || {}; + let index = (nodeAttrForm.value.tableCellOptions || []).findIndex(e => e.index === cellOption.value.$index && e.cellIndex === cellOption.value.$cellIndex); + option.type = cellOption.value.type; + if (index === -1) { + nodeAttrForm.value.tableCellOptions.push({ + index: cellOption.value.$index, + cellIndex: cellOption.value.$cellIndex, + type: value, + formula: cellOption.value.formula + }); + } else { + nodeAttrForm.value.tableCellOptions[index].type = value; + } + console.log(nodeAttrForm.value); +}; + +const cellFormulaChange = (value) => { + console.log(value); + if (!nodeAttrForm.value.tableCellOptions) { + nodeAttrForm.value.tableCellOptions = []; + } + let option = (nodeAttrForm.value.tableCellOptions || []).find(e => e.index === cellOption.value.$index && e.cellIndex === cellOption.value.$cellIndex) || {}; + let index = (nodeAttrForm.value.tableCellOptions || []).findIndex(e => e.index === cellOption.value.$index && e.cellIndex === cellOption.value.$cellIndex); + option.formula = cellOption.value.formula; + if (index === -1) { + nodeAttrForm.value.tableCellOptions.push({ + index: cellOption.value.$index, + cellIndex: cellOption.value.$cellIndex, + type: cellOption.value.type, + formula: value + }); + } else { + nodeAttrForm.value.tableCellOptions[index].formula = value; + } + console.log(nodeAttrForm.value); + +}; + +const formulaFun = (row, formula) => { + let data = formula.replace(/\$\{\s*([^}]+?)\s*\}/g, (_, key) => { + if (`${row[key]}`?.trim() !== '' && !isNaN(row[key])) { + return row[key] || 0; + } else { + return `"${row[key]}"`; + } + }); + let res = 0; + try { + res = eval(data); + } catch (err) { + res = 0; + } + if (`${res}`.trim() !== '' && !isNaN(res)) { + res = res.toFixed(2); + } + return res; +}; +const setText = (value, row, formula) => { + if (!formula) { + return value; + } else { + return formulaFun(row, formula); + } +};