import React from 'react';
import $ from 'jquery/src/ajax';
import moment from 'moment';
import '../../order/userMangagement.less';
import { boutique } from '../../../dataDic.js';
import '@/manageCenter/financialManage/distribute/public.less';
import {
Button,
Form,
Input,
Select,
Spin,
Table,
Switch,
Tag,
message,
DatePicker,
Modal,
AutoComplete,
Tabs,
Radio,
Tooltip,
} from 'antd';
import Assign from '@/manageCenter/publicComponent/assign';
import ResolutionDetail from "@/resolutionDetail";
import {
getProcessStatus,
getApproval,
getLiquidationStatus,
getApprovedState,
splitUrl,
getboutique,
ShowModal
} from "@/tools";
import ShowModalDiv from "@/showModal.jsx";
import OrderRiZi from "@/orderRiZi.jsx";
import { ChooseList } from "../../order/orderNew/chooseList";
import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly";
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
import ProjectOperation from "../../../common/projectOperation";
import Cascaders from "../../../common/cascaders";
const zxsglyOutSourcingPaiDan = React.createClass({
loadData(pageNo) {
this.state.data = [];
this.setState({
page: pageNo,
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/orderNewList",
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
specially: 4, //咨询师管理列表
distribution: this.state.distribution, //全部列表
name: this.state.customerName, //名称
deps: this.state.departmenttSearch, //订单部门
orderNo: this.state.orderNoSearch, //订单编号
starTime: this.state.releaseDate[0], //开始时间
endTime: this.state.releaseDate[1], //结束时间
outsource: 1
},
success: function (data) {
ShowModal(this);
let theArr = [];
if (!data.data || !data.data.list) {
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,
id: thisdata.id, //任务ID
orderNo: thisdata.orderNo, //订单编号
totalAmount: thisdata.totalAmount, //签单金额
processStatus: thisdata.processStatus, //流程状态
liquidationStatus: thisdata.liquidationStatus, //结算状态
approval: thisdata.approval, //特批状态
signDate: thisdata.signDate, //签单时间
userName: thisdata.userName, //客户名称
salesmanName: thisdata.salesmanName, //营销员名称
financeName: thisdata.financeName, //财务名称
consultantName: thisdata.consultantName, //项目负责人
createDate: thisdata.createDate, //下单时间
settlementAmount: thisdata.settlementAmount, //已交款项
depName: thisdata.depName, //部门名称
ischange: thisdata.ischange //是否通过变更生成的
});
}
}
this.state.pagination.current = data.data.pageNo;
this.state.pagination.total = data.data.totalCount;
if (data.data && data.data.list && !data.data.list.length) {
this.state.pagination.current = 0;
this.state.pagination.total = 0;
}
this.setState({
dataSource: theArr,
pagination: this.state.pagination
});
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
getInitialState() {
return {
distribution: "0",
customerArr: [],
searchMore: true,
assignVisible: false,
declarationBatch: 1,
dataInfor: {},
releaseDate: [],
attachmentUrl: [],
pictureUrl: [],
departmentArr: [],
boHuivisible: false,
selectedRowKeys: [],
selectedRows: [],
loading: false,
paginations: false,
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function (page) {
this.loadData(page);
}.bind(this),
showTotal: function (total) {
return "共" + total + "条数据";
}
},
columns: [
{
title: "订单编号",
dataIndex: "orderNo",
key: "orderNo",
render: (text, record) => {
if (record.ischange == 1) {
return (
变更
{text}
);
} else {
return {text};
}
}
},
{
title: "签单客户",
dataIndex: "userName",
key: "userName"
},
{
title: "下单时间",
dataIndex: "createDate",
key: "createDate"
},
{
title: "签单时间",
dataIndex: "signDate",
key: "signDate"
},
{
title: "订单总金额(万)",
dataIndex: "totalAmount",
key: "totalAmount"
},
{
title: "是否特批",
dataIndex: "approval",
key: "approval",
render: text => {
return getApproval(text);
}
},
{
title: "订单负责人",
dataIndex: "salesmanName",
key: "salesmanName"
},
{
title: "订单部门",
dataIndex: "depName",
key: "depName"
},
{
title: "财务负责人",
dataIndex: "financeName",
key: "financeName"
},
{
title: "项目负责人",
dataIndex: "consultantName",
key: "consultantName"
},
{
title: "分派状态",
dataIndex: "processStatus",
key: "processStatus",
render: (text, record) => {
return text == 5 || text == 6 ? getProcessStatus(text, record.examineName, record.approval) : "未分配";
}
},
{
title: "操作",
dataIndex: "caozuo",
key: "caouzo",
render: (text, record) => {
return (
{record.settlementAmount == 0 ? (
) : (
""
)}
);
}
}
],
columnsW: [
{
title: "外包名称",
dataIndex: "name",
key: "name"
},
{
title: "联系人",
dataIndex: "contacts",
key: "contacts"
},
{
title: "联系人电话",
dataIndex: "contactsMobile",
key: "contactsMobile"
},
{
title: "地址",
dataIndex: "ProvinceCity",
key: "ProvinceCity",
render: test => {
return test[0] === null
? ""
: getprovince(test[0]) +
"/" +
getprovince(test[1]) +
"/" +
getprovince(test[2]);
}
},
{
title: "地址详情",
dataIndex: "address",
key: "address",
render: text => {
return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
}
},
{
title: "创建时间",
dataIndex: "createTimes",
key: "createTimes"
},
{
title: "任务名称",
dataIndex: "tname",
key: "tname"
},
{
title: "合同编号",
dataIndex: "contractNo",
key: "contractNo"
},
{
title: "项目状态",
dataIndex: "projectStatus",
key: "projectStatus",
render: text => {
return getProjectName(text);
}
}
],
columnsrizhi: [
{
title: "流程",
dataIndex: "processName",
key: "processName"
},
{
title: "操作人",
dataIndex: "adminName",
key: "adminName"
},
{
title: "时间",
dataIndex: "createDate",
key: "createDate"
}
],
dataSource: [],
searchTime: [],
columnsX: [
{
title: "业务项目名称",
dataIndex: "commodityName",
key: "commodityName",
render: (text, record) => {
return (
{text}{record.patentTypeName}
)
}
},
{
title: "项目类别",
dataIndex: "cname",
key: "cname"
},
{
title: "项目数量",
dataIndex: "commodityQuantity",
key: "commodityQuantity",
render: (text, record) => {
if (record.splitStatus == 1) {
return (
{text}{" "}
{
e.stopPropagation();
this.showRes(record);
}}
>
已拆
);
} else {
return text;
}
}
},
{
title: "金额(万元)",
dataIndex: "commodityPrice",
key: "commodityPrice"
},
{
title: "负责人",
dataIndex: "contacts",
key: "contacts"
},
{
title: "负责人电话",
dataIndex: "contactsMobile",
key: "contactsMobile"
},
{
title: "主要项目",
dataIndex: "main",
key: "main",
render: text => {
return text ? "是" : "否";
}
},
{
title: "总年限",
dataIndex: "yearSum",
key: "yearSum",
render: (text, record) => {
return (
{["", "一年", "二年", "三年", "四年", "五年"][text]}
);
}
},
{
title: "年限",
dataIndex: "serviceLife",
key: "serviceLife",
render: (text, record) => {
return (
{!!text && JSON.parse(text).toString()}
);
}
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
render: (text, record) => {
return (
{!text ? "" : text}
);
}
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: text => {
return (
{text}
)
}
},
{
title: "操作",
dataIndex: "caozuo",
key: "caouzo",
render: (text, record) => {
return (
{this.state.processStatus == 5 || record.taskStatus == 0 ? (
) : (
""
)}
);
}
}
],
dataSourceX: []
};
},
/* 分派 */
evaluate(record) {
this.state.assignData = record;
this.setState({
assignVisible: true
});
},
componentWillMount() {
// this.departmentList();
this.loadData();
},
tableRowClick(record) {
this.state.RowData = record;
this.setState({
displayFees: "block",
visible: true,
modKey: "1"
});
this.xiangqing(record.orderNo);
this.xiangmu(record.orderNo);
this.jiedian(record.orderNo);
},
//审核不通过
examOks() {
this.setState({
loading: true
});
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/technicianBackOrder",
data: {
orderNo: this.state.orderNo,
reason: this.state.reason
},
success: function (data) {
if (data.error.length || data.data == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
message.success("该订单已被驳回~");
this.setState({
visible: false,
noVisible: false,
reason: ""
});
this.reset();
}
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
//点击拒绝
examNo(record) {
this.setState({
noVisible: true,
orderNo: record.orderNo
});
},
//关闭输入理由框
noCancel() {
this.setState({
noVisible: false,
reason: ""
});
},
//订单详情
xiangqing(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
data: {
orderNo: orderNos
},
success: function (data) {
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
let thisdata = data.data;
this.setState({
orderUid: thisdata.uid,
orderNo: thisdata.orderNo, //订单编号
contractNo: thisdata.contractNo, //合同编号
userName: thisdata.userName, //客户名称
depName: thisdata.depName, //订单部门
signDate: thisdata.signDate, //签单时间
examineName: thisdata.examineName,
processStatus: thisdata.processStatus, //流程状态
liquidationStatus: thisdata.liquidationStatus, //结算状态
contacts: thisdata.contacts, //企业联系人
contactMobile: thisdata.contactMobile, //联系人电话
legalPerson: thisdata.legalPerson, //法人
legalPersonTel: thisdata.legalPersonTel, //法人电话
firstAmount: thisdata.firstAmount, //签单金额
totalAmount: thisdata.totalAmount, //首付金额
approval: thisdata.approval, //特批状态
settlementAmount: thisdata.settlementAmount, //已收款项
orderRemarks: thisdata.orderRemarks, //订单留言
orgCodeUrl: thisdata.contractPictureUrl
? splitUrl(
thisdata.contractPictureUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [], //图片地址
salesmanName: thisdata.salesmanName, //营销员名称
salesmanMobile: thisdata.salesmanMobile, //营销员电话
financeName: thisdata.financeName, //财务名称
financeMobile: thisdata.financeMobile, //财务电话
oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
nowFinance: thisdata.nowFinance, //财务名称
nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
deleteSign: thisdata.deleteSign,
});
}
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
//项目列表
xiangmu(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
data: {
orderNo: orderNos
},
success: function (data) {
let theArr = [];
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
thisdata.key = i;
theArr.push(thisdata);
}
}
this.setState({
dataSourceX: theArr
});
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
// 拆分详细
showRes(record) {
this.setState({
resVisible: true,
resRecord: record
});
},
resCancel() {
this.setState({
resVisible: false
});
},
rizhi() {
// console.log(this.state.orderNo);
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: "/api/admin/newOrder/selectOrderLog",
data: {
orderNo: this.state.orderNo
},
success: function (data) {
let theArr = [];
let thisData = data.data;
if (!thisData.length) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thisData = {};
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
theArr.push({
processName: thisdata.processName,
adminName: thisdata.adminName,
createDate: thisdata.createDate,
remarks: thisdata.remarks
});
}
}
this.setState({
dataSourcerizhi: theArr
});
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
//查看订单日志
getOrderLog() {
this.setState({
rizhivisible: true
});
this.rizhi();
},
closeOrderLog() {
this.setState({
rizhivisible: false
});
},
load() {
if (this.state.attachmentUrl.length !== 0) {
let url = window.location.href.substring(7);
this.state.attachmentUrl.forEach(e => {
window.location.href =
"http://" +
url.substring(0, url.indexOf("/")) +
"/api/admin/outsourceOrg//downloadFile?path=" +
e.response.data;
});
} else {
message.error("此订单无上传文件");
}
},
supervisor(e, state) {
//客户名称与服务名称自动补全
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: "/api/admin/order/getBusinessProjectByName",
data: {
businessName: 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({
states: state,
customerArr: thedata
});
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
//服务值改变时请求客户名称
httpChange(e) {
this.state.gid = "";
if (e.length >= 1) {
this.supervisor(e, false);
}
this.setState({
commodityName: e
});
},
//详情
callBack(key) {
if (key === "2") {
this.setState({
modKey: key,
width: "1200px"
});
this.loadWaiBao();
}
if (key === "1") {
this.setState({
modKey: key
});
}
if (this.state.pictureUrl.length) {
let picArr = [];
this.state.pictureUrl.map(function (item) {
if (item.response && item.response.data && item.response.data.length) {
picArr.push(item.response.data);
}
});
}
if (key === "3") {
this.setState({
modKey: key
});
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url:
globalConfig.context + "/api/admin/outsourceOrg/orderOutsourceDtails",
data: {
orderNo: this.state.orderNo
},
success: function (data) {
let thisdata = data.data;
// console.log(thisdata);
if (thisdata) {
this.setState({
id: thisdata.id,
createTimes: thisdata.createTimes,
auditTimes: thisdata.auditTimes,
remarks: thisdata.remarks,
attachmentUrl: thisdata.attachmentUrl
? splitUrl(
thisdata.attachmentUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [],
pictureUrl: thisdata.pictureUrl
? splitUrl(
thisdata.pictureUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [], //图片地址
amount: thisdata.amount,
companyName: thisdata.companyName,
refundStatus: thisdata.refundStatus
});
}
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
}
},
//外包详情
loadWaiBao() {
$.ajax({
method: "get",
dataType: "json",
rossDomain: false,
url:
globalConfig.context +
"/api/admin/outsourceOrg/selectOrderOutsourceOrg",
data: {
orderNo: this.state.orderNo
},
success: function (data) {
let theArr = [];
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
let ProvinceCityArr = [];
let ProvinceS = thisdata.province; //省
let citys = thisdata.city; //市
let Areas = thisdata.area; //区
ProvinceCityArr.push(ProvinceS, citys, Areas);
theArr.push({
key: i,
id: thisdata.id,
name: thisdata.name,
contacts: thisdata.contacts, //订单编号
contactsMobile: thisdata.contactsMobile,
ProvinceCity: ProvinceCityArr[0] === null ? [] : ProvinceCityArr,
province: thisdata.province,
city: thisdata.city,
area: thisdata.area,
address: thisdata.address,
remarks: thisdata.remarks,
tid: thisdata.tid,
createTimes: thisdata.createTimes,
tname: thisdata.tname,
contractNo: thisdata.contractNo,
projectStatus: thisdata.projectStatus
});
}
}
this.setState(
{
dataSourceW: theArr
},
() => { }
);
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
//上级主管输入框失去焦点是判断客户是否存在
selectAuto(value) {
let kid = [];
let fwList = this.state.customerArr;
fwList.map(function (item) {
if (value == item.bname) {
kid = item;
}
});
if (kid.type === 1) {
this.setState({
displayFees: "block",
});
} else {
this.setState({
displayFees: "none",
});
}
this.setState({
commodityName: value,
gid: kid.id,
//commodityPrice:kid.price==0?kid.price.toString():kid.price,
commodityFirstPayment:
kid.firstPayment == 0 ? kid.firstPayment.toString() : kid.firstPayment
});
},
//点击添加项目明细
addDetailed() {
this.setState({
projectOperationVisible: true,
});
},
//节点列表
jiedian(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
data: {
orderNo: orderNos
},
success: function (data) {
let theArr = [];
let thisData = [];
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
for (let i = 0; i < data.data.length; i++) {
thisData = data.data[i];
theArr.push({
key: i,
dunSubject: thisData.dunSubject
? thisData.dunSubject.toString()
: "", //催款科目
id: thisData.id, //节点Id
money: thisData.money, //催款金额
dunStatus: thisData.dunStatus //催款状态
});
}
this.setState({
contactList: theArr
});
}
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
closeDesc(e, s) {
this.state.showDesc = e;
if (s) {
this.loadData(this.state.page);
}
},
closeAssign(e, s) {
this.state.assignVisible = e;
if (s) {
this.loadData(this.state.page);
this.xiangqing(this.state.orderNo);
this.xiangmu(this.state.orderNo);
this.jiedian(this.state.orderNo);
}
},
search() {
this.loadData();
},
reset() {
this.state.nameSearch = "";
this.state.customerName = "";
this.state.releaseDate = [];
this.state.orderNoSearch = "";
this.state.departmenttSearch = undefined;
this.state.distribution = undefined;
this.Cascaders.empty();
this.loadData(this.state.page);
},
nextCancel() {
this.setState({
projectOperationVisible: false,
gid: "",
dataInfor: {},
}, () => {
this.loadData();
this.xiangmu(this.state.orderNo);
});
},
//点击打卡项目详情
tableRowClickX(record) {
this.setState({
projectOperationVisible: true,
dataInfor: record,
})
},
searchSwitch() {
this.setState({
searchMore: !this.state.searchMore
});
},
//关闭详情
visitCancel() {
this.setState(
{
visible: false
},
() => {
this.setState({
modKey: "1"
});
}
);
// this.reset();
},
visitOk() {
this.setState({
visible: false
});
this.reset();
},
resets() {
this.state.orderNo = "";
this.state.customerName = "";
this.state.departmenttSearch = undefined;
this.state.releaseDate[0] = undefined;
this.state.releaseDate[1] = undefined;
},
//部门
departmentList() {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/organization/selectSuperId",
data: {},
success: function (data) {
let thedata = data.data;
let theArr = [];
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thedata = {};
} else {
thedata.map(function (item, index) {
theArr.push({
key: index,
name: item.name,
id: item.id
});
});
}
this.setState({
departmentArr: theArr
});
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
},
changeList(arr) {
const newArr = [];
this.state.columns.forEach(item => {
arr.forEach(val => {
if (val === item.title) {
newArr.push(item);
}
});
});
this.setState({
changeList: newArr
});
},
render() {
const { TabPane } = Tabs;
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 }
};
const dataSources = this.state.customerArr || [];
const options = dataSources.map((group, index) => (
{group.bname}
));
const FormItem = Form.Item;
const { RangePicker } = DatePicker;
let departmentArr = this.state.departmentArr || [];
return (
}>
提示:查看备注请点击表格左侧加号按钮~
(
{record.remarks}
)}
scroll={{ x: 300, y: 0 }}
/>
{/*
{this.state.companyName}
{this.state.amount}
{
return {
'sign': e.name.substring(0,e.name.lastIndexOf("."))
}
}}
fileList={this.state.attachmentUrl}
onChange={(e)=>{
this.setState({
attachmentUrl:e.fileList,
})
}}>
{
this.setState({
previewImage: file.url || file.thumbUrl,
previewVisible: true,
});
}} >
{ this.setState({ previewVisible: false }) }}>
{this.state.remarks}
{getRefundStatus(this.state.refundStatus)}
{this.state.auditTimes}
*/}
{this.state.resVisible ? (
) : (
""
)}
{/*
*/}
{this.state.projectOperationVisible ? 0 && this.state.processStatus !== 0}
orderNo={this.state.orderNo}
visible={this.state.projectOperationVisible}
dataInfor={this.state.dataInfor}
onCancel={this.nextCancel}
/> : null}
);
}
});
export default zxsglyOutSourcingPaiDan;