|
{
let hit = item === rowData[dataKey];
return hit;
})}
>
|
};
const [valueYuban, setValueYuban] = React.useState("");
var editCheck = function(cell){
//cell - the cell component for the editable cell
//get row data
//console.log(cell);
if(cell._cell.row.data['序号']) return false;
return true;
}
var editCheckJg = function(cell){
//cell - the cell component for the editable cell
//get row data
//console.log(cell);
if(isQdrcj.current) return false;
if (cell._cell.row.getData()['人材机编码'] == '410000F') {
return false;
}
if (cell._cell.row.getData()['人材机编码'].includes('000FE')) {
return false;
}
if (cell._cell.row.getData()['甲供标志'] == 'true') {
return false;
}
return true;
}
var editCheckRcj = function(cell){
//cell - the cell component for the editable cell
//get row data
//console.log(cell);
if(isQdrcj.current) return false;
if (cell._cell.row.getData()['人材机编码'] == '410000F') {
return false;
}
if (cell._cell.row.getData()['人材机编码'].includes('000FE')) {
return false;
}
return true;
}
var sparklineFormatter = function(cell, formatterParams, onRendered){
for (let i = 0; i < highlight.current.length; i++) {
let entry = highlight.current[i];
if (entry.row + 1 == cell._cell.row.position && entry.col + 1 == cell._cell.column.getPosition()) {
cell.getElement().style.fontWeight = 'bold';
cell.getElement().style.color = 'green';
cell.getElement().style.background = '#d7f1e1';
}
}
return Number(cell.getValue()).toFixed(2).toString();
};
var sparklineFormatter2 = function(cell, formatterParams, onRendered){
for (let i = 0; i < highlight.current.length; i++) {
let entry = highlight.current[i];
if (entry.row + 1 == cell._cell.row.position && entry.col + 1 == cell._cell.column.getPosition()) {
cell.getElement().style.fontWeight = 'bold';
cell.getElement().style.color = 'green';
cell.getElement().style.background = '#d7f1e1';
}
}
return cell.getValue();
};
const resetUI = () => {
selectedRowKeysTable.current = [];
selectedRowKeysTableParent.current = null;
setRcjhl([]);
if (rcjTable.current) {
rcjTable.current.replaceData([]);
}
setFuzhu([]);
setRcjrows([]);
setShowToolbar(false);
setValueYuban("");
setYubanEnable(false);
isQdrcj.current = true;
highlight.current = [];
setTuijian([]);
if (tuijianTable.current) tuijianTable.current.replaceData([]);
};
function handleSelect(row){
selectedRowKeysTable.current = [row._row['data']['key']];
if (row._row.data['序号'] != null && row._row.data['序号'].length >0) {
selectedRowKeysTableParent.current = row._row['data']['key'];
setFuzhu([]);
setRcjrows([]);//补充人材机
setYubanEnable(false);
setValueYuban("");
setShowToolbar(false);
Service.generateQingdanrcj(name, bh,bt,row._row.data['清单编码']).then(x=>{
let y =[];
for (let i = 1; i < x.length; i++) {
y.push({
'ID' : x[i][0],
'人材机编码' : x[i][1],
'名称' : x[i][2],
'规格型号': x[i][3],
'单位' : x[i][4],
'单价' : x[i][5],
'产地' : x[i][6],
'供应厂商' : x[i][7],
'人材机类别' : x[i][8],
'甲供标志': x[i][9],
'含量' : x[i][10],
'合价' : x[i][11],
'暂估价标志' : x[i][12],
'主要材料标志' : x[i][13],
'主材标志' : x[i][14],
'设备标志' : x[i][15]
});
}
setRcjhl(y);
if (rcjTable.current) {
rcjTable.current.replaceData(y);
}
isQdrcj.current = true;
highlight.current = [];
});
Service.generateQingdanTuijian(name, bh,bt,row._row.data['清单编码']).then(x=>{
setTuijian(x);
if (tuijianTable.current) tuijianTable.current.replaceData(x);
});
}else{
setTuijian([]);
if (tuijianTable.current) tuijianTable.current.replaceData([]);
let row_parent = row._row;
while(row_parent.modules.dataTree.parent) {
row_parent = row_parent.modules.dataTree.parent;
}
//console.log(name, bh,bt,qdbm, selected[1]);
debmRef.current = row._row['data']['清单编码'];
selectedRowKeysTableParent.current = row_parent['data']['key'];
let qdbm = row_parent['data']['清单编码'];
let debm = row._row['data']['清单编码'];
console.log('debm=');
console.log(debm);
let danwei = row._row['data']['单位'];
clickCallback(qdbm, debm);/**dingercj need row key */
Service.generateDingercj(name, bh,bt,qdbm, debm, danwei, row._row['data']['key']).then(x=>{
console.log(x);
let y =[];
for (let i = 1; i < x[0].length; i++) {
y.push({
'ID' : x[0][i][0],
'人材机编码' : x[0][i][1],
'名称' : x[0][i][2],
'规格型号': x[0][i][3],
'单位' : x[0][i][4],
'单价' : x[0][i][5],
'产地' : x[0][i][6],
'供应厂商' : x[0][i][7],
'人材机类别' : x[0][i][8],
'甲供标志': x[0][i][9],
'含量' : x[0][i][10],
'合价' : x[0][i][11],
'暂估价标志' : x[0][i][12],
'主要材料标志' : x[0][i][13],
'主材标志' : x[0][i][14],
'设备标志' : x[0][i][15]
});
}
setRcjhl(y);
if (rcjTable.current) {
rcjTable.current.replaceData(y);
}
setShowToolbar(true);
setFuzhuEnable(x[1]);
setYubanEnable(x[1]);
if (x[2]== null || x[2].length == 0) {
setValueYuban("");
} else {
setValueYuban(x[2][0]);
}
setRcjrows(x[3]);
//hotRcjRef.current?.hotInstance?.loadData(x);
isQdrcj.current = false;
let toHighlight = [];
for(let i = 0; i < y.length; i++) {
let entry = y[i];
let bianhao = entry['人材机编码'];
let rcjlb = entry['人材机类别'];
let hit = false;
if (Number(rcjlb) == 1 && rgdeRef.current ) {
for (let j = 0;j < rgdeRef.current.length; j++) {
if (rgdeRef.current[j]["CLBH"] == bianhao) {
if(rgdeRef.current[j]["CLMC"] == entry['名称'])hit = true;
let danjia = Number(entry['单价']);
if (danjia != rgdeRef.current[j]["YSJG"]) {
//console.log(`[${i},5]danjia bu yizhi`);
toHighlight.push({row: i, col: 5, renderer: "customStylesRenderer"});
}
let hanliang = Number(entry['含量']);
if (hanliang != rgdeRef.current[j]["gr"]) {
//console.log(`[${i}, 10]hanliang bu yizhi`);
toHighlight.push({row: i, col: 10, renderer: "customStylesRenderer"});
}
}
}
}
if (Number(rcjlb) == 3 && jxdeRef.current ) {
for (let j = 0; j < jxdeRef.current.length; j++) {
if (jxdeRef.current[j]["jxbh"] == bianhao) {
if(jxdeRef.current[j]["jxmc"] == entry['名称'])hit = true;
let danjia = Number(entry['单价']);
if (danjia != jxdeRef.current[j]["tbdj"]) {
//console.log(`[${i},5]danjia bu yizhi`);
toHighlight.push({row: i, col: 5, renderer: "customStylesRenderer"});
}
let hanliang = Number(entry['含量']);
if (hanliang != jxdeRef.current[j]["sl"]) {
//console.log(`[${i}, 10]hanliang bu yizhi`);
toHighlight.push({row: i, col: 10, renderer: "customStylesRenderer"});
}
}
}
}
if (Number(rcjlb) == 2 && cldeRef.current ) {
for (let j = 0; j < cldeRef.current.length; j++) {
if (cldeRef.current[j]["CLBH"] == bianhao) {
if(cldeRef.current[j]["CLMC"] == entry['名称'])hit = true;
let danjia = Number(entry['单价']);
if (danjia != cldeRef.current[j]["YSJG"]) {
//console.log(`[${i},5]danjia bu yizhi`);
toHighlight.push({row: i, col: 5, renderer: "customStylesRenderer"});
}
let hanliang = Number(entry['含量']);
if (hanliang != cldeRef.current[j]["SL"]) {
//console.log(`[${i}, 10]hanliang bu yizhi`);
toHighlight.push({row: i, col: 10, renderer: "customStylesRenderer"});
}
}
}
}
if (!hit) {
toHighlight.push({row: i, col: 1, renderer: "customStylesRenderer"});
}
}
highlight.current = toHighlight;
});
}
}
/**补充人材机 */
const [rcjrows, setRcjrows] = React.useState([]);
//const [rowModesModel, setRowModesModel] = React.useState({});
const [showToolbar, setShowToolbar] = React.useState(false);
const rcjcolumns = [
{
field: 'actions',
type: 'actions',
headerName: '操作',
width: 100,
cellClassName: 'actions',
getActions: ({ id }) => {
return [