|
|
@@ -12,7 +12,7 @@ import Service from './Service';
|
|
|
import Button from '@mui/material/Button';
|
|
|
import ButtonGroup from '@mui/material/ButtonGroup';
|
|
|
import {extractFuzhu} from './utils';
|
|
|
-import {shanchu, undo, redo, danxiangdinge, updateDercj, changguidinge, handleBeizhu, huan, updateShuliang} from './editor';
|
|
|
+import {shanchu, undo, redo, danxiangdinge, updateDercj, changguidinge, handleBeizhu, huan, updateShuliang, handleYuban} from './editor';
|
|
|
import Backdrop from '@mui/material/Backdrop';
|
|
|
import CircularProgress from '@mui/material/CircularProgress';
|
|
|
import { DataGrid } from '@mui/x-data-grid';
|
|
|
@@ -65,8 +65,10 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
const [rcjhl, setRcjhl] = React.useState([]);
|
|
|
const [rcjhl2, setRcjhl2] = React.useState([]);
|
|
|
const [fuzhu, setFuzhu] = React.useState([]);//展示用的附注行
|
|
|
+ const [yuban, setYuban] = React.useState([{'key': '0', '说明': '无'}, {'key': '1', '说明': '湿拌砂浆'}, {'key': '2', '说明': '散装干拌(混)砂浆'}, {'key': '3', '说明': '袋装干拌(混)砂浆'}]);
|
|
|
const [tuijian, setTuijian] = React.useState([]);
|
|
|
const [fuzhuEnable, setFuzhuEnable] = React.useState(false);
|
|
|
+ const [yubanEnable, setYubanEnable] = React.useState(false);
|
|
|
const hotRcjRef = React.useRef(null);
|
|
|
const hotTuijianRef = React.useRef(null);
|
|
|
const highlight = React.useRef([]);
|
|
|
@@ -92,6 +94,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
const cldeRef = React.useRef(null);
|
|
|
const isQdrcj = React.useRef(false);
|
|
|
const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
|
|
|
+ const [selectedRowKeys2, setSelectedRowKeys2] = React.useState([]);
|
|
|
const onSelectChange = (newSelectedRowKeys) => {
|
|
|
console.log('selectedRowKeys changed: ', newSelectedRowKeys);
|
|
|
setSelectedRowKeys(newSelectedRowKeys);
|
|
|
@@ -129,6 +132,44 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
};
|
|
|
|
|
|
|
|
|
+ const onSelectChange2 = (newSelectedRowKeys) => {
|
|
|
+
|
|
|
+ setSelectedRowKeys2(newSelectedRowKeys);
|
|
|
+ const [newData, newHl] = handleYuban(selectedRowKeysTable.current[0], newSelectedRowKeys);
|
|
|
+ if (newData) {
|
|
|
+ myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
|
|
|
+ let y =[];
|
|
|
+ for (let i = 1; i < newHl.length; i++) {
|
|
|
+ y.push({
|
|
|
+ 'ID' : newHl[i][0],
|
|
|
+ '人材机编码' : newHl[i][1],
|
|
|
+ '名称' : newHl[i][2],
|
|
|
+ '规格型号': newHl[i][3],
|
|
|
+ '单位' : newHl[i][4],
|
|
|
+ '单价' : newHl[i][5],
|
|
|
+ '产地' : newHl[i][6],
|
|
|
+ '供应厂商' : newHl[i][7],
|
|
|
+ '人材机类别' : newHl[i][8],
|
|
|
+ '甲供标志': newHl[i][9],
|
|
|
+ '含量' : newHl[i][10],
|
|
|
+ '合价' : newHl[i][11],
|
|
|
+ '暂估价标志' : newHl[i][12],
|
|
|
+ '主要材料标志' : newHl[i][13],
|
|
|
+ '主材标志' : newHl[i][14],
|
|
|
+ '设备标志' : newHl[i][15]
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ setRcjhl(y);
|
|
|
+ if (rcjTable.current) {
|
|
|
+ rcjTable.current.replaceData(y);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
/**fuzhu select */
|
|
|
const rowSelection = {
|
|
|
selectedRowKeys,
|
|
|
@@ -140,6 +181,18 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ const rowSelection2 = {
|
|
|
+ type: 'radio',
|
|
|
+ selectedRowKeys: selectedRowKeys2,
|
|
|
+ selections: [Table.SELECTION_NONE],
|
|
|
+ onChange: onSelectChange2,
|
|
|
+ getCheckboxProps: (record) => {
|
|
|
+ return {
|
|
|
+ disabled: !yubanEnable
|
|
|
+ };
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
|
|
|
var editCheck = function(cell){
|
|
|
//cell - the cell component for the editable cell
|
|
|
@@ -178,6 +231,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
selectedRowKeysTableParent.current = row._row['data']['key'];
|
|
|
|
|
|
setFuzhu([]);
|
|
|
+ setYubanEnable(false);
|
|
|
+ setSelectedRowKeys2([]);
|
|
|
Service.generateQingdanrcj(name, bh,bt,row._row.data['清单编码']).then(x=>{
|
|
|
|
|
|
|
|
|
@@ -218,6 +273,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
});
|
|
|
}else{
|
|
|
setTuijian([]);
|
|
|
+
|
|
|
if (tuijianTable.current) tuijianTable.current.replaceData([]);
|
|
|
let row_parent = row._row;
|
|
|
while(row_parent.modules.dataTree.parent) {
|
|
|
@@ -264,6 +320,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
rcjTable.current.replaceData(y);
|
|
|
}
|
|
|
setFuzhuEnable(x[1]);
|
|
|
+ setYubanEnable(x[1]);
|
|
|
+ setSelectedRowKeys2(x[2]);
|
|
|
//hotRcjRef.current?.hotInstance?.loadData(x);
|
|
|
isQdrcj.current = false;
|
|
|
let toHighlight = [];
|
|
|
@@ -810,6 +868,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
rcjTable.current.replaceData([]);
|
|
|
}
|
|
|
setFuzhu([]);
|
|
|
+ setSelectedRowKeys2([]);
|
|
|
+ setYubanEnable(false);
|
|
|
isQdrcj.current = true;
|
|
|
highlight.current = [];
|
|
|
});
|
|
|
@@ -831,6 +891,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
rcjTable.current.replaceData([]);
|
|
|
}
|
|
|
setFuzhu([]);
|
|
|
+ setSelectedRowKeys2([]);
|
|
|
+ setYubanEnable(false);
|
|
|
isQdrcj.current = true;
|
|
|
highlight.current = [];
|
|
|
}
|
|
|
@@ -855,6 +917,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
rcjTable.current.replaceData([]);
|
|
|
}
|
|
|
setFuzhu([]);
|
|
|
+ setSelectedRowKeys2([]);
|
|
|
+ setYubanEnable(false);
|
|
|
isQdrcj.current = true;
|
|
|
highlight.current = [];
|
|
|
|
|
|
@@ -874,6 +938,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
rcjTable.current.replaceData([]);
|
|
|
}
|
|
|
setFuzhu([]);
|
|
|
+ setSelectedRowKeys2([]);
|
|
|
+ setYubanEnable(false);
|
|
|
isQdrcj.current = true;
|
|
|
highlight.current = [];
|
|
|
});
|
|
|
@@ -904,7 +970,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
<Tab sx={{p: 0, minHeight: '24px'}} label="人材机含量" value="1" />
|
|
|
<Tab sx={{p: 0, minHeight: '24px'}} label="标准定额人材机含量" value="2" />
|
|
|
<Tab sx={{p: 0, minHeight: '24px'}} label="定额附注" value="3" />
|
|
|
- <Tab sx={{p: 0, minHeight: '24px'}} label="组价推荐" value="4" />
|
|
|
+ <Tab sx={{p: 0, minHeight: '24px'}} label="预拌砂浆" value="4" />
|
|
|
+ <Tab sx={{p: 0, minHeight: '24px'}} label="组价推荐" value="5" />
|
|
|
</TabList>
|
|
|
</Box>
|
|
|
|
|
|
@@ -961,6 +1028,43 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
|
|
|
|
|
|
</TabPanel>
|
|
|
<TabPanel sx={{p: 1}} value="4">
|
|
|
+ <Box sx={{maxHeight: `190px`}}>
|
|
|
+ <ConfigProvider
|
|
|
+ locale={zhCN}
|
|
|
+ theme={{
|
|
|
+ components: {
|
|
|
+ Table: {
|
|
|
+ /* here is your component tokens */
|
|
|
+ cellPaddingBlock : 8
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }}
|
|
|
+ >
|
|
|
+
|
|
|
+ <Table
|
|
|
+ scroll={{ x: 'max-content' , y : 190}}
|
|
|
+ pagination={false}
|
|
|
+ rowSelection={rowSelection2}
|
|
|
+ columns={
|
|
|
+ [
|
|
|
+
|
|
|
+ {
|
|
|
+ title: '说明',
|
|
|
+ dataIndex: '说明',
|
|
|
+ width: 550
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ dataSource={yuban} />
|
|
|
+
|
|
|
+
|
|
|
+ </ConfigProvider>
|
|
|
+ </Box>
|
|
|
+ </TabPanel>
|
|
|
+
|
|
|
+ <TabPanel sx={{p: 1}} value="5">
|
|
|
<div ref={tuijianRef}></div>
|
|
|
|
|
|
</TabPanel>
|