Explorar el Código

fix 附注页面展示的时候切换的bug,因为事件是异步的,感觉这个办法不是很好,可能要换到附注的table,

Xiaopeng Zhang hace 6 meses
padre
commit
f3ab190f88
Se han modificado 2 ficheros con 22 adiciones y 11 borrados
  1. 21 11
      front/src/Qingdan.js
  2. 1 0
      front/src/Service.js

+ 21 - 11
front/src/Qingdan.js

@@ -57,7 +57,7 @@ registerAllModules();
 
 
 
-export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu, beizhuFK, clickCallback, loadingCallback, dingeclick, tihuanCallback, tihuanClick}) {
+export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu/*后台传回来的附注信息,要整理后才能成为展示用的行*/ , beizhuFK, clickCallback, loadingCallback, dingeclick, tihuanCallback, tihuanClick}) {
 
 
      
@@ -124,7 +124,7 @@ export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu, beizhuF
     const [valueTab, setValueTab] = React.useState("1");
     const [rcjhl, setRcjhl] = React.useState([]);
     const [rcjhl2, setRcjhl2] = React.useState([]);
-    const [fuzhu, setFuzhu] = React.useState([]);
+    const [fuzhu, setFuzhu] = React.useState([]);//展示用的附注行
     const [tuijian, setTuijian] = React.useState([]);
     const [fuzhuEnable, setFuzhuEnable] = React.useState(false);
     const highlight = React.useRef([]);
@@ -142,6 +142,7 @@ export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu, beizhuF
     const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
     const [rowSelectionModel, setRowSelectionModel] = React.useState({
      type: 'include',
+     belong: '',
      ids: new Set(),
    });
     const [expandedRowKeys, setExpandedRowKeys] = React.useState([]);
@@ -193,10 +194,10 @@ export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu, beizhuF
                     result.push({'id': i+1, '序号': i+1, '编号': beizhu["BZBH"][key], '说明': beizhu["SM"][key]});//序号很重要
                 }
                 setFuzhu(result);
-                setRowSelectionModel({type: 'include',
+                setRowSelectionModel({type: 'include', belong: debmRef.current, 
                 ids: new Set(extractFuzhu(debmRef.current))});
             }
-        }, [beizhu]
+        }, [beizhu]//后台传回来的附注信息有更新,要把他展示出来
       );
 
 
@@ -630,8 +631,8 @@ export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu, beizhuF
                          { dataIndex: '数量'    ,     title : '数量'  ,       key : '数量'        , width : 100    ,
                          
                          render: (text, record) => {
-                              console.log("column render");
-                              console.log("text".concat(text));
+                              //console.log("column render");
+                              //console.log("text".concat(text));
                               //console.log(record);
                                       if(record['序号']) {
                                         return ( <plaintext>{text}</plaintext> );
@@ -780,11 +781,20 @@ export default function Qingdan({name, bh, bt, rgde, jxde, clde, beizhu, beizhuF
                          checkboxSelection={fuzhuEnable}
                          rowSelectionModel={rowSelectionModel}
                          onRowSelectionModelChange={(newRowSelectionModel) => {
-                              setRowSelectionModel(newRowSelectionModel);
-                              const [newData, newHl] = handleBeizhu(beizhuFKRef.current, selectedRowKeys[0], newRowSelectionModel.ids, fuzhu);
-                              setDetail(newData);
-                              detailRef.current = newData;
-                              setRcjhl(newHl);
+                              console.log(newRowSelectionModel);
+                              if (newRowSelectionModel.hasOwnProperty('belong')) {
+                                   setRowSelectionModel(newRowSelectionModel);
+                              } else {
+                                  console.log(rowSelectionModel);
+                                  setRowSelectionModel(newRowSelectionModel);
+                                  const [newData, newHl] = handleBeizhu(beizhuFKRef.current, selectedRowKeys[0], newRowSelectionModel.ids, fuzhu);
+                                  if (newData) {
+                                      setDetail(newData);
+                                      detailRef.current = newData;
+                                      setRcjhl(newHl);
+                                  }
+                              }
+                              
                             }}
                            />
 

+ 1 - 0
front/src/Service.js

@@ -1147,6 +1147,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
     updateBeizhu(row, selected, xuhao) {//xuhao is for rename
         let qd = this.cache.filter(x=>x["children"].filter(y=>y['key']==row).length > 0)[0];
+        if (!qd) return [null, null];
         let de = qd["children"].filter(x=>x['key'] == row)[0];
         if (de.hasOwnProperty("rcjdg")) {//底稿