Bladeren bron

客户六要素

HW 3 jaren geleden
bovenliggende
commit
32247cb1e9
35 gewijzigde bestanden met toevoegingen van 2317 en 268 verwijderingen
  1. 10 1
      js/component/common/enterpriseNameChange/index.jsx
  2. 481 0
      js/component/common/enterpriseNameChange/inforChange.jsx
  3. 290 0
      js/component/common/tabelContent/index.jsx
  4. 253 28
      js/component/manageCenter/customer/NEW/intentionCustomer/addIntention.jsx
  5. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/followDetail.jsx
  6. 13 3
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionCustomer.jsx
  7. 2 0
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/contactPerson.jsx
  8. 13 14
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visit.jsx
  9. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visitDetail.jsx
  10. 2 0
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/contactPerson.jsx
  11. 12 11
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visit.jsx
  12. 1 1
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visitDetail.jsx
  13. 9 0
      js/component/manageCenter/customer/content.jsx
  14. 533 0
      js/component/manageCenter/customer/operationalData/signatureStatistics/detailedList.jsx
  15. 549 0
      js/component/manageCenter/customer/operationalData/signatureStatistics/index.jsx
  16. 13 0
      js/component/manageCenter/customer/operationalData/signatureStatistics/index.less
  17. 1 7
      js/component/manageCenter/customerService/administration/followUpDetails.jsx
  18. 1 7
      js/component/manageCenter/customerService/administration/order.jsx
  19. 3 9
      js/component/manageCenter/financialManage/distribute/approvedOutsourcing.jsx
  20. 1 7
      js/component/manageCenter/financialManage/distribute/approvedOutsourcingAll.jsx
  21. 1 7
      js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx
  22. 74 66
      js/component/manageCenter/order/orderNew/addService.jsx
  23. 1 8
      js/component/manageCenter/order/orderNew/addorders.js
  24. 1 7
      js/component/manageCenter/order/orderNew/approveds.jsx
  25. 38 22
      js/component/manageCenter/order/orderNew/changeComponent/changeApply.js
  26. 1 7
      js/component/manageCenter/order/orderNew/changeComponent/orderDetail.js
  27. 2 8
      js/component/manageCenter/order/orderNew/changeComponent/proAndCuiList.jsx
  28. 1 7
      js/component/manageCenter/order/orderNew/chargeback.jsx
  29. 3 9
      js/component/manageCenter/order/orderNew/checkOutsourcing.jsx
  30. 1 7
      js/component/manageCenter/order/orderNew/examine.jsx
  31. 1 7
      js/component/manageCenter/order/orderNew/inquiry.jsx
  32. 1 7
      js/component/manageCenter/order/orderNew/outsourcingList.jsx
  33. 1 7
      js/component/manageCenter/order/orderNew/outsourcingPro.jsx
  34. 1 8
      js/component/manageCenter/order/orderNew/reject.jsx
  35. 1 1
      package.json

+ 10 - 1
js/component/common/enterpriseNameChange/index.jsx

@@ -1,5 +1,6 @@
 import React,{Component} from "react";
 import {Button, Input, message, Modal, Popconfirm, Spin, Table, Tooltip} from "antd";
+import InforChange from './inforChange';
 
 import './index.less';
 import $ from "jquery/src/ajax";
@@ -139,8 +140,16 @@ class EnterpriseNameChange extends Component{
                             visible:true
                         })
                 }}>
-                    {this.props.type === 'journal' ? '更日志': this.props.type === 'modify' ? '企业更名': ''}
+                    {this.props.type === 'journal' ? '更日志': this.props.type === 'modify' ? '企业更名': ''}
                 </Button>
+                {
+                    this.props.changeOtherInfor ?
+                        <InforChange
+                            enterpriseId={this.props.enterpriseId}
+                            type={this.props.type}
+                            data={this.props.data}
+                        /> : null
+                }
                 <Modal
                     footer={null}
                     maskClosable={false}

+ 481 - 0
js/component/common/enterpriseNameChange/inforChange.jsx

