211 lines
6.4 KiB
JavaScript
211 lines
6.4 KiB
JavaScript
import React from 'react';
|
||
import { Modal,Cascader,Checkbox, Row, Col,message,Select } from 'antd';
|
||
|
||
class EDUnitUseSettingModal extends React.Component {
|
||
constructor(props) {
|
||
super(props);
|
||
this.state = {
|
||
visible: false,
|
||
pOptions :[],
|
||
pDefaultValue:[],
|
||
tOptions :[],
|
||
tDefaultValue:"",
|
||
boxData:[],
|
||
boxDefaultValue:[],
|
||
};
|
||
};
|
||
|
||
componentDidMount(){
|
||
if(this.props.onRef)
|
||
{
|
||
this.props.onRef(this)
|
||
}
|
||
};
|
||
|
||
showModal = () => {
|
||
this.getUnitNameCheckboxData();
|
||
this.getProNameCheckboxData();
|
||
this.getClassNameCheckboxData();
|
||
this.setState({
|
||
visible: true,
|
||
});
|
||
}
|
||
|
||
handleOk = e => {
|
||
this.ProNameSettingSave(this.state.boxDefaultValue,"ProNameSelect_" + this.props.login.userId + "_Select",true);
|
||
this.ProNameSettingSave(this.state.boxDefaultValue,"ProNameSelect_" + this.props.login.userId,true);
|
||
message.success("配置成功");
|
||
var t = this.props.searchRules;
|
||
this.setState({
|
||
visible: false,
|
||
},()=>{this.props.getUnitUseChartData(this.props.searchRules,false)});
|
||
};
|
||
|
||
handleCancel = e => {
|
||
this.setState({
|
||
visible: false,
|
||
});
|
||
};
|
||
|
||
//获取生产单元数据(选择数据项)
|
||
getUnitNameCheckboxData = () => {
|
||
const json = {
|
||
OrgId: this.props.login.OrgId,
|
||
ParentIds: this.state.pDefaultValue,
|
||
Code: "ProNameSelect_" + this.props.login.userId + "_Pro",
|
||
IsFirst: false
|
||
}
|
||
this.props.dispatch({
|
||
type: 'app/getDataByPost',
|
||
url: 'BD/BDMeterNode/GetUnitSelectTreeData',
|
||
payload: json,
|
||
onlyData: false,
|
||
onComplete: (re) => {
|
||
if (re && re.IsSuccessful && re.Data) {
|
||
this.setState({
|
||
pOptions: re.Data.Options,
|
||
pDefaultValue: re.Data.DefaultValue
|
||
})
|
||
}
|
||
}
|
||
})
|
||
};
|
||
|
||
//班组信息(选择数据项)
|
||
getClassNameCheckboxData = () => {
|
||
const json = {
|
||
OrgId: this.props.login.OrgId,
|
||
}
|
||
this.props.dispatch({
|
||
type: 'app/getDataByPost',
|
||
url: 'BD/BDMeterNode/GetTeamSelectData',
|
||
payload: json,
|
||
onlyData: false,
|
||
onComplete: (re) => {
|
||
if (re && re.IsSuccessful && re.Data) {
|
||
this.setState({
|
||
tOptions: re.Data.Options,
|
||
tDefaultValue: re.Data.DefaultValue
|
||
})
|
||
}
|
||
}
|
||
})
|
||
};
|
||
|
||
//产品名称(数据项)
|
||
getProNameCheckboxData = () => {
|
||
var pId = "";
|
||
if(this.state.pDefaultValue && this.state.pDefaultValue.length > 0){
|
||
pId = this.state.pDefaultValue[this.state.pDefaultValue.length-1]
|
||
}
|
||
|
||
const json = {
|
||
OrgId: this.props.login.OrgId,
|
||
ParentIds: this.state.boxDefaultValue,
|
||
Code: "ProNameSelect_" + this.props.login.userId,
|
||
IsFirst: false,
|
||
UnitId: pId,
|
||
TeamId: this.state.tDefaultValue
|
||
}
|
||
this.props.dispatch({
|
||
type: 'app/getDataByPost',
|
||
url: 'FM/Product/GetProNameList',
|
||
payload: json,
|
||
onlyData: false,
|
||
onComplete: (re) => {
|
||
if (re && re.IsSuccessful && re.Data) {
|
||
this.setState({
|
||
boxData: re.Data.Options,
|
||
boxDefaultValue: re.Data.DefaultValue
|
||
})
|
||
}
|
||
}
|
||
})
|
||
};
|
||
|
||
onChange = (value) =>{
|
||
this.setState({
|
||
pDefaultValue: value
|
||
},()=>{
|
||
this.getProNameCheckboxData(false);
|
||
});
|
||
}
|
||
|
||
onClassChange = (value) =>{
|
||
this.setState({
|
||
tDefaultValue: value
|
||
},()=>{
|
||
this.getProNameCheckboxData(false);
|
||
});
|
||
}
|
||
|
||
onCheck = (checkedValues)=>
|
||
{
|
||
if(checkedValues && checkedValues.length > 8)
|
||
{
|
||
message.error("最多选择8个产品!");
|
||
return;
|
||
}
|
||
this.setState({
|
||
boxDefaultValue: checkedValues
|
||
},()=>{
|
||
});
|
||
}
|
||
|
||
//保存选中项
|
||
ProNameSettingSave = (select,code,isReData = true) => {
|
||
const json = {
|
||
OrgId: this.props.login.OrgId,
|
||
UserId: this.props.login.userId,
|
||
ChildIds: select,
|
||
Code: code
|
||
}
|
||
this.props.dispatch({
|
||
type: 'app/getDataByPost',
|
||
url: 'FM/Product/ProNameSelectSave',
|
||
payload: json,
|
||
onlyData: false,
|
||
onComplete: (re) => {
|
||
if (re && re.IsSuccessful && re.Data) {
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
render(){
|
||
|
||
const { pDefaultValue,pOptions,tDefaultValue,tOptions,boxData,boxDefaultValue } = this.state
|
||
|
||
return(
|
||
<Modal title="选择对比计量点"visible={this.state.visible}onOk={this.handleOk}onCancel={this.handleCancel}>
|
||
<Cascader style={{ width: '50%' }} fieldNames={{ label: 'Label', value: 'Value', children: 'Children' }} value={this.state.pDefaultValue} options={this.state.pOptions}
|
||
onChange={this.onChange} changeOnSelect placeholder="生产单元" />
|
||
|
||
<Select defaultValue={tDefaultValue} style={{ width: 150,marginLeft:10 }} onChange={this.onClassChange} placeholder="班组">
|
||
<Option value="">---班组---</Option>
|
||
{
|
||
tOptions.map(item => {
|
||
return (
|
||
<Option value={item.Value}>{item.Label}</Option>
|
||
)
|
||
})
|
||
}
|
||
</Select>
|
||
<Checkbox.Group style={{ width: '100%',fontSize:"24px" }} value={this.state.boxDefaultValue} onChange={this.onCheck}>
|
||
<Row>
|
||
{
|
||
boxData.map(item=>{
|
||
return (
|
||
<Col span={24} key={item.Value}>
|
||
<Checkbox value={item.Value}>{item.Label}</Checkbox>
|
||
</Col>
|
||
);
|
||
})
|
||
}
|
||
</Row>
|
||
</Checkbox.Group>
|
||
</Modal>
|
||
)
|
||
}
|
||
}
|
||
export default EDUnitUseSettingModal |