Browse Source

新增公出汇总

HW 3 years ago
parent
commit
d3615afc94

+ 4 - 0
js/component/dataDic.js

@@ -1644,6 +1644,10 @@ module.exports = {
       value: "5",
       key: "公出打卡",
     },
+    {
+      value: "6",
+      key: "来访面谈",
+    },
   ],
 
   //行业

+ 2 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/followDetail.jsx

@@ -438,7 +438,8 @@ const FollowDetail = React.createClass({
                     <Radio value={1}>电话</Radio>
                     <Radio value={2}>QQ</Radio>
                     <Radio value={3}>微信</Radio>
-                    <Radio value={4}>邮箱</Radio>
+					<Radio value={4}>邮箱</Radio>
+					<Radio value={6}>来访面谈</Radio>
                   </Radio.Group>
                   <span className="mandatory">*</span>
                 </FormItem>

+ 21 - 4
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visit.jsx

@@ -1,13 +1,13 @@
 import React from 'react';
-import {Form, Button, Spin, message, Table, Tooltip, Input, Modal} from 'antd';
-import ajax from 'jquery/src/ajax/xhr.js';
+import {Button, Spin, message, Table, Tooltip, Input, Modal, Alert} from 'antd';
 import $ from 'jquery/src/ajax';
 import FollowDetail from '../../followDetail.jsx'
 import {getContactType} from '@/tools.js';
 import VisitDetail from './visitDetail.jsx';
 
+import PublicSupplement from '../../../../../../publicSupplement';
+
 const confirm = Modal.confirm;
-const { TextArea } = Input;
 
 const Visit = React.createClass({
 	getInitialState(){
@@ -96,7 +96,23 @@ const Visit = React.createClass({
 			render: (text, record) => {
 				return (
 					<div style={{wordBreak:"break-all"}}>
-						{text}
+						<div>{text}</div>
+						{
+							getContactType(record.contactType) === '公出打卡' && <div style={{
+								paddingTop: '15px',
+								wordBreak: "break-all",
+								display: "flex",
+								alignItems: 'flex-end'
+							}}>
+								补充说明:
+								{record.supplement}
+								{!record.readOnly &&<div style={{paddingLeft: '10px'}}>
+									<PublicSupplement infor={record} onCancel={() => {
+										this.loadVisit(this.state.ispage);
+									}}/>
+								</div>}
+							</div>
+						}
 					</div>
 				)
 			}
@@ -306,6 +322,7 @@ const Visit = React.createClass({
 	render(){
 		return(
 			<div className="clearfix">
+				<Alert message="注:面谈公出补充,沟通完后记录今天交流的情况。计划下一次什么时候再面谈?该如何面谈?该如何跟进?" banner />
 				{!this.props.isGuidanceLv ? <Button
                     onClick={(e) => {
                       e.stopPropagation();

+ 1 - 0
js/component/manageCenter/customer/NEW/signCustomer/followDetail.jsx

@@ -360,6 +360,7 @@ const FollowDetail = React.createClass({
                     <Radio value={2}>QQ</Radio>
                     <Radio value={3}>微信</Radio>
                     <Radio value={4}>邮箱</Radio>
+					<Radio value={6}>来访面谈</Radio>
                   </Radio.Group>
                   <span className="mandatory">*</span>
                 </FormItem>

+ 28 - 21
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visit.jsx

@@ -1,10 +1,11 @@
 import React from 'react';
-import {Form, Button, Spin, message, Table, Popconfirm, Tooltip} from 'antd';
+import {Form, Button, Spin, message, Table, Popconfirm, Tooltip, Alert} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import FollowDetail from '../../followDetail.jsx'
 import {getContactType} from '@/tools.js';
 import VisitDetail from './visitDetail.jsx';
+import PublicSupplement from "../../../../../../publicSupplement";
 
 const Visit = React.createClass({
 	getInitialState(){
@@ -57,6 +58,7 @@ const Visit = React.createClass({
           title: "联系人",
           dataIndex: "contacts",
           key: "contacts",
+		  width: 150,
           render: (text, record) => {
             return (
               <div>
@@ -88,13 +90,29 @@ const Visit = React.createClass({
           dataIndex: "result",
           key: "result",
 		  width: 300,
-		  render: (text, record) => {
-			return (
-				<div style={{wordBreak:"break-all"}}>
-					{text}
-				</div>
-			)
-		  }
+			render: (text, record) => {
+				return (
+					<div style={{wordBreak:"break-all"}}>
+						<div>{text}</div>
+						{
+							getContactType(record.contactType) === '公出打卡' && <div style={{
+								paddingTop: '15px',
+								wordBreak: "break-all",
+								display: "flex",
+								alignItems: 'flex-end'
+							}}>
+								补充说明:
+								{record.supplement}
+								{!record.readOnly && <div style={{paddingLeft: '10px'}}>
+									<PublicSupplement infor={record} onCancel={() => {
+										this.loadVisit(this.state.ispage);
+									}}/>
+								</div> }
+							</div>
+						}
+					</div>
+				)
+			}
         },{
           title: "跟进时间",
           dataIndex: "followTime",
@@ -154,19 +172,7 @@ const Visit = React.createClass({
 				} else {
 					for(let i = 0; i < data.data.list.length; i++) {
 						let thisdata = data.data.list[i];
-						theArr.push({
-							readOnly:thisdata.readOnly,
-							followId: thisdata.followId,
-							followTime: thisdata.followTime,
-							identifyName: thisdata.identifyName,
-							contacts: thisdata.contacts,
-							contactMobile: thisdata.contactMobile,
-							result: thisdata.result,
-							adminName: thisdata.adminName,
-							followSituation: thisdata.followSituation,
-							customerStatus: thisdata.customerStatus,
-							contactType: thisdata.contactType
-						});
+						theArr.push(thisdata);
 					};
 					this.state.paginations.current = data.data.pageNo;
 					this.state.paginations.total = data.data.totalCount;
@@ -227,6 +233,7 @@ const Visit = React.createClass({
 	render(){
 		return(
 			<div className="clearfix">
+				<Alert message="注:面谈公出补充,沟通完后记录今天交流的情况。计划下一次什么时候再面谈?该如何面谈?该如何跟进?" banner />
 				<Button
                     onClick={(e) => {
                       e.stopPropagation(), this.visit();

+ 6 - 27
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visitDetail.jsx

@@ -1,7 +1,7 @@
 import React from 'react'
 import $ from 'jquery/src/ajax';
 import {Modal, Form, Button, Spin, Table, message, Tag, Tooltip} from 'antd';
-import {getfllowSituation,getcustomerStatue,getClockState,splitUrl} from '@/tools.js';
+import {getfllowSituation,getcustomerStatue,getClockState,splitUrl,getContactType} from '@/tools.js';
 import ImgList from "../../../../../../common/imgList";
 const FormItem =Form.Item;
 
@@ -164,27 +164,6 @@ const VisitDetail = React.createClass({
 						remarks: thisdata.remarks,
 					});
 				};
-				if(parseInt(thedata.contactType)==0){
-					this.setState({
-						contactType:'外出'
-					})
-				}else if(parseInt(thedata.contactType)==1){
-					this.setState({
-						contactType:'电话'
-					})
-				}else if(parseInt(thedata.contactType)==2){
-					this.setState({
-						contactType:'QQ'
-					})
-				}else if(parseInt(thedata.contactType)==3){
-					this.setState({
-						contactType:'微信'
-					})
-				}else if(parseInt(thedata.contactType)==4){
-					this.setState({
-						contactType:'邮箱'
-					})
-				}
 				this.setState({
 					followIds: thedata.followId,
 					contacts: thedata.contacts,
@@ -192,7 +171,7 @@ const VisitDetail = React.createClass({
 					data: theArr,
 					result: thedata.result,
 					contactMobile:thedata.contactMobile,
-					// contactType: parseInt(thedata.contactType),
+					contactType:getContactType(thedata.contactType),
 					followTime: thedata.followTime,
 					followSituation: thedata.followSituation,
 					customerStatus: thedata.customerStatus,
@@ -365,7 +344,7 @@ const VisitDetail = React.createClass({
 				visitModul: true,
 				loading: true,
 			})
-			if(nextProps.followData.contactType === "0"){
+			if(nextProps.followData.contactType === "5"){
 				this.getListPublicReleaseLog(nextProps.followData.followId);
 				this.getFollowDtails(nextProps.followData.followId);
 			}
@@ -392,7 +371,7 @@ const VisitDetail = React.createClass({
 					    <Form layout="horizontal" id="demand-form" onSubmit={this.visitSubmit}>
 			    			<Spin spinning={this.state.loading}>
 			    			   	<div className="clearfix">
-									{!(this.state.contactType === '外出' && Object.keys(this.state.followDtails).length > 0) ?
+									{!(this.state.contactType === '公出打卡' && Object.keys(this.state.followDtails).length > 0) ?
 									<div>
 			    			   		<FormItem
 			                            labelCol={{ span:4 }}
@@ -431,7 +410,7 @@ const VisitDetail = React.createClass({
 					                    </FormItem>
 					                </div>
 									</div>: null}
-									{this.state.contactType === '外出' && Object.keys(this.state.followDtails).length > 0 ? <div>
+									{this.state.contactType === '公出打卡' && Object.keys(this.state.followDtails).length > 0 ? <div>
 										<div className="clearfix">
 											<FormItem
 												labelCol={{ span: 4 }}
@@ -469,7 +448,7 @@ const VisitDetail = React.createClass({
 											/>
 										</div>
 									</div> : null}
-									{!(this.state.contactType === '外出' && Object.keys(this.state.followDtails).length > 0) ? <div className="clearfix">
+									{!(this.state.contactType === '公出打卡' && Object.keys(this.state.followDtails).length > 0) ? <div className="clearfix">
 					                 	<div style={{fontSize:'18px',marginLeft:'100px',marginTop:'15px',marginBottom:'10px'}}>业务意向</div>
 					                 	<div className="clearfix" >
 		                    			    <Spin spinning={this.state.loading}>

+ 10 - 0
js/component/manageCenter/customer/content.jsx

@@ -3,6 +3,7 @@ import '../content.less';
 import LeftTab from '../leftTab';
 import {getMenu} from '../publicMenu.js'
 import {default as SignatureStatistics} from "./operationalData/signatureStatistics";
+import {default as PublicStatistics} from "./publicStatistics/index";
 
 class Content extends Component {
     constructor() {
@@ -670,6 +671,15 @@ class Content extends Component {
                     });
                 });
                 break;
+            //公出汇总
+            case 'publicSummary':
+                require.ensure([], () => {
+                    const PublicSummary = require('./publicSummary/index').default;
+                    this.setState({
+                        component: <PublicSummary/>
+                    });
+                });
+                break;
             //单位公共客户
             case 'organizationPublicCustomer':
                 require.ensure([], () => {

+ 165 - 9
js/component/manageCenter/customer/publicStatistics/detailedList.jsx

@@ -41,17 +41,36 @@ class DetailedList extends Component{
                     title: "编号",
                     dataIndex: "key",
                     key: "key",
+                    width: 45
                 },
                 {
                     title: "客户名称",
                     dataIndex: "nickname",
                     key: "nickname",
-                    width: 150,
+                    width: 100,
                     render: (text) => {
                         return (
                             <Tooltip title={text}>
                                 <div style={{
-                                    maxWidth:'150px',
+                                    width:100,
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "跟单人",
+                    dataIndex: "sname",
+                    key: "sname",
+                    width: 100,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    width:100,
                                     overflow:'hidden',
                                     textOverflow: "ellipsis",
                                     whiteSpace:'nowrap',
@@ -64,18 +83,37 @@ class DetailedList extends Component{
                     title: "公出申请人",
                     dataIndex: "aname",
                     key: "aname",
+                    width: 100,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    width:100,
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
                 },
                 {
                     title: "申请时间",
                     dataIndex: "createTimes",
                     key: "createTimes",
+                    width: 130
                 },
                 {
                     title: "公出时间",
                     dataIndex: "releaseStarts",
                     key: "releaseStarts",
+                    width: 130,
                     render: (text, record) => (
-                        text+'至'+record.releaseEnds
+                        <div>
+                            <div>{text}</div>
+                            <div style={{paddingLeft:'44px'}}>至</div>
+                            <div>{record.releaseEnds}</div>
+                        </div>
                     )
                 },
                 {
@@ -87,7 +125,7 @@ class DetailedList extends Component{
                         return (
                             <Tooltip title={text}>
                                 <div style={{
-                                    maxWidth:'120px',
+                                    width:120,
                                     overflow:'hidden',
                                     textOverflow: "ellipsis",
                                     whiteSpace:'nowrap',
@@ -100,16 +138,19 @@ class DetailedList extends Component{
                     title: "公出时长(时)",
                     dataIndex: "duration",
                     key: "duration",
+                    width: 50
                 },
                 {
                     title: "打卡时间",
                     dataIndex: "clockInTimes",
                     key: "clockInTimes",
+                    width: 130
                 },
                 {
                     title: "审核状态",
                     dataIndex: "status",
                     key: "status",
+                    width: 40,
                     render: (text) => (
                         <Tag color={getClockState(text).color}>{getClockState(text).title}</Tag>
                     )
@@ -118,19 +159,46 @@ class DetailedList extends Component{
                     title: "打卡状态",
                     dataIndex: "clockIn",
                     key: "clockIn",
+                    width: 60,
                     render: (text) => (
                         text === 1 ? '已打卡' :
                             text === 0 ? '未打卡' : ''
                     )
                 },
                 {
+                    title: "公出原因/计划",
+                    dataIndex: "remarks",
+                    key: "remarks",
+                    width: 155,
+                    render: (text) => {
+                        return (<div style={{wordBreak:"break-all"}}>{text}</div>)
+                    },
+                },
+                {
+                    title: "补充",
+                    dataIndex: "supplement",
+                    key: "supplement",
+                    width: 155,
+                    render: (text) => {
+                        return (<div style={{wordBreak:"break-all"}}>{text}</div>)
+                    },
+                },
+                {
+                    title: "审核/指导",
+                    dataIndex: "auditInfo",
+                    key: "auditInfo",
+                    width: 155,
+                    render: (text) => {
+                        return (<div style={{wordBreak:"break-all"}}>{text}</div>)
+                    },
+                },
+                {
                     title: "操作",
                     dataIndex: "annexUrl",
                     key: "annexUrl",
                     render: (text,record) => (
                         <div>
                             <Button
-                                style={{marginRight:'15px'}}
                                 type={"primary"}
                                 onClick={(e) => {
                                     e.stopPropagation();
@@ -146,7 +214,7 @@ class DetailedList extends Component{
                                     })
                                 }}
                             >
-                                查看公出附件
+                                查看附件
                             </Button>
                         </div>
                     )
@@ -170,6 +238,7 @@ class DetailedList extends Component{
             status:props.status,
             clockIn:props.clockIn,
             theTypes:props.aid,
+            theTypes1:undefined,
             theCustomerTypes:undefined,
         }
         this.loadData = this.loadData.bind(this);
@@ -177,9 +246,13 @@ class DetailedList extends Component{
         this.changeList = this.changeList.bind(this);
         this.selectSuperId = this.selectSuperId.bind(this);
         this.supervisor = this.supervisor.bind(this);
+        this.supervisor1 = this.supervisor1.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);
@@ -247,6 +320,7 @@ class DetailedList extends Component{
                 releaseStart:this.state.releaseDate[0] || undefined,
                 releaseEnd:this.state.releaseDate[1] || undefined,
                 aid:this.state.theTypes,
+                sid:this.state.theTypes1 || undefined,
                 uid:this.state.theCustomerTypes,
                 status:this.state.status,
                 clockIn:this.state.clockIn,
@@ -294,7 +368,10 @@ class DetailedList extends Component{
             status:this.props.status,
             clockIn:this.props.clockIn,
             auto:'',
-            customer:''
+            auto1:'',
+            customer:'',
+            theTypes:undefined,
+            theTypes1:undefined,
         },()=>{
             this.loadData();
         })
@@ -324,6 +401,30 @@ class DetailedList extends Component{
             }.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) {
@@ -334,6 +435,36 @@ class DetailedList extends Component{
         });
     }
 
+    httpChange1(e) {
+        if (e.length >= 1) {
+            this.supervisor1(e);
+        }
+        this.setState({
+            auto1: e,
+        });
+    }
+
+    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,
+        });
+    }
+
+    selectAuto1(value, options) {
+        this.setState({
+            auto1: value,
+        });
+    }
+
     selectAuto(value, options) {
         this.setState({
             auto: value,
@@ -398,7 +529,7 @@ class DetailedList extends Component{
     blurChange(e) {
         let theType = "";
         let contactLists = this.state.customerArr || [];
-        if (e) {
+        if (e) {customerArr1
             contactLists.map(function (item) {
                 if (item.name == e.toString()) {
                     theType = item.id;
@@ -420,6 +551,7 @@ class DetailedList extends Component{
             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,
@@ -442,11 +574,17 @@ class DetailedList extends Component{
 
     render() {
         const dataSources = this.state.customerArr || [];
+        const dataSources1 = this.state.customerArr1 || [];
         const options = dataSources.map((group) => (
             <Select.Option key={group.id} value={group.name}>
                 {group.name}
             </Select.Option>
         ));
+        const options1 = dataSources1.map((group) => (
+            <Select.Option key={group.id} value={group.name}>
+                {group.name}
+            </Select.Option>
+        ));
         const customerList = this.state.customerList || [];
         const customerOptions = customerList.map((group) => (
             <Select.Option key={group.id} value={group.name}>
@@ -460,7 +598,7 @@ class DetailedList extends Component{
                     visible={this.props.visible}
                     onOk={this.props.onCancel}
                     onCancel={this.props.onCancel}
-                    width='1200px'
+                    width='1500px'
                     title='公出详细列表'
                     footer=''
                     className="admin-desc-content">
@@ -532,6 +670,24 @@ class DetailedList extends Component{
                                             </AutoComplete>
                                         </span>
                                     <span style={{ marginRight: "10px" }}>
+                                            <AutoComplete
+                                                className="certain-category-search"
+                                                dropdownClassName="certain-category-search-dropdown"
+                                                dropdownMatchSelectWidth={false}
+                                                dropdownStyle={{ width: 120 }}
+                                                style={{ width: "120px" }}
+                                                dataSource={options1}
+                                                placeholder='输入跟单人'
+                                                value={this.state.auto1}
+                                                onChange={this.httpChange1}
+                                                filterOption={true}
+                                                onBlur={this.blurChange1}
+                                                onSelect={this.selectAuto1}
+                                            >
+                                                <Input />
+                                            </AutoComplete>
+                                        </span>
+                                    <span style={{ marginRight: "10px" }}>
                                             <span style={{marginRight:'5px',marginBottom:'10px'}}>公出时间 :</span>
                                             <RangePicker
                                                 style={{marginRight:'10px',marginBottom:'10px'}}

+ 784 - 0
js/component/manageCenter/customer/publicSummary/index.jsx

@@ -0,0 +1,784 @@
+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: 100,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    width:100,
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "跟单人",
+                    dataIndex: "sname",
+                    key: "sname",
+                    width: 100,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    width:100,
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "公出申请人",
+                    dataIndex: "aname",
+                    key: "aname",
+                    width: 100,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    width:100,
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "申请时间",
+                    dataIndex: "createTimes",
+                    key: "createTimes",
+                    width: 130
+                },
+                {
+                    title: "公出时间",
+                    dataIndex: "releaseStarts",
+                    key: "releaseStarts",
+                    width: 130,
+                    render: (text, record) => (
+                        <div>
+                            <div>{text}</div>
+                            <div style={{paddingLeft:'44px'}}>至</div>
+                            <div>{record.releaseEnds}</div>
+                        </div>
+                    )
+                },
+                {
+                    title: "公出地点",
+                    dataIndex: "userName",
+                    key: "userName",
+                    width: 120,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    width:120,
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "公出时长(时)",
+                    dataIndex: "duration",
+                    key: "duration",
+                    width: 50
+                },
+                {
+                    title: "打卡时间",
+                    dataIndex: "clockInTimes",
+                    key: "clockInTimes",
+                    width: 130
+                },
+                {
+                    title: "审核状态",
+                    dataIndex: "status",
+                    key: "status",
+                    width: 40,
+                    render: (text) => (
+                        <Tag color={getClockState(text).color}>{getClockState(text).title}</Tag>
+                    )
+                },
+                {
+                    title: "打卡状态",
+                    dataIndex: "clockIn",
+                    key: "clockIn",
+                    width: 60,
+                    render: (text) => (
+                        text === 1 ? '已打卡' :
+                            text === 0 ? '未打卡' : ''
+                    )
+                },
+                {
+                    title: "公出原因/计划",
+                    dataIndex: "remarks",
+                    key: "remarks",
+                    width: 155,
+                    render: (text) => {
+                        return (<div style={{wordBreak:"break-all"}}>{text}</div>)
+                    },
+                },
+                {
+                    title: "补充",
+                    dataIndex: "supplement",
+                    key: "supplement",
+                    width: 155,
+                    render: (text) => {
+                        return (<div style={{wordBreak:"break-all"}}>{text}</div>)
+                    },
+                },
+                {
+                    title: "审核/指导",
+                    dataIndex: "auditInfo",
+                    key: "auditInfo",
+                    width: 155,
+                    render: (text) => {
+                        return (<div style={{wordBreak:"break-all"}}>{text}</div>)
+                    },
+                },
+                {
+                    title: "操作",
+                    dataIndex: "annexUrl",
+                    key: "annexUrl",
+                    render: (text,record) => (
+                        <div>
+                            <Button
+                                type={"primary"}
+                                onClick={(e) => {
+                                    e.stopPropagation();
+                                    let arr1 = text || [];
+                                    let arr2 = record.photoUrl || [];
+                                    this.setState({
+                                        annexUrlArr:splitUrl(arr1, ",", globalConfig.avatarHost + "/upload"),
+                                        photoUrlArr:splitUrl(arr2, ",", globalConfig.avatarHost + "/upload"),
+                                    },()=>{
+                                        this.setState({
+                                            imgListVisible:true
+                                        })
+                                    })
+                                }}
+                            >
+                                查看附件
+                            </Button>
+                        </div>
+                    )
+                },
+            ],
+            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<data.data.length;i++){
+                        let theData = data.data[i];
+                        theArr.push(
+                            <Select.Option value={theData.id} key={theData.id}>{theData.name}</Select.Option>
+                        );
+                    };
+                    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(){
+        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]
+            }
+
+        }
+        window.location.href =
+            globalConfig.context +
+            "/api/admin/release/publicReleaseDtails/export?" +
+            $.param(data);
+    }
+
+    render() {
+        const dataSources = this.state.customerArr || [];
+        const dataSources1 = this.state.customerArr1 || [];
+        const options = dataSources.map((group) => (
+            <Select.Option key={group.id} value={group.name}>
+                {group.name}
+            </Select.Option>
+        ));
+        const options1 = dataSources1.map((group) => (
+            <Select.Option key={group.id} value={group.name}>
+                {group.name}
+            </Select.Option>
+        ));
+        const customerList = this.state.customerList || [];
+        const customerOptions = customerList.map((group) => (
+            <Select.Option key={group.id} value={group.name}>
+                {group.name}
+            </Select.Option>
+        ));
+        return (
+            <div>
+                    <div className="user-content">
+                        <div className="content-title">
+                            <span>
+                                公出详细列表(全部)
+                            </span>
+                        </div>
+                        <Tabs defaultActiveKey="1" className="test">
+                            <TabPane tab="搜索" key="1">
+                                <div className="user-search" style={{
+                                    marginTop:'10px',
+                                    marginLeft:'10px',
+                                    marginRight:'10px'
+                                }}>
+                                       <span style={{ marginRight: "10px" }}>
+                                            <AutoComplete
+                                                className="certain-category-search"
+                                                dropdownClassName="certain-category-search-dropdown"
+                                                dropdownMatchSelectWidth={false}
+                                                dropdownStyle={{ width: 120 }}
+                                                style={{ width: "120px" }}
+                                                dataSource={customerOptions}
+                                                placeholder='输入客户名称'
+                                                value={this.state.customer}
+                                                onChange={this.httpCustomerChange}
+                                                filterOption={true}
+                                                onBlur={this.blurCustomerChange}
+                                                onSelect={this.selectCustomerAuto}
+                                            >
+                                                <Input />
+                                            </AutoComplete>
+                                        </span>
+                                    <span style={{ marginRight: "10px" }}>
+                                            <Select
+                                                placeholder="请选择审核状态"
+                                                style={{ width:200,marginLeft:10}}
+                                                value={this.state.status}
+                                                onChange={(e) => { this.setState({ status: e }) }}>
+                                                {
+                                                    clockState.map((v,k) => (
+                                                        <Select.Option key={k} value={v.id} >{v.title}</Select.Option>
+                                                    ))
+                                                }
+                                            </Select>
+                                    </span>
+                                    <span style={{ marginRight: "10px" }}>
+                                            <Select
+                                                placeholder="请选择打卡状态"
+                                                style={{ width:200,marginLeft:10}}
+                                                value={this.state.clockIn}
+                                                onChange={(e) => { this.setState({ clockIn: e }) }}>
+                                                <Select.Option value={1} >已打卡</Select.Option>
+                                                <Select.Option value={0} >未打卡</Select.Option>
+                                            </Select>
+                                    </span>
+                                    <span style={{ marginRight: "10px" }}>
+                                            <AutoComplete
+                                                className="certain-category-search"
+                                                dropdownClassName="certain-category-search-dropdown"
+                                                dropdownMatchSelectWidth={false}
+                                                dropdownStyle={{ width: 120 }}
+                                                style={{ width: "120px" }}
+                                                dataSource={options}
+                                                placeholder='输入公出申请人'
+                                                value={this.state.auto}
+                                                onChange={this.httpChange}
+                                                filterOption={true}
+                                                onBlur={this.blurChange}
+                                                onSelect={this.selectAuto}
+                                            >
+                                                <Input />
+                                            </AutoComplete>
+                                        </span>
+                                    <span style={{ marginRight: "10px" }}>
+                                            <AutoComplete
+                                                className="certain-category-search"
+                                                dropdownClassName="certain-category-search-dropdown"
+                                                dropdownMatchSelectWidth={false}
+                                                dropdownStyle={{ width: 120 }}
+                                                style={{ width: "120px" }}
+                                                dataSource={options1}
+                                                placeholder='输入跟单人'
+                                                value={this.state.auto1}
+                                                onChange={this.httpChange1}
+                                                filterOption={true}
+                                                onBlur={this.blurChange1}
+                                                onSelect={this.selectAuto1}
+                                            >
+                                                <Input />
+                                            </AutoComplete>
+                                        </span>
+                                    <span style={{ marginRight: "10px" }}>
+                                        <Select
+                                            placeholder="请选择公出部门"
+                                            style={{ width:200,marginLeft:10}}
+                                            value={this.state.depId}
+                                            onChange={(e) => { this.setState({ depId: e }) }}
+                                            notFoundContent="未获取到上级组织列表">
+                                        {this.state.contactsOption}
+                                    </Select>
+                                    </span>
+                                    <span style={{ marginRight: "10px" }}>
+                                            <span style={{marginRight:'5px',marginBottom:'10px'}}>公出时间 :</span>
+                                            <RangePicker
+                                                style={{marginRight:'10px',marginBottom:'10px'}}
+                                                value={[
+                                                    this.state.releaseDate[0]
+                                                        ? moment(this.state.releaseDate[0])
+                                                        : null,
+                                                    this.state.releaseDate[1]
+                                                        ? moment(this.state.releaseDate[1])
+                                                        : null,
+                                                ]}
+                                                onChange={(data, dataString) => {
+                                                    this.setState({ releaseDate: dataString });
+                                                }}
+                                            />
+                                        </span>
+                                    <Button type="primary" onClick={()=>{
+                                        this.loadData();
+                                    }} style={{marginRight:'10px',marginBottom:'10px'}}>搜索</Button>
+                                    <Button onClick={this.resetAll} style={{marginRight:'10px',marginBottom:'10px'}}>重置</Button>
+                                </div>
+                            </TabPane>
+                            <TabPane tab="更改表格显示数据" key="2">
+                                <div style={{ marginLeft: 10 }}>
+                                    <Spin spinning={this.state.loading}>
+                                        <ChooseList
+                                            columns={this.state.columns}
+                                            changeFn={this.changeList}
+                                            changeList={this.state.changeList}
+                                            top={55}
+                                            margin={11}
+                                        />
+                                    </Spin>
+                                </div>
+                            </TabPane>
+                            <TabPane tab="导出" key="3">
+                                <div style={{ float: "left" }}>
+                                    <Button onClick={this.exportExec} style={{ margin: 10 }}>导出excel</Button>
+                                </div>
+                            </TabPane>
+                        </Tabs>
+                        <div className="patent-table">
+                            <Spin spinning={this.state.loading}>
+                                <Table
+                                    bordered
+                                    size="middle"
+                                    scroll={{ x: 800 }}
+                                    columns={
+                                        this.state.changeList.length > 0
+                                            ? this.state.changeList
+                                            : this.state.columns
+                                    }
+                                    dataSource={this.state.dataSource}
+                                    pagination={this.state.pagination}
+                                />
+                            </Spin>
+                        </div>
+                    </div>
+                {this.state.imgListVisible ? <Modal
+                    maskClosable={false}
+                    visible={this.state.imgListVisible}
+                    onOk={()=>{this.setState({
+                        imgListVisible:false
+                    })}}
+                    onCancel={()=>{this.setState({
+                        imgListVisible:false
+                    })}}
+                    width='500px'
+                    title='图片'
+                    footer=''>
+                    <div>
+                        <div>申请附件</div>
+                        <ImgList fileList={this.state.annexUrlArr} domId='publicStatistics'/>
+                        <div style={{paddingTop:'35px'}}>打卡照片</div>
+                        <ImgList fileList={this.state.photoUrlArr} domId='publicStatistics1'/>
+                    </div>
+                </Modal> : null}
+            </div>
+
+
+        )
+    }
+}
+
+export default PublicSummary;

+ 11 - 0
js/component/manageCenter/customer/publicSummary/index.less

@@ -0,0 +1,11 @@
+.projectTable{
+  cursor: pointer;
+}
+
+.projectTable:hover{
+  background: #71a7e885 !important;
+}
+
+.ant-upload-list{
+  display: inline-block !important;
+}

+ 14 - 39
js/component/manageCenter/project/patent/patentDetails.jsx

@@ -146,34 +146,10 @@ class PatentDetails extends Component{
             message.warning('请选择专利类型')
             return;
         }
-        if(!this.state.tid){
-            message.warning('请输入项目编号')
-            return;
-        }
         if(!this.state.applyDates){
             message.warning('请选择申请日期')
             return;
         }
-        // if(!this.state.authorizationDates){
-        //     message.warning('请选择授权日期')
-        //     return;
-        // }
-        // if(!this.state.email){
-        //     message.warning('请输入邮箱')
-        //     return;
-        // }
-        // if(isNaN(parseInt(this.state.annualFeeStatus))){
-        //     message.warning('请选择年费状态')
-        //     return;
-        // }
-        // if(!this.state.holders){
-        //     message.warning('请输入权利人')
-        //     return;
-        // }
-        // if(!this.state.inventor){
-        //     message.warning('请输入发明人')
-        //     return;
-        // }
         if(!isNaN(parseInt(this.state.delayingAmount)) && this.state.delayingAmount < 0){
             message.warning('滞纳金不能小于零')
             return;
@@ -197,8 +173,8 @@ class PatentDetails extends Component{
                 name: this.state.name,
                 type: this.state.type,
                 applyDates: this.state.applyDates,
-                tid: this.state.tid,
 
+                tid: this.state.tid || undefined,
                 email: this.state.email || undefined,
                 holders: this.state.holders || undefined,
                 inventor: this.state.inventor || undefined,
@@ -323,16 +299,17 @@ class PatentDetails extends Component{
                         <Col span={8}>
                             <FormItem
                                 {...formItemLayout}
-                                label='项目编号'
+                                label='申请日期'
                                 required
                             >
                                 {
-                                    readOnly ? detailsInfor.tid :
-                                        <Input
-                                            value={this.state.tid}
-                                            onChange={(e)=>{
+                                    readOnly ? detailsInfor.applyDates:
+                                        <DatePicker
+                                            value={this.state.applyDates ? moment(this.state.applyDates) : ''}
+                                            format='YYYY-MM-DD'
+                                            onChange={(date)=>{
                                                 this.setState({
-                                                    tid:e.target.value
+                                                    applyDates:date ? moment(date).format('YYYY-MM-DD') : '',
                                                 })
                                             }}
                                         />
@@ -342,17 +319,15 @@ class PatentDetails extends Component{
                         <Col span={8}>
                             <FormItem
                                 {...formItemLayout}
-                                label='申请日期'
-                                required
+                                label='项目编号'
                             >
                                 {
-                                    readOnly ? detailsInfor.applyDates:
-                                        <DatePicker
-                                            value={this.state.applyDates ? moment(this.state.applyDates) : ''}
-                                            format='YYYY-MM-DD'
-                                            onChange={(date)=>{
+                                    readOnly ? detailsInfor.tid :
+                                        <Input
+                                            value={this.state.tid}
+                                            onChange={(e)=>{
                                                 this.setState({
-                                                    applyDates:date ? moment(date).format('YYYY-MM-DD') : '',
+                                                    tid:e.target.value
                                                 })
                                             }}
                                         />

+ 119 - 0
js/component/publicSupplement/index.jsx

@@ -0,0 +1,119 @@
+import React,{Component} from "react";
+import {Alert, Button, Input, message, Modal, Spin} from "antd";
+import $ from "jquery/src/ajax";
+
+const confirm = Modal.confirm;
+
+class PublicSupplement extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            visible:false,
+            loading:false,
+            supplement:''
+        }
+        this.addSupplement = this.addSupplement.bind(this)
+    }
+
+    addSupplement(e){
+        e.stopPropagation();
+        if(!this.state.supplement){
+            message.info('指导意见不能为空')
+            return;
+        }
+        this.setState({
+            loading: true,
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/release/addSupplement",
+            data: {
+                id:this.props.infor.prid,
+                supplement:(this.props.infor.supplement ? this.props.infor.supplement : '')+this.state.supplement
+            },
+        }).done(function(data) {
+            if(!data.error.length) {
+                message.success("发布成功");
+                this.setState({
+                    loading: false,
+                    visible: false,
+                    supplement:''
+                });
+                this.props.onCancel && this.props.onCancel();
+            } else {
+                message.warning(data.error[0].message);
+            }
+        }.bind(this));
+    }
+
+    render() {
+        return (
+            <div>
+                <Button size="small" type="primary" onClick={(e)=>{
+                    e.stopPropagation();
+                    this.setState({
+                        visible:true
+                    })
+                }}>补写公出补充</Button>
+                <Modal
+                    className="customeDetails"
+                    title="公出补充"
+                    width='500px'
+                    visible={this.state.visible}
+                    onOk={()=>{
+                        this.setState({
+                            visible: false,
+                        })
+                    }}
+                    onCancel={()=>{
+                        this.setState({
+                            visible: false,
+                        })
+                    }}
+                    footer=''
+                >
+                    <Spin spinning={this.state.loading}>
+                        <div style={{
+                            display:'flex',
+                            flexFlow:'column',
+                        }}>
+                            <Input
+                                value={this.state.supplement}
+                                style={{ height:'100px' }}
+                                placeholder="请输入公出补充"
+                                type={'textarea'}
+                                onChange={(e)=>{
+                                    this.setState({
+                                        supplement: e.target.value,
+                                    })
+                                }}
+                            />
+                            <div style={{paddingTop:'5px',color:'#F00',paddingBottom:'15px',fontSize:'10px'}}>面谈总结,沟通完后记录今天交流的情况。计划下一次什么时候再面谈?该如何面谈?该如何跟进?</div>
+                            <Button
+                                type="primary"
+                                style={{ marginTop: "10px", marginBottom: '10px' }}
+                                onClick={(e)=>{
+                                    let _this = this;
+                                    confirm({
+                                        title: '确定要提交公出补充吗?',
+                                        content: '公出补充提交成功后无法删除',
+                                        onOk() {
+                                            _this.addSupplement(e);
+                                        },
+                                        onCancel() {},
+                                    });
+                                }}
+                            >
+                                保存
+                            </Button>
+                        </div>
+                    </Spin>
+                </Modal>
+            </div>
+        );
+    }
+}
+
+export default PublicSupplement;