diff --git a/src/components/Common/FlowDesign/Config/Components/PrintNode/Template/Template1.tsx b/src/components/Common/FlowDesign/Config/Components/PrintNode/Template/Template1.tsx index 531edd283c74854a108ae416021977bd7d464447..48cfaa6258410216a3321f6d4845289d1cb22d1d 100644 --- a/src/components/Common/FlowDesign/Config/Components/PrintNode/Template/Template1.tsx +++ b/src/components/Common/FlowDesign/Config/Components/PrintNode/Template/Template1.tsx @@ -54,6 +54,7 @@ const Template1: FC = ({ fields, forms, printType, print, resource }) => const [foreignCheckedList, setForeignCheckedList] = useState([]); const [sumPrimaryValue, setSumPrimaryValue] = useState(''); const [radioValue2, setRadioValue2] = useState(1); + const [radioValue3, setRadioValue3] = useState(1); const [treeIndexNumber, setTreeIndexNumber] = useState(1); const [keysForms, setKeysForms] = useState([]); const [tableListIndex, setTableListIndex] = useState<{ @@ -104,6 +105,22 @@ const Template1: FC = ({ fields, forms, printType, print, resource }) => key: string, ) => { setSubTableNameShow(true); + const cur = templateMap[key].attributes.filter( + (item: { hide: any }) => !item.hide, + )[subindex] + if(cur&&cur.valueType == '分类型'){ + if(cur.finalStage){ + setRadioValue3(2) + }else{ + setRadioValue3(1) + } + if(cur.parentCheck){ + setRadioValue2(2) + setTreeIndexNumber(cur.parentCheck) + }else{ + setRadioValue2(1) + } + } setTableListIndex({ index, index2, @@ -195,6 +212,12 @@ const Template1: FC = ({ fields, forms, printType, print, resource }) => setTreeShow(true, tree); } }; + const onRadioChange3 = (e: RadioChangeEvent) => { + setRadioValue3(e.target.value); + if (e.target.value === 2) { + + } + }; const buildTreeData = (nodes: any) => { return nodes.map((node: any) => ({ key: node.id, @@ -964,6 +987,11 @@ const Template1: FC = ({ fields, forms, printType, print, resource }) => } else { checkForm.parentCheck = treeIndexNumber; } + if (radioValue3 == 1) { + delete checkForm.finalStage; + }else{ + checkForm.finalStage = true; + } } setTemplateMap((prevState: any) => ({ ...prevState, @@ -1039,6 +1067,7 @@ const Template1: FC = ({ fields, forms, printType, print, resource }) => {templateMap[formKey].attributes.filter( (item: { hide: any }) => !item.hide, )[tableListIndex.subindex].valueType == '分类型' && ( +
= ({ fields, forms, printType, print, resource }) =>
+
+
+ 显示设置 +
+ + 只显示末级 + + 取消只显示末级 + + +
+
)}
diff --git a/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/Template1.tsx b/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/Template1.tsx index 90d1b9b519e4b8052be3b50b2f423cf832dc7260..9b8549488c716f9a69acd9b92d95efcc8371094c 100644 --- a/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/Template1.tsx +++ b/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/Template1.tsx @@ -3,12 +3,12 @@ import './index.less'; import css from './designer.module.less'; import { IWorkTask, TaskStatus, TaskStatusZhMap } from '@/ts/core'; import orgCtrl from '@/ts/controller'; -import { schema } from '@/ts/base'; +import { model, schema } from '@/ts/base'; import QrCode from 'qrcode.react'; import { formatZhDate } from '@/utils/tools'; import { isSnowflakeId } from '@/ts/base/common'; import { Form, IForm } from '@/ts/core/thing/standard/form'; -import { formatNumber, mergeData, buildTree, findParentNodeByIdAndLevel } from './utils'; +import { formatNumber, mergeData, buildTree, findParentNodeByIdAndLevel, buildPath } from './utils'; import { XWorkTask } from '@/ts/base/schema'; interface IProps { @@ -557,7 +557,15 @@ const Template1: FC = ({ flText = item.name } }); - return {flText}; + if(attrsObj.finalStage){ + return {buildPath(lookups.reduce((p, n) => { + p[n.id] = n; + p[n.value] = n; + return p; + }, {} as { [key: string]: model.FiledLookup }), value)}; + }else{ + return {flText}; + } } else { const treeData = buildTree(lookups, undefined, 1); const parentNode = findParentNodeByIdAndLevel( @@ -565,7 +573,15 @@ const Template1: FC = ({ value, attrsObj.parentCheck, ); - return {parentNode.text}; + if(attrsObj.finalStage){ + return {buildPath(lookups.reduce((p, n) => { + p[n.id] = n; + p[n.value] = n; + return p; + }, {} as { [key: string]: model.FiledLookup }), parentNode.value??parentNode.id)}; + }else{ + return {parentNode.text}; + } } } else if (valueType == '用户型') { return {userDetail[value]}; diff --git a/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/utils.ts b/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/utils.ts index 8574ed768d2380b4feb658e59ad88d325053d856..3828db56d4a09eb0836fbf1872f6b641e78f40f6 100644 --- a/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/utils.ts +++ b/src/components/Common/FlowDesign/Config/Components/PrintNode/printTemplate/utils.ts @@ -1,5 +1,5 @@ import orgCtrl from '@/ts/controller'; -import { kernel, schema } from '@/ts/base'; +import { kernel, model, schema } from '@/ts/base'; import { IWorkTask } from '@/ts/core'; import { XWorkTask } from '@/ts/base/schema'; @@ -233,3 +233,20 @@ export async function fetchTasks(work: IWorkTask): Promise { return extractTasks(instanceTasks); } } +/** 构建分类型路径 */ +export const buildPath = (result: { [key: string]: model.FiledLookup }, value?: string) => { + if (value) { + let first = result[value]; + let str = first?.text; + while (first?.parentId) { + const parent = result[first.parentId]; + if (parent) { + str = parent.text + '/' + str; + first = parent; + } else { + break; + } + } + return str; + } +}; \ No newline at end of file