mh-lcmk-sms-web/src/components/CustomPages/FM/ProductSopEditPage.js

158 lines
4.5 KiB
JavaScript
Raw Normal View History

2024-05-27 09:25:22 +08:00
import React from 'react';
import { connect } from 'dva';
import { Button, Row, Col, Form, Input,Select,Upload,Icon,Modal,Spin,message } from 'antd';
import {
extend,
extendRule,
initFilter,
initQueryFilter,
getOnlyPropertyData,
extendInclude, guid
} from "../../../utils/common";
import DropDownPagination from '../../common/DropDownPaginationEx';
import EditComponent from "../../../baseComponents/EditComponent";
import FormPage from '../../FormPage';
import config from "../../../config";
const FormItem = Form.Item;
const Option = Select.Option;
const { TextArea } = Input;
class ProductSopEditPage extends EditComponent {
constructor(props) {
super(props);
this.state = {
data: {
},
};
};
onBeforeEdit(params){
super.onBeforeEdit(params);
const {isNew,isCopy,copySrcData}=params?params:{};
const updateLoadFileList=[];
if(this.state.data&&this.state.data.Nav_Files){
this.state.data.Nav_Files.forEach(t=>{
updateLoadFileList.push({
uid: t.ID,
name: t.name?t.name:(t.Nav_ImgFile?t.Nav_ImgFile.FILE_NAME:'未知文件'),
status: t.status?t.status:'done',
response: {Data:t.IMG_FILE_ID,file:t},
});
});
}
this.setState({
updateLoadFileList,
})
}
onBeforeSaveHandleRecord(params){
super.onBeforeSaveHandleRecord(params);
const {editCode,record,srcRecord}=params?params:{};
if(editCode==='head'){
if(!record.Nav_Files){
record.Nav_Files=[];
}
if(srcRecord.Nav_Files){
srcRecord.Nav_Files.forEach(t=>{
record.Nav_Files.push(getOnlyPropertyData(t));
})
}
if(this.state.updateLoadFileList) {
this.state.updateLoadFileList.forEach(t => {
if (t.response) {
if (record.Nav_Files.filter(t1 => t1.IMG_FILE_ID === t.response.Data).length == 0) {
record.Nav_Files.push({
ID: guid(),
IMG_FILE_ID: t.response.Data,
ORG_ID: this.props.login.OrgId,
RESOURCE_SOP_ID: this.state.data?this.state.data.ID:null,
name: t.name,
status: t.status,
});
}
}
});
}
if(record.Nav_Files)
record.Nav_Files.forEach(t1=>{
if(!this.state.updateLoadFileList|| this.state.updateLoadFileList.filter(t=>t.response&&t1.IMG_FILE_ID===t.response.Data).length==0){
t1.IS_DELETED=true;
}
});
}
}
handleSopClick= async function (recordId,ids){
await this.props.dispatch({
type: 'custom/save',
payload: {
['sopViewClick'+recordId]:true,
},
});
};
handleSopShowModal = (file) => {
this.setState({
sopData:{ids:file.response.Data,id:file.response.Data},
sopVisible: true
},()=>{
this.handleSopClick(file.response.Data,file.response.Data);
});
};
handleSopCloseModal = () => {
this.setState({
sopVisible: false
});
};
onRenderHeadControl(params){
const {colConfig,record}=params;
if(colConfig.field==='Nav_Files.Nav_ImgFile.FILE_NAME'){
const that=this;
const uploadSopProps = {
name: 'file',
action: config.serviceHost('api/PF/File/UploadFileToImage'),
data:{OrgId:this.props.login.OrgId},
fileList:this.state.updateLoadFileList,
onPreview:function(file){
that.handleSopShowModal(file);
},
onChange(info) {
that.setState({
updateLoadFileList:info.fileList,
});
if (info.file.status !== 'uploading') {
// that.setState({
// updateLoadFileList:info.fileList,
// });
}
if (info.file.status === 'done') {
message.success(`${info.file.name} file uploaded successfully`);
} else if (info.file.status === 'error') {
message.error(`${info.file.name} file upload failed.`);
}
},
};
return <>
<Modal visible={this.state.sopVisible} maskClosable={false} onCancel={this.handleSopCloseModal} footer={false} width={"86%"}>
<FormPage formCode={'WO012'} data={this.state.sopData}/>
</Modal>
<Upload {...uploadSopProps}>
<Button>
<Icon type="upload" /> 上传图片
</Button>
</Upload>
</>
}
return super.onRenderHeadControl(params);
}
}
export default connect(({ login, loading,custom,app }) => ({ login, loading,custom,app}))(Form.create()(ProductSopEditPage));