Browse Source

单价措施完成,暂时不需要支持换

Xiaopeng Zhang 6 tháng trước cách đây
mục cha
commit
413cbf54e7
2 tập tin đã thay đổi với 33 bổ sung11 xóa
  1. 1 0
      front/src/App2.js
  2. 32 11
      front/src/Djcs2.js

+ 1 - 0
front/src/App2.js

@@ -995,6 +995,7 @@ const MUI_X_PRODUCTS = [
                          dingeclick={dingeclick}
                          beizhuFK={beizhuFK}
 
+
                      />
                    </TabPanel>
                       

+ 32 - 11
front/src/Djcs2.js

@@ -37,8 +37,21 @@ function number_equal(a, b) {
      return false;
 }
 export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, clickCallback, loadingCallback, dingeclick}) {
+     const lastClickRef = React.useRef(null);
 
-
+     const afterOnCellMouseDown = (event, coord, TD) => {
+          
+          if (lastClickRef.current == null) {
+               lastClickRef.current = Date.now();
+          } else {
+               let origin = lastClickRef.current;
+               lastClickRef.current = Date.now();
+               let delta = lastClickRef.current - origin;
+               if (delta < 300 && coord.col == 1 && coord.row > 0 && !isQdrcj.current){//300 ms -> 换
+                   //tihuanCallback(coord.row, coord.col);
+               }
+          }
+        };
      var editCheck = function(cell){
           //cell - the cell component for the editable cell
       
@@ -57,6 +70,8 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
           let bt = "Djcs" ;
           
           if (row._row.data['序号'] != null && row._row.data['序号'].length >0) {
+               selectedRowKeysTableParent.current = row._row['data']['key'];
+
                setFuzhu([]);
                Service.generateQingdanrcj(name, bh,bt,row._row.data['清单编码']).then(x=>{
                     setRcjhl(x);
@@ -73,6 +88,8 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                    row_parent = row_parent.modules.dataTree.parent;
                }
                debmRef.current = row._row['data']['清单编码'];
+               selectedRowKeysTableParent.current = row_parent['data']['key'];
+
 
                              clickCallback(row_parent['data']['清单编码'], row._row['data']['清单编码']);
                              Service.generateDingercj(name, bh,bt,row_parent['data']['清单编码'], row._row['data']['清单编码']).then(x=>{
@@ -172,17 +189,14 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
     const beizhuFKRef = React.useRef(null);
 
     const [fuzhuEnable, setFuzhuEnable] = React.useState(false);
-    const [rowSelectionModel, setRowSelectionModel] = React.useState({
-     type: 'include',
-     ids: new Set(),
-   });
+
    const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
    const onSelectChange = (newSelectedRowKeys) => {
      console.log('selectedRowKeys changed: ', newSelectedRowKeys);
      setSelectedRowKeys(newSelectedRowKeys);
      const [newData, newHl] = handleBeizhu_djcs(beizhuFKRef.current, selectedRowKeysTable.current[0], newSelectedRowKeys, fuzhu);
                                   if (newData) {
-                                     myTable.current.updateData(newData);
+                                     myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
                                      setRcjhl(newHl);
 
                                   }
@@ -205,6 +219,7 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
     const isQdrcj = React.useRef(false);
     const debmRef = React.useRef(null);
     const selectedRowKeysTable = React.useRef([]);
+    const selectedRowKeysTableParent = React.useRef(null);
     const afterChange = (changes, source) => {
      if (changes == null || changes.every(x=>x[2] == x[3])) {
 
@@ -216,7 +231,7 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
            setRcjhl(data);
      
           let newData = updateDercj_djcs(selectedRowKeysTable.current[0], data);
-          myTable.current.updateData(newData).then(function() {
+          myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function() {
                let getRow = myTable.current.getSelectedRows(); //get array of currently selected row components.
                //getRow[0].select();
                handleSelect(getRow[0]);
@@ -280,7 +295,7 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
           myTable.current.deselectRow();
           let [success, data] = updateShuliang_djcs(cell._cell.row.data['数量'], selectedRowKeysTable.current[0]);
           if (success) {
-                           myTable.current.updateData(data).then(function() {
+                           myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function() {
                               let getRow = myTable.current.getRows(); //get array of currently selected row components.
                               let component = null;
                               for(let i = 0; i < getRow.length; i++) {
@@ -348,7 +363,7 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                if (selectedRowKeysTable.current.length > 0 ) {
                     const [success, data, key] = changguidinge_djcs(JSON.parse(dingeclick), selectedRowKeysTable.current[0]);
                     if (success) {
-                         myTable.current.updateData(data).then(function(){
+                         myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
                               let getRow = myTable.current.getRows(); //get array of currently selected row components.
                               let component = null;
                               for(let i = 0; i < getRow.length; i++) {
@@ -481,8 +496,9 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                       if (selectedRowKeysTable.current.length > 0) {
                          const [success, data] = danxiangdinge_djcs(selectedRowKeysTable.current[0]);
                          if(success) {
-                            myTable.current.updateData(data).then(function(){
+                            myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
                               selectedRowKeysTable.current = [];
+                              selectedRowKeysTableParent.current = null;
                                    setRcjhl([]);
                                    setFuzhu([]);
                                    isQdrcj.current = true;
@@ -498,9 +514,10 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                       <Button variant="outlined" size="small" onClick={() => {
                       if (selectedRowKeysTable.current.length > 0) {
                           let newData = shanchu_djcs(selectedRowKeysTable.current[0]);
-                          myTable.current.updateData(newData).then(function(){
+                          myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
                               if (newData.filter(x=>x['key'] == selectedRowKeysTable.current[0]).length == 0) {
                                    selectedRowKeysTable.current = [];
+                                   selectedRowKeysTableParent.current = [];
                                    setRcjhl([]);
                                    setFuzhu([]);
                                    isQdrcj.current = true;
@@ -521,6 +538,7 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                       myTable.current.updateData(newData).then(function(){
                          
                             selectedRowKeysTable.current = [];
+                            selectedRowKeysTableParent.current = null;
                             setRcjhl([]);
                             setFuzhu([]);
                             isQdrcj.current = true;
@@ -536,6 +554,8 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                       let newData = redo_djcs();
                       myTable.current.updateData(newData).then(function(){
                          selectedRowKeysTable.current = [];
+                         selectedRowKeysTableParent.current = null;
+
                             setRcjhl([]);
                             setFuzhu([]);
                             isQdrcj.current = true;
@@ -593,6 +613,7 @@ export default function Djcs2({name, bh, rgde, jxde, clde, beizhu, beizhuFK, cli
                              rowHeaders={true}
                              colHeaders={true}
                              height="200"
+                             afterOnCellMouseDown={afterOnCellMouseDown}
                              readOnly={true}
                              fixedRowsTop={1}
                              selectionMode="single"