import React, { Component } from "react";
import { AutoComplete, Button, Form, Input, message, Modal, Select, Spin } from "antd";
import $ from "jquery";
import ImgList from "../../common/imgList";
import { splitUrl } from "../../tools";
const FormItem = Form.Item;
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
const PicturesWall = React.createClass({
getInitialState() {
return {
previewVisible: false,
previewImage: "",
fileList: this.props.pictureUrl,
};
},
getDefaultProps() {
return {
changeClick: this.modifyChange,
};
},
handleCancel() {
this.setState({ previewVisible: false });
},
handlePreview(file) {
this.setState({
previewImage: file.url || file.thumbUrl,
previewVisible: true,
});
},
handleChange(info) {
let fileList = info.fileList;
this.setState({ fileList });
this.props.fileList(fileList);
},
componentWillReceiveProps(nextProps) {
this.state.fileList = nextProps.pictureUrl;
},
render() {
const { fileList } = this.state;
return (
{
this.handleChange(infor);
}}
fileList={fileList}
/>
);
},
});
class ProjectOperationVip extends Component {
constructor(props) {
super(props);
this.state = {
commodityName: '',
commodityQuantity: '',
patentType: 0,
officialCost: '',
costReduction: '',
commodityPrice: '',
main: '',
taskComment: '',
declarationBatch: '',
ifCertificationFee: '',
displayFees: "none",
customerArr: [],
patentTypeList: [],
loading: false,
patentTransfer: props.dataInfor ? props.dataInfor.patentTransfer : 0, //收否为专利转让 0 否 1 是
orgCodeUrl: [],
}
this.onSubmit = this.onSubmit.bind(this);
this.httpChange = this.httpChange.bind(this);
this.selectAuto = this.selectAuto.bind(this);
this.setValue = this.setValue.bind(this);
this.getOrgCodeUrl = this.getOrgCodeUrl.bind(this);
}
componentDidMount() {
this.setValue();
}
setValue() {
const { dataInfor } = this.props;
if (!(dataInfor && Object.keys(dataInfor).length > 0)) { return; }
this.setState({
fid: dataInfor.id,
commodityId: dataInfor.commodityId, //项目ID
commodityName: dataInfor.commodityName, //项目名称
commodityQuantity: dataInfor.commodityQuantity, // 数量
memberType: dataInfor.memberType.toString(),// 付款情况
taskComment: dataInfor.taskComment, // 备注
orgCodeUrl: dataInfor.pictureUrl ? splitUrl(dataInfor.pictureUrl, ",", globalConfig.avatarHost + "/upload") : [],// 附件
});
}
//
getOrgCodeUrl(e) {
this.setState({ orgCodeUrl: e });
}
// 新建会员项目
onSubmit() {
let pictureUrl = [];
if (this.state.orgCodeUrl.length) {
let picArr = [];
this.state.orgCodeUrl.map(function (item) {
if (
item.response &&
item.response.data &&
item.response.data.length
) {
picArr.push(item.response.data);
}
});
pictureUrl = picArr.join(",");
}
if (this.state.commodityId === undefined || !this.state.commodityId) {
message.warning("服务名称不匹配!");
return
}
let reg = /^([0]|[1-9][0-9]*)$/;
if (
!this.state.commodityQuantity ||
!reg.test(this.state.commodityQuantity)
) {
message.warning("请输入正确商品数量!");
return
}
if (this.state.memberType === undefined) {
message.warning("请选择付款情况!");
return
}
if (this.state.memberType == "1" || this.state.memberType == "2") {
if (typeof pictureUrl !== "string") {
message.warning("请上传附件!");
return
}
}
this.setState({
loading: true,
});
let infor = {
orderNo: this.props.orderNo, //订单编号
commodityId: this.state.commodityId, //项目编号
commodityName: this.state.commodityName, //项目名称
commodityQuantity: this.state.commodityQuantity, //商品数量
commodityPrice: 0, //签单总价
taskComment: this.state.taskComment, //服务说明
memberType: this.state.memberType,//会员付款状态
pictureUrl: pictureUrl.length ? pictureUrl : "",//附件
}
$.ajax({
method: "POST",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/orderProject/addMemberProject",
data: infor,
}).done(
function (data) {
this.setState({
loading: false,
});
if (!data.error.length) {
Modal.success({
title: '保存成功!',
content: (
已提出会员项目申请!请在
“订单管理-我的会员项目“
跟进查看会员项目的审核状态,审核通过,即表示添加会员项目完成!!!
),
});
this.props.onCancel();
} else {
message.warning(data.error[0].message);
}
}.bind(this)
);
}
// 修改会员项目
onChange() {
let pictureUrl = [];
if (this.state.orgCodeUrl.length) {
let picArr = [];
this.state.orgCodeUrl.map(function (item) {
if (
item.response &&
item.response.data &&
item.response.data.length
) {
picArr.push(item.response.data);
}
});
pictureUrl = picArr.join(",");
}
if (this.state.commodityId === undefined || !this.state.commodityId) {
message.warning("服务名称不匹配!");
return
}
let reg = /^([0]|[1-9][0-9]*)$/;
if (
!this.state.commodityQuantity ||
!reg.test(this.state.commodityQuantity)
) {
message.warning("请输入正确商品数量!");
return false;
}
if (this.state.memberType === undefined) {
message.warning("请选择付款情况!");
return
}
if (this.state.memberType == "1" || this.state.memberType == "2") {
if (typeof pictureUrl !== "string") {
message.warning("请上传附件!");
return
}
}
this.setState({
loading: true,
});
$.ajax({
method: "POST",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/orderProject/updateMemberProject",
data: {
id: this.state.fid, //任务ID
commodityId: this.state.commodityId, //项目ID
commodityName: this.state.commodityName, //项目名称
orderNo: this.props.orderNo, //订单编号
commodityQuantity: this.state.commodityQuantity, //数量
taskComment: this.state.taskComment, //备注
memberType: this.state.memberType,//会员付款状态
pictureUrl: pictureUrl.length ? pictureUrl : "",//附件
},
}).done(
function (data) {
this.setState({
loading: false,
});
if (!data.error.length) {
message.success("保存成功!");
this.props.onCancel();
} else {
message.warning(data.error[0].message);
}
}.bind(this)
);
}
httpChange(e) {
this.setState({
commodityName: e,
});
if (e.length >= 1) {
this.supervisor(e);
}
}
//加载(自动补全)
supervisor(e) {
//服务名称自动补全
let api = "/api/admin/order/getBusinessProjectByName";
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + api,
data: {
businessName: e,
cname: "高新会员服务",
},
success: function (data) {
let thedata = data.data;
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thedata = {};
}
this.setState({
customerArr: thedata,
});
}.bind(this),
}).always(
function () {
}.bind(this)
);
}
//上级主管输入框失去焦点是判断客户是否存在
selectAuto(value) {
const { customerArr } = this.state;
const newdataSources = JSON.stringify(customerArr) == "{}" ? [] : customerArr;
this.setState({
commodityName: value,
commodityId: newdataSources.find((item) => item.bname == value).id,
});
}
render() {
let options = this.state.customerArr.map((group, index) => (
{group.bname}
));
const { readOnly } = this.props;
return (
)
}
}
export default ProjectOperationVip;