import React from 'react';
import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete} from 'antd';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import '../userMangagement.less';
import {lvl} from '../../../dataDic.js';
import {splitUrl} from '../../../tools.js';
const Option = AutoComplete.Option;
//图片组件
const PicturesWall = React.createClass({
getInitialState() {
return {
previewVisible: false,
previewImage: '',
fileList: [],
}
},
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 { previewVisible, previewImage, fileList } = this.state;
const uploadButton = (
);
return (
{fileList.length >= 4 ? null : uploadButton}
);
}
});
const NewService = Form.create()(React.createClass({
loadData() {
this.state.data = [];
this.setState({
loading: true
});
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/roles',
data: {
},
success: function (data) {
let theArr = [];
if (!data.data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
} else {
for (let i = 0; i < data.data.list.length; i++) {
let thisdata = data.data.list[i];
theArr.push({
key: i,
});
};
}
this.setState({
dataSource: theArr,
pagination: false,
});
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
},
getInitialState() {
return {
loading: false,
visible: false,
orgCodeUrl:[],
checkedKeys: [],
signBillVisible:false,
columns: [
{
title: '业务项目名称',
dataIndex: 'roleName',
key: 'roleName'
}, {
title: '项目类别',
dataIndex: 'creater1',
key: 'creater1'
},{
title: '项目数量',
dataIndex: 'roleName2',
key: 'roleName2'
}, {
title: '服务市价',
dataIndex: 'creater2',
key: 'creater2'
}, {
title: '实签价格',
dataIndex: 'roleName3',
key: 'roleName3'
}, {
title: '下单时间',
dataIndex: 'creater4',
key: 'creater4'
}, {
title: '项目说明',
dataIndex: 'roleName5',
key: 'roleName5'
}, {
title: '操作',
dataIndex: 'ABC',
key: 'ABC',
render: (text, record, index) => {
return
{this.delectRow(record)}} okText="是" cancelText="否">
}
},
]
};
},
//新建订单、编辑订单保存
handleSubmit(e) {
e.preventDefault();
let theorgCodeUrl = [];
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);
}
});
theorgCodeUrl = picArr.join(",");
};
if(this.state.orderType==undefined){
message.warning('请选择订单类型');
return false;
};
if(!this.state.customerName){
message.warning('请输入客户名称');
this.refs.customerName.focus();
return false;
};
this.props.form.validateFields((err, values) => {
if(!err) {
this.setState({
loading: true
});
let api=this.props.userDetaile?'/api/bianji':'/api/xinjian'
$.ajax({
method: "POST",
dataType: "json",
crossDomain: false,
url: globalConfig.context + api,
data: {
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.handleOk()
} else {
message.warning(data.error[0].message);
}
}.bind(this));
}
});
},
//查看基本详情基本信息
loaduser(record){
if(record){
this.state.orderList=[]
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/role/rolePermission',
data: {
id: record.id
},
success: function (data) {
let thisData = data.data;
if (!thisData) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
thisData = {};
};
this.setState({
id:thisData.id,
orderList:thisData,
orgCodeUrl: thisData.orgCodeUrl ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],
});
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
}
},
handleOk(e) {
this.setState({
visible: false,
});
this.props.closeDesc(false, true);
},
handleCancel(e) {
this.setState({
visible: false,
});
this.props.closeDesc(false);
},
//删除
delectRow(record) {
this.setState({
loading: true
});
$.ajax({
method: "POST",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "",
data: {
id:record.id
}
}).done(function (data) {
if (!data.error.length) {
message.success('删除成功!');
this.setState({
loading: false,
});
} else {
message.warning(data.error[0].message);
};
this.loadData();
}.bind(this));
},
//添加明细
addDetailed(){
this.setState({
auto:'',
autoId:'',
url:'',
addState:1,
addnextVisible: true
})
},
nextCancel() {
this.setState({
addnextVisible: false
})
},
//查看订单明细
orderDetails(record){
if(record){
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/role/rolePermission',
data: {
id: record.id
},
success: function (data) {
let thisData = data.data;
if (!thisData) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
thisData = {};
};
let idList=[];
thisData.map(function(item){
idList.push(
item.pid
)
})
this.setState({
ids:record.id,
});
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
}
},
tableRowClick(record, index) {
this.setState({
addnextVisible:true,
addState:0,
});
this.orderDetails(record)
},
getOrgCodeUrl(e) {
this.setState({ orgCodeUrl: e });
},
componentWillMount() {
},
//查看订单详情里面的各种骚操作
//受理订单
admissibleOrder(){
let idArr=this.props.datauser;
this.props.operation(idArr,'admissibleOrder')
},
//取消订单
cancelOrder(){
let idArr=this.props.datauser;
this.props.operation(idArr,'cancelOrder')
},
//作废订单
scrapOrder(){
let idArr=this.props.datauser;
this.props.operation(idArr,'scrapOrder')
},
//锁定订单
lockOrder(){
let idArr=this.props.datauser;
this.props.operation(idArr,'lockOrder')
},
//解锁订单
unlockOrder(){
let idArr=this.props.datauser;
this.props.operation(idArr,'unlockOrder')
},
//签单
signBill(){
let idArr=this.props.datauser;
this.setState({
signBillVisible:true
})
this.signBillDetaiel(idArr)
},
signBillOk(){
this.setState({
signBillVisible:false
})
},
//点击签单获取数据函数
signBillDetaiel(idArr){
if(idArr){
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/role/rolePermission',
data: {
id: idArr.id
},
success: function (data) {
let thisData = data.data;
if (!thisData) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
thisData = {};
};
this.setState({
roleName:thisData.roleName,
orgCodeUrl: thisData.orgCodeUrl ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],
});
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
}
},
//加载(自动补全)
supervisor(e){
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/selectName",
data:{
name:e
},
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 () {
this.setState({
loading: false
});
}.bind(this));
},
//上级主管输入框失去焦点是判断客户是否存在
selectAuto(value,options){
this.setState({
auto:value
})
},
blurChange(e){
let theType;
let contactLists=this.state.customerArr||[];
if (e) {
contactLists.map(function (item) {
if (item.name == e.toString()) {
theType=item.id
}
});
}
this.setState({
autoId:theType
})
},
//值改变时请求客户名称
httpChange(e){
if(e.length>=1){
this.supervisor(e);
}
this.setState({
auto:e
})
},
//新建明细保存
nextSubmit(e) {
e.preventDefault();
this.setState({
loading: true
});
let api=this.state.addState?'/api/admin/addPermission':'/api/bianji';
$.ajax({
method: "POST",
dataType: "json",
crossDomain: false,
url: globalConfig.context +api ,
data: {
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.signBillOk()
} else {
message.warning(data.error[0].message);
}
}.bind(this));
},
//签单保存
signOk(e){
e.preventDefault();
this.temporarySave(false)
},
//暂存信息
temporary(){
this.temporarySave(true)
},
//签单保存与暂存函数
temporarySave(e){
this.setState({
loading: true
});
let api=e?'/api/admin/zancun':'/api/quedingqiandan';
$.ajax({
method: "POST",
dataType: "json",
crossDomain: false,
url: globalConfig.context +api ,
data: {
id:this.props.uid?this.props.uid.id:this.props.datauser.id
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.signBillOk()
this.props.closeDesc(false,true)
} else {
message.warning(data.error[0].message);
}
}.bind(this));
},
componentWillReceiveProps(nextProps) { //props改变时触发
this.state.visible = nextProps.showDesc;
this.state.signBillVisible=nextProps.signBillVisible;
if(this.state.signBillVisible){
this.signBillDetaiel(nextProps.uid)
};
if(nextProps.userDetaile && nextProps.showDesc) {
if(nextProps.datauser && nextProps.datauser.id&&nextProps.signBillState) {
this.loaduser(nextProps.datauser);
this.loadData();
}
}else{
this.setState({
orderType:undefined,
customerName:'',
})
}
},
render() {
const FormItem = Form.Item
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
const orderDetaiel=this.state.orderList || []
const dataSources=this.state.customerArr || [];
const options = dataSources.map((group,index) =>
)
return(
)
}
}));
export default NewService;