@@ -0,0 +1,481 @@
+import React,{Component} from "react";
+import {AutoComplete, Button, Cascader, message, Modal, Popconfirm, Select, Spin, Table, Tag, Tooltip} from "antd";
+import { areaSelect,getProvince } from '@/NewDicProvinceList';
+import $ from "jquery/src/ajax";
+import TextArea from "antd/es/input/TextArea";
+
+class InforChange extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            visible:false,
+            changeType:0,
+            colunmn: [
+                {
+                    title: "操作人名称",
+                    dataIndex: "adminName",
+                    key: "adminName",
+                },
+                {
+                    title: "客户名称",
+                    dataIndex: "name",
+                    key: "name",
+                    render:(text)=>{
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'150px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    }
+                },
+                {
+                    title: "操作时间",
+                    dataIndex: "createTimes",
+                    key: "createTimes",
+                },
+            ],
+            dataSource:[],
+            inputVisible:false,
+            inputValue:'',
+
+            dataArrar:[],
+            cooperationProjects:[],
+
+            locationProvince:props.data.locationProvince,
+            businessScope:props.data.businessScope,
+            intendedProject:props.data.intendedProject
+        }
+        this.onChange = this.onChange.bind(this);
+        this.onCancel = this.onCancel.bind(this);
+        this.loadData = this.loadData.bind(this);
+        this.onOk = this.onOk.bind(this);
+        this.showInput = this.showInput.bind(this);
+        this.handleInputConfirm = this.handleInputConfirm.bind(this);
+        this.handleClose = this.handleClose.bind(this);
+        this.handleCloseCooperation = this.handleCloseCooperation.bind(this);
+        this.supervisor = this.supervisor.bind(this);
+        this.onSelect = this.onSelect.bind(this);
+    }
+
+    onChange(type){
+        this.setState({
+            visible:true,
+            changeType:type,
+        })
+    }
+
+    onCancel(){
+        this.setState({
+            visible:false,
+            loading:false,
+            changeType:0,
+
+            dataArrar:[]
+        })
+    }
+
+    loadData() {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/customer/listUserName",
+            data: {
+                uid: this.props.enterpriseId,
+            },
+            success: function (data) {
+                if (data.error.length || data.data.list == "") {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    this.setState({
+                        initialName:data.data[0] ? data.data[0].name : ''
+                    })
+                    data.data.splice(0,1);
+                    this.setState({
+                        dataSource: data.data,
+                    });
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+
+    }
+
+    onOk(){
+        const {dataArrar} = this.state;
+        if(this.state.changeType=== 0 && dataArrar.length === 0){
+            message.warning('请输入省-市-区');
+            return;
+        }
+        if(this.state.changeType=== 1 && dataArrar.length === 0){
+            message.warning('请输入企业主管产品/服务');
+            return;
+        }
+        if(this.state.changeType=== 2 && dataArrar.length === 0){
+            message.warning('请输入意向合作项目');
+            return;
+        }
+        this.setState({
+            loading: true
+        });
+        let data ={
+            uid:this.props.enterpriseId,
+        }
+        if(this.state.changeType=== 0){
+            data.province = dataArrar[0] || undefined;
+            data.city = dataArrar[1] || undefined;
+            data.area = dataArrar[2] || undefined;
+        }
+        if(this.state.changeType=== 1){
+            data.businessScope = dataArrar.join(',')
+        }
+        if(this.state.changeType=== 2){
+            let arr = [];
+            for(let i of dataArrar){
+                arr.push(i.label)
+            }
+            data.intendedProject = arr.join(',')
+        }
+        $.ajax({
+            url: globalConfig.context + "/api/admin/customer/updateUserDate",
+            method: "post",
+            data: data
+        }).done(
+            function(data) {
+                this.setState({
+                    loading: false
+                });
+                if (data.error.length === 0) {
+                    message.success("恭喜您,更改成功!");
+                    if(this.state.changeType=== 0){
+                        this.setState({
+                            locationProvince:getProvince(dataArrar[0],dataArrar[1],dataArrar[2])
+                        })
+                    }
+                    if(this.state.changeType=== 1){
+                        this.setState({
+                            businessScope:dataArrar.join(',')
+                        })
+                    }
+                    if(this.state.changeType=== 2){
+                        let arr = [];
+                        for(let i of dataArrar){
+                            arr.push(i.label)
+                        }
+                        this.setState({
+                            intendedProject:arr.join(',')
+                        })
+                    }
+                    this.onCancel();
+                }else{
+                    message.warning(data.error[0].message);
+                }
+            }.bind(this)
+        )
+    }
+
+    showInput(){
+        let str = this.state.dataArrar.join('/')
+        this.setState({
+            inputVisible: true,
+            inputValue: str
+        });
+    }
+
+    handleInputConfirm(){
+        let inputValue = this.state.inputValue;
+        let arr = inputValue.split('/');
+        let lv = true;
+        for(let i of arr){
+            if(i.length > 16){
+                message.warning('单个标签字数不能超过16个字符')
+                lv = false;
+                return;
+            }
+        }
+        if(lv){
+            arr = Array.from(new Set(arr));
+            arr = arr.filter(v=>v);
+            this.setState({
+                dataArrar:arr,
+                inputVisible: false,
+                inputValue: '',
+            });
+        }
+    }
+
+    handleClose(removedTag){
+        let dataArrar = this.state.dataArrar.filter(tag => {return tag !== removedTag});
+        this.setState({ dataArrar });
+    }
+
+    handleCloseCooperation(removedTag){
+        let dataArrar = this.state.dataArrar.filter(tag => {return tag.value !== removedTag.value});
+        this.setState({ dataArrar });
+    }
+
+    supervisor(value) {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/order/getBusinessProjectByName',
+            data: {
+                businessName: value
+            },
+            success: function (data) {
+                let thedata = data.data;
+                if (data.error.length === 0) {
+                    this.setState({
+                        cooperationProjects: thedata,
+                    });
+                }else{
+                    message.warning(data.error[0].message);
+                }
+            }.bind(this),
+        }).always(
+            function () {
+
+            }.bind(this)
+        );
+    }
+
+    onSelect(value){
+        let arr = this.state.cooperationProjects.filter(v=>v.id === value);
+        let arr1 = this.state.dataArrar.filter(v=>v.value === value);
+        if(arr.length > 0){
+            if(arr1.length > 0){
+                message.warning('选项已存在');
+            }else{
+                this.state.dataArrar.push({
+                    label: arr[0].bname,
+                    value: arr[0].id,
+                })
+                this.setState({
+                    dataArrar:this.state.dataArrar
+                })
+            }
+        }
+    }
+
+    render() {
+        return (
+            <div style={{
+                fontSize: 14,
+                fontWeight: "bold",
+                marginTop: 20,
+            }}>
+                <div style={{
+                    display:'flex',
+                    alignItems:'center',
+                    paddingBottom:'5px'
+                }}>
+                    <div style={{width:'123px'}}>省-市-区:</div>
+                    <div>
+                        {
+                            this.state.locationProvince
+                        }
+                    </div>
+                    <Button style={{marginLeft:'5px'}} type="primary" onClick={(e)=>{e.stopPropagation();this.onChange(0)}}>修改</Button>
+                </div>
+                <div style={{
+                    display:'flex',
+                    alignItems:'center',
+                    paddingBottom:'5px'
+                }}>
+                    <div style={{width:'123px'}}>企业主营产品/服务:</div>
+                    <div>
+                        {
+                            this.state.businessScope
+                        }
+                    </div>
+                    <Button style={{marginLeft:'5px'}} type="primary" onClick={(e)=>{e.stopPropagation();this.onChange(1)}}>修改</Button>
+                </div>
+                <div style={{
+                    display:'flex',
+                    alignItems:'center',
+                    paddingBottom:'5px'
+                }}>
+                    <div style={{width:'123px'}}>意向合作项目:</div>
+                    <div>
+                        {
+                            this.state.intendedProject
+                        }
+                    </div>
+                    <Button style={{marginLeft:'5px'}} type="primary" onClick={(e)=>{e.stopPropagation();this.onChange(2)}}>修改</Button>
+                </div>
+
+                <Modal
+                    footer={null}
+                    maskClosable={false}
+                    width={this.props.type === 'journal' ? '1000px': this.props.type === 'modify' ? (this.state.changeType === 0 ? '300px' : '800px'): ''}
+                    title={this.props.type === 'journal' ? '操作日志': this.props.type === 'modify' ? '信息修改': ''}
+                    visible={this.state.visible}
+                    onCancel={this.onCancel}>
+                    <div>
+                        {this.props.type === 'modify' ?
+                            <div className='enterpriseNameContent'>
+                                <div className='enterpriseNameItem'>
+                                    <div className='enterpriseNameTitle'>
+                                        {
+                                            this.state.changeType === 0 ? '省-市-区' :
+                                                this.state.changeType === 1 ? '企业主管产品/服务' :
+                                                    this.state.changeType === 2 ? '意向合作项目' : ''
+                                        }
+                                        :
+                                    </div>
+                                    <div className='enterpriseNameValue'>
+                                        {
+                                            this.state.changeType === 0 ? this.state.locationProvince :
+                                                this.state.changeType === 1 ? this.state.businessScope :
+                                                    this.state.changeType === 2 ? this.state.intendedProject : ''
+                                        }
+                                    </div>
+                                </div>
+                                <div className='enterpriseNameItem'>
+                                    <div className='enterpriseNameTitle'>更改:</div>
+                                    <div className='enterpriseNameValue'>
+                                        {
+                                            this.state.changeType === 0 ? <Cascader
+                                                    options={areaSelect()}
+                                                    placeholder="选择城市"
+                                                    onChange={(e, pre) => {
+                                                        this.setState({
+                                                            dataArrar:e
+                                                        })
+                                                    }}
+                                                /> :
+                                                this.state.changeType === 1 ?
+                                                    <div>
+                                                        <div>
+                                                            {this.state.dataArrar.map((tag) => {
+                                                                const isLongTag = tag.length > 20;
+                                                                const tagElem = (
+                                                                    <Tag closable key={tag} afterClose={() => this.handleClose(tag)}>
+                                                                        {isLongTag ? `${tag.slice(0, 20)}...` : tag}
+                                                                    </Tag>
+                                                                );
+                                                                return isLongTag ? <Tooltip title={tag} key={tag}>{tagElem}</Tooltip> : tagElem;
+                                                            })}
+                                                            {
+                                                                !this.state.inputVisible &&
+                                                                <Button
+                                                                    size="small"
+                                                                    type="primary"
+                                                                    onClick={this.showInput}>
+                                                                    + 新增主营产品
+                                                                </Button>
+                                                            }
+                                                        </div>
+                                                        {this.state.inputVisible && (<div>
+                                                            <TextArea
+                                                                style={{width:'300px',height:'100px'}}
+                                                                value={this.state.inputValue}
+                                                                onChange={(e)=>{
+                                                                    this.setState({
+                                                                        inputValue: e.target.value
+                                                                    })
+                                                                }}/>
+                                                            <div style={{color:'#f00'}}>提示:请用 / 符号隔开关键字</div>
+                                                            <div>
+                                                                <Button
+                                                                    size="small"
+                                                                    type="primary"
+                                                                    onClick={this.handleInputConfirm}>
+                                                                    确定
+                                                                </Button>
+                                                                <Button
+                                                                    size="small"
+                                                                    style={{marginLeft:'5px'}}
+                                                                    onClick={()=>{
+                                                                        this.setState({
+                                                                            inputVisible: false,
+                                                                            inputValue: ''
+                                                                        })
+                                                                    }}>
+                                                                    取消
+                                                                </Button>
+                                                            </div>
+                                                        </div>)}
+                                                    </div>
+                                                    :
+                                                    this.state.changeType === 2 ?
+                                                        <div>
+                                                            <div style={{paddingBottom: this.state.dataArrar.length === 0 ? 0 : '10px'}}>
+                                                                {this.state.dataArrar.map((tag, index) => {
+                                                                    const isLongTag = tag.label.length > 20;
+                                                                    const tagElem = (
+                                                                        <Tag closable key={tag.label} afterClose={() => this.handleCloseCooperation(tag)}>
+                                                                            {isLongTag ? `${tag.label.slice(0, 20)}...` : tag.label}
+                                                                        </Tag>
+                                                                    );
+                                                                    return isLongTag ? <Tooltip title={tag.label} key={tag.label}>{tagElem}</Tooltip> : tagElem;
+                                                                })}
+                                                            </div>
+                                                            <div>
+                                                                <AutoComplete
+                                                                    style={{ width: 200 }}
+                                                                    onSearch={this.supervisor}
+                                                                    onSelect={this.onSelect}
+                                                                    placeholder="请输入关键字"
+                                                                >
+                                                                    {
+                                                                        this.state.cooperationProjects.map(function (item) {
+                                                                            return  <Select.Option key={item.id} value={item.id}>{item.bname}</Select.Option>
+                                                                        })
+                                                                    }
+                                                                </AutoComplete>
+                                                            </div>
+                                                        </div>
+                                                        : ''
+                                        }
+                                    </div>
+                                </div>
+                            </div> : this.props.type === 'journal' ?
+                                <div>
+                                    <Spin spinning={this.state.loading} >
+                                        <Table
+                                            columns={this.state.colunmn}
+                                            dataSource={this.state.dataSource}
+                                            pagination={false}
+                                            scroll={{ x: "max-content", y: 0 }}
+                                            bordered
+                                            size="small"
+                                        />
+                                    </Spin>
+                                </div> : null
+                        }
+                        {
+                            this.props.type === 'modify' ?
+                                <Popconfirm placement="top" title="确定要修改吗?" onConfirm={(e)=>{
+                                    e.stopPropagation();
+                                    this.onOk();
+                                }} okText="确定" cancelText="取消">
+                                    <Button type='primary'>
+                                        确定修改
+                                    </Button>
+                                </Popconfirm> : null
+                        }
+                    </div>
+                </Modal>
+            </div>
+        )
+    }
+}
+
+export default InforChange;

+ 290 - 0
js/component/common/tabelContent/index.jsx

