Renxy před 2 roky
rodič
revize
428eb3f758

+ 2 - 1
src/components/DDComponents/DepartmentField/index.js

@@ -32,7 +32,8 @@ function DepartmentField(props) {
   const onChangeValue = newValue => {
     console.log(newValue);
     let dep = depUserTree.find(dep => dep.id == newValue);
-    onChange({ value: dep?.title, id: dep?.ID });
+    onChange(String(dep?.ID));
+    // onChange({ value: dep?.title, id: dep?.ID });
   };
 
   // useEffect(() => {

+ 4 - 2
src/components/Flow/index.tsx

@@ -44,6 +44,7 @@ import CustomFlowchartFormPanel from './node/FlowFormPanel';
 
 import '@antv/xflow/dist/index.css';
 import './index.less';
+import { TYPE } from './node/auditNode/mapServe';
 
 export interface IProps {
   meta: { flowId: string; type: 'edit' };
@@ -86,7 +87,8 @@ export const Demo: React.FC<IProps> = props => {
                 id: curNode.id,
                 type: curNode.type,
                 //条件节点
-                formItems: curNode.formItems,
+                formItems:
+                  curNode.type == TYPE.JUDGE && !curNode.formItems ? '[]' : curNode.formItems,
                 priority: curNode.priority,
                 //审批节点
                 roleID: curNode.roleID,
@@ -137,7 +139,7 @@ export const Demo: React.FC<IProps> = props => {
               };
             });
 
-            console.log(data);
+            console.log(simpleNodes);
             console.log(JSON.stringify(data));
             cb?.(JSON.stringify(data), JSON.stringify(simpleNodes));
             return data;

+ 2 - 1
src/components/Flow/node/judgeNode/index.tsx

@@ -62,11 +62,12 @@ const JudgeRect = props => {
           case ComponentName.Select:
           case ComponentName.MultiSelect:
             const values = judge.values;
-            text.push(`${label} ${values.join('  ')}`);
+            text.push(`${label} ${values.join('  ')}`);
             break;
         }
       });
     }
+    if (text.length <= 0) text.push('其他条件进入此流程');
     return text;
   }, [formItems, depUserTree]);
 

+ 4 - 6
src/pages/PurchaseAdmin/PurchaseList/Detail/CommitAuditModal.js

@@ -155,7 +155,6 @@ function CommitAuditModal(props) {
         return flowDetail.nodes.find?.(item => item.Id == Id);
       })
       .filter(item => item);
-    console.log('============', nodeList);
     let flowIds = [...new Set(nodeList.map(item => item.flow_id))].join(',');
     let data = await queryProcessFlows({ ids: flowIds });
     if (data && data?.length > 0) {
@@ -170,8 +169,6 @@ function CommitAuditModal(props) {
       });
       addAuditList = [...addAuditList, ...newlist];
     }
-
-    console.log(addAuditList);
     addAuditList.forEach((item, index) => {
       let Components = Form3x.create({
         onValuesChange: (props, changedValues, allValues) => {
@@ -196,6 +193,7 @@ function CommitAuditModal(props) {
               }
             })
             .filter(item => item);
+          console.log('==================================', { ...formComponentValues });
           setFormComponentValues({ ...formComponentValues });
         },
       })(AuditDetailed);
@@ -385,10 +383,10 @@ function CommitAuditModal(props) {
         <Form.Item labelCol={{ span: 7 }} wrapperCol={{ span: 15 }} label="备注信息" name="desc">
           <Input.TextArea />
         </Form.Item>
-        <Form.Item labelCol={{ span: 7 }} wrapperCol={{ span: 15 }} label="授权码" name="ddCode">
+        {/* <Form.Item labelCol={{ span: 7 }} wrapperCol={{ span: 15 }} label="授权码" name="ddCode">
           <DDCode />
-          {/* <Button onClick={upload}>上传文件</Button> */}
-        </Form.Item>
+          <Button onClick={upload}>上传文件</Button>
+        </Form.Item> */}
       </Form>
       <Tabs defaultActiveKey="1">
         {auditList.map((item, idx) => (

+ 82 - 37
src/pages/PurchaseAdmin/PurchaseList/Detail/FlowModal.js

@@ -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>

+ 0 - 1
src/pages/PurchaseAdmin/PurchaseList/Flow/Audit.js

@@ -29,7 +29,6 @@ function Audit(props) {
     let item = localStorage.getItem('currentAudit');
     return JSON.stringify(currentItem) == '{}' ? JSON.parse(item) : currentItem;
   }, [currentItem, localStorage.getItem('currentAudit')]);
-  console.log('=====================', formData, flowDetail);
 
   useEffect(() => {
     dispatch({

+ 0 - 1
src/pages/PurchaseAdmin/PurchaseList/Flow/models/flow.js

@@ -256,7 +256,6 @@ export default {
     *queryProcessFlows({ payload }, { call, put }) {
       const data = yield call(queryProcessFlows, payload);
       if (data && data.length > 0) {
-        console.log(data);
         yield put({
           type: 'save',
           payload: {