|
@@ -94,46 +94,83 @@ function FlowModal(props) {
|
|
|
updateSteps([]);
|
|
|
};
|
|
|
|
|
|
- const updateSteps = async (data, curNodeId) => {
|
|
|
- const dataList = [];
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
- let curNode = flowDetail.nodes.find(item => item.Id == data[i].template_node_id);
|
|
|
- console.log(curNode);
|
|
|
- const response = await queryDingInstanceDetail({
|
|
|
- process_instance_id: data[i].ding_instance_id, //创建表单成功返回的id
|
|
|
- });
|
|
|
- if (response) {
|
|
|
- const processInstance = response.data?.process_instance;
|
|
|
- let data = {
|
|
|
- processCode: '',
|
|
|
- deptId: '14169890',
|
|
|
- tasks: [],
|
|
|
- // userId: '16569001414345099',
|
|
|
- // deptId: currentUser.DingDepId || getCurrentUser()?.DingDepId,
|
|
|
- userId: currentUser.DingUserId || getCurrentUser()?.DingUserId,
|
|
|
- formComponentValues: [],
|
|
|
- activityId: '',
|
|
|
- cc_userids: [],
|
|
|
- status: 'undefined',
|
|
|
- name: curNode?.label || '未知节点',
|
|
|
- };
|
|
|
- if (processInstance?.tasks && processInstance.tasks?.length > 0) {
|
|
|
- // let item = flowDetail.nodes.find(item => item.Id == version.template_node_id);
|
|
|
- // if (!item) return data;
|
|
|
- const { tasks, form_component_values, cc_userids } = processInstance;
|
|
|
- data.processCode = curNode.process_code;
|
|
|
- data.activityId = tasks[tasks.length - 1]?.activity_id;
|
|
|
- data.tasks = tasks || [];
|
|
|
- data.cc_userids = cc_userids;
|
|
|
- data.formComponentValues = form_component_values?.filter(curNode => curNode.name);
|
|
|
- }
|
|
|
- dataList.push(data);
|
|
|
- }
|
|
|
+ const updateSteps = (data, curNodeId) => {
|
|
|
+ let newData = [];
|
|
|
+ let set = new Set();
|
|
|
+ data.forEach(item => set.add(item.template_node_id));
|
|
|
+ let list = [...set];
|
|
|
+ if (set.has(curNodeId)) {
|
|
|
+ set.delete(curNodeId);
|
|
|
+ list = [curNodeId, ...set];
|
|
|
}
|
|
|
+ let dataList = list.map(template_node_id => {
|
|
|
+ let itemDataList = data.filter(item => item.template_node_id == template_node_id);
|
|
|
+ let curid = 3;
|
|
|
+ let status = 'process';
|
|
|
+ itemDataList.forEach(item => {
|
|
|
+ if (item.audit_status != 3 && item.node_id <= curid) curid = item.node_id - 1;
|
|
|
+ if (item.audit_status == 2) status = 'error';
|
|
|
+ });
|
|
|
+ let curNode = flowDetail.nodes.find(item => item.Id == itemDataList[0].template_node_id);
|
|
|
+ const seqList = itemDataList[0].FlowInfo.FlowNodes.filter(
|
|
|
+ item => item.template_node_id == template_node_id
|
|
|
+ ).sort((a, b) => a.seq - b.seq);
|
|
|
+ let obj = {
|
|
|
+ status,
|
|
|
+ current: curid,
|
|
|
+ list: seqList,
|
|
|
+ name: curNode?.label || itemDataList[0].FlowInfo.name,
|
|
|
+ };
|
|
|
+ itemDataList.forEach((itemData, idx) => {
|
|
|
+ if (idx >= obj.list.length) return;
|
|
|
+ obj.list[idx].auditor = itemData.AuthorInfo.CName;
|
|
|
+ });
|
|
|
+ return obj;
|
|
|
+ });
|
|
|
console.log(dataList);
|
|
|
setStepsData(dataList);
|
|
|
};
|
|
|
|
|
|
+ // const updateSteps = async (data, curNodeId) => {
|
|
|
+ // const dataList = [];
|
|
|
+ // for (let i = 0; i < data.length; i++) {
|
|
|
+ // let curNode = flowDetail.nodes.find(item => item.Id == data[i].template_node_id);
|
|
|
+ // console.log(curNode);
|
|
|
+ // const response = await queryDingInstanceDetail({
|
|
|
+ // process_instance_id: data[i].ding_instance_id, //创建表单成功返回的id
|
|
|
+ // });
|
|
|
+ // if (response) {
|
|
|
+ // const processInstance = response.data?.process_instance;
|
|
|
+ // let data = {
|
|
|
+ // processCode: '',
|
|
|
+ // deptId: '14169890',
|
|
|
+ // tasks: [],
|
|
|
+ // // userId: '16569001414345099',
|
|
|
+ // // deptId: currentUser.DingDepId || getCurrentUser()?.DingDepId,
|
|
|
+ // userId: currentUser.DingUserId || getCurrentUser()?.DingUserId,
|
|
|
+ // formComponentValues: [],
|
|
|
+ // activityId: '',
|
|
|
+ // cc_userids: [],
|
|
|
+ // status: 'undefined',
|
|
|
+ // name: curNode?.label || '未知节点',
|
|
|
+ // };
|
|
|
+ // if (processInstance?.tasks && processInstance.tasks?.length > 0) {
|
|
|
+ // // let item = flowDetail.nodes.find(item => item.Id == version.template_node_id);
|
|
|
+ // // if (!item) return data;
|
|
|
+ // const { tasks, form_component_values, cc_userids } = processInstance;
|
|
|
+ // data.processCode = curNode.process_code;
|
|
|
+ // data.activityId = tasks[tasks.length - 1]?.activity_id;
|
|
|
+ // data.tasks = tasks || [];
|
|
|
+ // data.cc_userids = cc_userids;
|
|
|
+ // data.formComponentValues = form_component_values?.filter(curNode => curNode.name);
|
|
|
+ // }
|
|
|
+ // dataList.push(data);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // console.log(dataList);
|
|
|
+ // setStepsData(dataList);
|
|
|
+ // };
|
|
|
+
|
|
|
const handleChangeClick = item => {
|
|
|
let file = isOut ? 'newList' : 'detail';
|
|
|
let type = item.flow_id ? '/queryAuditRecord' : '/queryAuditExcel';
|
|
@@ -264,8 +301,16 @@ function FlowModal(props) {
|
|
|
</div>
|
|
|
{stepsData.map((item, idx) => (
|
|
|
<div key={`${item.name}_${idx}`} style={{ marginBottom: '20px' }}>
|
|
|
- <div style={{ margin: '0 0 10px 20px', fontSize: '16px' }}>{item.name}</div>
|
|
|
- <AuditFlow {...item} />
|
|
|
+ <div style={{ marginBottom: '4px' }}>{item.name}</div>
|
|
|
+ <Steps size="small" current={item.current} status={item.status}>
|
|
|
+ {item.list.map(node => (
|
|
|
+ <Step
|
|
|
+ key={`${node.id}_${node.node}`}
|
|
|
+ title={node.node}
|
|
|
+ description={`审批人:${node.auditor || '-'}`}
|
|
|
+ />
|
|
|
+ ))}
|
|
|
+ </Steps>
|
|
|
</div>
|
|
|
))}
|
|
|
</Col>
|