import React,{ Component } from 'react';
import {
AutoComplete,
Button,
DatePicker,
Input,
message,
Modal,
Select,
Spin,
Table,
Tabs,
Tag,
Tooltip
} from "antd";
import {ShowModal,splitUrl,getClockState} from "@/tools";
import {clockState} from "@/dataDic";
import {ChooseList} from "../../order/orderNew/chooseList";
import $ from "jquery/src/ajax";
import './index.less';
import moment from "moment";
import ImgList from "../../../common/imgList";
const {TabPane} = Tabs;
const { RangePicker } = DatePicker;
class PublicSummary extends Component{
constructor(props) {
super(props);
this.state={
pageNo:1,
loading:false,
changeList:[],
annexUrlArr:[],
photoUrlArr:[],
imgListVisible:false,
columns: [
{
title: "编号",
dataIndex: "key",
key: "key",
width: 45
},
{
title: "客户名称",
dataIndex: "nickname",
key: "nickname",
width: 140,
render: (text) => {
return (
{text}
)
},
},
{
title: "跟单人",
dataIndex: "sname",
key: "sname",
width: 100,
render: (text) => {
return (
{text}
)
},
},
{
title: "公出申请人",
dataIndex: "aname",
key: "aname",
width: 100,
render: (text) => {
return (
{text}
)
},
},
{
title: "申请时间",
dataIndex: "createTimes",
key: "createTimes",
width: 130
},
{
title: "公出时间",
dataIndex: "releaseStarts",
key: "releaseStarts",
width: 130,
render: (text, record) => (
{text}
至
{record.releaseEnds}
)
},
{
title: "公出地点",
dataIndex: "userName",
key: "userName",
width: 120,
render: (text) => {
return (
{text}
)
},
},
{
title: "公出时长(时)",
dataIndex: "duration",
key: "duration",
width: 50
},
{
title: "打卡时间",
dataIndex: "clockInTimes",
key: "clockInTimes",
width: 130
},
{
title: "审核状态",
dataIndex: "status",
key: "status",
width: 40,
render: (text) => (
{getClockState(text).title}
)
},
{
title: "打卡状态",
dataIndex: "clockIn",
key: "clockIn",
width: 60,
render: (text) => (
text === 1 ? '已打卡' :
text === 0 ? '未打卡' : ''
)
},
{
title: "公出原因/计划",
dataIndex: "remarks",
key: "remarks",
width: 155,
render: (text) => {
return ({text}
)
},
},
{
title: "补充",
dataIndex: "supplement",
key: "supplement",
width: 155,
render: (text) => {
return ({text}
)
},
},
{
title: "审核/指导",
dataIndex: "auditInfo",
key: "auditInfo",
width: 155,
render: (text) => {
return ({text}
)
},
},
{
title: "操作",
dataIndex: "annexUrl",
key: "annexUrl",
render: (text,record) => (
)
},
],
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function(page) {
this.loadData(page);
}.bind(this),
showTotal: function(total) {
return "共" + total + "条数据";
}
},
dataSource: [],
releaseDate:[],
status:undefined,
clockIn:undefined,
depId:undefined,
theTypes:undefined,
theTypes1:undefined,
theCustomerTypes:undefined,
}
this.loadData = this.loadData.bind(this);
this.resetAll = this.resetAll.bind(this);
this.changeList = this.changeList.bind(this);
this.selectSuperId = this.selectSuperId.bind(this);
this.supervisor = this.supervisor.bind(this);
this.httpChange = this.httpChange.bind(this);
this.blurChange = this.blurChange.bind(this);
this.selectAuto = this.selectAuto.bind(this);
this.httpChange1 = this.httpChange1.bind(this);
this.blurChange1 = this.blurChange1.bind(this);
this.selectAuto1 = this.selectAuto1.bind(this);
this.getCustomer = this.getCustomer.bind(this);
this.selectCustomerAuto = this.selectCustomerAuto.bind(this);
this.httpCustomerChange = this.httpCustomerChange.bind(this);
this.blurCustomerChange = this.blurCustomerChange.bind(this);
this.exportExec = this.exportExec.bind(this);
}
//获取上级组织
selectSuperId() {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/organization/selectSuperId",
data:{},
success: function (data) {
let theArr = [];
if (data.error && data.error.length === 0) {
for(let i=0;i{theData.name}
);
};
this.setState({
contactsOption: theArr,
});
}else{
message.warning(data.error[0].message);
}
}.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
});
}
loadData(pageNo) {
this.setState({
loading:true
})
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/release/publicReleaseDtails",
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
releaseStart:this.state.releaseDate[0] || undefined,
releaseEnd:this.state.releaseDate[1] || undefined,
aid:this.state.theTypes || undefined,
sid:this.state.theTypes1 || undefined,
uid:this.state.theCustomerTypes,
status:this.state.status,
clockIn:this.state.clockIn,
depId:this.state.depId || undefined
},
success: function(data) {
ShowModal(this);
let theArr = [];
this.setState({
loading:false
})
if (data.error && data.error.length === 0) {
for (let i = 0; i < data.data.list.length; i++) {
let thisdata = data.data.list[i];
thisdata.key=(data.data.pageNo - 1) * data.data.pageSize + i + 1;
theArr.push(thisdata);
}
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,
pageNo:data.data.pageNo
});
}else{
message.warning(data.error[0].message);
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
}
resetAll() {
this.setState({
releaseDate:[],
theCustomerTypes:undefined,
status:undefined,
clockIn:undefined,
depId:undefined,
auto:'',
auto1:'',
customer:'',
theTypes:undefined,
theTypes1:undefined,
},()=>{
this.loadData();
})
}
supervisor(e) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/listAdminByName",
data: {
adminName: e,
},
success: function (data) {
if (data.error && data.error.length === 0) {
this.setState({
customerArr: data.data,
});
}else{
message.warning(data.error[0].message);
}
}.bind(this),
}).always(
function () {
}.bind(this)
);
}
supervisor1(e) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/listAdminByName",
data: {
adminName: e,
},
success: function (data) {
if (data.error && data.error.length === 0) {
this.setState({
customerArr1: data.data,
});
}else{
message.warning(data.error[0].message);
}
}.bind(this),
}).always(
function () {
}.bind(this)
);
}
httpChange(e) {
if (e.length >= 1) {
this.supervisor(e);
}
this.setState({
auto: e,
});
}
httpChange1(e) {
if (e.length >= 1) {
this.supervisor1(e);
}
this.setState({
auto1: e,
});
}
selectAuto(value, options) {
this.setState({
auto: value,
});
}
selectAuto1(value, options) {
this.setState({
auto1: value,
});
}
httpCustomerChange(e) {
if (e.length >= 1) {
this.getCustomer(e);
}
this.setState({
customer: e,
});
}
selectCustomerAuto(value, options) {
this.setState({
customer: value,
});
}
getCustomer(e) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/getUserByName",
data: {
name: e,
},
success: function (data) {
if (data.error && data.error.length === 0) {
this.setState({
customerList: data.data,
});
}else{
message.warning(data.error[0].message);
}
}.bind(this),
}).always(
function () {
}.bind(this)
);
}
blurCustomerChange(e) {
let theType = "";
let contactLists = this.state.customerList || [];
if (e) {
contactLists.map(function (item) {
if (item.name == e.toString()) {
theType = item.id;
}
});
}
this.setState({
theCustomerTypes: theType,
});
}
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({
theTypes: theType,
});
}
blurChange1(e) {
let theType = "";
let contactLists = this.state.customerArr1 || [];
if (e) {
contactLists.map(function (item) {
if (item.name == e.toString()) {
theType = item.id;
}
});
}
this.setState({
theTypes1: theType,
});
}
componentWillMount() {
this.loadData();
this.selectSuperId();
}
exportExec(){
this.setState({
exportPendingLoading: true
})
message.config({
duration: 20,
});
let loading = message.loading('下载中...');
let data = {
releaseStart:this.state.releaseDate[0],
releaseEnd:this.state.releaseDate[1],
aid:this.state.theTypes,
sid:this.state.theTypes1,
uid:this.state.theCustomerTypes,
status:this.state.status,
clockIn:this.state.clockIn,
depId:this.state.depId,
};
for(let i of Object.keys(data)){
if(i === 'status' || i === 'clockIn'){
if(isNaN(parseInt(data[i]))){
delete data[i]
}
}else if(!data[i]){
delete data[i]
}
}
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/release/publicReleaseDtails/export?" + $.param(data),
data:{},
success: function(data) {
if(data.error.length === 0){
this.download(data.data);
}else{
message.warning(data.error[0].message);
}
}.bind(this),
}).always(function() {
loading();
this.setState({
exportPendingLoading: false
})
}.bind(this));
}
download(fileName){
window.location.href = globalConfig.context + "/open/download?fileName=" + fileName
}
render() {
const dataSources = this.state.customerArr || [];
const dataSources1 = this.state.customerArr1 || [];
const options = dataSources.map((group) => (
{group.name}
));
const options1 = dataSources1.map((group) => (
{group.name}
));
const customerList = this.state.customerList || [];
const customerOptions = customerList.map((group) => (
{group.name}
));
return (
公出详细列表(全部)
0
? this.state.changeList
: this.state.columns
}
dataSource={this.state.dataSource}
pagination={this.state.pagination}
/>
{this.state.imgListVisible ? {this.setState({
imgListVisible:false
})}}
onCancel={()=>{this.setState({
imgListVisible:false
})}}
width='500px'
title='图片'
footer=''>
: null}
)
}
}
export default PublicSummary;