| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import * as React from 'react';
- import Box from "@mui/material/Box";
- import { Grid } from '@mui/material';
- import Tab from "@mui/material/Tab";
- import TabContext from "@mui/lab/TabContext";
- import TabList from "@mui/lab/TabList";
- import TabPanel from "@mui/lab/TabPanel";
- import Stack from "@mui/material/Stack";
- //registerPlugin(NestedRows);
- import Service from './Service';
- import EditableSelect from './EditableSelect';
- import EditableSelectGC from './EditableSelectGC';
- import Editable from './Editable';
- import Button from '@mui/material/Button';
- import {copy} from './utils';
- import {TabulatorFull as Tabulator} from "tabulator-tables"; //import Tabulator library
- import "tabulator-tables/dist/css/tabulator.min.css"; //import Tabulator stylesheet
- import './Tabulator.css';
- export default function Rcjhz({id, bh, tiaojiaCallback}) {
- const myTable = React.useRef(null);
- const myRef = React.useRef(null);
- const [detail, setDetail] = 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;
- }
- function handleSelect(row){
- }
- React.useEffect(() => {
- myTable.current = new Tabulator(myRef.current, {
- index: "key",
- height: 600,
- data: detail, //link data to table
- reactiveData: false, //enable data reactivity
- dataTreeStartExpanded:true,
- dataTree: true,
- 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
- {title:"ID", field:"ID", width:80, headerSort:false,}, //never hide this column
- {title:"编码", field:"编码", width:120,headerSort:false,headerFilter:"input" },
- {title:"名称", field:"名称", width:150, headerSort:false, formatter:"textarea", headerFilter:"input"}, //hide this column first
- {title:"规格型号", field:"规格型号", width:70 , headerSort:false, formatter:"textarea"},
- {title:"单位", field:"单位", width:50, headerSort:false},
- {title:"数量", field:"数量", width:100, headerSort:true, sorter:"number", formatter:"money", formatterParams:{
- precision:4,
- } },
- {title:"单价", field:"单价", width:100, headerSort:true, sorter:"number", formatter:"money", editor: "input"},
- {title:"合价", field:"合价", width:100, headerSort:true, sorter:"number", formatter:"money"},
- {title:"产地", field:"产地", width:50, headerSort:false, },
- {title:"供应厂商", field:"供应厂商", width:80, headerSort:false, },
- {title:"人材机类别", field:"人材机类别", width:120, headerSort:true, sorter: 'string', headerFilter:"input"},
- {title:"主要材料标志", field:"主要材料标志", width:100, headerSort:false},
- {title:"主材标志", field:"主材标志", width:100, headerSort:false, },
- {title:"设备标志", field:"设备标志", width:100, headerSort:false, },
- {title:"甲供标志", field:"甲供标志", width:100, headerSort:false, },
- {title:"暂估价标志", field:"暂估价标志", width:100, headerSort:false, },
- ]
- });
-
- myTable.current.on("cellDblClick", function(e, cell){
- //e - the click event object
- //cell - cell component
- console.log(cell);
- });
- myTable.current.on("rowSelected", handleSelect);
-
- myTable.current.on("cellEdited", function(cell){
- //console.log("edited");
- //console.log();
- let newData = copy(cell._cell.row.data);
- let newDj = newData['单价'];
- let sl = newData['数量'];
- newData['合价'] = Number(newDj) * Number(sl);
- myTable.current.updateData([newData]);
- tiaojiaCallback(bh, newData['编码'], newData['名称'], newData['单位'], newDj);
-
-
-
-
-
-
- });
- myTable.current.on("tableBuilt", () => {
- Service.generateRencaijihuizong2(id, bh).then(x=>{
- myTable.current.replaceData(x);
- });
- });
-
- }, [id, bh]);
- return (
- <div ref={myRef}>
- </div>
- );
- }
|