import React from "react";
import $ from "jquery/src/ajax";
import moment from "moment";
import "./public.less";
import {
Button,
Form,
Input,
Select,
Spin,
Table,
message,
DatePicker,
Modal,
Upload,
Tabs,
Tag,
Tooltip
} from "antd";
import Assign from "@/manageCenter/publicComponent/assign";
import ResolutionDetail from "@/resolutionDetail";
import {
getjiedian,
getProcessStatus,
getApproval,
getNewOrderType,
getLiquidationStatus,
splitUrl,
getprovince,
getRefundStatus
} from "@/tools";
import ImgList from "../../../common/imgList";
import { ChooseList } from "../../order/orderNew/chooseList";
import { getProjectName } from "../../../tools";
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
import ContentUrl from "../../order/orderNew/contentUrl";
import { salesList } from "@/dataDic.js";
const FormItem = Form.Item;
const outsourcingPaiDan = React.createClass({
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);
}
} 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)
);
},
loadData(pageNo) {
this.state.data = [];
this.setState({
selectedRowKeys: [],
selectedRowKey: [],
page: pageNo,
loading: true,
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/financial/allUnassignedOrder",
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
buyerName: this.state.nameSearch, //客户名称
orderNo: this.state.orderNoSearch,
startTime: this.state.releaseDate[0],
endTime: this.state.releaseDate[1],
processStatus: this.state.processStatusSearch,
contractNo: this.state.contractNoSearch,
departmentId: this.state.departmenttList,
outsource: 1,
},
success: function (data) {
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,
orderNo: thisdata.orderNo,
approval: thisdata.approval,
orderType: thisdata.orderType,
examineName: thisdata.examineName,
processStatus: thisdata.processStatus,
signTotalAmount: thisdata.signTotalAmount,
buyerName: thisdata.buyerName,
sellerName: thisdata.sellerName,
createTime: thisdata.createTime
? new Date(thisdata.createTime).toLocaleString()
: "",
signTime: thisdata.signTime,
contractNo: thisdata.contractNo,
financeId: thisdata.financeId,
departmentName: thisdata.departmentName,
outsourceName: thisdata.outsourceName,
});
}
}
this.state.pagination.total = data.data.totalCount;
this.state.pagination.current = data.data.pageNo;
if (data.data && data.data.list && !data.data.list.length) {
this.state.pagination.current = 0;
this.state.pagination.total = 0;
}
this.setState({
totalPage: data.data.totalPage,
dataSource: theArr,
pagination: this.state.pagination,
});
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
getInitialState() {
return {
rotateDeg: 0,
searchMore: true,
assignVisible: false,
releaseDate: [],
totalPage: 0,
attachmentUrl: [],
pictureUrl: [],
processStatusSearch: "2",
boHuivisible: false,
selectedRowKeys: [],
selectedRows: [],
modKey: "1",
width: "800px",
loading: 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",
},
{
title: "合同编号",
dataIndex: "contractNo",
key: "contractNo",
},
{
title: "下单时间",
dataIndex: "createTime",
key: "createTime",
},
{
title: "签单时间",
dataIndex: "signTime",
key: "signTime",
},
{
title: "签单客户",
dataIndex: "buyerName",
key: "buyerName",
render: (text) => {
return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
},
},
{
title: "外包公司",
dataIndex: "outsourceName",
key: "outsourceName",
render: (text) => {
return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
},
},
{
title: "流程状态",
dataIndex: "processStatus",
key: "processStatus",
render: (text, record) => {
return getProcessStatus(text, record.examineName, record.approval);
},
},
{
title: "订单部门",
dataIndex: "departmentName",
key: "departmentName",
render: (text) => {
return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
},
},
{
title: "订单总金额(万)",
dataIndex: "signTotalAmount",
key: "signTotalAmount",
},
{
title: "是否特批",
dataIndex: "approval",
key: "approval",
render: (text) => {
return getApproval(text);
},
},
{
title: "订单负责人",
dataIndex: "sellerName",
key: "sellerName",
},
{
title: "操作",
dataIndex: "caozuo",
key: "caouzo",
render: (text, recard) => {
return
{this.judgeFenpai(recard)}
;
},
},
],
columnsX: [
{
title: "业务项目名称",
dataIndex: "commodityName",
key: "commodityName",
render: (text, record) => {
return {text}{record.patentTypeName}{"-" + record.id}
}
},
{
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: "projectStatus",
key: "projectStatus",
render: (text) => {
return getProjectName(text);
},
},
{
title: "证书编号",
dataIndex: "certificateNumber",
key: "certificateNumber",
},
{
title: "是否主要项目",
dataIndex: "main",
key: "main",
render: (text) => {
return text ? "是" : "否";
},
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: (text) => {
return text && text.length > 8 ? (
{text.substr(0, 8)}...
) : (
text
);
},
},
],
columnsY: [
{
title: "流程",
dataIndex: "processName",
key: "processName",
},
{
title: "操作人",
dataIndex: "adminName",
key: "adminName",
},
{
title: "时间",
dataIndex: "createDate",
key: "createDate",
},
],
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);
},
},
],
dataSource: [],
searchTime: [,],
};
},
/* 判断是否有分派按钮 */
judgeFenpai(recard) {
if (recard.approval === 2) {
if (recard.financeId === null || recard.financeId === "") {
return (
);
} else {
return undefined;
}
} else if (recard.processStatus <= 2) {
return (
);
} else {
return undefined;
}
},
jdDate(orderNo) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
data: {
orderNo: orderNo,
},
success: function (data) {
let thisData = data.data;
if (!thisData.length) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thisData = {};
} else {
this.setState({
jsDate: thisData,
});
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
/* 分派 */
evaluate(recard) {
this.state.assignData = recard;
this.setState({
assignVisible: true,
});
},
/* 驳回 */
reject(recard) {
this.setState({
bohuiData: recard,
boHuiVisible: true,
content: "",
});
},
boHuiOk() {
this.setState({
boHuiVisible: false,
});
if (
this.state.pagination.current == this.state.totalPage &&
this.state.pagination.total % 10 == 1
) {
this.loadData(this.state.page - 1);
} else {
this.loadData(this.state.page);
}
},
boHuiCancel() {
this.setState({
boHuiVisible: false,
});
},
componentWillMount() {
this.departmentList();
this.loadData();
},
// 拆分详细
showRes(record) {
this.setState({
resVisible: true,
resRecord: record,
});
},
resCancel() {
this.setState({
resVisible: false,
});
},
tableRowClick(record) {
this.state.RowData = record;
this.setState({
showDesc: true,
visible: true,
orderNo: record.orderNo,
modKey: "1",
});
this.jdDate(record.orderNo);
this.loadXmu(record);
this.loadModal(record);
},
//详情
callBack(key) {
if (key === "2") {
this.setState({
modKey: key,
width: "1200px",
});
this.loadWaiBao();
}
if (key === "1") {
this.setState({
modKey: key,
width: "800px",
});
}
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,
width: "800px",
});
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;
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,
outsourceRemarks: thisdata.outsourceRemarks,
unitNumber: thisdata.unitNumber,
unitPrice: thisdata.unitPrice,
});
}.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)
);
},
loadXmu(record) {
this.state.data = [];
this.setState({
loading: true,
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
data: {
orderNo: record.orderNo,
},
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.length; i++) {
let thisdata = data.data[i];
theArr.push({
key: i,
id: thisdata.id,
orderNo: thisdata.orderNo,
commodityName: thisdata.commodityName,
commodityPrice: thisdata.commodityPrice,
commodityQuantity: thisdata.commodityQuantity,
taskStatus: thisdata.taskStatus,
taskComment: thisdata.taskComment,
main: thisdata.main,
contacts: thisdata.contacts,
contactsMobile: thisdata.contactsMobile,
cname: thisdata.cname,
certificateNumber: thisdata.certificateNumber,
projectStatus: thisdata.projectStatus,
splitStatus: thisdata.splitStatus,
});
}
}
this.setState({
dataSourceX: theArr,
});
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
loadModal(record) {
this.state.orderList = [];
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
data: {
orderNo: record.orderNo,
},
success: function (data) {
let thisData = data.data;
if (!thisData) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thisData = {};
}
this.setState({
orderUid: thisData.uid,
id: thisData.id,
orderList: thisData,
approval:
thisData.approval == 0
? thisData.approval.toString()
: thisData.approval,
orderRemarks: thisData.orderRemarks,
orgCodeUrl: thisData.contractPictureUrl
? splitUrl(
thisData.contractPictureUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [],
replenishUrl: thisData.agreementUrl
? splitUrl(
thisData.agreementUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [],
contentUrl: thisData.serviceContent
? splitUrl(
thisData.serviceContent,
",",
globalConfig.avatarHost + "/upload"
)
: [], //图片地址
orderNo: thisData.orderNo, //订单编号
buyerId: thisData.buyerId,
depName: thisData.depName,
deleteSign: thisData.deleteSign,
});
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
rizhi() {
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({
dataSourceY: theArr,
});
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
closeOrderLog() {
this.setState({
avisible: false,
});
},
load() {
if (this.state.attachmentUrl) {
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("此订单无上传文件");
}
},
getOrderLog() {
this.setState({
avisible: true,
});
this.rizhi();
},
closeModal() {
this.setState(
{
visible: false,
width: "800px",
},
() => {
this.setState({
modKey: "1",
});
}
);
},
closeDesc(e, s) {
this.state.showDesc = e;
if (s) {
this.loadData(this.state.page);
}
},
closeAssign(e, s) {
this.state.assignVisible = e;
if (s) {
if (
this.state.pagination.current == this.state.totalPage &&
this.state.pagination.total % 10 == 1
) {
this.loadData(this.state.page - 1);
} else {
this.loadData(this.state.page);
}
}
},
search() {
this.loadData();
},
downImg() {
let num = 0;
for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
num = i;
}
}
if (num == this.state.orgCodeUrl.length - 1) {
return message.warning("已经是最后一张了哦");
}
this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
this.setState({
previewImage: this.state.previewImage,
rotateDeg: 0,
});
},
upImg() {
let num = 0;
for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
num = i;
}
}
if (num == 0) {
return message.warning("已经是第一张了哦");
}
this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
this.setState({
previewImage: this.state.previewImage,
rotateDeg: 0,
});
},
rotate() {
let rotateDeg = this.state.rotateDeg + 90;
this.setState({
rotateDeg,
});
},
downImgs() {
let num = 0;
for (let i = 0; i < this.state.replenishUrl.length; i++) {
if (this.state.replenishUrl[i].url == this.state.previewImage) {
num = i;
}
}
if (num == this.state.replenishUrl.length - 1) {
return message.warning("已经是最后一张了哦");
}
this.state.previewImage = this.state.replenishUrl[num + 1].url;
this.setState({
previewImage: this.state.previewImage,
rotateDeg: 0,
});
},
upImgs() {
let num = 0;
for (let i = 0; i < this.state.replenishUrl.length; i++) {
if (this.state.replenishUrl[i].url == this.state.previewImage) {
num = i;
}
}
if (num == 0) {
return message.warning("已经是第一张了哦");
}
this.state.previewImage = this.state.replenishUrl[num - 1].url;
this.setState({
previewImage: this.state.previewImage,
rotateDeg: 0,
});
},
rotates() {
let rotateDeg = this.state.rotateDeg + 90;
this.setState({
rotateDeg,
});
},
reset() {
this.state.nameSearch = "";
this.state.releaseDate = [];
this.state.orderNoSearch = "";
this.state.departmenttList = undefined;
this.state.processStatus = [];
this.state.contractNoSearch = "";
this.loadData();
},
searchSwitch() {
this.setState({
searchMore: !this.state.searchMore,
});
},
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 { RangePicker } = DatePicker;
const { TabPane } = Tabs;
var departmentArr = this.state.departmentArr || [];
const theData = this.state.orderList || {};
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 12 },
};
const jsDate = this.state.jsDate || [];
return (
{this.state.resVisible ? (
) : (
""
)}
外包派单
{
this.setState({ orderNoSearch: e.target.value });
}}
/>
{
this.setState({
contractNoSearch: e.target.value,
});
}}
/>
{
this.setState({ nameSearch: e.target.value });
}}
/>
下单时间 :
{
this.setState({ releaseDate: dataString });
}}
/>
{this.state.visible ?
}
>
{this.state.modKey === "1" ? : }
提示:查看备注请点击表格左侧加号按钮~
(
{record.remarks}
)}
scroll={{ x: 300, y: 0 }}
/>
{this.state.companyName}
{this.state.unitPrice}
{this.state.unitNumber}
{this.state.amount}
{this.state.outsourceRemarks}
{/*
{
return {
'sign': e.name.substring(0,e.name.lastIndexOf("."))
}
}}
fileList={this.state.attachmentUrl}
showUploadList={{showRemoveIcon:false}}
onPreview={(e)=>{
let url = window.location.href.substring(7)
window.location.href="http://"+url.substring(0,url.indexOf("/"))+"/api/admin/outsourceOrg//downloadFile?path="+e.response.data
}}>
*/}
{/* {*/}
{/* this.setState({*/}
{/* previewImage: file.url || file.thumbUrl,*/}
{/* previewVisible: true,*/}
{/* });*/}
{/* }}*/}
{/*/>*/}
{this.state.visible && this.state.modKey === "3" && this.state.pictureUrl ? : }
{
this.setState({ previewVisible: false });
}}
>
{this.state.remarks}
{getRefundStatus(this.state.refundStatus)}
{this.state.auditTimes}
: }
);
},
});
export default outsourcingPaiDan;