Forráskód Böngészése

修改psr比对bug

Renxy 1 éve
szülő
commit
9ca38a6b23

+ 12 - 5
src/pages/PSRManage/components/compareCom.js

@@ -4,7 +4,7 @@ import { useEffect, useRef, useState } from 'react';
 import { queryPsrMonthDetail } from '@/services/psr';
 import { toggleCompare } from '../../../utils/exportExcl';
 
-const CompareCom = ({ values = [] }) => {
+const CompareCom = ({ values = [], permissions }) => {
   const excelRef1 = useRef();
   const excelRef2 = useRef();
   const luckysheetRef1 = useRef();
@@ -23,8 +23,8 @@ const CompareCom = ({ values = [] }) => {
   }, [values]);
 
   const initData = async () => {
-    const data1 = await queryData(values[0]);
-    const data2 = await queryData(values[1]);
+    const data1 = await queryData(values[0].id);
+    const data2 = await queryData(values[1].id);
     setDatas([data1, data2]);
   };
 
@@ -32,6 +32,12 @@ const CompareCom = ({ values = [] }) => {
     const res = await queryPsrMonthDetail({ id });
     if (res.data?.json_data) {
       const data = JSON.parse(res.data?.json_data);
+      data?.forEach((item) => {
+        if (item?.celldata && typeof item.celldata == 'string')
+          item.celldata = JSON.parse(item.celldata);
+        if (item?.config && typeof item.config == 'string')
+          item.config = JSON.parse(item.config);
+      });
       return data;
     }
     return [];
@@ -54,6 +60,7 @@ const CompareCom = ({ values = [] }) => {
       lang: 'zh',
       showinfobar: false,
       showstatisticBar: false,
+      permissions,
       data: JSON.parse(JSON.stringify(data)),
       hook: {
         cellMousedown: (cell, position, sheet) => {
@@ -88,7 +95,7 @@ const CompareCom = ({ values = [] }) => {
   const renderSheetDom = (item, index) => {
     return (
       <div key={`temp_${index}`} className={styles.sheetItem}>
-        <h3>{item.version_name || item?.name}</h3>
+        <h3>{values[index].name}</h3>
         <iframe
           style={{
             width: '100%',
@@ -108,7 +115,7 @@ const CompareCom = ({ values = [] }) => {
         message={`比对结果:${updateCount.diff}项差异。${updateCount.add}项新增`}
         type="info"
       />
-      <div className={styles.sheetBox}>{values?.map(renderSheetDom)}</div>
+      <div className={styles.sheetBox}>{datas?.map(renderSheetDom)}</div>
     </>
   );
 };

+ 6 - 4
src/pages/PSRManage/components/compareModal.js

@@ -1,8 +1,7 @@
 import { Checkbox, Modal, message, Space, Divider } from 'antd';
 import { useEffect, useMemo, useRef, useState } from 'react';
-import dayjs from 'dayjs';
 
-const CompareModal = ({ list, open, onOk, onCancel }) => {
+const CompareModal = ({ name, list, open, onOk, onCancel }) => {
   const [values, setValues] = useState([]);
   useEffect(() => {
     if (!open) setValues([]);
@@ -12,7 +11,10 @@ const CompareModal = ({ list, open, onOk, onCancel }) => {
       title="比对"
       open={open}
       onCancel={onCancel}
-      onOk={() => onOk(values)}
+      onOk={() => {
+        const items = values.map((id) => list.find((item) => item.id == id));
+        onOk(items);
+      }}
       destroyOnClose
     >
       <Divider />
@@ -30,7 +32,7 @@ const CompareModal = ({ list, open, onOk, onCancel }) => {
           {list?.map((item, idx) => {
             return (
               <Checkbox value={item.id} key={idx}>
-                {dayjs(item.day).format('YYYY-MM')}
+                {item.name}
               </Checkbox>
             );
           })}

+ 7 - 5
src/pages/PSRManage/detail.js

@@ -313,7 +313,7 @@ const PSRDetail = () => {
             let name = dayjs(item.day).format('YYYY-MM');
             if (item.ver_type == 1) name = '原始版本';
             if (item.ver_type == 2) name = '基础版本';
-            return { ...item, name };
+            return { ...item, name: `${titleRef.current}${name}` };
           });
           setHistoryList(list);
         }
@@ -418,9 +418,11 @@ const PSRDetail = () => {
         break;
       case '3':
         str = '过程/终版PSR_';
+        runList({ data_type: 1 });
         break;
       case '4':
         str = '现金流_';
+        runList({ data_type: 2 });
         break;
     }
     titleRef.current = str;
@@ -799,7 +801,6 @@ const PSRDetail = () => {
               <Button
                 type="primary"
                 onClick={() => {
-                  runList();
                   setHistoryOpen(true);
                 }}
                 disabled={noData}
@@ -973,7 +974,7 @@ const PSRDetail = () => {
       setKey(list[0].key);
     }
     return list;
-  }, [user, excelData?.name]);
+  }, [user, excelData?.name, compareValues?.length]);
 
   const handlerDetailClick = (id) => {
     if (key == '2') {
@@ -984,6 +985,7 @@ const PSRDetail = () => {
     runDetail({ id });
   };
 
+  console.log('__----------------', historyList);
   return (
     <PageContent>
       <div className={styles.titleDev}>
@@ -1002,7 +1004,7 @@ const PSRDetail = () => {
       />
       {noData && <div className={styles.noData}>暂无数据</div>}
       {compareValues?.length == 2 ? (
-        <CompareCom values={compareValues} />
+        <CompareCom values={compareValues} permissions={user?.Permission} />
       ) : (
         <iframe
           style={{
@@ -1028,7 +1030,7 @@ const PSRDetail = () => {
             return {
               children: (
                 <a onClick={() => handlerDetailClick(item.id)}>
-                  {titleRef.current}
+                  {/* {titleRef.current} */}
                   {item.name}
                 </a>
               ),

+ 2 - 2
src/utils/exportExcl.js

@@ -376,13 +376,13 @@ export const toggleCompare = (currentData, compareData, callback) => {
   const ADD_COLOR = '#00ff00';
   let diff = [];
   let add = [];
-  currentData.forEach((sheet, index) => {
+  currentData?.forEach((sheet, index) => {
     let celldata1 = sheet.celldata;
     let celldata2 = compareData[index]?.celldata || [];
 
     celldata1.forEach((item) => {
       // 不判断空字符串
-      if (isEmpty(item)) return;
+      if (isEmpty(item) || item.hide) return;
       var d2Item = celldata2.find((item2) => item2.v.cid == item.v.cid);
       if (d2Item && !isEmpty(d2Item)) {
         // v.ct.s相同,不做处理