|
|
@@ -99,7 +99,29 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
const onSelectChange = (newSelectedRowKeys) => {
|
|
|
const [newData, newHl] = handleBeizhu(beizhuFKRef.current, selectedRowKeysTable.current[0], newSelectedRowKeys, fuzhu);
|
|
|
if (newData) {
|
|
|
- myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
+ let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
+ let component = null;
|
|
|
+ for(let i = 0; i < getRow.length; i++) {
|
|
|
+ let entry = getRow[i]._row.modules.dataTree.children;
|
|
|
+ for(let j = 0; j < entry.length; j++) {
|
|
|
+ let child = entry[j];
|
|
|
+ if(child.data['key'] == selectedRowKeysTable.current[0]) {
|
|
|
+ component = child.component;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ component.select();
|
|
|
+
|
|
|
+ });
|
|
|
let y =[];
|
|
|
for (let i = 1; i < newHl.length; i++) {
|
|
|
y.push({
|
|
|
@@ -118,7 +140,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : newHl[i][12],
|
|
|
'主要材料标志' : newHl[i][13],
|
|
|
'主材标志' : newHl[i][14],
|
|
|
- '设备标志' : newHl[i][15]
|
|
|
+ '设备标志' : newHl[i][15] ,
|
|
|
+ 'key' : newHl[i][16]
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -136,7 +159,31 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
setValueYuban(event.target.value);
|
|
|
const [newData, newHl] = handleYuban(selectedRowKeysTable.current[0], [event.target.value]);
|
|
|
if (newData) {
|
|
|
- myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
+ let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
+ let component = null;
|
|
|
+ for(let i = 0; i < getRow.length; i++) {
|
|
|
+ let entry = getRow[i]._row.modules.dataTree.children;
|
|
|
+ for(let j = 0; j < entry.length; j++) {
|
|
|
+ let child = entry[j];
|
|
|
+ if(child.data['key'] == selectedRowKeysTable.current[0]) {
|
|
|
+ component = child.component;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ component.select();
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
let y =[];
|
|
|
for (let i = 1; i < newHl.length; i++) {
|
|
|
y.push({
|
|
|
@@ -155,7 +202,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : newHl[i][12],
|
|
|
'主要材料标志' : newHl[i][13],
|
|
|
'主材标志' : newHl[i][14],
|
|
|
- '设备标志' : newHl[i][15]
|
|
|
+ '设备标志' : newHl[i][15] ,
|
|
|
+ 'key' : newHl[i][16]
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -357,7 +405,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : x[i][12],
|
|
|
'主要材料标志' : x[i][13],
|
|
|
'主材标志' : x[i][14],
|
|
|
- '设备标志' : x[i][15]
|
|
|
+ '设备标志' : x[i][15] ,
|
|
|
+ 'key' : ''
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -413,7 +462,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : x[0][i][12],
|
|
|
'主要材料标志' : x[0][i][13],
|
|
|
'主材标志' : x[0][i][14],
|
|
|
- '设备标志' : x[0][i][15]
|
|
|
+ '设备标志' : x[0][i][15] ,
|
|
|
+ 'key' : x[0][16]
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -429,7 +479,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
} else {
|
|
|
setValueYuban(x[2][0]);
|
|
|
}
|
|
|
- setRcjrows(x[3]);
|
|
|
+ setRcjrows(x[3]);//buchongrcj
|
|
|
//hotRcjRef.current?.hotInstance?.loadData(x);
|
|
|
isQdrcj.current = false;
|
|
|
let toHighlight = [];
|
|
|
@@ -505,7 +555,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
/**补充人材机 */
|
|
|
const [rcjrows, setRcjrows] = React.useState([]);
|
|
|
- //const [rowModesModel, setRowModesModel] = React.useState({});
|
|
|
const [showToolbar, setShowToolbar] = React.useState(false);
|
|
|
const rcjcolumns = [
|
|
|
{
|
|
|
@@ -626,7 +675,29 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
setRcjrows(rcjrows.filter((row) => row.id !== id));
|
|
|
const [newData, newHl] = handleRcjbc(selectedRowKeysTable.current[0], rcjrows.filter((row) => row.id !== id));
|
|
|
if (newData) {
|
|
|
- myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
+ let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
+ let component = null;
|
|
|
+ for(let i = 0; i < getRow.length; i++) {
|
|
|
+ let entry = getRow[i]._row.modules.dataTree.children;
|
|
|
+ for(let j = 0; j < entry.length; j++) {
|
|
|
+ let child = entry[j];
|
|
|
+ if(child.data['key'] == selectedRowKeysTable.current[0]) {
|
|
|
+ component = child.component;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ component.select();
|
|
|
+
|
|
|
+ });
|
|
|
let y =[];
|
|
|
for (let i = 1; i < newHl.length; i++) {
|
|
|
y.push({
|
|
|
@@ -645,7 +716,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : newHl[i][12],
|
|
|
'主要材料标志' : newHl[i][13],
|
|
|
'主材标志' : newHl[i][14],
|
|
|
- '设备标志' : newHl[i][15]
|
|
|
+ '设备标志' : newHl[i][15],
|
|
|
+ 'key' : newHl[i][16]
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -664,7 +736,29 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
setRcjrows(rcjrows.map((row) => (row.id === newRow.id ? updatedRow : row)));
|
|
|
const [newData, newHl] = handleRcjbc(selectedRowKeysTable.current[0], rcjrows.map((row) => (row.id === newRow.id ? updatedRow : row)));
|
|
|
if (newData) {
|
|
|
- myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
+ let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
+ let component = null;
|
|
|
+ for(let i = 0; i < getRow.length; i++) {
|
|
|
+ let entry = getRow[i]._row.modules.dataTree.children;
|
|
|
+ for(let j = 0; j < entry.length; j++) {
|
|
|
+ let child = entry[j];
|
|
|
+ if(child.data['key'] == selectedRowKeysTable.current[0]) {
|
|
|
+ component = child.component;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ component.select();
|
|
|
+
|
|
|
+ });
|
|
|
let y =[];
|
|
|
for (let i = 1; i < newHl.length; i++) {
|
|
|
y.push({
|
|
|
@@ -683,7 +777,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : newHl[i][12],
|
|
|
'主要材料标志' : newHl[i][13],
|
|
|
'主材标志' : newHl[i][14],
|
|
|
- '设备标志' : newHl[i][15]
|
|
|
+ '设备标志' : newHl[i][15] ,
|
|
|
+ 'key' : newHl[i][16]
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -714,7 +809,28 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
});
|
|
|
const [newData, newHl] = handleRcjbc(selectedRowKeysTable.current[0], a);
|
|
|
if (newData) {
|
|
|
- myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
+ let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
+ let component = null;
|
|
|
+ for(let i = 0; i < getRow.length; i++) {
|
|
|
+ let entry = getRow[i]._row.modules.dataTree.children;
|
|
|
+ for(let j = 0; j < entry.length; j++) {
|
|
|
+ let child = entry[j];
|
|
|
+ if(child.data['key'] == selectedRowKeysTable.current[0]) {
|
|
|
+ component = child.component;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ component.select();
|
|
|
+ });
|
|
|
let y =[];
|
|
|
for (let i = 1; i < newHl.length; i++) {
|
|
|
y.push({
|
|
|
@@ -733,7 +849,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
'暂估价标志' : newHl[i][12],
|
|
|
'主要材料标志' : newHl[i][13],
|
|
|
'主材标志' : newHl[i][14],
|
|
|
- '设备标志' : newHl[i][15]
|
|
|
+ '设备标志' : newHl[i][15],
|
|
|
+ 'key' : newHl[i][16]
|
|
|
|
|
|
});
|
|
|
}
|
|
|
@@ -768,8 +885,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
myTable.current = new Tabulator(myRef.current, {
|
|
|
index: "key",
|
|
|
height: 380,
|
|
|
- //rowHeight: 40,
|
|
|
- //renderVerticalBuffer: 760,
|
|
|
renderVertical: "basic",
|
|
|
data: detail, //link data to table
|
|
|
reactiveData: false, //enable data reactivity
|
|
|
@@ -778,8 +893,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
selectableRows:1, //make rows selectable
|
|
|
editTriggerEvent:"dblclick", //trigger edit on double click
|
|
|
dataTreeStartExpanded:function(row, level){
|
|
|
- //console.log(row);
|
|
|
- //console.log(level);
|
|
|
return true; //expand rows where the "driver" data field is true;
|
|
|
},
|
|
|
columns: [ //Define Table Columns
|
|
|
@@ -815,13 +928,15 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
|
|
|
myTable.current.on("cellEdited", function(cell){
|
|
|
- //console.log("edited");
|
|
|
- //console.log();
|
|
|
let key = cell._cell.row.data['key'];
|
|
|
myTable.current.deselectRow();
|
|
|
if(cell._cell.column.field == '名称') {
|
|
|
let newData = updateDeMingcheng(cell._cell.row.data['名称'], selectedRowKeysTable.current[0]);
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function() {
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
let component = null;
|
|
|
for(let i = 0; i < getRow.length; i++) {
|
|
|
@@ -838,8 +953,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
}
|
|
|
component.select();
|
|
|
- handleSelect(component);
|
|
|
- //handleSelect(getRow[0]);
|
|
|
+ // handleSelect(component);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -849,7 +963,11 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
let [success, data] = updateShuliang(cell._cell.row.data['数量'], selectedRowKeysTable.current[0]);
|
|
|
if (success) {
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function() {
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
let component = null;
|
|
|
for(let i = 0; i < getRow.length; i++) {
|
|
|
@@ -866,8 +984,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
}
|
|
|
component.select();
|
|
|
- handleSelect(component);
|
|
|
- //handleSelect(getRow[0]);
|
|
|
+ // handleSelect(component);
|
|
|
});
|
|
|
|
|
|
}
|
|
|
@@ -890,8 +1007,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
React.useEffect(
|
|
|
() => {
|
|
|
- //console.log("rgde changed");
|
|
|
- //console.log(rgde);
|
|
|
rgdeRef.current = rgde;
|
|
|
jxdeRef.current = jxde;
|
|
|
cldeRef.current = clde;
|
|
|
@@ -999,7 +1114,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
setFuzhu(result);
|
|
|
let newSelect = extractFuzhu(debmRef.current);
|
|
|
setCheckedKeys_2(newSelect);
|
|
|
- //setSelectedRowKeys([1]);
|
|
|
|
|
|
}
|
|
|
}, [beizhu]
|
|
|
@@ -1018,11 +1132,14 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
() => {
|
|
|
|
|
|
myTable.current.deselectRow();
|
|
|
- //console.log(dingeclick);
|
|
|
if (selectedRowKeysTable.current.length > 0 ) {
|
|
|
const [success, data, key] = changguidinge(JSON.parse(dingeclick), selectedRowKeysTable.current[0]);
|
|
|
if (success) {
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
let component = null;
|
|
|
for(let i = 0; i < getRow.length; i++) {
|
|
|
@@ -1054,11 +1171,14 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
React.useEffect(
|
|
|
() => {
|
|
|
- //console.log(dingeclick);
|
|
|
if (selectedRowKeysTable.current.length > 0 ) {
|
|
|
const data = huan(JSON.parse(tihuanClick), selectedRowKeysTable.current[0]);
|
|
|
-
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
let component = null;
|
|
|
for(let i = 0; i < getRow.length; i++) {
|
|
|
@@ -1066,25 +1186,14 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
for(let j = 0; j < entry.length; j++) {
|
|
|
let child = entry[j];
|
|
|
if(child.data['key'] == selectedRowKeysTable.current[0]) {
|
|
|
- //console.log(child);
|
|
|
component = child.component;
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- handleSelect(component);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ component.select();
|
|
|
+ //handleSelect(component);
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}, [tihuanClick]//替换定额人材机
|
|
|
@@ -1103,20 +1212,15 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
dataTreeStartExpanded:false,
|
|
|
dataTree: false,
|
|
|
selectableRows:1, //make rows selectable
|
|
|
-
|
|
|
-
|
|
|
columns: [ //Define Table Columns
|
|
|
{title:"ID", field:"ID", width:80, headerSort:false, }, //never hide this column
|
|
|
{title:"定额编号", field:"定额编号", width:120,headerSort:false, formatter:"textarea" },
|
|
|
{title:"工程量名称", field:"工程量名称", width:150, headerSort:false, formatter:"textarea"}, //hide this column first
|
|
|
{title:"工作内容", field:"工作内容", width:150 , headerSort:false, formatter:"textarea"},
|
|
|
-
|
|
|
]
|
|
|
});
|
|
|
tuijianTable.current.on("tableBuilt", () => {
|
|
|
-
|
|
|
tuijianTable.current.replaceData(tuijian);
|
|
|
-
|
|
|
});
|
|
|
}
|
|
|
if (rcj2Ref.current != null ) {
|
|
|
@@ -1128,8 +1232,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
dataTreeStartExpanded:false,
|
|
|
dataTree: false,
|
|
|
selectableRows:1, //make rows selectable
|
|
|
-
|
|
|
-
|
|
|
columns: [ //Define Table Columns
|
|
|
{title:"人材机编码", field:"人材机编码", width:100, headerSort:false, }, //never hide this column
|
|
|
{title:"名称", field:"名称", width:120,headerSort:false, formatter:"textarea" },
|
|
|
@@ -1137,13 +1239,10 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
{title:"单价", field:"单价", width:150 , headerSort:false, formatter:"money"},
|
|
|
{title:"合价", field:"合价", width:150 , headerSort:false, formatter:"money"},
|
|
|
{title:"含量", field:"含量", width:150 , headerSort:false, formatter:"textarea"},
|
|
|
-
|
|
|
]
|
|
|
});
|
|
|
rcj2Table.current.on("tableBuilt", () => {
|
|
|
-
|
|
|
rcj2Table.current.replaceData(rcjhl2);
|
|
|
-
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -1159,16 +1258,11 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
selectableRows:1, //make rows selectable
|
|
|
editTriggerEvent:"dblclick",
|
|
|
rowFormatter:function(row){
|
|
|
- //row - row component
|
|
|
-
|
|
|
var data = row.getData();
|
|
|
if (data['人材机编码'].includes('10000F')) {
|
|
|
row.getElement().style.backgroundColor = "#ffff00";
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
},
|
|
|
-
|
|
|
columns: [ //Define Table Columns
|
|
|
{title:"ID", field:"ID", width:80, headerSort:false, },
|
|
|
{title:"人材机编码", field:"人材机编码", width:120, headerSort:false, formatter: sparklineFormatter2}, //never hide this column
|
|
|
@@ -1178,11 +1272,11 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
{title:"单价", field:"单价", width:80 , headerSort:false, formatter: sparklineFormatter, editor: "input", editable: editCheckJg },
|
|
|
{title:"产地", field:"产地", width:80, headerSort:false, },
|
|
|
{title:"供应厂商", field:"供应厂商", width:80, headerSort:false, },
|
|
|
- {title:"人材机类别", field:"人材机类别", width:80, headerSort:false, },
|
|
|
+ {title:"人材机类别", field:"人材机类别", width:100, headerSort:false, },
|
|
|
{title:"甲供标志", field:"甲供标志", width:80 , headerSort:false, formatter:"textarea"},
|
|
|
{title:"含量", field:"含量", width:80 , headerSort:false, formatter:"money", formatterParams:{precision:4}, editor: "input", editable: editCheckRcj },
|
|
|
{title:"合价", field:"合价", width:80 , headerSort:false, formatter:"money"},
|
|
|
- {title:"暂估价标志", field:"暂估价标志", width:80 , headerSort:false, formatter:"textarea"},
|
|
|
+ {title:"暂估价标志", field:"暂估价标志", width:100 , headerSort:false, formatter:"textarea"},
|
|
|
{title:"主要材料标志", field:"主要材料标志", width:100 , headerSort:false, formatter:"textarea"},
|
|
|
{title:"主材标志", field:"主材标志", width:80 , headerSort:false, formatter:"textarea"},
|
|
|
{title:"设备标志", field:"设备标志", width:80 , headerSort:false, formatter:"textarea"},
|
|
|
@@ -1190,9 +1284,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
]
|
|
|
});
|
|
|
rcjTable.current.on("tableBuilt", () => {
|
|
|
-
|
|
|
rcjTable.current.replaceData(rcjhl);
|
|
|
-
|
|
|
});
|
|
|
rcjTable.current.on("cellDblClick", function(e, cell){
|
|
|
//e - the click event object
|
|
|
@@ -1221,7 +1313,12 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
}
|
|
|
|
|
|
let newData = updateDercj(selectedRowKeysTable.current[0], data2);
|
|
|
+ myTable.current.deselectRow();
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function() {
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
let getRow = myTable.current.getRows(); //get array of currently selected row components.
|
|
|
let component = null;
|
|
|
for(let i = 0; i < getRow.length; i++) {
|
|
|
@@ -1233,23 +1330,18 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
component = child.component;
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- handleSelect(component);
|
|
|
+ component.select();
|
|
|
+ //handleSelect(component);
|
|
|
});
|
|
|
});
|
|
|
|
|
|
-
|
|
|
}
|
|
|
}, [valueTab]
|
|
|
);
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
return (
|
|
|
<Stack spacing={2}>
|
|
|
|
|
|
@@ -1268,58 +1360,58 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
suanshiCallback();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}}
|
|
|
>定额(算式)</Button>
|
|
|
<Button variant="outlined" size="small" onClick={() => {
|
|
|
if (selectedRowKeysTable.current.length > 0) {
|
|
|
const [success, data] = danxiangdinge(selectedRowKeysTable.current[0]);
|
|
|
if(success) {
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(data.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
resetUI();
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}}
|
|
|
>单项定额</Button>
|
|
|
<Button variant="outlined" size="small" onClick={() => {
|
|
|
if (selectedRowKeysTable.current.length > 0) {
|
|
|
let newData = shanchu(selectedRowKeysTable.current[0]);
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current)).then(function(){
|
|
|
- if (newData.filter(x=>x['key'] == selectedRowKeysTable.current[0]).length == 0) {
|
|
|
+ //if (newData.filter(x=>x['key'] == selectedRowKeysTable.current[0]).length == 0) {
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
resetUI();
|
|
|
- }
|
|
|
+ //}
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}}
|
|
|
>删除</Button>
|
|
|
<Button variant="outlined" size="small" onClick={() => {
|
|
|
let newData = undo();
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(newData).then(function(){
|
|
|
-
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
resetUI();
|
|
|
-
|
|
|
-
|
|
|
});
|
|
|
-
|
|
|
}}
|
|
|
>撤销</Button>
|
|
|
<Button variant="outlined" size="small" onClick={() => {
|
|
|
let newData = redo();
|
|
|
+ let former = myTable.current.element.children[1].scrollTop;
|
|
|
+ let former2 = myTable.current.element.children[1].scrollLeft;
|
|
|
myTable.current.updateData(newData).then(function(){
|
|
|
+ myTable.current.element.children[1].scrollTop = former;
|
|
|
+ myTable.current.element.children[1].scrollLeft = former2;
|
|
|
resetUI();
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
}}
|
|
|
>重做</Button>
|
|
|
<Button variant="outlined" size="small" onClick={() => {
|
|
|
@@ -1328,7 +1420,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
}}
|
|
|
>保存</Button>
|
|
|
-
|
|
|
|
|
|
</Stack>
|
|
|
<div style={{width: "70vw"}}>
|
|
|
@@ -1337,8 +1428,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
</div>
|
|
|
</Box>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
<Box >
|
|
|
|
|
|
<TabContext value={valueTab}>
|
|
|
@@ -1359,13 +1448,9 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
</div>
|
|
|
</TabPanel>
|
|
|
<TabPanel sx={{p: 1}} value="2">
|
|
|
-
|
|
|
<div ref={rcj2Ref}></div>
|
|
|
-
|
|
|
-
|
|
|
</TabPanel>
|
|
|
<TabPanel sx={{p: 1}} value="3">
|
|
|
-
|
|
|
<Box
|
|
|
sx={{
|
|
|
height: 200,
|
|
|
@@ -1394,8 +1479,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
/>
|
|
|
</Box>
|
|
|
-
|
|
|
-
|
|
|
</TabPanel>
|
|
|
<TabPanel sx={{p: 1}} value="4">
|
|
|
<Box sx={{maxHeight: `190px`}}>
|
|
|
@@ -1428,8 +1511,6 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
</Table>
|
|
|
</CustomProvider>
|
|
|
</Box>
|
|
|
-
|
|
|
-
|
|
|
</TabPanel>
|
|
|
<TabPanel sx={{p: 1}} value="5">
|
|
|
<Box sx={{maxHeight: `190px`}}>
|