|
@@ -12,7 +12,7 @@ const { confirm } = Modal;
|
|
|
const { Panel } = Collapse;
|
|
|
|
|
|
const FormAndFilesNode = props => {
|
|
|
- const { formData, excelFileList, comment, version, loading } = props;
|
|
|
+ const { formData, excelFileList, comment, depTrees, version, loading } = props;
|
|
|
|
|
|
const [projectList, setProjectList] = useState([]);
|
|
|
|
|
@@ -30,7 +30,7 @@ const FormAndFilesNode = props => {
|
|
|
}, []);
|
|
|
|
|
|
const FormContent = useMemo(() => {
|
|
|
- return renderFrom(formData, projectList);
|
|
|
+ return renderFrom(formData, projectList, depTrees);
|
|
|
}, [formData]);
|
|
|
|
|
|
if (formData) {
|
|
@@ -57,13 +57,32 @@ const FormAndFilesNode = props => {
|
|
|
return null;
|
|
|
};
|
|
|
|
|
|
-const renderFrom = (data, projects) => {
|
|
|
+const renderFrom = (data, projects, depTrees) => {
|
|
|
if (!data) return <Empty description="没有表单信息" />;
|
|
|
try {
|
|
|
const ding_schema = JSON.parse(data)[0];
|
|
|
const formData = JSON.parse(ding_schema)?.formComponentValues;
|
|
|
-
|
|
|
if (formData.length == 0) return <Empty description="没有表单信息" />;
|
|
|
+
|
|
|
+ function getDepName(id, tree) {
|
|
|
+ if (tree.length === 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let result = tree.find(item => item.ID === id);
|
|
|
+ if (result) {
|
|
|
+ return result.Name;
|
|
|
+ } else {
|
|
|
+ for (let index = 0; index < tree.length; index++) {
|
|
|
+ const element = tree[index];
|
|
|
+ result = getDepName(id, element?.children || []);
|
|
|
+ if (result) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+
|
|
|
return (
|
|
|
<>
|
|
|
{formData.map((item, idx) => {
|
|
@@ -82,11 +101,26 @@ const renderFrom = (data, projects) => {
|
|
|
let value = item.value.join(',');
|
|
|
if (item.id.includes('ProjectField')) {
|
|
|
if (value) {
|
|
|
- value = Number(value);
|
|
|
- const project = projects.find(pitem => pitem.id === value);
|
|
|
- if (project) {
|
|
|
- value = `${project.project_name}(${project.project_full_code})`;
|
|
|
+ if (!Number.isNaN(Number(value))) {
|
|
|
+ value = Number(value);
|
|
|
+ const project = projects.find(pitem => pitem.id === value);
|
|
|
+ if (project) {
|
|
|
+ value = `${project.project_name}(${project.project_full_code})`;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.id.includes('DepartmentField')) {
|
|
|
+ if (value) {
|
|
|
+ if (!Number.isNaN(Number(value))) {
|
|
|
+ value = Number(value);
|
|
|
+ value = getDepName(value, depTrees);
|
|
|
+ console.log(value);
|
|
|
}
|
|
|
+ // const dep = depTrees.find(ditem => ditem.ID === value);
|
|
|
+ // if (dep) {
|
|
|
+ // value = `${dep.name}`;
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
return (
|
|
@@ -117,7 +151,8 @@ const renderFrom = (data, projects) => {
|
|
|
return <Empty description="没有表单信息" />;
|
|
|
}
|
|
|
};
|
|
|
-export default connect(({ detail, loading }) => ({
|
|
|
+export default connect(({ detail, user, loading }) => ({
|
|
|
comment: detail.comment,
|
|
|
+ depTrees: user.depTrees,
|
|
|
loading,
|
|
|
}))(FormAndFilesNode);
|