@@ -0,0 +1,290 @@
+import React,{Component} from "react";
+import {AutoComplete, Button, DatePicker, Input, message, Select, Spin, Table, Tabs} from "antd";
+import {
+    ShowModal,
+} from "@/tools";
+import {ChooseList} from "../../manageCenter/order/orderNew/chooseList";
+import $ from "jquery/src/ajax";
+import moment from "moment";
+
+const {TabPane} = Tabs;
+const { RangePicker } = DatePicker;
+
+class TabelContent extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            changeList:[],
+            dataSource:[],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function(page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function(total) {
+                    return "共" + total + "条数据";
+                }
+            },
+            searchValues:{},
+            contactsOption:[]
+        }
+        this.loadData= this.loadData.bind(this);
+        this.exportExec= this.exportExec.bind(this);
+        this.selectSuperId= this.selectSuperId.bind(this);
+    }
+
+    loadData(pageNo) {
+        this.setState({
+            loading:true
+        })
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + this.props.tabelApi,
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+            },
+            success: function(data) {
+                ShowModal(this);
+                this.setState({
+                    loading:false
+                })
+                if (data.error && data.error.length === 0) {
+                    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: this.props.dataProcessing ? this.props.dataProcessing(data) : data.data.list,
+                        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)
+        );
+    }
+
+    exportExec(){
+        let data = {
+            clockStart:this.state.releaseDate[0],
+            clockEnd:this.state.releaseDate[1],
+            createStart:this.state.createReleaseDate[0],
+            createEnd:this.state.createReleaseDate[1],
+            depId:this.state.superId,
+            aid:this.state.theTypes
+        };
+        for(let i of Object.keys(data)){
+            if(!data[i]){
+                delete data[i]
+            }
+        }
+        window.location.href =
+            globalConfig.context +
+            this.props.exportApi + "?" +
+            $.param(data);
+    }
+
+    //获取上级组织
+    selectSuperId() {
+        this.setState({
+            departmentLoading: true
+        });
+        $.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(
+                            {
+                                value:theData.id,
+                                label:theData.name
+                            }
+                        );
+                    };
+                    this.setState({
+                        contactsOption: theArr,
+                    });
+                }else{
+                    message.warning(data.error[0].message);
+                }
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                departmentLoading: false
+            });
+        }.bind(this));
+    }
+
+    componentDidMount() {
+        this.loadData();
+        if(this.props.searchList){
+            let arr = this.props.searchList.filter(v=>v.type === 'departmentSelect')
+            let arr1 = this.props.searchList.filter(v=>v.defaultValue)
+            if(arr.length > 0){
+                this.selectSuperId();
+            }
+            if(arr1.length > 0){
+                for(let i of arr1){
+                    this.state.searchValues[i.dataKey] = i.defaultValue
+                }
+            }
+        }
+    }
+
+    render() {
+        const { searchValues } = this.state;
+        return (
+            <div>
+                <Tabs defaultActiveKey="1" className="test">
+                    <TabPane tab="搜索" key="1">
+                        <div className="user-search" style={{
+                            marginTop:'10px',
+                            marginLeft:'10px',
+                            marginRight:'10px',
+                            display:'flex',
+                            alignItems:'center'
+                        }}>
+                            {
+                                (this.props.searchList || []).map((v,k)=>(
+                                    v.type === 'text' ?
+                                        <span>
+                                            <Input
+                                                key={k}
+                                                placeholder={v.placeholder}
+                                                value={v.value ? v.value : (v.defaultValue || undefined)}
+                                                style={v.style ? v.style : { width: 150, marginRight: 10}}
+                                                onChange={(e) => {
+                                                    searchValues[v.dataKey] = e.target.value
+                                                    this.setState({
+                                                        searchValues:  searchValues
+                                                    });
+                                                }}
+                                            />
+                                        </span> :
+                                        v.type === 'select' || v.type === 'departmentSelect' ?
+                                            <span style={{paddingBottom:'9px'}}>
+                                                <Spin spinning={this.state.departmentLoading}>
+                                                    {
+                                                        <Select
+                                                            key={k}
+                                                            placeholder={v.placeholder}
+                                                            style={v.style ? v.style : { width:200,marginRight: 10}}
+                                                            value={searchValues[v.dataKey] ? searchValues[v.dataKey] : (v.defaultValue || undefined)}
+                                                            onChange={(e) => {
+                                                                searchValues[v.dataKey] = String(e);
+                                                                this.setState({
+                                                                    searchValues:  searchValues
+                                                                });
+                                                            }}>
+                                                            {
+                                                                v.selectOptionList ?
+                                                                    v.selectOptionList:
+                                                                    (
+                                                                        v.type === 'departmentSelect' ?
+                                                                            this.state.contactsOption :
+                                                                            (v.selectList || [])
+                                                                    ).map((v)=>(
+                                                                        <Select.Option
+                                                                            key={v.value}
+                                                                            value={v.value}
+                                                                        >
+                                                                            {v.label}
+                                                                        </Select.Option>
+                                                                    ))
+                                                            }
+                                                        </Select>
+                                                    }
+                                                </Spin>
+                                            </span>: v.type === 'times' ?
+                                                <span style={{display:'flex'}}>
+                                                    <div style={{marginRight:'10px',marginBottom:'10px'}}>{v.title}</div>
+                                                    <span>
+                                                        <RangePicker
+                                                            style={{marginRight:'10px',marginBottom:'10px'}}
+                                                            value={[
+                                                                searchValues[v.dataKey[0]]
+                                                                    ? moment(searchValues[v.dataKey[0]])
+                                                                    : null,
+                                                                searchValues[v.dataKey[1]]
+                                                                    ? moment(searchValues[v.dataKey[1]])
+                                                                    : null,
+                                                            ]}
+                                                            onChange={(data, dataString) => {
+                                                                searchValues[v.dataKey[0]] = String(dataString[0]);
+                                                                searchValues[v.dataKey[1]] = String(dataString[1]);
+                                                                this.setState({
+                                                                    searchValues:  searchValues
+                                                                });
+                                                            }}
+                                                        />
+                                                    </span>
+                                                </span>:
+                                            null
+                                ))
+                            }
+                            <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 }}>
+                            <ChooseList
+                                columns={this.props.columns}
+                                changeFn={this.changeList}
+                                changeList={this.state.changeList}
+                                top={55}
+                                margin={11}
+                            />
+                        </div>
+                    </TabPane>
+                    {this.props.exportApi && <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, y: 0 }}
+                            columns={
+                                this.state.changeList.length > 0
+                                    ? this.state.changeList
+                                    : this.props.columns
+                            }
+                            dataSource={this.state.dataSource}
+                            pagination={this.state.pagination}
+                        />
+                    </Spin>
+                </div>
+            </div>
+        )
+    }
+}
+
+export default TabelContent;

+ 253 - 28
js/component/manageCenter/customer/NEW/intentionCustomer/addIntention.jsx

@@ -1,15 +1,23 @@
 import React from 'react';
-import { Icon,  Modal, message,  Spin, Input, Select, Button, Form ,Col,Cascader} from 'antd';
+import {Modal, message, Spin, Input, Select, Button, Form, Col, Cascader, Tag, Tooltip,AutoComplete} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import { citySelect, provinceList ,areaSelect} from '@/NewDicProvinceList';
 import {socialAttribute,customerSource} from '@/dataDic.js';
