|
@@ -57,7 +57,7 @@ const OaDetail = () => {
|
|
|
|
|
|
//填写表单实时计算审批流程
|
|
|
const advanceSubmit = async (changedFields, allValues) => {
|
|
|
- console.log(changedFields, allValues);
|
|
|
+ // console.log(changedFields, allValues);
|
|
|
let formValues = (data?.formData || [])
|
|
|
.map((item) => {
|
|
|
const itemProps = item.props;
|
|
@@ -68,6 +68,7 @@ const OaDetail = () => {
|
|
|
return {
|
|
|
name: itemProps.label,
|
|
|
id: itemProps.id,
|
|
|
+ type: item.componentName,
|
|
|
value: [...val],
|
|
|
};
|
|
|
} else if (allValues[itemProps.id]) {
|
|
@@ -87,122 +88,123 @@ const OaDetail = () => {
|
|
|
formComponentValues: formValues,
|
|
|
audit_list: [],
|
|
|
};
|
|
|
+
|
|
|
formValueRef.current.form = formValues;
|
|
|
run(params);
|
|
|
};
|
|
|
|
|
|
- const handleTableValChange = (value, id, label) => {
|
|
|
- let ids = id.split(';');
|
|
|
- let [rowIndex, colIndex] = ids[0].split(',').map((item) => Number(item));
|
|
|
- let [columnID, tableID] = ids[1].split('>');
|
|
|
- let [columnLabel, tableLabel] = label.split('>');
|
|
|
+ // const handleTableValChange = (value, id, label) => {
|
|
|
+ // let ids = id.split(';');
|
|
|
+ // let [rowIndex, colIndex] = ids[0].split(',').map((item) => Number(item));
|
|
|
+ // let [columnID, tableID] = ids[1].split('>');
|
|
|
+ // let [columnLabel, tableLabel] = label.split('>');
|
|
|
|
|
|
- const cell = {
|
|
|
- name: columnLabel,
|
|
|
- id: columnID,
|
|
|
- type: columnID.split('_')[0],
|
|
|
- value: [value],
|
|
|
- };
|
|
|
- // 组装可能用到的数据
|
|
|
- const cols = [];
|
|
|
- cols[colIndex] = cell;
|
|
|
- const rows = [];
|
|
|
- rows[rowIndex] = cols;
|
|
|
- // 如果已经有数据
|
|
|
- let oldTableData = [];
|
|
|
- // 这里不知道为什么不能直接读取state(tableData)
|
|
|
- setTableData((prevState) => {
|
|
|
- oldTableData = prevState;
|
|
|
- return prevState;
|
|
|
- });
|
|
|
- if (oldTableData && oldTableData.length > 0) {
|
|
|
- let table = oldTableData.find((item) => item.id === tableID);
|
|
|
- // 如果某个表格数据存在
|
|
|
- if (table) {
|
|
|
- const oldRows = table.value;
|
|
|
- // 如果某个表格的行数据存在
|
|
|
- if (oldRows) {
|
|
|
- let odlCols = oldRows[rowIndex];
|
|
|
- // 如果某个表格的某个行数据存在
|
|
|
- if (odlCols) {
|
|
|
- // 记录可编辑控件
|
|
|
- table.value[rowIndex][colIndex] = cell;
|
|
|
- // 不可编辑控件
|
|
|
- table.value[rowIndex] = addUnEditableColumn(
|
|
|
- table.value[rowIndex],
|
|
|
- tableID,
|
|
|
- );
|
|
|
- const newTableData = oldTableData.map((item) => {
|
|
|
- if (item.id === table.id) {
|
|
|
- return table;
|
|
|
- }
|
|
|
- return item;
|
|
|
- });
|
|
|
+ // const cell = {
|
|
|
+ // name: columnLabel,
|
|
|
+ // id: columnID,
|
|
|
+ // type: columnID.split('_')[0],
|
|
|
+ // value: [value],
|
|
|
+ // };
|
|
|
+ // // 组装可能用到的数据
|
|
|
+ // const cols = [];
|
|
|
+ // cols[colIndex] = cell;
|
|
|
+ // const rows = [];
|
|
|
+ // rows[rowIndex] = cols;
|
|
|
+ // // 如果已经有数据
|
|
|
+ // let oldTableData = [];
|
|
|
+ // // 这里不知道为什么不能直接读取state(tableData)
|
|
|
+ // setTableData((prevState) => {
|
|
|
+ // oldTableData = prevState;
|
|
|
+ // return prevState;
|
|
|
+ // });
|
|
|
+ // if (oldTableData && oldTableData.length > 0) {
|
|
|
+ // let table = oldTableData.find((item) => item.id === tableID);
|
|
|
+ // // 如果某个表格数据存在
|
|
|
+ // if (table) {
|
|
|
+ // const oldRows = table.value;
|
|
|
+ // // 如果某个表格的行数据存在
|
|
|
+ // if (oldRows) {
|
|
|
+ // let odlCols = oldRows[rowIndex];
|
|
|
+ // // 如果某个表格的某个行数据存在
|
|
|
+ // if (odlCols) {
|
|
|
+ // // 记录可编辑控件
|
|
|
+ // table.value[rowIndex][colIndex] = cell;
|
|
|
+ // // 不可编辑控件
|
|
|
+ // table.value[rowIndex] = addUnEditableColumn(
|
|
|
+ // table.value[rowIndex],
|
|
|
+ // tableID,
|
|
|
+ // );
|
|
|
+ // const newTableData = oldTableData.map((item) => {
|
|
|
+ // if (item.id === table.id) {
|
|
|
+ // return table;
|
|
|
+ // }
|
|
|
+ // return item;
|
|
|
+ // });
|
|
|
|
|
|
- setTableData(newTableData);
|
|
|
- } else {
|
|
|
- // 如果某个表格的某个行数据不存在
|
|
|
- // 写入可编辑控件
|
|
|
- table.value[rowIndex] = cols;
|
|
|
- // 写入不可编辑控件的值
|
|
|
- table.value[rowIndex] = addUnEditableColumn(
|
|
|
- table.value[rowIndex],
|
|
|
- tableID,
|
|
|
- );
|
|
|
- const newTableData = oldTableData.map((item) => {
|
|
|
- if (item.id === table.id) {
|
|
|
- return table;
|
|
|
- }
|
|
|
- return item;
|
|
|
- });
|
|
|
- setTableData([]);
|
|
|
- setTableData(newTableData);
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 如果某个表格的行数据不存在
|
|
|
- // 写入可编辑控件
|
|
|
- table.value = rows;
|
|
|
- // 写入不可编辑控件
|
|
|
- table.value[rowIndex] = addUnEditableColumn(
|
|
|
- table.value[rowIndex],
|
|
|
- tableID,
|
|
|
- );
|
|
|
- const newTableData = oldTableData.map((item) => {
|
|
|
- if (item.id === table.id) {
|
|
|
- return table;
|
|
|
- }
|
|
|
- return item;
|
|
|
- });
|
|
|
- setTableData(newTableData);
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 如果某个table的数据不存在
|
|
|
- rows[rowIndex] = addUnEditableColumn(rows[rowIndex], tableID);
|
|
|
- const newTableData = [
|
|
|
- {
|
|
|
- name: tableLabel,
|
|
|
- id: tableID,
|
|
|
- type: tableID.split('_')[0],
|
|
|
- value: rows,
|
|
|
- },
|
|
|
- ];
|
|
|
- setTableData([...oldTableData, ...newTableData]);
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 如果没有数据
|
|
|
- // 添加不可编辑控件
|
|
|
- rows[rowIndex] = addUnEditableColumn(rows[rowIndex], tableID);
|
|
|
- const newTableData = [
|
|
|
- {
|
|
|
- name: tableLabel,
|
|
|
- id: tableID,
|
|
|
- type: tableID.split('_')[0],
|
|
|
- value: rows,
|
|
|
- },
|
|
|
- ];
|
|
|
- setTableData(newTableData);
|
|
|
- }
|
|
|
- };
|
|
|
+ // setTableData(newTableData);
|
|
|
+ // } else {
|
|
|
+ // // 如果某个表格的某个行数据不存在
|
|
|
+ // // 写入可编辑控件
|
|
|
+ // table.value[rowIndex] = cols;
|
|
|
+ // // 写入不可编辑控件的值
|
|
|
+ // table.value[rowIndex] = addUnEditableColumn(
|
|
|
+ // table.value[rowIndex],
|
|
|
+ // tableID,
|
|
|
+ // );
|
|
|
+ // const newTableData = oldTableData.map((item) => {
|
|
|
+ // if (item.id === table.id) {
|
|
|
+ // return table;
|
|
|
+ // }
|
|
|
+ // return item;
|
|
|
+ // });
|
|
|
+ // setTableData([]);
|
|
|
+ // setTableData(newTableData);
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // // 如果某个表格的行数据不存在
|
|
|
+ // // 写入可编辑控件
|
|
|
+ // table.value = rows;
|
|
|
+ // // 写入不可编辑控件
|
|
|
+ // table.value[rowIndex] = addUnEditableColumn(
|
|
|
+ // table.value[rowIndex],
|
|
|
+ // tableID,
|
|
|
+ // );
|
|
|
+ // const newTableData = oldTableData.map((item) => {
|
|
|
+ // if (item.id === table.id) {
|
|
|
+ // return table;
|
|
|
+ // }
|
|
|
+ // return item;
|
|
|
+ // });
|
|
|
+ // setTableData(newTableData);
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // // 如果某个table的数据不存在
|
|
|
+ // rows[rowIndex] = addUnEditableColumn(rows[rowIndex], tableID);
|
|
|
+ // const newTableData = [
|
|
|
+ // {
|
|
|
+ // name: tableLabel,
|
|
|
+ // id: tableID,
|
|
|
+ // type: tableID.split('_')[0],
|
|
|
+ // value: rows,
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+ // setTableData([...oldTableData, ...newTableData]);
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // // 如果没有数据
|
|
|
+ // // 添加不可编辑控件
|
|
|
+ // rows[rowIndex] = addUnEditableColumn(rows[rowIndex], tableID);
|
|
|
+ // const newTableData = [
|
|
|
+ // {
|
|
|
+ // name: tableLabel,
|
|
|
+ // id: tableID,
|
|
|
+ // type: tableID.split('_')[0],
|
|
|
+ // value: rows,
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+ // setTableData(newTableData);
|
|
|
+ // }
|
|
|
+ // };
|
|
|
|
|
|
const addUnEditableColumn = (rows, tableID) => {
|
|
|
const { columns: originColumns } = data.formData.find(
|
|
@@ -310,7 +312,6 @@ const OaDetail = () => {
|
|
|
form={form}
|
|
|
items={data?.formData}
|
|
|
onValuesChange={advanceSubmit}
|
|
|
- onTableValChange={handleTableValChange}
|
|
|
/>
|
|
|
</Col>
|
|
|
<Col span={12}>
|