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 (
公出详细列表(全部)
公出时间 : { this.setState({ releaseDate: dataString }); }} />
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;