+import TextArea from "antd/es/input/TextArea";
+
+const Option = Select.Option;
+
 const AchievementDetailForm = Form.create()(React.createClass({
     getInitialState() {
         return {
             loading: false,
             data: {},
-            detailApi:''
+            detailApi:'',
+            businessScope:[],
+            inputVisible:false,
+            cooperationProjects:[],
+            selectCooperationProjects:[]
         };
     },
     handleSubmit(e) {
@@ -34,6 +42,11 @@ const AchievementDetailForm = Form.create()(React.createClass({
               message.error("请填写正确的联系人,且至少包含一个汉字");
               return false;
             };
+            if (/.*[\u4e00-\u9fa5]+.*$/.test(values.position)) {
+            } else {
+                message.error("请填写正确的职位,且至少包含一个汉字");
+                return false;
+            };
 	    	if(!values.ProvinceCity[1]) {
 			message.warning('请选择地区');
 			return false;
@@ -46,6 +59,18 @@ const AchievementDetailForm = Form.create()(React.createClass({
 	    		message.warning('电话号码字数不超过13个')
 	    		return false;
 	    	};
+            if(this.state.businessScope.length === 0){
+                message.warning('请选择主营产品')
+                return false;
+            }
+	    	if(this.state.selectCooperationProjects.length === 0){
+                message.warning('请选择意向合作项目')
+                return false;
+            }
+	    	let arr = [];
+	    	for(let i of this.state.selectCooperationProjects){
+                arr.push(i.label)
+            }
             if (!err) {
                 this.setState({
                     loading: true
@@ -59,12 +84,16 @@ const AchievementDetailForm = Form.create()(React.createClass({
                         name: values.name,
                         contacts:values.content,
                         contactMobile:values.telnum,
-                        societyTag:values.societyTagt,
+                        // societyTag:values.societyTagt,
                         //source:values.customerSource,
                         province:(values.ProvinceCity)[0],//省
 						city:(values.ProvinceCity)[1],//市
 						area:(values.ProvinceCity)[2],//区
-                        type:'1'
+                        type:'1',
+
+                        intendedProject:arr.join(','),
+                        businessScope:this.state.businessScope.join(','),
+                        position:values.position,
                     }
                 }).done(function (data) {
                     this.setState({
@@ -83,19 +112,111 @@ const AchievementDetailForm = Form.create()(React.createClass({
     componentWillMount() {
         this.state.name='';
     	this.state.content='';
+    	this.state.position='';
     	this.state.telnum='';
-    	this.state.societyTagt='0';
-    	this.state.customerSource='0'
+    	// this.state.societyTagt='0';
+    	this.state.customerSource='0';
+        this.state.inputValue='';
+        this.state.businessScope = [];
+        this.state.inputVisible = false;
+
+        this.state.cooperationProjects = [];
+        this.state.selectCooperationProjects = [];
     },
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible) {
             this.state.name='';
 	    	this.state.content='';
+	    	this.state.position = '';
 	    	this.state.telnum='';
-	    	this.state.societyTagt='0';
+	    	this.state.inputValue='';
+            this.state.businessScope = [];
+            this.state.inputVisible = false;
+            this.state.cooperationProjects = [];
+            this.state.selectCooperationProjects = [];
+	    	// this.state.societyTagt='0';
             this.props.form.resetFields();
         };
     },
+    handleClose(removedTag){
+        let businessScope = this.state.businessScope.filter(tag => {return tag !== removedTag});
+        this.setState({ businessScope });
+    },
+    handleCloseCooperation(removedTag){
+        let selectCooperationProjects = this.state.selectCooperationProjects.filter(tag => {return tag.value !== removedTag.value});
+        this.setState({ selectCooperationProjects });
+    },
+    showInput(){
+        let str = this.state.businessScope.join('/')
+        this.setState({
+            inputVisible: true,
+            inputValue: str
+        });
+    },
+    handleInputConfirm(){
+        let inputValue = this.state.inputValue;
+        let arr = inputValue.split('/');
+        let lv = true;
+        for(let i of arr){
+            if(i.length > 16){
+                message.warning('单个标签字数不能超过16个字符')
+                lv = false;
+                return;
+            }
+        }
+        if(lv){
+            arr = Array.from(new Set(arr));
+            arr = arr.filter(v=>v);
+            this.setState({
+                businessScope:arr,
+                inputVisible: false,
+                inputValue: '',
+            });
+        }
+    },
+    //加载(自动补全)
+    supervisor(value) {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/order/getBusinessProjectByName',
+            data: {
+                businessName: value
+            },
+            success: function (data) {
+                let thedata = data.data;
+                if (data.error.length === 0) {
+                    this.setState({
+                        cooperationProjects: thedata,
+                    });
+                }else{
+                    message.warning(data.error[0].message);
+                }
+            }.bind(this),
+        }).always(
+            function () {
+
+            }.bind(this)
+        );
+    },
+    onSelect(value){
+      let arr = this.state.cooperationProjects.filter(v=>v.id === value);
+      let arr1 = this.state.selectCooperationProjects.filter(v=>v.value === value);
+      if(arr.length > 0){
+          if(arr1.length > 0){
+              message.warning('选项已存在');
+          }else{
+              this.state.selectCooperationProjects.push({
+                  label: arr[0].bname,
+                  value: arr[0].id,
+              })
+              this.setState({
+                  selectCooperationProjects:this.state.selectCooperationProjects
+              })
+          }
+      }
+    },
 
     render() {
         const theData = this.state.data || {};
@@ -145,10 +266,22 @@ const AchievementDetailForm = Form.create()(React.createClass({
 		                                rules: [{ required: true, message: '此项为必填项!' }],
 		                                initialValue: this.state.content
 	                                })(
-	                                    <Input placeholder="联系人" />
+	                                    <Input placeholder="联系人姓名" />
 	                                )}
 		                    </FormItem>
 	                    </div>
+                        <div className="clearfix">
+                            <FormItem className="mid-item"
+                                      {...formItemLayout}
+                                      label="职位" >
+                                {getFieldDecorator('position', {
+                                    rules: [{ required: true, message: '此项为必填项!' }],
+                                    initialValue: this.state.position
+                                })(
+                                    <Input placeholder="联系人职位" />
+                                )}
+                            </FormItem>
+                        </div>
 	                    <div className="clearfix">
 	                    	<FormItem className="mid-item"
 		                            {...formItemLayout}
@@ -157,29 +290,121 @@ const AchievementDetailForm = Form.create()(React.createClass({
 		                                rules: [{ required: true, message: '此项为必填项!' }],
 		                                initialValue: this.state.telnum
 	                                })(
-	                               		<Input placeholder="联系电话" />
+	                               		<Input placeholder="请填写手机号,仅填座机号时,请后续补充手机号" />
 	                                )}
 		                    </FormItem>
 	                    </div>
-	                    <div className="clearfix">
-	                    	<FormItem className="mid-item"
-	                          {...formItemLayout}
-	                           label="社会属性"
-	                         >
-	                         {getFieldDecorator('societyTagt', {
-		                                rules: [{ required: true, message: '此项为必填项!' }],
-		                                initialValue: this.state.societyTagt
-	                                })(
-								  <Select placeholder="客户社会属性">
-	                                {
-	                                    socialAttribute.map(function (item) {
-	                                        return <Select.Option key={item.value} >{item.key}</Select.Option>
-	                                    })
-	                                }
-	                              </Select>
-	                            )}
-	                   		 </FormItem>
-	                    </div>
+                        <div className="clearfix">
+                            <FormItem className="mid-item"
+                                      {...formItemLayout}
+                                      required
+                                      label="主营产品" >
+                                <div>
+                                    {this.state.businessScope.map((tag, index) => {
+                                        const isLongTag = tag.length > 20;
+                                        const tagElem = (
+                                            <Tag closable key={tag} afterClose={() => this.handleClose(tag)}>
+                                                {isLongTag ? `${tag.slice(0, 20)}...` : tag}
+                                            </Tag>
+                                        );
+                                        return isLongTag ? <Tooltip title={tag} key={tag}>{tagElem}</Tooltip> : tagElem;
+                                    })}
+                                    {
+                                        !this.state.inputVisible &&
+                                        <Button
+                                            size="small"
+                                            type="primary"
+                                            onClick={this.showInput}>
+                                            + 新增主营产品
+                                        </Button>
+                                    }
+                                </div>
+                                {this.state.inputVisible && (<div>
+                                    <TextArea
+                                        style={{width:'300px',height:'100px'}}
+                                        value={this.state.inputValue}
+                                        onChange={(e)=>{
+                                            this.setState({
+                                                inputValue: e.target.value
+                                            })
+                                        }}/>
+                                    <div style={{color:'#f00'}}>提示:请用 / 符号隔开关键字</div>
+                                    <div>
+                                        <Button
+                                            size="small"
+                                            type="primary"
+                                            onClick={this.handleInputConfirm}>
+                                            确定
+                                        </Button>
+                                        <Button
+                                            size="small"
+                                            style={{marginLeft:'5px'}}
+                                            onClick={()=>{
+                                                this.setState({
+                                                    inputVisible: false,
+                                                    inputValue: ''
+                                                })
+                                            }}>
+                                            取消
+                                        </Button>
+                                    </div>
+                                </div>)}
+                            </FormItem>
+                        </div>
+                        <div className="clearfix">
+                            <FormItem
+                                className="mid-item"
+                                {...formItemLayout}
+                                required
+                                label="意向合作项目" >
+                                    <div>
+                                        <div style={{paddingBottom: this.state.selectCooperationProjects.length === 0 ? 0 : '10px'}}>
+                                            {this.state.selectCooperationProjects.map((tag, index) => {
+                                                const isLongTag = tag.label.length > 20;
+                                                const tagElem = (
+                                                    <Tag closable key={tag.label} afterClose={() => this.handleCloseCooperation(tag)}>
+                                                        {isLongTag ? `${tag.label.slice(0, 20)}...` : tag.label}
+                                                    </Tag>
+                                                );
+                                                return isLongTag ? <Tooltip title={tag.label} key={tag.label}>{tagElem}</Tooltip> : tagElem;
+                                            })}
+                                        </div>
+                                        <div>
+                                            <AutoComplete
+                                                style={{ width: 200 }}
+                                                onSearch={this.supervisor}
+                                                onSelect={this.onSelect}
+                                                placeholder="请输入关键字"
+                                            >
+                                                {
+                                                    this.state.cooperationProjects.map(function (item) {
+                                                        return  <Select.Option key={item.id} value={item.id}>{item.bname}</Select.Option>
+                                                    })
+                                                }
+                                            </AutoComplete>
+                                        </div>
+                                    </div>
+                            </FormItem>
+                        </div>
+	                    {/*<div className="clearfix">*/}
+	                    {/*	<FormItem className="mid-item"*/}
+	                    {/*      {...formItemLayout}*/}
+	                    {/*       label="社会属性"*/}
+	                    {/*     >*/}
+	                    {/*     {getFieldDecorator('societyTagt', {*/}
+		                {/*                rules: [{ required: true, message: '此项为必填项!' }],*/}
+		                {/*                initialValue: this.state.societyTagt*/}
+	                    {/*            })(*/}
+						{/*		  <Select placeholder="客户社会属性">*/}
+	                    {/*            {*/}
+	                    {/*                socialAttribute.map(function (item) {*/}
+	                    {/*                    return <Select.Option key={item.value} >{item.key}</Select.Option>*/}
+	                    {/*                })*/}
+	                    {/*            }*/}
+	                    {/*          </Select>*/}
+	                    {/*        )}*/}
+	                   	{/*	 </FormItem>*/}
+	                    {/*</div>*/}
 	                </div>
                     <FormItem wrapperCol={{ span: 12, offset: 6 }}>
                         <Button type="primary" htmlType="submit" style={{marginRight:'50px'}}>保存</Button>

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

@@ -492,7 +492,7 @@ const FollowDetail = React.createClass({
                     wrapperCol={{ span: 16 }}
                     label="跟进备注"
                   >
-                    <span className="mandatory">*</span>
+                    <span className="mandatory">*<span style={{marginLeft:'10px'}}>客户跟进情况描述(企业上年度销售额,互动情况等.)</span></span>
                     <Input
                       type="textarea"
                       rows={4}

+ 13 - 3
js/component/manageCenter/customer/NEW/intentionCustomer/intentionCustomer.jsx

@@ -168,11 +168,20 @@ const IntentionCustomer = Form.create()(
             render: (text) => {
               return (
                   <Tooltip title={text}>
-                    <div style={{
+                    <div onClick={(e)=>{
+                      e.stopPropagation();
+
+                      let input = document.getElementById("copyText");
+                      input.value = text;
+                      input.select();
+                      document.execCommand("copy");
+                      message.success('复制成功')
+                    }} style={{
                       maxWidth:'150px',
                       overflow:'hidden',
                       textOverflow: "ellipsis",
                       whiteSpace:'nowrap',
+                      cursor:"pointer",
                     }}>{text}</div>
                   </Tooltip>
               )
@@ -490,13 +499,13 @@ const IntentionCustomer = Form.create()(
     //整行点击
     tableRowClick(record, index) {
       this.state.visitModul = false;
-      this.state.RowData = record;
       this.setState({
         // selectedRowKeys: [],
         modalVisible: true,
         basicState: true,
         contactState: true,
-        modalName: record.name
+        modalName: record.name,
+        RowData : record
       });
     },
     //指定转交人自动补全
@@ -1076,6 +1085,7 @@ const IntentionCustomer = Form.create()(
           >
             请确定,是否将客户资料一并转交!选择“需要”,系统将全部客户资料一并转交!选择“不需要”,原客户资料保存您的客户资料中,请注意客户资料的更新维护,谢谢
           </Modal>}
+          <textarea id='copyText' style={{opacity:0}}/>
         </div>
       );
     },

+ 2 - 0
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/contactPerson.jsx

@@ -426,9 +426,11 @@ const ContactPerson = React.createClass({
             公司名称:{this.state.enterpriseName ? this.state.enterpriseName :  this.props.name}
             <EnterpriseNameChange
                 type='modify'
+                changeOtherInfor
                 style={{marginLeft:'20px'}}
                 enterpriseId={this.props.data.uid}
                 enterpriseName={this.props.name}
+                data={this.props.data}
                 onChangeSuccess={(value)=>{
                   this.setState({
                     enterpriseName:value

+ 13 - 14
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visit.jsx

@@ -7,6 +7,7 @@ import {getContactType} from '@/tools.js';
 import VisitDetail from './visitDetail.jsx';
 
 const confirm = Modal.confirm;
+const { TextArea } = Input;
 
 const Visit = React.createClass({
 	getInitialState(){
@@ -52,6 +53,7 @@ const Visit = React.createClass({
           title: "跟进方式",
           dataIndex: "contactType",
           key: "contactType",
+		  width: 100,
           render: (text) => {
             return getContactType(text);
           },
@@ -72,6 +74,7 @@ const Visit = React.createClass({
           title: "联系电话",
           dataIndex: "contactMobile",
           key: "contactMobile",
+		  width: 120,
           render: (text, record) => {
             return (
               <div>
@@ -89,32 +92,26 @@ const Visit = React.createClass({
           title: "跟进说明",
           dataIndex: "result",
           key: "result",
-		  width: 150,
-		  render: (text, record) => {
-			return (
-				<Tooltip placement="topLeft" title={<div style={{wordBreak:"break-all"}}>{text}</div>}>
-					<div style={{
-						cursor:"pointer",
-						width: '150px',
-						whiteSpace: 'nowrap',
-						overflow: 'hidden',
-						textOverflow: 'ellipsis',
-					}}>
+		  width: 300,
+			render: (text, record) => {
+				return (
+					<div style={{wordBreak:"break-all"}}>
 						{text}
 					</div>
-				</Tooltip>
-			);
-		  },
+				)
+			}
         },
         {
           title: "跟进时间",
           dataIndex: "followTime",
           key: "followTime",
+		  width: 125
         },
 		{
 		  title: "指导意见",
 		  dataIndex: "abc",
 		  key: "abc",
+		  width: 150,
 		  render: (text, record) => {
 			  return (
 				  <div>
@@ -151,6 +148,7 @@ const Visit = React.createClass({
 		  title: "指导时间",
 		  dataIndex: "guidanceTime",
 		  key: "guidanceTime",
+		  width: 125,
 		  render: (text, record) => {
 			  return (
 				  <span>{text ? text : ''}</span>
@@ -326,6 +324,7 @@ const Visit = React.createClass({
 	            	 columns={this.state.visitsList}
 	            	 dataSource={this.state.visitArrList}
 	            	 onRowClick={this.VisitRowClick}
+					 scroll={{ y: 440 }}
 	            	 />
 			    </Spin>
 			    <VisitDetail

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visitDetail.jsx

@@ -478,7 +478,7 @@ const VisitDetail = React.createClass({
 														wrapperCol={{ span: 16 }}
 														label="跟进备注" >
 														{
-															<span>{this.state.result}</span>
+															<span style={{wordWrap: 'breakWord'}}>{this.state.result}</span>
 														}
 													</FormItem>
 												</div>

+ 2 - 0
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/contactPerson.jsx

@@ -424,9 +424,11 @@ const ContactPerson = React.createClass({
             公司名称:{this.state.enterpriseName ? this.state.enterpriseName :  this.props.name}
             <EnterpriseNameChange
                 type='modify'
+                changeOtherInfor
                 style={{marginLeft:'20px'}}
                 enterpriseId={this.props.data.uid}
                 enterpriseName={this.props.name}
+                data={this.props.data}
                 onChangeSuccess={(value)=>{
                   this.setState({
                     enterpriseName:value

+ 12 - 11
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visit.jsx

@@ -48,6 +48,7 @@ const Visit = React.createClass({
           title: "跟进方式",
           dataIndex: "contactType",
           key: "contactType",
+		  width: 100,
           render: (text) => {
             return getContactType(text);
           },
@@ -68,6 +69,7 @@ const Visit = React.createClass({
           title: "联系电话",
           dataIndex: "contactMobile",
           key: "contactMobile",
+		  width: 120,
           render: (text, record) => {
             return (
               <div>
@@ -85,21 +87,19 @@ const Visit = React.createClass({
           title: "跟进说明",
           dataIndex: "result",
           key: "result",
-          // }, {
-          // 	title: '操作',
-          // 	dataIndex: 'ttt',
-          // 	key: 'ttt',
-          // 	render: (text, record, index) => {
-          // 		return <div>
-          //                 {!record.readOnly&&<Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
-          // 				    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
-          // 				</Popconfirm>}
-          //             </div>
-          // 	}
+		  width: 300,
+		  render: (text, record) => {
+			return (
+				<div style={{wordBreak:"break-all"}}>
+					{text}
+				</div>
+			)
+		  }
         },{
           title: "跟进时间",
           dataIndex: "followTime",
           key: "followTime",
+		  width: 125
         }
       ],
     };
@@ -243,6 +243,7 @@ const Visit = React.createClass({
 	            	 pagination={this.state.paginations}
 	            	 columns={this.state.visitsList}
 	            	 dataSource={this.state.visitArrList}
+					 scroll={{ y: 440 }}
 	            	 onRowClick={this.VisitRowClick}
 	            	 />
 			    </Spin>

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

@@ -426,7 +426,7 @@ const VisitDetail = React.createClass({
 							                wrapperCol={{ span: 16 }}
 					                        label="跟进备注" >
 					                           	{
-					                              <span>{this.state.result}</span>
+					                              <span style={{wordWrap: 'breakWord'}}>{this.state.result}</span>
 					                            }
 					                    </FormItem>
 					                </div>

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

@@ -642,6 +642,15 @@ class Content extends Component {
                     });
                 });
                 break;
+            //签单统计表
+            case 'signatureStatistics':
+                require.ensure([], () => {
+                    const SignatureStatistics = require('./operationalData/signatureStatistics').default;
+                    this.setState({
+                        component: <SignatureStatistics/>
+                    });
+                });
+                break;
             //公出统计
             case 'publicStatistics':
                 require.ensure([], () => {

+ 533 - 0
js/component/manageCenter/customer/operationalData/signatureStatistics/detailedList.jsx

@@ -0,0 +1,533 @@
+import React,{ Component } from 'react';
+import {
+    AutoComplete,
+    Button,
+    DatePicker,
+    Input,
+    message,
+    Modal,
+    Select,
+    Spin,
+    Table,
+    Tabs,
+    Tag,
+    Form,
+    Upload, 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";
+import TabelContent from "../../../../common/tabelContent";
+
+
+const {TabPane} = Tabs;
+const { RangePicker } = DatePicker;
+
+class DetailedList extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            pageNo:1,
+            loading:false,
+            changeList:[],
+            annexUrlArr:[],
+            photoUrlArr:[],
+            imgListVisible:false,
+            columns: [
+                {
+                    title: "编号",
+                    dataIndex: "key",
+                    key: "key",
+                },
+                {
+                    title: "客户名称",
+                    dataIndex: "nickname",
+                    key: "nickname",
+                    width: 150,
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            status:2,
+                            visible1:true,
+                            aid:record.aid
+                        })
+                    },
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'150px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "公出申请人",
+                    dataIndex: "aname",
+                    key: "aname",
+                },
+                {
+                    title: "申请时间",
+                    dataIndex: "createTimes",
+                    key: "createTimes",
+                },
+                {
+                    title: "公出时间",
+                    dataIndex: "releaseStarts",
+                    key: "releaseStarts",
+                    render: (text, record) => (
+                        text+'至'+record.releaseEnds
+                    )
+                },
+                {
+                    title: "公出地点",
+                    dataIndex: "userName",
+                    key: "userName",
+                    width: 120,
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'120px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "公出时长(时)",
+                    dataIndex: "duration",
+                    key: "duration",
+                },
+                {
+                    title: "打卡时间",
+                    dataIndex: "clockInTimes",
+                    key: "clockInTimes",
+                },
+                {
+                    title: "审核状态",
+                    dataIndex: "status",
+                    key: "status",
+                    render: (text) => (
+                        <Tag color={getClockState(text).color}>{getClockState(text).title}</Tag>
+                    )
+                },
+                {
+                    title: "打卡状态",
+                    dataIndex: "clockIn",
+                    key: "clockIn",
+                    render: (text) => (
+                        text === 1 ? '已打卡' :
+                            text === 0 ? '未打卡' : ''
+                    )
+                },
+                {
+                    title: "操作",
+                    dataIndex: "annexUrl",
+                    key: "annexUrl",
+                    render: (text,record) => (
+                        <div>
+                            <Button
+                                style={{marginRight:'15px'}}
+                                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:props.status,
+            clockIn:props.clockIn,
+            theTypes:props.aid,
+            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.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,
+                uid:this.state.theCustomerTypes,
+                status:this.state.status,
+                clockIn:this.state.clockIn,
+            },
+            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:this.props.status,
+            clockIn:this.props.clockIn,
+            auto:'',
+            customer:''
+        },()=>{
+            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)
+        );
+    }
+
+    httpChange(e) {
+        if (e.length >= 1) {
+            this.supervisor(e);
+        }
+        this.setState({
+            auto: e,
+        });
+    }
+
+    selectAuto(value, options) {
+        this.setState({
+            auto: 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,
+        });
+    }
+
+    componentWillMount() {
+        this.loadData();
+        this.selectSuperId();
+    }
+
+    exportExec(){
+        let data = {
+            releaseStart:this.state.releaseDate[0],
+            releaseEnd:this.state.releaseDate[1],
+            aid:this.state.theTypes,
+            uid:this.state.theCustomerTypes,
+            status:this.state.status,
+            clockIn:this.state.clockIn,
+        };
+        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 options = dataSources.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>
+                <Modal
+                    maskClosable={false}
+                    visible={this.props.visible}
+                    onOk={this.props.onCancel}
+                    onCancel={this.props.onCancel}
+                    width='1200px'
+                    title='内蒙签单统计表'
+                    footer=''
+                    className="admin-desc-content">
+                    <div className="user-content">
+                        <TabelContent
+                            searchList={this.props.searchList}
+                            columns={this.state.columns}
+                            tabelApi={'/api/admin/release/publicReleaseDtails'}
+                            exportApi={'/api/admin/release/publicReleaseDtails/export'}
+                            dataProcessing={(data)=>{
+                                let theArr = [];
+                                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);
+                                }
+                                return theArr;
+                            }}
+                        />
+                    </div>
+                    <Modal
+                        maskClosable={false}
+                        visible={this.state.visible1}
+                        onOk={()=>{
+                            this.setState({
+                                visible1:false
+                            })
+                        }}
+                        onCancel={()=>{
+                            this.setState({
+                                visible1:false
+                            })
+                        }}
+                        width='1200px'
+                        title='部门订单'
+                        footer=''
+                        className="admin-desc-content">
+                        <div className="user-content">
+                            <TabelContent
+                                columns={this.state.columns}
+                                tabelApi={'/api/admin/release/publicReleaseDtails'}
+                                exportApi={'/api/admin/release/publicReleaseDtails/export'}
+                                dataProcessing={(data)=>{
+                                    let theArr = [];
+                                    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);
+                                    }
+                                    return theArr;
+                                }}
+                            />
+                        </div>
+                    </Modal>
+                </Modal>
+            </div>
+        )
+    }
+}
+
+export default DetailedList;

+ 549 - 0
js/component/manageCenter/customer/operationalData/signatureStatistics/index.jsx

@@ -0,0 +1,549 @@
+import React,{ Component } from 'react';
+import {AutoComplete, Button, DatePicker, Input, message, Select, Spin, Table, Tabs} from "antd";
+import {
+    ShowModal,
+} from "@/tools";
+import {ChooseList} from "../../../order/orderNew/chooseList";
+import $ from "jquery/src/ajax";
+import './index.less';
+import moment from "moment";
+import TabelContent from '../../../../common/tabelContent'
+
+import DetailedList from './detailedList';
+
+const {TabPane} = Tabs;
+const { RangePicker } = DatePicker;
+
+class SignatureStatistics extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            pageNo:1,
+            loading:false,
+            changeList:[],
+            columns: [
+                {
+                    title: "序号",
+                    dataIndex: "key",
+                    key: "key",
+                },
+                {
+                    title: "排名",
+                    dataIndex: "name",
+                    key: "name",
+                },
+                {
+                    title: "省份",
+                    dataIndex: "tg",
+                    key: "tg",
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            status:2,
+                            visible:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "签单人数(人)",
+                    dataIndex: "duration",
+                    key: "duration",
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            status:2,
+                            visible:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "总单量(个)",
+                    dataIndex: "wsh",
+                    key: "wsh",
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            status:1,
+                            visible:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "总签单额(万元)",
+                    dataIndex: "bh",
+                    key: "bh",
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            status:0,
+                            visible:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "时间段",
+                    dataIndex: "dk",
+                    key: "dk",
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            status: undefined,
+                            clockIn:1,
+                            visible:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "年度完成率",
+                    dataIndex: "ws",
+                    key: "ws",
+                },
+            ],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function(page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function(total) {
+                    return "共" + total + "条数据";
+                }
+            },
+            dataSource: [],
+
+            releaseDate:[],
+            createReleaseDate:[],
+            superId:undefined,
+            clockIn:0,
+        }
+        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.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/publicReleaseStatistics",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                clockStart:this.state.releaseDate[0] || undefined,
+                clockEnd:this.state.releaseDate[1] || undefined,
+                createStart:this.state.createReleaseDate[0] || undefined,
+                createEnd:this.state.createReleaseDate[1] || undefined,
+                depId:this.state.superId || undefined,
+                aid:this.state.theTypes
+            },
+            success: function(data) {
+                ShowModal(this);
+                this.setState({
+                    loading:false
+                })
+                let theArr = [];
+                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:[],
+            createReleaseDate:[],
+            superId:undefined,
+            theTypes:undefined,
+            auto:''
+        },()=>{
+            this.loadData();
+        })
+    }
+
+    supervisor(e) {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/customer/listAdminByName",
+            data: {
+                adminName: e,
+            },
+            success: function (data) {
+                let thedata = data.data;
+                if (!thedata) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                    thedata = {};
+                }
+                this.setState({
+                    customerArr: thedata,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+
+            }.bind(this)
+        );
+    }
+
+    httpChange(e) {
+        if (e.length >= 1) {
+            this.supervisor(e);
+        }
+        this.setState({
+            auto: e,
+        });
+    }
+
+    selectAuto(value, options) {
+        this.setState({
+            auto: value,
+        });
+    }
+
+    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,
+        });
+    }
+
+    componentWillMount() {
+        this.loadData();
+        this.selectSuperId();
+    }
+
+    exportExec(){
+        let data = {
+            clockStart:this.state.releaseDate[0],
+            clockEnd:this.state.releaseDate[1],
+            createStart:this.state.createReleaseDate[0],
+            createEnd:this.state.createReleaseDate[1],
+            depId:this.state.superId,
+            aid:this.state.theTypes
+        };
+        for(let i of Object.keys(data)){
+            if(!data[i]){
+                delete data[i]
+            }
+        }
+        window.location.href =
+            globalConfig.context +
+            "/api/admin/release/publicReleaseStatistics/export?" +
+            $.param(data);
+    }
+
+    render() {
+        const dataSources = this.state.customerArr || [];
+        const options = dataSources.map((group) => (
+            <Select.Option key={group.id} value={group.name}>
+                {group.name}
+            </Select.Option>
+        ));
+        return (
+            <div className="user-content signatureStatistics">
+                <div className="content-title">
+                    <span>
+                        签单统计表
+                    </span>
+                </div>
+                <TabelContent
+                    searchList={[
+                        {
+                            type:'departmentSelect',
+                            dataKey:'departmentId',
+                            placeholder:'请选择部门'
+                        },
+                        {
+                            type:'text',
+                            dataKey:'super',
+                            placeholder:'请输入订单编号'
+                        },
+                        {
+                            type:'times',
+                            title:'下单时间',
+                            dataKey:['startTime','endTime'],
+                        },
+                        {
+                            type:'times',
+                            title:'合同时间',
+                            dataKey:['startTime1','endTime1'],
+                        },
+                        {
+                            type:'select',
+                            dataKey:'superId',
+                            selectList:[
+                                {
+                                    value:'1',
+                                    label:'是'
+                                },
+                                {
+                                    value:'0',
+                                    label:'否'
+                                }
+                            ]
+                        }
+                    ]}
+                    columns={this.state.columns}
+                    tabelApi={'/api/admin/release/publicReleaseStatistics'}
+                    exportApi={'/api/admin/release/publicReleaseStatistics/export'}
+                    dataProcessing={(data)=>{
+                        let theArr = [];
+                        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);
+                        }
+                        return theArr;
+                    }}
+                />
+                {/*<Tabs defaultActiveKey="1" className="test">*/}
+                {/*    <TabPane tab="搜索" key="1">*/}
+                {/*        <div className="user-search" style={{*/}
+                {/*            marginTop:'10px',*/}
+                {/*            marginLeft:'10px',*/}
+                {/*            marginRight:'10px'*/}
+                {/*        }}>*/}
+                {/*           <span style={{ marginRight: "10px" }}>*/}
+                {/*                <Select*/}
+                {/*                    placeholder="请选择部门"*/}
+                {/*                    style={{ width:200,marginLeft:10}}*/}
+                {/*                    value={this.state.superId}*/}
+                {/*                    onChange={(e) => { this.setState({ superId: e }) }}*/}
+                {/*                    notFoundContent="未获取到上级组织列表">*/}
+                {/*                    {this.state.contactsOption}*/}
+                {/*                </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" }}>*/}
+                {/*                <span style={{marginRight:'10px',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>*/}
+                {/*            <span style={{ marginRight: "10px" }}>*/}
+                {/*                <span style={{marginRight:'10px',marginBottom:'10px'}}>创建时间 :</span>*/}
+                {/*                <RangePicker*/}
+                {/*                    style={{marginRight:'10px',marginBottom:'10px'}}*/}
+                {/*                    value={[*/}
+                {/*                        this.state.createReleaseDate[0]*/}
+                {/*                            ? moment(this.state.createReleaseDate[0])*/}
+                {/*                            : null,*/}
+                {/*                        this.state.createReleaseDate[1]*/}
+                {/*                            ? moment(this.state.createReleaseDate[1])*/}
+                {/*                            : null,*/}
+                {/*                    ]}*/}
+                {/*                    onChange={(data, dataString) => {*/}
+                {/*                        this.setState({ createReleaseDate: 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 }}>*/}
+                {/*            <ChooseList*/}
+                {/*                columns={this.state.columns}*/}
+                {/*                changeFn={this.changeList}*/}
+                {/*                changeList={this.state.changeList}*/}
+                {/*                top={55}*/}
+                {/*                margin={11}*/}
+                {/*            />*/}
+                {/*        </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, y: 0 }}*/}
+                {/*            columns={*/}
+                {/*                this.state.changeList.length > 0*/}
+                {/*                    ? this.state.changeList*/}
+                {/*                    : this.state.columns*/}
+                {/*            }*/}
+                {/*            dataSource={this.state.dataSource}*/}
+                {/*            pagination={this.state.pagination}*/}
+                {/*        />*/}
+                {/*    </Spin>*/}
+                {/*</div>*/}
+                {this.state.visible ? <DetailedList
+                    searchList={[
+                        {
+                            type:'departmentSelect',
+                            dataKey:'departmentId'
+                        },
+                        {
+                            type:'text',
+                            dataKey:'super'
+                        },
+                        {
+                            type:'select',
+                            dataKey:'superId',
+                            selectList:[
+                                {
+                                    value:'1',
+                                    label:'是'
+                                },
+                                {
+                                    value:'0',
+                                    label:'否'
+                                }
+                            ]
+                        }
+                    ]}
+                    status={this.state.status}
+                    clockIn={this.state.clockIn || undefined}
+                    visible={this.state.visible}
+                    aid={this.state.aid}
+                    onCancel={()=>{
+                        this.setState({
+                            visible:false,
+                            clockIn:0,
+                        })
+                    }}/> : null}
+            </div>
+        )
+    }
+}
+
+export default SignatureStatistics;

+ 13 - 0
js/component/manageCenter/customer/operationalData/signatureStatistics/index.less

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

+ 1 - 7
js/component/manageCenter/customerService/administration/followUpDetails.jsx

@@ -155,14 +155,8 @@ class FollowUpDetails extends Component{
                     key: "money",
                     render: (text, record) => {
                         if (record.dunTypeName) {
-                            if (record.appropriationRatio && !record.money) {
+                            if (record.appropriationRatio) {
                                 return <span>{record.appropriationRatio}(拨款比例)</span>;
-                            } else if (record.appropriationRatio && record.money) {
-                                return (
-                                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                                );
                             } else {
                                 return <span>{text}</span>;
                             }

+ 1 - 7
js/component/manageCenter/customerService/administration/order.jsx

@@ -376,14 +376,8 @@ const Order = Form.create()(
                         key: "money",
                         render: (text, record) => {
                             if (record.dunTypeName) {
-                                if (record.appropriationRatio && !record.money) {
+                                if (record.appropriationRatio) {
                                     return <span>{record.appropriationRatio}(拨款比例)</span>;
-                                } else if (record.appropriationRatio && record.money) {
-                                    return (
-                                        <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                                    );
                                 } else {
                                     return <span>{text}</span>;
                                 }

+ 3 - 9
js/component/manageCenter/financialManage/distribute/approvedOutsourcing.jsx

@@ -811,16 +811,10 @@ const approvedOutsourcing = React.createClass({
           key: 'money',
           render: (text, record) => {
             if (record.dunTypeName) {
-              if (record.appropriationRatio && !record.money) {
-                return <span>{record.appropriationRatio}(拨款比例)</span>
-              } else if (record.appropriationRatio && record.money) {
-                return (
-                  <span>
-                    {text}(比例:{record.appropriationRatio})
-                  </span>
-                )
+              if (record.appropriationRatio) {
+                return <span>{record.appropriationRatio}(拨款比例)</span>;
               } else {
-                return <span>{text}</span>
+                return <span>{text}</span>;
               }
             }
           },

+ 1 - 7
js/component/manageCenter/financialManage/distribute/approvedOutsourcingAll.jsx

@@ -522,14 +522,8 @@ const approvedOutsourcing = React.createClass({
           key: "money",
           render: (text, record) => {
             if (record.dunTypeName) {
-              if (record.appropriationRatio && !record.money) {
+              if (record.appropriationRatio) {
                 return <span>{record.appropriationRatio}(拨款比例)</span>;
-              } else if (record.appropriationRatio && record.money) {
-                return (
-                  <span>
-                    {text}(比例:{record.appropriationRatio})
-                  </span>
-                );
               } else {
                 return <span>{text}</span>;
               }

+ 1 - 7
js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx

@@ -242,14 +242,8 @@ const OrderDetail = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 74 - 66
js/component/manageCenter/order/orderNew/addService.jsx

@@ -594,15 +594,9 @@ const NewService = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
-                } else {
+                }else {
                   if (this.props.isZxs) {
                     return <span>***</span>;
                   }
@@ -683,6 +677,7 @@ const NewService = Form.create()(
             render: (text, record) => {
               return (
                 <Input
+                  type='number'
                   value={record.money}
                   placeholder="请输入金额(必填项)"
                   disabled
@@ -1030,14 +1025,8 @@ const NewService = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }
@@ -1059,8 +1048,8 @@ const NewService = Form.create()(
                     </div>
                     <div style={{ float: "right" }}>
                       <Input
+                        type='number'
                         value={record.money}
-                        placeholder="请根据左侧类型填写"
                         key={record.id}
                         required="required"
                         onChange={(e) => {
@@ -1078,6 +1067,7 @@ const NewService = Form.create()(
                 return (
                   <div>
                     <Input
+                      type='number'
                       value={record.money}
                       placeholder="请输入金额(必填项)"
                       key={record.id}
@@ -1477,14 +1467,8 @@ const NewService = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }
@@ -1506,8 +1490,8 @@ const NewService = Form.create()(
                     </div>
                     <div style={{ float: "right" }}>
                       <Input
+                        type='number'
                         value={record.money}
-                        placeholder="请根据左侧类型填写"
                         key={record.id}
                         required="required"
                         onChange={(e) => {
@@ -1525,6 +1509,7 @@ const NewService = Form.create()(
                 return (
                   <div>
                     <Input
+                      type='number'
                       value={record.money}
                       placeholder="请输入金额(必填项)"
                       key={record.id}
@@ -2386,6 +2371,7 @@ const NewService = Form.create()(
 
     nextCancel() {
       this.setState({
+        changeVisible:false,
         projectOperationVisible: false,
         gid: "",
         dataInfor:{},
@@ -3449,9 +3435,12 @@ const NewService = Form.create()(
       } else {
         record.effectiveCount = "";
       }
-      if (record.money == "") {
+      if (isNaN(parseInt(record.money)) && !record.boStatus) {
         message.warning("请填写金额");
         return;
+      }else if((isNaN(parseInt(record.money)) && record.boStatus)){
+        message.warning("请填写比例");
+        return;
       }
       if (record.boStatus) {
         if (
@@ -3638,7 +3627,8 @@ const NewService = Form.create()(
     editCui(record) {
       this.setState({
         editCuiVisible: true,
-        editCuiMoney: record.money,
+        editCuiMoney: record.appropriationRatio ? record.appropriationRatio : record.money,
+        appropriationRatio: record.appropriationRatio,
         editCuiTid: record.tid,
         editCuiDid: record.did,
         editCuiId: record.id,
@@ -3654,35 +3644,48 @@ const NewService = Form.create()(
         editProId: record.id,
       });
     },
-    submitEditCui() {
+    submitEditCui(type) {
+      if(isNaN(parseFloat(this.state.editCuiMoney))){
+        if(type === 1){
+          message.warn('请输入比例')
+        }else{
+          message.warn('请输入金额')
+        }
+        return;
+      }
       this.setState({
-        loading: true,
+        loading: true
       });
+      let data = {
+        id: this.state.editCuiId,
+        type: this.state.editCuiTid ? 2 : 1,
+        tid: this.state.editCuiTid,
+      }
+      if(type === 1){
+        data.appropriationRatio = this.state.editCuiMoney;
+      }else{
+        data.money = this.state.editCuiMoney;
+      }
       $.ajax({
         url: globalConfig.context + "/api/admin/orderChange/updateChangeDun",
         method: "post",
-        data: {
-          id: this.state.editCuiId,
-          type: this.state.editCuiDid ? 2 : 1,
-          money: this.state.editCuiMoney,
-          tid: this.state.editCuiTid,
-        },
+        data
       }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("修改成功!");
-            this.cuiList();
-            this.proList();
+          function (data) {
             this.setState({
-              editCuiVisible: false,
+              loading: false
             });
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
+            if (!data.error.length) {
+              message.success("修改成功!");
+              this.cuiList();
+              this.proList()
+              this.setState({
+                editCuiVisible: false
+              });
+            } else {
+              message.warning(data.error[0].message);
+            }
+          }.bind(this)
       );
     },
     submitEditPro() {
@@ -6444,30 +6447,35 @@ const NewService = Form.create()(
             </div>
           </Modal>
           <Modal
-            title="修改催款节点金额"
-            visible={this.state.editCuiVisible}
-            onOk={this.submitEditCui}
-            okText={"保存"}
-            width={300}
-            onCancel={(e) => {
-              this.setState({
-                editCuiVisible: false,
-              });
-            }}
+              maskClosable={false}
+              title={isNaN(parseFloat(this.state.appropriationRatio)) ? "修改催款节点金额" : "修改催款节点比例"}
+              visible={this.state.editCuiVisible}
+              onOk={()=>{
+                this.submitEditCui(isNaN(parseFloat(this.state.appropriationRatio)) ? 0 : 1);
+              }}
+              okText={"保存"}
+              width={300}
+              onCancel={(e) => {
+                this.setState({
+                  editCuiVisible: false,
+                  appropriationRatio: ''
+                });
+              }}
           >
             <div className="clearfix">
               <FormItem
-                labelCol={{ span: 6 }}
-                wrapperCol={{ span: 14 }}
-                label="催款金额"
+                  labelCol={{ span: 6 }}
+                  wrapperCol={{ span: 14 }}
+                  label={isNaN(parseFloat(this.state.appropriationRatio)) ? "催款金额" : "催款比例"}
               >
                 <Input
-                  placeholder="请输入金额"
-                  rows={4}
-                  value={this.state.editCuiMoney}
-                  onChange={(e) => {
-                    this.setState({ editCuiMoney: e.target.value });
-                  }}
+                    type='number'
+                    placeholder={isNaN(parseFloat(this.state.appropriationRatio)) ? "请输入金额" : "请输入比例"}
+                    rows={4}
+                    value={this.state.editCuiMoney}
+                    onChange={(e) => {
+                      this.setState({ editCuiMoney: e.target.value });
+                    }}
                 />
               </FormItem>
             </div>

+ 1 - 8
js/component/manageCenter/order/orderNew/addorders.js

@@ -624,14 +624,8 @@ const Addorders = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }
@@ -654,7 +648,6 @@ const Addorders = Form.create()(
                     <div style={{ float: "right" }}>
                       <Input
                         value={record.money}
-                        placeholder="请根据左侧类型填写"
                         key={record.id}
                         required="required"
                         onChange={(e) => {

+ 1 - 7
js/component/manageCenter/order/orderNew/approveds.jsx

@@ -496,14 +496,8 @@ const IntentionCustomer = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 38 - 22
js/component/manageCenter/order/orderNew/changeComponent/changeApply.js

@@ -350,15 +350,9 @@ class ChangeApply extends Component {
           key: "money",
           render: (text, record) => {
             if (record.dunTypeName) {
-              if (record.appropriationRatio && !record.money) {
+              if (record.appropriationRatio) {
                 return <span>{record.appropriationRatio}(拨款比例)</span>;
-              } else if (record.appropriationRatio && record.money) {
-                return (
-                  <span>
-                    {text}(比例:{record.appropriationRatio})
-                  </span>
-                );
-              } else {
+              } else{
                 return <span>{text}</span>;
               }
             }
@@ -379,8 +373,8 @@ class ChangeApply extends Component {
                   </div>
                   <div style={{ float: "right" }}>
                     <Input
+                      type='number'
                       value={record.money}
-                      placeholder="请根据左侧类型填写"
                       key={record.id}
                       required="required"
                       onChange={(e) => {
@@ -398,6 +392,7 @@ class ChangeApply extends Component {
               return (
                 <div>
                   <Input
+                    type='number'
                     value={record.money}
                     placeholder="请输入金额(必填项)"
                     key={record.id}
@@ -1182,9 +1177,12 @@ class ChangeApply extends Component {
     } else {
       record.effectiveCount = "";
     }
-    if (record.money == "") {
+    if (isNaN(parseInt(record.money)) && !record.boStatus) {
       message.warning("请填写金额");
       return;
+    }else if((isNaN(parseInt(record.money)) && record.boStatus)){
+      message.warning("请填写比例");
+      return;
     }
     if (record.boStatus) {
       if (
@@ -1367,7 +1365,8 @@ class ChangeApply extends Component {
   editCui(record) {
     this.setState({
       editCuiVisible: true,
-      editCuiMoney: record.money,
+      editCuiMoney: record.appropriationRatio ? record.appropriationRatio : record.money,
+      appropriationRatio: record.appropriationRatio,
       editCuiTid: record.tid,
       editCuiId: record.id
     });
@@ -1382,19 +1381,32 @@ class ChangeApply extends Component {
       editProId: record.id
     });
   }
-  submitEditCui() {
+  submitEditCui(type) {
+    if(isNaN(parseFloat(this.state.editCuiMoney))){
+      if(type === 1){
+        message.warn('请输入比例')
+      }else{
+        message.warn('请输入金额')
+      }
+      return;
+    }
     this.setState({
       loading: true
     });
+    let data = {
+      id: this.state.editCuiId,
+      type: this.state.editCuiTid ? 2 : 1,
+      tid: this.state.editCuiTid,
+    }
+    if(type === 1){
+      data.appropriationRatio = this.state.editCuiMoney;
+    }else{
+      data.money = this.state.editCuiMoney;
+    }
     $.ajax({
       url: globalConfig.context + "/api/admin/orderChange/updateChangeDun",
       method: "post",
-      data: {
-        id: this.state.editCuiId,
-        type: this.state.editCuiTid ? 2 : 1,
-        money: this.state.editCuiMoney,
-        tid: this.state.editCuiTid,
-      }
+      data
     }).done(
       function (data) {
         this.setState({
@@ -2256,14 +2268,17 @@ class ChangeApply extends Component {
           </Modal>
           <Modal
             maskClosable={false}
-            title="修改催款节点金额"
+            title={isNaN(parseFloat(this.state.appropriationRatio)) ? "修改催款节点金额" : "修改催款节点比例"}
             visible={this.state.editCuiVisible}
-            onOk={this.submitEditCui}
+            onOk={()=>{
+              this.submitEditCui(isNaN(parseFloat(this.state.appropriationRatio)) ? 0 : 1);
+            }}
             okText={"保存"}
             width={300}
             onCancel={(e) => {
               this.setState({
                 editCuiVisible: false,
+                appropriationRatio: ''
               });
             }}
           >
@@ -2271,10 +2286,11 @@ class ChangeApply extends Component {
               <FormItem
                 labelCol={{ span: 6 }}
                 wrapperCol={{ span: 14 }}
-                label="催款金额"
+                label={isNaN(parseFloat(this.state.appropriationRatio)) ? "催款金额" : "催款比例"}
               >
                 <Input
-                  placeholder="请输入金额"
+                  type='number'
+                  placeholder={isNaN(parseFloat(this.state.appropriationRatio)) ? "请输入金额" : "请输入比例"}
                   rows={4}
                   value={this.state.editCuiMoney}
                   onChange={(e) => {

+ 1 - 7
js/component/manageCenter/order/orderNew/changeComponent/orderDetail.js

@@ -80,14 +80,8 @@ class OrderDetail extends Component {
           key: "money",
           render: (text, record) => {
             if (record.dunTypeName) {
-              if (record.appropriationRatio && !record.money) {
+              if (record.appropriationRatio) {
                 return <span>{record.appropriationRatio}(拨款比例)</span>;
-              } else if (record.appropriationRatio && record.money) {
-                return (
-                  <span>
-                    {text}(比例:{record.appropriationRatio})
-                  </span>
-                );
               } else {
                 return <span>{text}</span>;
               }

+ 2 - 8
js/component/manageCenter/order/orderNew/changeComponent/proAndCuiList.jsx

@@ -205,15 +205,9 @@ const ProAndCuiList = React.createClass({
           key: "money",
           render: (text, record) => {
             if (record.dunTypeName) {
-              if (record.appropriationRatio && !record.money) {
+              if (record.appropriationRatio) {
                 return <span>{record.appropriationRatio}(拨款比例)</span>;
-              } else if (record.appropriationRatio && record.money) {
-                return (
-                  <span>
-                    {text}(比例:{record.appropriationRatio})
-                  </span>
-                );
-              } else {
+              }else {
                 if (this.props.isZxs) {
                   return <span>***</span>;
                 }

+ 1 - 7
js/component/manageCenter/order/orderNew/chargeback.jsx

@@ -344,14 +344,8 @@ const IntentionCustomer = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 3 - 9
js/component/manageCenter/order/orderNew/checkOutsourcing.jsx

@@ -359,16 +359,10 @@ const checkOutsourcing = Form.create()(
             key: 'money',
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
-                  return <span>{record.appropriationRatio}(拨款比例)</span>
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  )
+                if (record.appropriationRatio) {
+                  return <span>{record.appropriationRatio}(拨款比例)</span>;
                 } else {
-                  return <span>{text}</span>
+                  return <span>{text}</span>;
                 }
               }
             },

+ 1 - 7
js/component/manageCenter/order/orderNew/examine.jsx

@@ -449,14 +449,8 @@ const IntentionCustomer = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 1 - 7
js/component/manageCenter/order/orderNew/inquiry.jsx

@@ -381,14 +381,8 @@ const IntentionCustomer = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 1 - 7
js/component/manageCenter/order/orderNew/outsourcingList.jsx

@@ -387,14 +387,8 @@ const outsourcingList = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 1 - 7
js/component/manageCenter/order/orderNew/outsourcingPro.jsx

@@ -466,14 +466,8 @@ const outsourcingPro = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }

+ 1 - 8
js/component/manageCenter/order/orderNew/reject.jsx

@@ -606,14 +606,8 @@ const IntentionCustomer = Form.create()(
             key: "money",
             render: (text, record) => {
               if (record.dunTypeName) {
-                if (record.appropriationRatio && !record.money) {
+                if (record.appropriationRatio) {
                   return <span>{record.appropriationRatio}(拨款比例)</span>;
-                } else if (record.appropriationRatio && record.money) {
-                  return (
-                    <span>
-                      {text}(比例:{record.appropriationRatio})
-                    </span>
-                  );
                 } else {
                   return <span>{text}</span>;
                 }
@@ -636,7 +630,6 @@ const IntentionCustomer = Form.create()(
                     <div style={{ float: "right" }}>
                       <Input
                         value={record.money}
-                        placeholder="请根据左侧类型填写"
                         key={record.id}
                         required="required"
                         onChange={(e) => {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.1.86",
+  "version": "1.1.87",
   "description": "",
   "main": "index.js",
   "scripts": {