Browse Source

专利修改

HW 4 years ago
parent
commit
fd7e29b7cc

+ 186 - 0
js/component/common/patentCheck/index.jsx

@@ -0,0 +1,186 @@
+import React,{Component} from "react";
+import {Button, message, Modal, Popconfirm, Spin, Table} from "antd";
+import $ from "jquery";
+
+class PatentCheck extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading:false,
+            columns:[
+                {
+                    title: '操作人',
+                    dataIndex: 'aname',
+                    key: 'aname',
+                },
+                {
+                    title: '状态',
+                    dataIndex: 'statusName',
+                    key: 'statusName',
+                },
+                {
+                    title: '操作时间',
+                    dataIndex: 'createTimes',
+                    key: 'createTimes',
+                },
+                {
+                    title: '备注',
+                    dataIndex: 'remarks',
+                    key: 'remarks',
+                },
+            ],
+            dataSource:[]
+        }
+        this.addProjectCheck = this.addProjectCheck.bind(this);
+        this.getProjectCheckLog = this.getProjectCheckLog.bind(this);
+    }
+
+    addProjectCheck(){
+        this.setState({
+            loading: true,
+        })
+        $.ajax({
+            method: 'POST',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/orderProject/addProjectCheck',
+            data: {
+                tid:this.props.id
+            },
+        }).done(
+            function (data) {
+                this.setState({
+                    loading: false,
+                })
+                if (!data.error.length) {
+                    message.success('发起成功!')
+                } else {
+                    message.warning(data.error[0].message)
+                }
+            }.bind(this)
+        )
+    }
+
+    getProjectCheckLog(){
+        this.setState({
+            loading: true,
+        })
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/orderProject/projectCheckLog',
+            data: {
+                tid:this.props.id
+            },
+        }).done(
+            function (data) {
+                this.setState({
+                    loading: false,
+                })
+                if (data.error.length === 0) {
+                   this.setState({
+                       dataSource:data.data
+                   })
+                } else {
+                    message.warning(data.error[0].message)
+                }
+            }.bind(this)
+        )
+    }
+
+
+
+    render() {
+        return (
+            this.props.projectType === 1 ? <div style={this.props.style}>
+                {/*&& this.props.startType === 1*/}
+                <div style={{display:'flex',alignItems:'center',paddingBottom:'10px'}}>
+                    <span style={{paddingRight:'15px'}}>官费信息:</span>
+                    {/*startType 1供应商 0外包*/}
+                    {/*orderTaskOfficialCost 1含官费 0不含官费*/}
+                    {/*orderTaskCostReduction: 1有费减 0无费减*/}
+                    <span style={{paddingRight:'20px',color:'#4472f5'}}>
+                      {
+                          this.props.orderTaskOfficialCost === 1?
+                              '有官费' : '不含官费'
+                      }
+                    </span>
+                    <span style={{color:'#4472f5'}}>
+                      {
+                          this.props.orderTaskCostReduction === 1?
+                              '有费减' : '无费减'
+                      }
+                    </span>
+                </div>
+                <div style={{display:'flex',alignItems:'center'}}>
+                    <Button
+                        loading={this.state.loading}
+                        onClick={(e) => {
+                            this.setState({
+                                visible:true
+                            },()=>{
+                                this.getProjectCheckLog();
+                            })
+                            e.stopPropagation()
+                        }}
+                        type="primary"
+                        style={{
+                            marginRight: '25px',
+                            border: 'none',
+                        }}
+                    >
+                        核对日志
+                    </Button>
+                    <div>
+                        <Popconfirm
+                            title="是否发起核对?"
+                            onConfirm={() => {
+                                this.addProjectCheck();
+                            }}
+                            okText="发起"
+                            cancelText="取消"
+                        >
+                            <Button
+                                loading={this.state.loading}
+                                onClick={(e) => {
+                                    e.stopPropagation()
+                                }}
+                                type="primary"
+                                style={{
+                                    marginRight: '10px',
+                                    border: 'none',
+                                }}
+                            >
+                                核对
+                            </Button>
+                        </Popconfirm>
+                    </div>
+                </div>
+                {this.state.visible ? <Modal
+                    title="核对日志"
+                    visible={this.state.visible}
+                    onCancel={()=>{
+                        this.setState({
+                            visible:false
+                        })
+                    }}
+                    width={800}
+                    footer={null}
+                >
+                    <Spin spinning={this.state.loading}>
+                        <Table
+                            columns={this.state.columns}
+                            dataSource={this.state.dataSource}
+                            pagination={false}
+                            bordered
+                            size="small"
+                        />
+                    </Spin>
+                </Modal> : null}
+            </div> : null
+        )
+    }
+}
+
+export default PatentCheck;

+ 12 - 3
js/component/common/projectDetailsReadOnly/index.jsx

@@ -33,7 +33,8 @@ class ProjectDetailsReadOnly extends Component{
             certificationFee,//认证费
             certificationCorporate,//认证费公司
             declarationBatch,//批次
-            type,//项目类型  0 正常 1专利 2软著 3审计 4双软 5高新 6商标
+            type,//项目类型  0 正常 1专利 2软著 3审计 4双软 5高新 6商标,
+            patentTypeName,//专利类型
         } = this.props.infor;
         const { isIso } = this.state;
         return (
@@ -66,8 +67,16 @@ class ProjectDetailsReadOnly extends Component{
                             <FormItem
                                 className="half-item"
                                 {...formItemLayout}
+                                label="专利类型"
+                                style={{ display: type === 1 ? 'block' : 'none' }}
+                            >
+                                <span>{patentTypeName}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
                                 label="官费"
-                                style={{ display: this.state.displayFees }}
+                                style={{ display: type === 1 ? 'block' : 'none' }}
                             >
                               <span>
                                 {officialCost === 0 ? "无官费" : "有官费"}
@@ -77,7 +86,7 @@ class ProjectDetailsReadOnly extends Component{
                                 className="half-item"
                                 {...formItemLayout}
                                 label="费减"
-                                style={{ display: this.state.displayFees }}
+                                style={{ display: type === 1 ? 'block' : 'none' }}
                             >
                               <span>
                                 {costReduction === 0 ? "无费减" : "有费减"}

+ 621 - 0
js/component/common/projectOperation/index.jsx

@@ -0,0 +1,621 @@
+import React,{Component} from "react";
+import {AutoComplete, Button, Form, Input, message, Modal, Radio, Select, Spin} from "antd";
+import {boutique} from "../../dataDic";
+import $ from "jquery";
+import {getboutique} from "../../tools";
+
+const FormItem = Form.Item;
+
+const formItemLayout = {
+    labelCol: { span: 8 },
+    wrapperCol: { span: 14 },
+};
+
+class ProjectOperation extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            commodityName:'',
+            commodityQuantity:'',
+            patentType:0,
+            officialCost:'',
+            costReduction:'',
+            commodityPrice:'',
+            main:'',
+            taskComment:'',
+            declarationBatch:'',
+            ifCertificationFee:'',
+            displayFees: "none",
+
+            customerArr:[],
+            patentTypeList:[],
+
+            loading:false,
+        }
+        this.onSubmit = this.onSubmit.bind(this);
+        this.httpChange = this.httpChange.bind(this);
+        this.selectAuto = this.selectAuto.bind(this);
+        this.getpatentTypeList = this.getpatentTypeList.bind(this);
+        this.setValue = this.setValue.bind(this);
+    }
+
+    componentDidMount() {
+        this.getpatentTypeList();
+        this.setValue();
+    }
+
+    setValue(){
+        const {dataInfor} = this.props;
+        if(dataInfor && Object.keys(dataInfor).length === 0){return;}
+        if (dataInfor.type === 1){
+            this.setState({
+                displayFees: "block",
+                costReduction: dataInfor.costReduction,
+                officialCost: dataInfor.officialCost,
+                patentType: dataInfor.patentType ? dataInfor.patentType : 0,
+            });
+        }else{
+            this.setState({
+                displayFees: "none",
+            });
+        }
+        this.setState({
+            jid: dataInfor.id, //项目ID
+            kid: dataInfor.commodityId, //商品ID
+            commodityName: dataInfor.commodityName, //项目名称
+            commodityPrice: dataInfor.commodityPrice, //金额
+            commodityQuantity: dataInfor.commodityQuantity, //数量
+            patentTypeName:dataInfor.patentTypeName,//专利类型名称
+            taskComment: dataInfor.taskComment, //备注
+            main: dataInfor.main.toString(), //是否为主要
+            addState: 0,
+            addnextVisible: true,
+            addProjectType: dataInfor.type,
+            declarationBatch: dataInfor.declarationBatch || 1,//申报批次(只有高新有)
+            ifCertificationFee: isNaN(parseInt(dataInfor.ifCertificationFee)) ? '' : dataInfor.ifCertificationFee,//是否包含认证费
+            isIso: dataInfor.commodityName.indexOf("贯标") !== -1,
+        });
+    }
+
+    onSubmit(){
+        if (this.state.gid === undefined || !this.state.gid) {
+            message.warning("服务名称不匹配!");
+            return false;
+        }
+        if (this.state.displayFees==='block') {
+            if (this.state.patentType === "") {
+                message.warning("请选择专利类型!");
+                return false;
+            }
+            if(this.state.officialCost===''){
+                message.warning("请选择官费!");
+                return false;
+            }
+            if (this.state.costReduction === "" && this.state.patentType !== 1) {
+                message.warning("请选择费减!");
+                return false;
+            }
+        }
+        if(isNaN(parseFloat(this.state.commodityPrice))){
+            message.warning("请输入正确的金额!");
+            return false;
+        }
+        let reg = /^([0]|[1-9][0-9]*)$/;
+        if (
+            !this.state.commodityQuantity ||
+            !reg.test(this.state.commodityQuantity)
+        ) {
+            message.warning("请输入正确商品数量!");
+            return false;
+        }
+        if (!this.state.main) {
+            message.warning("请选择是否为主要项目!");
+            return false;
+        }
+        if(this.state.addProjectType === 5 && !this.state.declarationBatch){
+            message.warning("请选择企业要求申报批次!");
+            return false;
+        }
+        if(this.state.isIso && !this.state.ifCertificationFee){
+            message.warning("请选择是否包含认证费用!");
+            return false;
+        }
+        this.setState({
+            loading: true,
+        });
+        let infor = {
+            commodityId: this.state.gid, //商品ID
+            orderNo: this.props.orderNo, //订单编号
+            commodityName: this.state.commodityName, //商品名称
+            commodityQuantity: this.state.commodityQuantity, //商品数量
+            commodityPrice: this.state.commodityPrice, //签单总价
+            taskComment: this.state.taskComment, //服务说明
+
+            main: this.state.main, //是否为主要项目
+            officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
+            costReduction: this.state.displayFees==='block' && this.state.patentType !== 1 ?this.state.costReduction : '', //是否有费减
+            patentType: this.state.displayFees==='block' ? this.state.patentType : '', // 专利类型
+        }
+        if(this.state.addProjectType === 5){
+            infor.declarationBatch = this.state.declarationBatch || 1//申报批次
+        }
+        if(this.state.isIso){
+            infor.ifCertificationFee = this.state.ifCertificationFee || undefined;//是否包含认证费用
+        }
+        $.ajax({
+            method: "POST",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/addOrderTask",
+            data: infor,
+        }).done(
+            function (data) {
+                this.setState({
+                    loading: false,
+                });
+                if (!data.error.length) {
+                    message.success("保存成功!");
+                    this.props.onCancel();
+                } else {
+                    message.warning(data.error[0].message);
+                }
+            }.bind(this)
+        );
+    }
+
+    onChange() {
+        if(isNaN(parseFloat(this.state.commodityPrice))){
+            message.warning("请输入正确的金额!");
+            return false;
+        }
+        let reg = /^([0]|[1-9][0-9]*)$/;
+        if (
+            !this.state.commodityQuantity ||
+            !reg.test(this.state.commodityQuantity)
+        ) {
+            message.warning("请输入正确商品数量!");
+            return false;
+        }
+        if (!this.state.main) {
+            message.warning("请选择是否为主要项目!");
+            return false;
+        }
+        this.setState({
+            loading: true,
+        });
+        $.ajax({
+            method: "POST",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
+            data: {
+                id: this.state.jid, //项目ID
+                commodityId: this.state.kid, //商品ID
+                orderNo: this.props.orderNo, //订单编号
+                main: this.state.main, //是否为主要
+                commodityPrice: this.state.commodityPrice, //金额
+                commodityQuantity: this.state.commodityQuantity, //数量
+                taskComment: this.state.taskComment, //备注
+                officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
+                costReduction: this.state.displayFees==='block' && this.state.patentType !== 1 ?this.state.costReduction : '', //是否有费减
+                patentType: this.state.displayFees==='block' ? this.state.patentType : '', //专利类型
+                declarationBatch: this.state.declarationBatch || undefined,//申报批次
+                ifCertificationFee: isNaN(parseInt(this.state.ifCertificationFee)) ? undefined : this.state.ifCertificationFee,
+            },
+        }).done(
+            function (data) {
+                this.setState({
+                    loading: false,
+                });
+                if (!data.error.length) {
+                    message.success("保存成功!");
+                    this.props.onCancel();
+                } else {
+                    message.warning(data.error[0].message);
+                }
+            }.bind(this)
+        );
+    }
+
+    httpChange(e) {
+        this.setState({
+            commodityName: e,
+        });
+        if (e.length >= 1) {
+            this.supervisor(e, false);
+        }
+    }
+
+    //加载(自动补全)
+    supervisor(e, state) {
+        //客户名称与服务名称自动补全
+        let api = state
+            ? "/api/admin/customer/getCustomerByName"
+            : "/api/admin/order/getBusinessProjectByName";
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + api,
+            data: state
+                ? {
+                    name: e,
+                    type: this.state.customType,
+                }
+                : {
+                    businessName: 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({
+                    states: state,
+                    customerArr: thedata,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+
+            }.bind(this)
+        );
+    }
+
+    //上级主管输入框失去焦点是判断客户是否存在
+    selectAuto(value) {
+        let kid = [];
+        let fwList = this.state.customerArr;
+        fwList.map(function (item) {
+            if (value == item.bname) {
+                kid = item;
+            }
+        });
+        if (kid.type == "1") {
+            this.setState({
+                displayFees: "block",
+            });
+        } else {
+            this.setState({
+                displayFees: "none",
+            });
+        }
+        //0通用 1专利 2软著 3审计 4双软 5高新 6商标
+        this.setState({
+            commodityName: value,
+            gid: kid.id,
+            addProjectType:  kid.type,
+            isIso: value.indexOf("贯标") !== -1,// 是否为贯标项目
+        });
+    }
+
+    getpatentTypeList() {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/orderProject/getPatentType',
+            success: function (data) {
+                if (data.error.length === 0) {
+                    this.setState({
+                        patentTypeList:data.data
+                    })
+                }else{
+                    message.warning(data.error[0].message);
+                };
+            }.bind(this)
+        });
+    }
+
+    render() {
+        let options = this.state.states
+            ? this.state.customerArr.map((group) => (
+                <Select.Option key={group.id} value={group.name}>
+                    {group.name}
+                </Select.Option>
+            ))
+            : this.state.customerArr.map((group, index) => (
+                <Select.Option key={index} value={group.bname}>
+                    {group.bname}
+                </Select.Option>
+            ));
+        const {readOnly} = this.props;
+        return (
+            <Modal
+                maskClosable={false}
+                visible={this.props.visible}
+                onOk={this.props.onCancel}
+                onCancel={this.props.onCancel}
+                width="800px"
+                title={this.state.jid ? "添加项目任务" : "项目任务详情"}
+                footer=""
+                className="admin-desc-content"
+            >
+                <Form
+                    layout="horizontal"
+                >
+                    <Spin spinning={this.state.loading}>
+                        <div className="clearfix">
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="服务名称"
+                            >
+                                {this.state.jid ? this.state.commodityName : <AutoComplete
+                                    className="certain-category-search"
+                                    dropdownClassName="certain-category-search-dropdown"
+                                    dropdownMatchSelectWidth={false}
+                                    dropdownStyle={{ width: 200 }}
+                                    style={{ width: "200px" }}
+                                    dataSource={options}
+                                    placeholder="输入服务名称"
+                                    value={this.state.commodityName}
+                                    onChange={this.httpChange}
+                                    filterOption={true}
+                                    onSelect={this.selectAuto}
+                                >
+                                    <Input />
+                                </AutoComplete>}
+                                <span className="mandatory">*</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="服务数量"
+                            >
+                                {readOnly ? this.state.commodityQuantity : <Input
+                                    placeholder="请输入服务数量"
+                                    value={this.state.commodityQuantity}
+                                    style={{ width: "200px" }}
+                                    onChange={(e) => {
+                                        this.setState({ commodityQuantity: e.target.value });
+                                    }}
+                                    ref="commodityQuantity"
+                                />}
+                                <span className="mandatory">*</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                labelCol={{ span: 4 }}
+                                wrapperCol={{ span: 14 }}
+                                label="专利类型:"
+                                style={{
+                                    display: this.state.displayFees,
+                                    marginLeft: "63px",
+                                }}
+                            >
+                                {readOnly ? this.state.patentTypeName : <Select
+                                    placeholder="请选择专利类型"
+                                    style={{ width: "200px" }}
+                                    value={this.state.patentType}
+                                    onChange={(e) => {
+                                        this.setState({ patentType: e });
+                                        if(e === 1){
+                                            this.setState({
+                                                costReduction: ''
+                                            })
+                                        }
+                                    }}
+                                >
+                                    {this.state.patentTypeList.map(function (v,k) {
+                                        return (
+                                            <Select.Option key={k} value={v.id}>{v.name}</Select.Option>
+                                        );
+                                    })}
+                                </Select>}
+                                <span style={{ color: "red", marginLeft: "8px" }}>
+                                    *
+                                </span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                labelCol={{ span: 3 }}
+                                wrapperCol={{ span: 14 }}
+                                label="官费:"
+                                style={{
+                                    display: this.state.displayFees,
+                                    marginLeft: "63px",
+                                }}
+                            >
+                                {readOnly ? (this.state.officialCost === 1 ? '含官费': this.state.officialCost === 0 ? '不含官费' : '') : <Radio.Group
+                                    value={this.state.officialCost}
+                                    onChange={(e) => {
+                                        this.setState({ officialCost: e.target.value });
+                                        if(e.target.value === 0){
+                                            this.setState({
+                                                costReduction: ''
+                                            })
+                                        }
+                                    }}
+                                >
+                                    <Radio value={1}>含官费</Radio>
+                                    <Radio value={0}>不含官费</Radio>
+                                </Radio.Group>}
+                                <span style={{ color: "red", marginLeft: "8px" }}>
+                                   *
+                                </span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                labelCol={{ span: 3 }}
+                                wrapperCol={{ span: 14 }}
+                                label="费减:"
+                                style={{
+                                    display: this.state.displayFees,
+                                    marginLeft: "63px",
+                                }}
+                            >
+                                {/*不含官费或者专利类型为变更时置灰*/}
+                                {readOnly ? (this.state.costReduction === 1 ? '有费减': this.state.costReduction === 0 ? '无费减' : '') : <Radio.Group
+                                    disabled={this.state.officialCost === 0 || this.state.patentType === 1}
+                                    value={this.state.costReduction}
+                                    onChange={(e) => {
+                                        this.setState({ costReduction: e.target.value });
+                                    }}
+                                >
+                                    <Radio value={1}>有费减</Radio>
+                                    <Radio value={0}>无费减</Radio>
+                                </Radio.Group>}
+                                <span style={{ color: "red", marginLeft: "8px" }}>
+                                  *
+                                </span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="实签价格(万元)"
+                            >
+                                {readOnly ? this.state.commodityPrice : <Input
+                                    placeholder="请输入实签价格"
+                                    value={this.state.commodityPrice}
+                                    style={{ width: "200px" }}
+                                    onChange={(e) => {
+                                        this.setState({ commodityPrice: e.target.value });
+                                    }}
+                                    ref="commodityPrice"
+                                />}
+                                <span className="mandatory">*</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="主要业务"
+                            >
+                                {readOnly ? getboutique(this.state.main) : <Select
+                                    placeholder="选择是否为主要业务"
+                                    style={{ width: "200px" }}
+                                    value={this.state.main}
+                                    onChange={(e) => {
+                                        this.setState({ main: e });
+                                    }}
+                                >
+                                    {boutique.map(function (item) {
+                                        return (
+                                            <Select.Option key={item.value}>
+                                                {item.key}
+                                            </Select.Option>
+                                        );
+                                    })}
+                                </Select>}
+                                <span className="mandatory">*</span>
+                            </FormItem>
+                            <div className="clearfix">
+                                <FormItem
+                                    labelCol={{ span: 4 }}
+                                    wrapperCol={{ span: 16 }}
+                                    label="服务说明"
+                                >
+                                    {readOnly ? this.state.taskComment : <Input
+                                        type="textarea"
+                                        placeholder="请输入服务说明"
+                                        value={this.state.taskComment}
+                                        onChange={(e) => {
+                                            this.setState({ taskComment: e.target.value });
+                                        }}
+                                    />}
+                                </FormItem>
+                            </div>
+                            {/*0通用 1专利 2软著 3审计 4双软 5高新 6商标*/}
+                            {this.state.addProjectType === 5 ?
+                                <div className="clearfix">
+                                    <FormItem
+                                        className="half-item"
+                                        {...formItemLayout}
+                                        label="企业要求申报批次"
+                                    >
+                                        {readOnly ? (
+                                            this.state.declarationBatch === 1 ? '第一批' :
+                                                this.state.declarationBatch === 2 ? '第二批' :
+                                                    this.state.declarationBatch === 3 ? '第三批' :
+                                                        this.state.declarationBatch === 4 ? '第四批' : '未知'
+                                        ) : <Select
+                                            placeholder="请选择企业要求申报批次"
+                                            style={{ width: "200px" }}
+                                            value={this.state.declarationBatch}
+                                            onChange={(e) => {
+                                                this.setState({ declarationBatch: e });
+                                            }}
+                                        >
+                                            <Select.Option value={1}>
+                                                第一批
+                                            </Select.Option>
+                                            <Select.Option value={2}>
+                                                第二批
+                                            </Select.Option>
+                                            <Select.Option value={3}>
+                                                第三批
+                                            </Select.Option>
+                                            <Select.Option value={4}>
+                                                第四批
+                                            </Select.Option>
+                                        </Select>}
+                                        <span className="mandatory">*</span>
+                                    </FormItem>
+                                </div>: null
+                            }
+                            {
+                                this.props.isIso?<div className="clearfix">
+                                    <FormItem
+                                        className="half-item"
+                                        {...formItemLayout}
+                                        label="是否包含认证费用"
+                                    >
+                                        {readOnly ? (
+                                            this.state.ifCertificationFee === 1 ? '包含' :
+                                                this.state.ifCertificationFee === 0 ? '不包含' :'未知'
+                                        ) : <Select
+                                            placeholder="请选择是否包含认证费用"
+                                            style={{ width: "200px" }}
+                                            value={this.state.ifCertificationFee}
+                                            onChange={(e) => {
+                                                this.setState({ ifCertificationFee: e });
+                                            }}
+                                        >
+                                            <Select.Option value={'0'}>
+                                                否
+                                            </Select.Option>
+                                            <Select.Option value={'1'}>
+                                                是
+                                            </Select.Option>
+                                        </Select>}
+                                        <span className="mandatory">*</span>
+                                    </FormItem>
+                                </div>: null
+                            }
+                            {readOnly ? null : <FormItem
+                                wrapperCol={{ span: 12, offset: 4 }}
+                                className="half-middle"
+                            >
+                                <Button
+                                    className="submitSave"
+                                    type="primary"
+                                    onClick={()=>{
+                                        if(this.state.jid){
+                                            this.onChange();
+                                        }else{
+                                            this.onSubmit();
+                                        }
+                                    }}
+                                >
+                                    保存
+                                </Button>
+                                <Button
+                                    className="submitSave"
+                                    type="ghost"
+                                    onClick={this.props.onCancel}
+                                >
+                                    取消
+                                </Button>
+                            </FormItem>}
+                        </div>
+                    </Spin>
+                </Form>
+            </Modal>
+        )
+    }
+}
+
+export default ProjectOperation;

+ 38 - 27
js/component/manageCenter/components/checkProject/index.jsx

@@ -18,6 +18,7 @@ import ImgList from '../../../common/imgList/index';
 import './index.less'
 import $ from "jquery";
 import OldInforProject from "../oldInforProject";
+import PatentCheck from "../../../common/patentCheck";
 
 const confirm = Modal.confirm
 
@@ -539,22 +540,22 @@ class CheckProject extends Component {
                 }
               },
             },
-            {
-              title: "官费",
-              dataIndex: "officialCost",
-              key: "officialCost",
-              render: (text) => {
-                return text === 1 ? '含官费' : '不含官费'
-              },
-            },
-            {
-              title: "费减",
-              dataIndex: "costReduction",
-              key: "costReduction",
-              render: (text) => {
-                return text === 1 ? '有费减' : '无费减'
-              },
-            },
+            // {
+            //   title: "官费",
+            //   dataIndex: "officialCost",
+            //   key: "officialCost",
+            //   render: (text) => {
+            //     return text === 1 ? '含官费' : '不含官费'
+            //   },
+            // },
+            // {
+            //   title: "费减",
+            //   dataIndex: "costReduction",
+            //   key: "costReduction",
+            //   render: (text) => {
+            //     return text === 1 ? '有费减' : '无费减'
+            //   },
+            // },
             {
               title: '总价(万元)',
               dataIndex: 'totalAmount',
@@ -1092,14 +1093,14 @@ class CheckProject extends Component {
                         </div>
                         <div style={{paddingLeft:'100px'}}>
                           专利名称:<span style={{marginLeft:'15px'}}>
-                  {
-                    this.props.patentNameType === 0 ? '实用新型专利' :
-                        this.props.patentNameType === 1 ? '发明专利' :
-                            this.props.patentNameType === 2 ? '外观专利' :
-                                this.props.patentNameType === 3 ? this.props.patentName : ''
-                  }
-                </span>
-                      </div>
+                            {
+                              this.props.patentNameType === 0 ? '实用新型专利' :
+                                  this.props.patentNameType === 1 ? '发明专利' :
+                                      this.props.patentNameType === 2 ? '外观专利' :
+                                          this.props.patentNameType === 3 ? this.props.patentName : ''
+                            }
+                          </span>
+                        </div>
                     </div> : <div/>
                 }
                 {
@@ -1108,11 +1109,21 @@ class CheckProject extends Component {
                         官费:<span style={{marginLeft:'15px'}}>{this.props.containOfficialFees === 0 ? '实际已缴费' : '实际未缴费'}</span>
                       </div> : null
                 }
+                <PatentCheck
+                    style={{
+                      padding:'0px 0px 20px 20px'
+                    }}
+                    id={this.props.tid}
+                    projectType={this.props.projectType}  //项目类型
+                    startType={this.props.startType}   //1供应商 0外包
+                    orderTaskOfficialCost={this.props.orderTaskOfficialCost}  //1含官费 0不含官费
+                    orderTaskCostReduction={this.props.orderTaskCostReduction} //1有费减 0无费减
+                />
                 <div className="thirdParty">
                   <div>
-            <span className="title">
-              第三方信息
-            </span>
+                    <span className="title">
+                      第三方信息
+                    </span>
                   </div>
                   <div
                       className="clearfix"

+ 5 - 0
js/component/manageCenter/customer/publicStatistics/detailedList.jsx

@@ -66,6 +66,11 @@ class DetailedList extends Component{
                     key: "aname",
                 },
                 {
+                    title: "申请时间",
+                    dataIndex: "createTimes",
+                    key: "createTimes",
+                },
+                {
                     title: "公出时间",
                     dataIndex: "releaseStarts",
                     key: "releaseStarts",

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

@@ -199,6 +199,15 @@ class Content extends Component {
           });
         });
         break;
+        //专利成本审核列表(专利经理查看)
+      case "patentCostList":
+        require.ensure([], () => {
+          const CostAuditList = require("../order/orderNew/costAuditList").default;
+          this.setState({
+            component: <CostAuditList isPatentManager/>,
+          });
+        });
+      break;
       case "serviceManage":
         require.ensure([], () => {
           const ServiceManage = require("./departmentOrder/servicesOrder/serviceManage")

+ 75 - 751
js/component/manageCenter/order/orderNew/addService.jsx

@@ -34,7 +34,6 @@ import {
   orderTypes,
   customerType,
   jiedian,
-  tepi,
   boutique,
 } from "../../../dataDic.js";
 import {
@@ -55,7 +54,7 @@ import { changeType, getChangeType } from "./changeComponent/changeDetailYxgly";
 import ImgList from "../../../common/imgList";
 import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
-// const Options = Select.Option;
+import ProjectOperation from '.././../../common/projectOperation';
 const Option = AutoComplete.Option;
 const confirm = Modal.confirm;
 
@@ -151,6 +150,8 @@ const NewService = Form.create()(
     },
     getInitialState() {
       return {
+        patentType:'',
+        patentTypeList:[],
         rotateDeg: 0,
         isCaoGao: false,
         cuiFlag: false,
@@ -1619,6 +1620,23 @@ const NewService = Form.create()(
         ],
       };
     },
+    getpatentTypeList() {
+      $.ajax({
+        method: "get",
+        dataType: "json",
+        crossDomain: false,
+        url: globalConfig.context + '/api/admin/orderProject/getPatentType',
+        success: function (data) {
+          if (data.error.length === 0) {
+            this.setState({
+              patentTypeList:data.data
+            })
+          }else{
+            message.warning(data.error[0].message);
+          };
+        }.bind(this)
+      });
+    },
     departmentList() {
       this.setState({
         loading: true,
@@ -2368,15 +2386,11 @@ const NewService = Form.create()(
 
     nextCancel() {
       this.setState({
-        addnextVisible: false,
-        changeVisible: false,
-        displayFees: "none",
-        officialCost: "", //是否有官费
-        costReduction: "", //是否有费减
-        addProjectType: "",
-        ifCertificationFee: "",//是否包含认证费用
-        isIso: false,//是否为贯标项目
-        declarationBatch: 1,
+        projectOperationVisible: false,
+        gid: "",
+        dataInfor:{},
+      },()=>{
+        this.loadData();
       });
     },
 
@@ -2853,197 +2867,16 @@ const NewService = Form.create()(
     //点击添加项目明细
     addDetailed() {
       this.setState({
-        gid: "",
-        customerArr: [],
-        commodityName: "",
-        commodityQuantity: "",
-        commodityId: "",
-        taskComment: "",
-        main: undefined,
-        commodityPrice: "",
-        addState: 1,
-        addnextVisible: true,
-        dataInfor:{},
-        displayFees: "none",
-        officialCost: "",
-        costReduction: "",
-      });
-    },
-    //新建项目明细保存
-    nextSubmit(e) {
-      e.preventDefault();
-      if (this.state.gid == undefined || !this.state.gid) {
-        message.warning("服务名称不匹配!");
-        return false;
-      }
-      if (this.state.displayFees=='block') {
-        if(this.state.officialCost==''){
-          message.warning("请选择官费!");
-          return false;
-        }
-        if (this.state.costReduction == "") {
-          message.warning("请选择费减!");
-          return false;
-        }
-      }
-      if(isNaN(parseFloat(this.state.commodityPrice))){
-        message.warning("请输入正确的金额!");
-        this.refs.commodityPrice.focus();
-        return false;
-      }
-      let reg = /^([0]|[1-9][0-9]*)$/;
-      if (
-        !this.state.commodityQuantity ||
-        !reg.test(this.state.commodityQuantity)
-      ) {
-        message.warning("请输入正确商品数量!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      if (!this.state.main) {
-        message.warning("请选择是否为主要项目!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      if(this.state.addProjectType === 5 && !this.state.declarationBatch){
-        message.warning("请选择企业要求申报批次!");
-        return false;
-      }
-      if(this.state.isIso && !this.state.ifCertificationFee){
-        message.warning("请选择是否包含认证费用!");
-        return false;
-      }
-      this.setState({
-        loading: true,
+        projectOperationVisible: true,
       });
-      let infor = {
-        commodityId: this.state.gid, //商品ID
-        orderNo: this.props.datauser.orderNo, //订单编号
-        commodityName: this.state.commodityName, //商品名称
-        commodityQuantity: this.state.commodityQuantity, //商品数量
-        commodityPrice: this.state.commodityPrice, //签单总价
-        taskComment: this.state.taskComment, //服务说明
-
-        main: this.state.main, //是否为主要项目
-        officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
-        costReduction: this.state.displayFees==='block' ?this.state.costReduction : '', //是否有费减
-      }
-      if(this.state.addProjectType === 5){
-        infor.declarationBatch = this.state.declarationBatch || 1//申报批次
-      }
-       if(this.state.isIso){
-         infor.ifCertificationFee = this.state.ifCertificationFee || undefined;//是否包含认证费用
-       }
-      let api = this.state.addState
-        ? "/api/admin/newOrder/addOrderTask"
-        : "/api/bianji";
-      $.ajax({
-        method: "POST",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + api,
-        data: infor,
-      }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("保存成功!");
-            this.nextCancel();
-            //this.loaduser(this.props.datauser);
-            this.loadData();
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
-      );
     },
     //点击打卡项目详情
     tableRowClick(record) {
-      if (record.type=='1'){
-        this.setState({
-          displayFees: "block",
-          costReduction: record.costReduction,
-          officialCost: record.officialCost,
-        });
-      }else{
-        this.setState({
-          displayFees: "none",
-        });
-      }
       this.setState({
-        jid: record.id, //项目ID
-        kid: record.commodityId, //商品ID
-        commodityName: record.commodityName, //项目名称
-        commodityPrice: record.commodityPrice, //金额
-        commodityQuantity: record.commodityQuantity, //数量
-        taskComment: record.taskComment, //备注
-        main: record.main.toString(), //是否为主要
-        addState: 0,
-        addnextVisible: true,
+        projectOperationVisible:true,
         dataInfor:record,
-        addProjectType: record.type,
-        declarationBatch: record.declarationBatch || 1,//申报批次(只有高新有)
-        ifCertificationFee: isNaN(parseInt(record.ifCertificationFee)) ? '' : record.ifCertificationFee,//是否包含认证费
-        isIso: record.commodityName.indexOf("贯标") !== -1,
-      });
-    },
-    //修改项目详情
-    tabRowSave(e) {
-      e.preventDefault();
-      if(isNaN(parseFloat(this.state.commodityPrice))){
-        message.warning("请输入正确的金额!");
-        return false;
-      }
-      let reg = /^([0]|[1-9][0-9]*)$/;
-      if (
-        !this.state.commodityQuantity ||
-        !reg.test(this.state.commodityQuantity)
-      ) {
-        message.warning("请输入正确商品数量!");
-        return false;
-      }
-      if (!this.state.main) {
-        message.warning("请选择是否为主要项目!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      $.ajax({
-        method: "POST",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
-        data: {
-          id: this.state.jid, //项目ID
-          commodityId: this.state.kid, //商品ID
-          orderNo: this.props.datauser.orderNo, //订单编号
-          main: this.state.main, //是否为主要
-          commodityPrice: this.state.commodityPrice, //金额
-          commodityQuantity: this.state.commodityQuantity, //数量
-          taskComment: this.state.taskComment, //备注
-          officialCost: this.state.officialCost, //是否有官费
-          costReduction: this.state.costReduction, //是否有费减
-          declarationBatch: this.state.declarationBatch || undefined,//申报批次
-          ifCertificationFee: isNaN(parseInt(this.state.ifCertificationFee)) ? undefined : this.state.ifCertificationFee,
-        },
-      }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("保存成功!");
-            this.nextCancel();
-            //this.loaduser(this.props.datauser);
-            this.loadData();
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
-      );
+      })
     },
-
     //签单时间选择
     selTime(e, index) {
       this.setState({
@@ -3324,6 +3157,7 @@ const NewService = Form.create()(
     },
 
     componentWillReceiveProps(nextProps) {
+      this.getpatentTypeList();
       //props改变时触发
       this.state.visible = nextProps.showDesc;
       this.state.signBillVisible = nextProps.signBillVisible;
@@ -6253,562 +6087,6 @@ const NewService = Form.create()(
           </Modal>
           <Modal
             maskClosable={false}
-            visible={this.state.addnextVisible}
-            onOk={this.nextCancel}
-            onCancel={this.nextCancel}
-            width="800px"
-            title={this.state.addState ? "添加项目任务" : "项目任务详情"}
-            footer=""
-            className="admin-desc-content"
-          >
-            <Form
-              layout="horizontal"
-              onSubmit={this.nextSubmit}
-              // id="demand-form"
-            >
-              <Spin spinning={this.state.loading}>
-                {this.state.addState ? (
-                  <div className="clearfix">
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="服务名称"
-                    >
-                      <AutoComplete
-                        className="certain-category-search"
-                        dropdownClassName="certain-category-search-dropdown"
-                        dropdownMatchSelectWidth={false}
-                        dropdownStyle={{ width: 200 }}
-                        style={{ width: "200px" }}
-                        dataSource={options}
-                        placeholder="输入服务名称"
-                        value={this.state.commodityName}
-                        onChange={this.httpChange}
-                        filterOption={true}
-                        onSelect={this.selectAuto}
-                      >
-                        <Input />
-                      </AutoComplete>
-                      <span className="mandatory">*</span>
-                    </FormItem>
-
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="服务数量"
-                    >
-                      <Input
-                        placeholder="请输入服务数量"
-                        value={this.state.commodityQuantity}
-                        style={{ width: "200px" }}
-                        onChange={(e) => {
-                          this.setState({ commodityQuantity: e.target.value });
-                        }}
-                        ref="commodityQuantity"
-                      />
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                    <FormItem
-                      className="half-item"
-                      labelCol={{ span: 3 }}
-                      wrapperCol={{ span: 14 }}
-                      label="官费:"
-                      style={{
-                        display: this.state.displayFees,
-                        marginLeft: "55px",
-                      }}
-                    >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                      <Radio.Group
-                        value={this.state.officialCost}
-                        onChange={(e) => {
-                          this.setState({ officialCost: e.target.value });
-                        }}
-                      >
-                        <Radio value="1">含官费</Radio>
-                        <Radio value="0">不含官费</Radio>
-                      </Radio.Group>
-                    </FormItem>
-                    <FormItem
-                      className="half-item"
-                      labelCol={{ span: 3 }}
-                      wrapperCol={{ span: 14 }}
-                      label="费减:"
-                      style={{
-                        display: this.state.displayFees,
-                        marginLeft: "55px",
-                      }}
-                    >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                      <Radio.Group
-                        value={this.state.costReduction}
-                        onChange={(e) => {
-                          this.setState({ costReduction: e.target.value });
-                        }}
-                      >
-                        <Radio value="1">有费减</Radio>
-                        <Radio value="0">无费减</Radio>
-                      </Radio.Group>
-                    </FormItem>
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="实签价格(万元)"
-                    >
-                      <Input
-                        placeholder="请输入实签价格"
-                        value={this.state.commodityPrice}
-                        style={{ width: "200px" }}
-                        onChange={(e) => {
-                          this.setState({ commodityPrice: e.target.value });
-                        }}
-                        ref="commodityPrice"
-                      />
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="主要业务"
-                    >
-                      <Select
-                        placeholder="选择是否为主要业务"
-                        style={{ width: "200px" }}
-                        value={this.state.main}
-                        onChange={(e) => {
-                          this.setState({ main: e });
-                        }}
-                      >
-                        {boutique.map(function (item) {
-                          return (
-                            <Select.Option key={item.value}>
-                              {item.key}
-                            </Select.Option>
-                          );
-                        })}
-                      </Select>
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                    <div className="clearfix">
-                      <FormItem
-                        labelCol={{ span: 4 }}
-                        wrapperCol={{ span: 16 }}
-                        label="服务说明"
-                      >
-                        <Input
-                          type="textarea"
-                          placeholder="请输入服务说明"
-                          value={this.state.taskComment}
-                          onChange={(e) => {
-                            this.setState({ taskComment: e.target.value });
-                          }}
-                        />
-                      </FormItem>
-                    </div>
-                    {/*0通用 1专利 2软著 3审计 4双软 5高新 6商标*/}
-                    {this.state.addProjectType === 5 ?
-                    <div className="clearfix">
-                        <FormItem
-                            className="half-item"
-                            {...formItemLayout}
-                            label="企业要求申报批次"
-                        >
-                          <Select
-                              placeholder="请选择企业要求申报批次"
-                              style={{ width: "200px" }}
-                              value={this.state.declarationBatch}
-                              onChange={(e) => {
-                                this.setState({ declarationBatch: e });
-                              }}
-                          >
-                            <Select.Option value={1}>
-                              第一批
-                            </Select.Option>
-                            <Select.Option value={2}>
-                              第二批
-                            </Select.Option>
-                            <Select.Option value={3}>
-                              第三批
-                            </Select.Option>
-                            <Select.Option value={4}>
-                              第四批
-                            </Select.Option>
-                          </Select>
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                    </div>: null
-                    }
-                    {
-                      this.state.isIso?<div className="clearfix">
-                        <FormItem
-                            className="half-item"
-                            {...formItemLayout}
-                            label="是否包含认证费用"
-                        >
-                          <Select
-                              placeholder="请选择是否包含认证费用"
-                              style={{ width: "200px" }}
-                              value={this.state.ifCertificationFee}
-                              onChange={(e) => {
-                                this.setState({ ifCertificationFee: e });
-                              }}
-                          >
-                            <Select.Option value={'0'}>
-                              否
-                            </Select.Option>
-                            <Select.Option value={'1'}>
-                              是
-                            </Select.Option>
-                          </Select>
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                      </div>: null
-                    }
-                    <FormItem
-                      wrapperCol={{ span: 12, offset: 4 }}
-                      className="half-middle"
-                    >
-                      <Button
-                        className="submitSave"
-                        type="primary"
-                        htmlType="submit"
-                      >
-                        保存
-                      </Button>
-                      <Button
-                        className="submitSave"
-                        type="ghost"
-                        onClick={this.nextCancel}
-                      >
-                        取消
-                      </Button>
-                    </FormItem>
-                  </div>
-                ) : (
-                  <div className="clearfix">
-                    {this.state.processStatus == 0 ? (
-                      <div className="clearfix">
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目名称"
-                        >
-                          <span>{this.state.commodityName}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目数量"
-                        >
-                          <Input
-                            placeholder="请输入数量"
-                            value={this.state.commodityQuantity}
-                            style={{ width: "200px" }}
-                            onChange={(e) => {
-                              this.setState({
-                                commodityQuantity: e.target.value,
-                              });
-                            }}
-                          />
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          labelCol={{ span: 3 }}
-                          wrapperCol={{ span: 14 }}
-                          label="官费:"
-                          style={{
-                            display: this.state.displayFees,
-                            marginLeft: "55px",
-                          }}
-                        >
-                          <span style={{ color: "red", marginRight: "27px" }}>
-                            *
-                          </span>
-                          <Radio.Group
-                            value={this.state.officialCost}
-                            onChange={(e) => {
-                              this.setState({ officialCost: e.target.value });
-                            }}
-                          >
-                            <Radio value={1}>含官费</Radio>
-                            <Radio value={0}>不含官费</Radio>
-                          </Radio.Group>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          labelCol={{ span: 3 }}
-                          wrapperCol={{ span: 14 }}
-                          label="费减:"
-                          style={{
-                            display: this.state.displayFees,
-                            marginLeft: "55px",
-                          }}
-                        >
-                          <span style={{ color: "red", marginRight: "27px" }}>
-                            *
-                          </span>
-                          <Radio.Group
-                            value={this.state.costReduction}
-                            onChange={(e) => {
-                              this.setState({ costReduction: e.target.value });
-                            }}
-                          >
-                            <Radio value={1}>有费减</Radio>
-                            <Radio value={0}>无费减</Radio>
-                          </Radio.Group>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="金额(万元)"
-                        >
-                          <Input
-                            placeholder="请输入签单金额"
-                            value={this.state.commodityPrice}
-                            style={{ width: "200px" }}
-                            onChange={(e) => {
-                              this.setState({ commodityPrice: e.target.value });
-                            }}
-                          />
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="主要项目"
-                        >
-                          <Select
-                            placeholder="选择是否为主要业务"
-                            style={{ width: "200px" }}
-                            value={this.state.main}
-                            onChange={(e) => {
-                              this.setState({ main: e });
-                            }}
-                          >
-                            {boutique.map(function (item) {
-                              return (
-                                <Select.Option key={item.value}>
-                                  {item.key}
-                                </Select.Option>
-                              );
-                            })}
-                          </Select>
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                        <div className="clearfix">
-                          <FormItem
-                            labelCol={{ span: 4 }}
-                            wrapperCol={{ span: 16 }}
-                            label="服务说明"
-                          >
-                            <Input
-                              type="textarea"
-                              placeholder="请输入服务说明"
-                              value={this.state.taskComment}
-                              onChange={(e) => {
-                                this.setState({ taskComment: e.target.value });
-                              }}
-                            />
-                          </FormItem>
-                        </div>
-                        {this.state.addProjectType === 5 ?
-                            <div className="clearfix">
-                              <FormItem
-                                  className="half-item"
-                                  {...formItemLayout}
-                                  label="企业要求申报批次"
-                              >
-                                <Select
-                                    placeholder="请选择企业要求申报批次"
-                                    style={{ width: "200px" }}
-                                    value={this.state.declarationBatch}
-                                    onChange={(e) => {
-                                      this.setState({ declarationBatch: e });
-                                    }}
-                                >
-                                  <Select.Option value={1}>
-                                    第一批
-                                  </Select.Option>
-                                  <Select.Option value={2}>
-                                    第二批
-                                  </Select.Option>
-                                  <Select.Option value={3}>
-                                    第三批
-                                  </Select.Option>
-                                  <Select.Option value={4}>
-                                    第四批
-                                  </Select.Option>
-                                </Select>
-                                <span className="mandatory">*</span>
-                              </FormItem>
-                            </div>: null
-                        }
-                        {
-                          this.state.isIso ?<div className="clearfix">
-                            <FormItem
-                                className="half-item"
-                                {...formItemLayout}
-                                label="认证费用"
-                            >
-                              <Select
-                                  placeholder="请选择是否包含认证费用"
-                                  style={{ width: "200px" }}
-                                  value={this.state.ifCertificationFee}
-                                  onChange={(e) => {
-                                    this.setState({ ifCertificationFee: e });
-                                  }}
-                              >
-                                <Select.Option value={0}>
-                                  不包含
-                                </Select.Option>
-                                <Select.Option value={1}>
-                                  包含
-                                </Select.Option>
-                              </Select>
-                              <span className="mandatory">*</span>
-                            </FormItem>
-                          </div>: null
-                        }
-                        <FormItem
-                          wrapperCol={{ span: 12, offset: 4 }}
-                          className="half-middle"
-                        >
-                          <Button
-                            className="submitSave"
-                            type="primary"
-                            onClick={this.tabRowSave}
-                          >
-                            保存
-                          </Button>
-                          <Button
-                            className="submitSave"
-                            type="ghost"
-                            onClick={this.nextCancel}
-                          >
-                            取消
-                          </Button>
-                        </FormItem>
-                      </div>
-                    ) : (
-                      <div className="clearfix">
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目名称"
-                        >
-                          <span>{this.state.commodityName}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目数量"
-                        >
-                          <span>{this.state.commodityQuantity}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="官费"
-                          style={{ display: this.state.displayFees }}
-                        >
-                          <span>
-                            {this.state.officialCost == 0 ? "无官费" : "有官费"}
-                          </span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="费减"
-                          style={{ display: this.state.displayFees }}
-                        >
-                          <span>
-                            {this.state.costReduction == 0
-                              ? "无费减"
-                              : "有费减"}
-                          </span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="金额(万元)"
-                        >
-                          <span>{this.state.commodityPrice}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="主要项目"
-                        >
-                          <span>{getboutique(this.state.main)}</span>
-                        </FormItem>
-                        {this.state.dataInfor && this.state.dataInfor.type === 5 && <FormItem
-                            className="half-item"
-                            {...formItemLayout}
-                            label="企业申报批次"
-                        >
-                                <span>
-                                    {
-                                      this.state.declarationBatch === 1 ? '第一批' :
-                                          this.state.declarationBatch === 2 ? '第二批' :
-                                              this.state.declarationBatch === 3 ? '第三批' :
-                                                  this.state.declarationBatch === 4 ? '第四批' : '未知'
-                                    }
-                                </span>
-                        </FormItem>}
-                        {this.state.isIso && <FormItem
-                            className="half-item"
-                            {...formItemLayout}
-                            label="认证费"
-                        >
-                                <span>
-                                    {
-                                      this.state.ifCertificationFee === 1 ? '包含' :
-                                          this.state.ifCertificationFee === 0 ? '不包含' :'未知'
-                                    }
-                                </span>
-                        </FormItem> }
-                        {/*{this.state.isIso && this.state.ifCertificationFee === 1 ?<FormItem*/}
-                        {/*    className="half-item"*/}
-                        {/*    {...formItemLayout}*/}
-                        {/*    label="认证费(万元)"*/}
-                        {/*>*/}
-                        {/*  <span>{this.state.ifCertificationFee || '暂无'}</span>*/}
-                        {/*</FormItem> : null}*/}
-                        {/*{this.state.isIso && this.state.ifCertificationFee === 1 ? <FormItem*/}
-                        {/*    className="half-item"*/}
-                        {/*    {...formItemLayout}*/}
-                        {/*    label=""*/}
-                        {/*/> : null}*/}
-                        {/*{this.state.isIso && this.state.ifCertificationFee === 1 ? <FormItem*/}
-                        {/*    className="half-item"*/}
-                        {/*    {...formItemLayout}*/}
-                        {/*    label="付款公司名称"*/}
-                        {/*>*/}
-                        {/*  <span>{this.state.certificationCorporate || '暂无'}</span>*/}
-                        {/*</FormItem>:null}*/}
-                        <div className="clearfix">
-                          <FormItem
-                            labelCol={{ span: 4 }}
-                            wrapperCol={{ span: 16 }}
-                            label="服务说明"
-                          >
-                            <span>{this.state.taskComment}</span>
-                          </FormItem>
-                        </div>
-                      </div>
-                    )}
-                  </div>
-                )}
-              </Spin>
-            </Form>
-          </Modal>
-          <Modal
-            maskClosable={false}
             visible={this.state.changeVisible}
             onOk={this.nextCancel}
             onCancel={this.nextCancel}
@@ -6864,6 +6142,39 @@ const NewService = Form.create()(
                   </FormItem>
                   <FormItem
                       className="half-item"
+                      labelCol={{ span: 4 }}
+                      wrapperCol={{ span: 14 }}
+                      label="专利类型:"
+                      style={{
+                        display: this.state.displayFees,
+                        marginLeft: "55px",
+                      }}
+                  >
+                    <Select
+                        placeholder="请选择专利类型"
+                        style={{ width: "200px" }}
+                        value={this.state.patentType}
+                        onChange={(e) => {
+                          this.setState({ patentType: e });
+                          if(e === 1){
+                            this.setState({
+                              costReduction: ''
+                            })
+                          }
+                        }}
+                    >
+                      {this.state.patentTypeList.map(function (v,k) {
+                        return (
+                            <Select.Option key={k} value={v.id}>{v.name}</Select.Option>
+                        );
+                      })}
+                    </Select>
+                    <span style={{ color: "red", marginLeft: "8px" }}>
+                            *
+                          </span>
+                  </FormItem>
+                  <FormItem
+                      className="half-item"
                       labelCol={{ span: 3 }}
                       wrapperCol={{ span: 14 }}
                       label="官费:"
@@ -6879,6 +6190,11 @@ const NewService = Form.create()(
                         value={this.state.officialCost}
                         onChange={(e) => {
                           this.setState({ officialCost: e.target.value });
+                          if(e.target.value === '0'){
+                            this.setState({
+                              costReduction: ''
+                            })
+                          }
                         }}
                     >
                       <Radio value="1">含官费</Radio>
@@ -6899,6 +6215,7 @@ const NewService = Form.create()(
                         *
                       </span>
                     <Radio.Group
+                        disabled={this.state.officialCost === '0' || this.state.patentType === 1}
                         value={this.state.costReduction}
                         onChange={(e) => {
                           this.setState({ costReduction: e.target.value });
@@ -7161,6 +6478,13 @@ const NewService = Form.create()(
             visible={this.state.rizhivisible}
             loading={this.state.loading}
           />
+          {this.state.projectOperationVisible ? <ProjectOperation
+              readOnly={this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0}
+              orderNo={this.props.datauser.orderNo}
+              visible={this.state.projectOperationVisible}
+              dataInfor={this.state.dataInfor}
+              onCancel={this.nextCancel}
+          /> : null}
         </div>
       );
     },

+ 15 - 406
js/component/manageCenter/order/orderNew/addorders.js

@@ -34,6 +34,7 @@ import {
 import PicturesWall from "./changeComponent/picturesWall.js";
 import ResolutionDetail from "@/resolutionDetail";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
+import ProjectOperation from "../../../common/projectOperation";
 
 const Addorders = Form.create()(
   React.createClass({
@@ -1477,7 +1478,10 @@ const Addorders = Form.create()(
 
     nextCancel() {
       this.setState({
-        addnextVisible: false,
+        projectOperationVisible: false,
+        dataInfor:{},
+      },()=>{
+        this.loadData(this.props.data);
       });
     },
 
@@ -1656,137 +1660,16 @@ const Addorders = Form.create()(
     //点击添加项目明细
     addDetailed() {
       this.setState({
-        gid: "",
-        customerArr: [],
-        commodityName: "",
-        commodityQuantity: "",
-        commodityId: "",
-        taskComment: "",
-        main: undefined,
-        commodityPrice: "",
-        addState: 1,
-        addnextVisible: true,
-      });
-    },
-    //新建项目明细保存
-    nextSubmit(e) {
-      e.preventDefault();
-      if (this.state.gid == undefined || !this.state.gid) {
-        message.warning("服务名称不匹配!");
-        return false;
-      }
-      if (!this.state.commodityPrice) {
-        message.warning("请输入金额!");
-        this.refs.commodityPrice.focus();
-        return false;
-      }
-      if (!this.state.commodityQuantity) {
-        message.warning("请输入商品数量!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      if (!this.state.main) {
-        message.warning("请选择是否为主要项目!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      this.setState({
-        loading: true,
+        projectOperationVisible: true,
       });
-      let api = this.state.addState
-        ? "/api/admin/newOrder/addOrderTask"
-        : "/api/bianji";
-      $.ajax({
-        method: "POST",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + api,
-        data: {
-          commodityId: this.state.gid, //商品ID
-          orderNo: this.props.data, //订单编号
-          commodityName: this.state.commodityName, //商品名称
-          commodityQuantity: this.state.commodityQuantity, //商品数量
-          commodityPrice: this.state.commodityPrice, //签单总价
-          taskComment: this.state.taskComment, //服务说明
-          main: this.state.main, //是否为主要项目
-        },
-      }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("保存成功!");
-            this.nextCancel();
-            //this.loaduser(this.props.datauser);
-            this.loadData(this.props.data);
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
-      );
     },
     //点击打卡项目详情
     tableRowClick(record) {
       this.setState({
-        jid: record.id, //项目ID
-        kid: record.commodityId, //商品ID
-        commodityName: record.commodityName, //金额
-        commodityPrice: record.commodityPrice, //金额
-        commodityQuantity: record.commodityQuantity, //数量
-        taskComment: record.taskComment, //备注
-        main: record.main.toString(), //是否为主要
-        addnextVisible: true,
-        addState: 0,
+        projectOperationVisible:true,
+        dataInfor:record,
       });
     },
-    //修改项目详情
-    tabRowSave(e) {
-      e.preventDefault();
-      if(isNaN(parseFloat(this.state.commodityPrice))){
-        message.warning("请输入正确的金额!");
-        return false;
-      }
-      if (!this.state.commodityQuantity) {
-        message.warning("数量不能为空!");
-        return false;
-      }
-      if (!this.state.main) {
-        message.warning("请选择是否为主要项目!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      $.ajax({
-        method: "POST",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
-        data: {
-          id: this.state.jid, //项目ID
-          commodityId: this.state.kid, //商品ID
-          orderNo: this.props.data, //订单编号
-          main: this.state.main, //是否为主要
-          commodityPrice: this.state.commodityPrice, //金额
-          commodityQuantity: this.state.commodityQuantity, //数量
-          taskComment: this.state.taskComment, //备注
-        },
-      }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("保存成功!");
-            this.nextCancel();
-            //this.loaduser(this.props.datauser);
-            this.loadData(this.props.data);
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
-      );
-    },
-
     //签单时间选择
     selTime(e, index) {
       this.setState({
@@ -2947,287 +2830,6 @@ const Addorders = Form.create()(
               ""
             )}
           </Spin>
-          <Modal
-            maskClosable={false}
-            visible={this.state.addnextVisible}
-            onOk={this.nextCancel}
-            onCancel={this.nextCancel}
-            width="800px"
-            title={this.state.addState ? "添加项目任务" : "项目任务详情"}
-            footer=""
-            className="admin-desc-content"
-          >
-            <Form
-              layout="horizontal"
-              onSubmit={this.nextSubmit}
-              id="demand-form"
-            >
-              <Spin spinning={this.state.loading}>
-                {this.state.addState ? (
-                  <div className="clearfix">
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="服务名称"
-                    >
-                      <AutoComplete
-                        className="certain-category-search"
-                        dropdownClassName="certain-category-search-dropdown"
-                        dropdownMatchSelectWidth={false}
-                        dropdownStyle={{ width: 200 }}
-                        style={{ width: "200px" }}
-                        dataSource={options}
-                        placeholder="输入服务名称"
-                        value={this.state.commodityName}
-                        onChange={this.httpChange}
-                        filterOption={true}
-                        onSelect={this.selectAuto}
-                      >
-                        <Input />
-                      </AutoComplete>
-                      <span className="mandatory">*</span>
-                    </FormItem>
-
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="服务数量"
-                    >
-                      <Input
-                        placeholder="请输入服务数量"
-                        value={this.state.commodityQuantity}
-                        style={{ width: "200px" }}
-                        onChange={(e) => {
-                          this.setState({ commodityQuantity: e.target.value });
-                        }}
-                        ref="commodityQuantity"
-                      />
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="实签价格(万元)"
-                    >
-                      <Input
-                        placeholder="请输入实签价格"
-                        value={this.state.commodityPrice}
-                        style={{ width: "200px" }}
-                        onChange={(e) => {
-                          this.setState({ commodityPrice: e.target.value });
-                        }}
-                        ref="commodityPrice"
-                      />
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="主要业务"
-                    >
-                      <Select
-                        placeholder="选择是否为主要业务"
-                        style={{ width: "200px" }}
-                        value={this.state.main}
-                        onChange={(e) => {
-                          this.setState({ main: e });
-                        }}
-                      >
-                        {boutique.map(function (item) {
-                          return (
-                            <Select.Option key={item.value}>
-                              {item.key}
-                            </Select.Option>
-                          );
-                        })}
-                      </Select>
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                    <div className="clearfix">
-                      <FormItem
-                        labelCol={{ span: 4 }}
-                        wrapperCol={{ span: 16 }}
-                        label="服务说明"
-                      >
-                        <Input
-                          type="textarea"
-                          placeholder="请输入服务说明"
-                          value={this.state.taskComment}
-                          onChange={(e) => {
-                            this.setState({ taskComment: e.target.value });
-                          }}
-                        />
-                      </FormItem>
-                    </div>
-                    <FormItem
-                      wrapperCol={{ span: 12, offset: 4 }}
-                      className="half-middle"
-                    >
-                      <Button
-                        className="submitSave"
-                        type="primary"
-                        htmlType="submit"
-                      >
-                        保存
-                      </Button>
-                      <Button
-                        className="submitSave"
-                        type="ghost"
-                        onClick={this.nextCancel}
-                      >
-                        取消
-                      </Button>
-                    </FormItem>
-                  </div>
-                ) : (
-                  <div className="clearfix">
-                    {this.props.deleteSign === 3 ||
-                    this.state.processStatus == 0 ? (
-                      <div className="clearfix">
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目名称"
-                        >
-                          <span>{this.state.commodityName}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目数量"
-                        >
-                          <Input
-                            placeholder="请输入数量"
-                            value={this.state.commodityQuantity}
-                            style={{ width: "200px" }}
-                            onChange={(e) => {
-                              this.setState({
-                                commodityQuantity: e.target.value,
-                              });
-                            }}
-                          />
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="金额(万元)"
-                        >
-                          <Input
-                            placeholder="请输入签单金额"
-                            value={this.state.commodityPrice}
-                            style={{ width: "200px" }}
-                            onChange={(e) => {
-                              this.setState({ commodityPrice: e.target.value });
-                            }}
-                          />
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="主要项目"
-                        >
-                          <Select
-                            placeholder="选择是否为主要业务"
-                            style={{ width: "200px" }}
-                            value={this.state.main}
-                            onChange={(e) => {
-                              this.setState({ main: e });
-                            }}
-                          >
-                            {boutique.map(function (item) {
-                              return (
-                                <Select.Option key={item.value}>
-                                  {item.key}
-                                </Select.Option>
-                              );
-                            })}
-                          </Select>
-                          <span className="mandatory">*</span>
-                        </FormItem>
-                        <div className="clearfix">
-                          <FormItem
-                            labelCol={{ span: 4 }}
-                            wrapperCol={{ span: 16 }}
-                            label="服务说明"
-                          >
-                            <Input
-                              type="textarea"
-                              placeholder="请输入服务说明"
-                              value={this.state.taskComment}
-                              onChange={(e) => {
-                                this.setState({ taskComment: e.target.value });
-                              }}
-                            />
-                          </FormItem>
-                        </div>
-                        <FormItem
-                          wrapperCol={{ span: 12, offset: 4 }}
-                          className="half-middle"
-                        >
-                          <Button
-                            className="submitSave"
-                            type="primary"
-                            onClick={this.tabRowSave}
-                          >
-                            保存
-                          </Button>
-                          <Button
-                            className="submitSave"
-                            type="ghost"
-                            onClick={this.nextCancel}
-                          >
-                            取消
-                          </Button>
-                        </FormItem>
-                      </div>
-                    ) : (
-                      <div className="clearfix">
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目名称"
-                        >
-                          <span>{this.state.commodityName}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="项目数量"
-                        >
-                          <span>{this.state.commodityQuantity}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="金额(万元)"
-                        >
-                          <span>{this.state.commodityPrice}</span>
-                        </FormItem>
-                        <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="主要项目"
-                        >
-                          <span>{getboutique(this.state.main)}</span>
-                        </FormItem>
-                        <div className="clearfix">
-                          <FormItem
-                            labelCol={{ span: 4 }}
-                            wrapperCol={{ span: 16 }}
-                            label="服务说明"
-                          >
-                            <span>{this.state.taskComment}</span>
-                          </FormItem>
-                        </div>
-                      </div>
-                    )}
-                  </div>
-                )}
-              </Spin>
-            </Form>
-          </Modal>
           {this.state.lookVisible ? <Modal
             maskClosable={false}
             visible={this.state.lookVisible}
@@ -3340,6 +2942,13 @@ const Addorders = Form.create()(
               </Spin>
             </div>
           </Modal>
+          {this.state.projectOperationVisible ? <ProjectOperation
+              readOnly={this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0}
+              orderNo={this.props.datauser.orderNo}
+              visible={this.state.projectOperationVisible}
+              dataInfor={this.state.dataInfor}
+              onCancel={this.nextCancel}
+          /> : null}
         </div>
       );
     },

+ 39 - 5
js/component/manageCenter/order/orderNew/costAuditList/index.js

@@ -180,7 +180,7 @@ class CostAuditList extends Component{
                                                 record.status === 2 ? '查看详情' : '查看详情'
                                     }
                                 </Button>
-                                <Button
+                                {!this.props.isPatentManager ? <Button
                                     type="primary"
                                     style={{
                                         marginLeft: "10px",
@@ -197,7 +197,7 @@ class CostAuditList extends Component{
                                         })
                                 }}>
                                     付款记录
-                                </Button>
+                                </Button> : null}
                             </div>
                         )
                     }
@@ -233,6 +233,36 @@ class CostAuditList extends Component{
 
     componentDidMount() {
         this.loadData()
+        if(this.props.isPatentManager){
+            let arr = JSON.parse(JSON.stringify(this.state.columns));
+            this.setState({
+                columns:arr.splice(7, 0, {
+                    title: "官费",
+                    dataIndex: "officialCost",
+                    key: "officialCost",
+                    render: (text,record) => {
+                        return (
+                            (text === 1 ? '含官费' : '不含官费' ) + (record.costReduction === 1 ? '有费减' : '')
+                        )
+                    }
+                },)
+            })
+        }else{
+            let arr = JSON.parse(JSON.stringify(this.state.columns));
+            arr.splice(9, 0, {
+                title: "签单金额(万元)",
+                dataIndex: "totalAmount",
+                key: "totalAmount",
+            })
+            arr.splice(10, 0, {
+                title: "已收款金额(万元)",
+                dataIndex: "settlementAmount",
+                key: "settlementAmount",
+            })
+            this.setState({
+                columns:arr
+            });
+        }
     }
 
     loadData(pageNo,data={}) {
@@ -368,6 +398,10 @@ class CostAuditList extends Component{
         }
         data.pageSize = 9999;
         data.pageNo = 1;
+        //专利经理审核导出
+        if(this.props.isPatentManager){
+            data.type = 1;
+        }
         window.location.href=(globalConfig.context+'/api/admin/company/exportPaymentList?'+$.param(data));
     }
 
@@ -389,7 +423,7 @@ class CostAuditList extends Component{
         return (
           <div className="user-content">
               <div className="content-title">
-                  <span>成本付款申请</span>
+                  <span>{this.props.isPatentManager ? '专利成本审核' : '成本付款申请'}</span>
               </div>
               <Tabs defaultActiveKey="1" onChange={this.callback} className="test">
                   <TabPane tab="搜索" key="1">
@@ -419,14 +453,14 @@ class CostAuditList extends Component{
                           onClick={this.printAll}
                           disabled={!this.state.dataSource.length}
                       >
-                          批量支付
+                          {this.props.isPatentManager ? '批量审核' :'批量支付'}
                       </Button>
                       <Button
                           type="primary"
                           onClick={this.exportExec}
                           style={{ margin: "11px 0px 10px 10px" }}
                       >
-                          导出财务成本列表
+                          {this.props.isPatentManager ? '导出专利成本列表' : '导出财务成本列表'}
                       </Button>
                   </TabPane>
                   <TabPane tab="更改表格显示数据" key="3">

+ 36 - 501
js/component/manageCenter/order/orderNew/reject.jsx

@@ -38,6 +38,7 @@ import ImgList from "../../../common/imgList";
 import {ChooseList} from "./chooseList";
 import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
+import ProjectOperation from "../../../common/projectOperation";
 //图片组件
 const PicturesWall = React.createClass({
 	getInitialState() {
@@ -140,6 +141,7 @@ const IntentionCustomer = Form.create()(
     getInitialState() {
       return {
         page: 1,
+        patentTypeList:[],
         releaseDate: [],
         selectedRowKeys: [],
         orgCodeUrl: [],
@@ -898,39 +900,23 @@ const IntentionCustomer = Form.create()(
       this.jiedian(record.orderNo);
       this.jiedianNew(record.orderNo);
       this.departmentList();
+      this.getpatentTypeList();
     },
     //点击打卡项目详情
     tableRowClickX(record) {
-      if (record.type=='1'){
-        this.setState({
-          displayFees: "block",
-          costReduction: record.costReduction,
-          officialCost: record.officialCost,
-        });
-      }else{
-        this.setState({
-          displayFees: "none",
-        });
-      }
       this.setState({
-        jid: record.id, //项目ID
-        kid: record.commodityId, //商品ID
-        commodityName: record.commodityName, //金额
-        commodityPrice: record.commodityPrice, //金额
-        commodityQuantity: record.commodityQuantity, //数量
-        taskComment: record.taskComment, //备注
-        main: record.main.toString(), //是否为主要
-        addnextVisible: true,
-        addState: 0,
-      });
+        projectOperationVisible:true,
+        dataInfor:record,
+      })
     },
     //项目详情关闭
     nextCancel() {
       this.setState({
-        addnextVisible: false,
-        displayFees: "none",
-        officialCost: "", //是否有官费
-        costReduction: "", //是否有费减
+        projectOperationVisible: false,
+        gid: "",
+        dataInfor:{},
+      },()=>{
+        this.xiangmu(this.state.orderNo);
       });
     },
     //订单详情
@@ -1640,79 +1626,6 @@ const IntentionCustomer = Form.create()(
         }.bind(this)
       );
     },
-    //新建项目明细保存
-    nextSubmit(e) {
-      e.preventDefault();
-      if (this.state.gid == undefined || !this.state.gid) {
-        message.warning("服务名称不匹配!");
-        return false;
-      }
-      if (this.state.displayFees==='block') {
-        if(this.state.officialCost===''){
-          message.warning("请选择官费!");
-          return false;
-        }
-        if (this.state.costReduction==='') {
-          message.warning("请选择费减!");
-          return false;
-        }
-      }
-      if (moneyVerify(this.state.commodityPrice)) {
-        return;
-      }
-      if (!this.state.commodityPrice) {
-        message.warning("请输入金额!");
-        this.refs.commodityPrice.focus();
-        return false;
-      }
-      if (!this.state.commodityQuantity) {
-        message.warning("请输入商品数量!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      if (!this.state.main) {
-        message.warning("请选择是否为主要项目!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      this.setState({
-        loading: true,
-      });
-      let api = this.state.addState
-        ? "/api/admin/newOrder/addOrderTask"
-        : "/api/bianji";
-      $.ajax({
-        method: "POST",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + api,
-        data: {
-          commodityId: this.state.gid, //商品ID
-          orderNo: this.state.orderNo, //订单编号
-          commodityName: this.state.commodityName, //商品名称
-          commodityQuantity: this.state.commodityQuantity, //商品数量
-          commodityPrice: this.state.commodityPrice, //签单总价
-          taskComment: this.state.taskComment, //服务说明
-          main: this.state.main, //是否为主要项目
-          officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
-          costReduction: this.state.displayFees==='block' ?this.state.costReduction : '', //是否有费减
-        },
-      }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("保存成功!");
-            this.nextCancel();
-            this.xiangmu(this.state.orderNo);
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
-      );
-    },
-
     rizhi() {
       this.setState({
         loading: true,
@@ -1791,81 +1704,9 @@ const IntentionCustomer = Form.create()(
     //点击添加项目明细
     addDetailed() {
       this.setState({
-        gid: "",
-        customerArr: [],
-        commodityName: "",
-        commodityQuantity: "",
-        commodityId: "",
-        taskComment: "",
-        main: undefined,
-        commodityPrice: "",
-        addState: 1,
-        addnextVisible: true,
-        displayFees: "none",
-        officialCost: "",
-        costReduction: "",
+        projectOperationVisible: true,
       });
     },
-    //修改项目详情
-    tabRowSave(e) {
-      e.preventDefault();
-      if(isNaN(parseFloat(this.state.commodityPrice))){
-        message.warning("请输入正确的金额!");
-        return false;
-      }
-      if (this.state.displayFees==='block') {
-        if(this.state.officialCost===''){
-          message.warning("请选择官费!");
-          return false;
-        }
-        if (this.state.costReduction==='') {
-          message.warning("请选择费减!");
-          return false;
-        }
-      }
-      if (!this.state.commodityQuantity) {
-        message.warning("数量不能为空!");
-        return false;
-      }
-      if (!this.state.main) {
-        message.warning("请选择是否为主要项目!");
-        this.refs.commodityQuantity.focus();
-        return false;
-      }
-      $.ajax({
-        method: "POST",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
-        data: {
-          id: this.state.jid, //项目ID
-          commodityId: this.state.kid, //商品ID
-          orderNo: this.state.orderNo, //订单编号
-          main: this.state.main, //是否为主要
-          commodityPrice: this.state.commodityPrice, //金额
-          commodityQuantity: this.state.commodityQuantity, //数量
-          taskComment: this.state.taskComment, //备注
-          officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
-          costReduction: this.state.displayFees==='block' ?this.state.costReduction : '', //是否有费减
-        },
-      }).done(
-        function (data) {
-          this.setState({
-            loading: false,
-          });
-          if (!data.error.length) {
-            message.success("保存成功!");
-            this.nextCancel();
-            this.xiangmu(this.state.orderNo);
-            //this.loaduser(this.props.datauser);
-            this.loadData();
-          } else {
-            message.warning(data.error[0].message);
-          }
-        }.bind(this)
-      );
-    },
-
     //搜索
     search() {
       this.setState({
@@ -1909,6 +1750,23 @@ const IntentionCustomer = Form.create()(
         autoId: autoIds,
       });
     },
+    getpatentTypeList() {
+      $.ajax({
+        method: "get",
+        dataType: "json",
+        crossDomain: false,
+        url: globalConfig.context + '/api/admin/orderProject/getPatentType',
+        success: function (data) {
+          if (data.error.length === 0) {
+            this.setState({
+              patentTypeList:data.data
+            })
+          }else{
+            message.warning(data.error[0].message);
+          };
+        }.bind(this)
+      });
+    },
     //加载(自动补全)
     supervisor(e, state) {
       //客户名称与服务名称自动补全
@@ -2689,336 +2547,6 @@ const IntentionCustomer = Form.create()(
                 </Spin>
               </Form>
             </Modal> : <div/>}
-            {this.state.addnextVisible ? <Modal
-              maskClosable={false}
-              visible={this.state.addnextVisible}
-              onOk={this.nextCancel}
-              onCancel={this.nextCancel}
-              width="800px"
-              title={this.state.addState ? "添加项目任务" : "项目任务详情"}
-              footer=""
-              className="admin-desc-content"
-            >
-              <Form
-                layout="horizontal"
-                onSubmit={this.nextSubmit}
-                id="demand-form"
-              >
-                <Spin spinning={this.state.loading}>
-                  {this.state.addState ? (
-                    <div className="clearfix">
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="服务名称"
-                      >
-                        <AutoComplete
-                          className="certain-category-search"
-                          dropdownClassName="certain-category-search-dropdown"
-                          dropdownMatchSelectWidth={false}
-                          dropdownStyle={{ width: 200 }}
-                          style={{ width: "200px" }}
-                          dataSource={options}
-                          placeholder="输入服务名称"
-                          value={this.state.commodityName}
-                          onChange={this.httpChange}
-                          filterOption={true}
-                          onSelect={this.selectAuto}
-                        >
-                          <Input />
-                        </AutoComplete>
-                        <span className="mandatory">*</span>
-                      </FormItem>
-
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="服务数量"
-                      >
-                        <Input
-                          placeholder="请输入服务数量"
-                          value={this.state.commodityQuantity}
-                          style={{ width: "200px" }}
-                          onChange={(e) => {
-                            this.setState({
-                              commodityQuantity: e.target.value,
-                            });
-                          }}
-                          ref="commodityQuantity"
-                        />
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                      <FormItem
-                          className="half-item"
-                          labelCol={{ span: 3 }}
-                          wrapperCol={{ span: 14 }}
-                          label="官费:"
-                          style={{
-                            display: this.state.displayFees,
-                            marginLeft: "55px",
-                          }}
-                      >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                        <Radio.Group
-                            value={this.state.officialCost}
-                            onChange={(e) => {
-                              this.setState({ officialCost: e.target.value });
-                            }}
-                        >
-                          <Radio value="1">含官费</Radio>
-                          <Radio value="0">不含官费</Radio>
-                        </Radio.Group>
-                      </FormItem>
-                      <FormItem
-                          className="half-item"
-                          labelCol={{ span: 3 }}
-                          wrapperCol={{ span: 14 }}
-                          label="费减:"
-                          style={{
-                            display: this.state.displayFees,
-                            marginLeft: "55px",
-                          }}
-                      >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                        <Radio.Group
-                            value={this.state.costReduction}
-                            onChange={(e) => {
-                              this.setState({ costReduction: e.target.value });
-                            }}
-                        >
-                          <Radio value="1">有费减</Radio>
-                          <Radio value="0">无费减</Radio>
-                        </Radio.Group>
-                      </FormItem>
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="实签价格(万元)"
-                      >
-                        <Input
-                          placeholder="请输入实签价格"
-                          value={this.state.commodityPrice}
-                          style={{ width: "200px" }}
-                          onChange={(e) => {
-                            this.setState({ commodityPrice: e.target.value });
-                          }}
-                          ref="commodityPrice"
-                        />
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="主要业务"
-                      >
-                        <Select
-                          placeholder="选择是否为主要业务"
-                          style={{ width: "200px" }}
-                          value={this.state.main}
-                          onChange={(e) => {
-                            this.setState({ main: e });
-                          }}
-                        >
-                          {boutique.map(function (item) {
-                            return (
-                              <Select.Option key={item.value}>
-                                {item.key}
-                              </Select.Option>
-                            );
-                          })}
-                        </Select>
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                      <div className="clearfix">
-                        <FormItem
-                          labelCol={{ span: 4 }}
-                          wrapperCol={{ span: 16 }}
-                          label="服务说明"
-                        >
-                          <Input
-                            type="textarea"
-                            placeholder="请输入服务说明"
-                            value={this.state.taskComment}
-                            onChange={(e) => {
-                              this.setState({ taskComment: e.target.value });
-                            }}
-                          />
-                        </FormItem>
-                      </div>
-                      <FormItem
-                        wrapperCol={{ span: 12, offset: 4 }}
-                        className="half-middle"
-                      >
-                        <Button
-                          className="submitSave"
-                          type="primary"
-                          htmlType="submit"
-                        >
-                          保存
-                        </Button>
-                        <Button
-                          className="submitSave"
-                          type="ghost"
-                          onClick={this.nextCancel}
-                        >
-                          取消
-                        </Button>
-                      </FormItem>
-                    </div>
-                  ) : (
-                    <div className="clearfix">
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="项目名称"
-                      >
-                        <span>{this.state.commodityName}</span>
-                      </FormItem>
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="项目数量"
-                      >
-                        <Input
-                          placeholder="请输入数量"
-                          value={this.state.commodityQuantity}
-                          style={{ width: "200px" }}
-                          onChange={(e) => {
-                            this.setState({
-                              commodityQuantity: e.target.value,
-                            });
-                          }}
-                        />
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                      <FormItem
-                          className="half-item"
-                          labelCol={{ span: 3 }}
-                          wrapperCol={{ span: 14 }}
-                          label="官费:"
-                          style={{
-                            display: this.state.displayFees,
-                            marginLeft: "55px",
-                          }}
-                      >
-                          <span style={{ color: "red", marginRight: "27px" }}>
-                            *
-                          </span>
-                        <Radio.Group
-                            value={this.state.officialCost}
-                            onChange={(e) => {
-                              this.setState({ officialCost: e.target.value });
-                            }}
-                        >
-                          <Radio value={1}>含官费</Radio>
-                          <Radio value={0}>不含官费</Radio>
-                        </Radio.Group>
-                      </FormItem>
-                      <FormItem
-                          className="half-item"
-                          labelCol={{ span: 3 }}
-                          wrapperCol={{ span: 14 }}
-                          label="费减:"
-                          style={{
-                            display: this.state.displayFees,
-                            marginLeft: "55px",
-                          }}
-                      >
-                          <span style={{ color: "red", marginRight: "27px" }}>
-                            *
-                          </span>
-                        <Radio.Group
-                            value={this.state.costReduction}
-                            onChange={(e) => {
-                              this.setState({ costReduction: e.target.value });
-                            }}
-                        >
-                          <Radio value={1}>有费减</Radio>
-                          <Radio value={0}>无费减</Radio>
-                        </Radio.Group>
-                      </FormItem>
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="金额(万元)"
-                      >
-                        <Input
-                          placeholder="请输入签单金额"
-                          value={this.state.commodityPrice}
-                          style={{ width: "200px" }}
-                          onChange={(e) => {
-                            this.setState({ commodityPrice: e.target.value });
-                          }}
-                        />
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                      <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="主要项目"
-                      >
-                        <Select
-                          placeholder="选择是否为主要业务"
-                          style={{ width: "200px" }}
-                          value={this.state.main}
-                          onChange={(e) => {
-                            this.setState({ main: e });
-                          }}
-                        >
-                          {boutique.map(function (item) {
-                            return (
-                              <Select.Option key={item.value}>
-                                {item.key}
-                              </Select.Option>
-                            );
-                          })}
-                        </Select>
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                      <div className="clearfix">
-                        <FormItem
-                          labelCol={{ span: 4 }}
-                          wrapperCol={{ span: 16 }}
-                          label="服务说明"
-                        >
-                          <Input
-                            type="textarea"
-                            placeholder="请输入服务说明"
-                            value={this.state.taskComment}
-                            onChange={(e) => {
-                              this.setState({ taskComment: e.target.value });
-                            }}
-                          />
-                        </FormItem>
-                      </div>
-                      <FormItem
-                        wrapperCol={{ span: 12, offset: 4 }}
-                        className="half-middle"
-                      >
-                        <Button
-                          className="submitSave"
-                          type="primary"
-                          onClick={this.tabRowSave}
-                        >
-                          保存
-                        </Button>
-                        <Button
-                          className="submitSave"
-                          type="ghost"
-                          onClick={this.nextCancel}
-                        >
-                          取消
-                        </Button>
-                      </FormItem>
-                    </div>
-                  )}
-                </Spin>
-              </Form>
-            </Modal> : <div/>}
             {/* <Modal
             visible={this.state.rizhivisible}
             className="admin-desc-content"
@@ -3045,6 +2573,13 @@ const IntentionCustomer = Form.create()(
               loading={this.state.loading}
             />
           </div>
+          {this.state.projectOperationVisible ? <ProjectOperation
+              readOnly={this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0}
+              orderNo={this.state.orderNo}
+              visible={this.state.projectOperationVisible}
+              dataInfor={this.state.dataInfor}
+              onCancel={this.nextCancel}
+          /> : null}
         </div>
       );
     },

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

@@ -100,6 +100,15 @@ class Content extends Component {
                 });
             });
             break;
+            case "businessManagement":
+                require.ensure([], () => {
+                    const BusinessManagement = require("./task/businessManagement/index")
+                        .default;
+                    this.setState({
+                        component: <BusinessManagement ApiUrl={""} />
+                    });
+                });
+                break;
           //任务查询
           case "taskQuery":
             require.ensure([], () => {

+ 13 - 414
js/component/manageCenter/project/project/projectAssignment.jsx

@@ -32,6 +32,7 @@ import {
 import ShowModalDiv from "@/showModal.jsx";
 import OrderRiZi from "@/orderRiZi.jsx";
 import {ChooseList} from "../../order/orderNew/chooseList";
+import ProjectOperation from "../../../common/projectOperation";
 
 const {TabPane} = Tabs
 
@@ -646,93 +647,6 @@ const PaiDan = React.createClass({
     });
   },
 
-  //新建项目明细保存
-  nextSubmit(e) {
-    e.preventDefault();
-    if (this.state.gid == undefined || !this.state.gid) {
-      message.warning("服务名称不匹配!");
-      return false;
-    }
-    if (this.state.displayFees=='block') {
-      if(this.state.officialCost==''){
-        message.warning("请选择官费!");
-        return false;
-      }
-      if (this.state.costReduction == "") {
-        message.warning("请选择费减!");
-        return false;
-      }
-    }
-    if (!this.state.commodityPrice) {
-      message.warning("请输入金额!");
-      this.refs.commodityPrice.focus();
-      return false;
-    }
-    if (!this.state.commodityQuantity) {
-      message.warning("请输入商品数量!");
-      this.refs.commodityQuantity.focus();
-      return false;
-    }
-    if (!this.state.main) {
-      message.warning("请选择是否为主要项目!");
-      this.refs.commodityQuantity.focus();
-      return false;
-    }
-    if(this.state.addProjectType === 5 && !this.state.declarationBatch){
-      message.warning("请选择企业要求申报批次!");
-      return false;
-    }
-    if(this.state.isIso && !this.state.ifCertificationFee){
-      message.warning("请选择是否包含认证费用!");
-      return false;
-    }
-    this.setState({
-      loading: true
-    });
-    let api = this.state.addState
-      ? "/api/admin/newOrder/addOrderTask"
-      : "/api/bianji";
-    let infor = {
-      commodityId: this.state.gid, //商品ID
-      orderNo: this.state.RowData.orderNo, //订单编号
-      commodityName: this.state.commodityName, //商品名称
-      commodityQuantity: this.state.commodityQuantity, //商品数量
-      commodityPrice: this.state.commodityPrice, //签单总价
-      taskComment: this.state.taskComment, //服务说明
-      main: this.state.main, //是否为主要项目
-      officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
-      costReduction: this.state.displayFees==='block' ?this.state.costReduction : '', //是否有费减
-    }
-    if(this.state.addProjectType === 5){
-      infor.declarationBatch = this.state.declarationBatch || 1//申报批次
-    }
-    if(this.state.isIso){
-      infor.ifCertificationFee = this.state.ifCertificationFee || undefined;//是否包含认证费用
-    }
-    $.ajax({
-      method: "POST",
-      dataType: "json",
-      crossDomain: false,
-      url: globalConfig.context + api,
-      data: infor
-    }).done(
-      function(data) {
-        this.setState({
-          loading: false
-        });
-        if (!data.error.length) {
-          message.success("保存成功!");
-          this.nextCancel();
-          //this.loaduser(this.props.datauser);
-          this.xiangmu(this.state.RowData.orderNo);
-          this.loadData();
-        } else {
-          message.warning(data.error[0].message);
-        }
-      }.bind(this)
-    );
-  },
-
   //上级主管输入框失去焦点是判断客户是否存在
   selectAuto(value) {
     let kid = [];
@@ -765,70 +679,10 @@ const PaiDan = React.createClass({
   //点击添加项目明细
   addDetailed() {
     this.setState({
-      gid: "",
-      customerArr: [],
-      commodityName: "",
-      commodityQuantity: "",
-      commodityId: "",
-      taskComment: "",
-      main: undefined,
-      commodityPrice: "",
-      addState: 1,
-      addserviceVisible: true,
-      displayFees: "none",
-      officialCost: "",
-      costReduction: "",
+      projectOperationVisible: true,
     });
   },
 
-  //修改项目详情
-  tabRowSave(e) {
-    e.preventDefault();
-    if(isNaN(parseFloat(this.state.commodityPrice))){
-      message.warning("请输入正确的金额!");
-      return false;
-    }
-    if (!this.state.commodityQuantity) {
-      message.warning("数量不能为空!");
-      return false;
-    }
-    if (!this.state.main) {
-      message.warning("请选择是否为主要项目!");
-      this.refs.commodityQuantity.focus();
-      return false;
-    }
-    console.log(this.state.gid);
-    $.ajax({
-      method: "POST",
-      dataType: "json",
-      crossDomain: false,
-      url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
-      data: {
-        id: this.state.jid, //项目ID
-        commodityId: this.state.gid, //商品ID
-        orderNo: this.state.RowData.orderNo, //订单编号
-        main: this.state.main, //是否为主要
-        commodityPrice: this.state.commodityPrice, //金额
-        commodityQuantity: this.state.commodityQuantity, //数量
-        taskComment: this.state.taskComment //备注
-      }
-    }).done(
-      function(data) {
-        this.setState({
-          loading: false
-        });
-        if (!data.error.length) {
-          message.success("保存成功!");
-          this.nextCancel();
-          //this.loaduser(this.props.datauser);
-          this.loadData();
-        } else {
-          message.warning(data.error[0].message);
-        }
-      }.bind(this)
-    );
-  },
-
   //节点列表
   jiedian(orderNos) {
     $.ajax({
@@ -901,38 +755,16 @@ const PaiDan = React.createClass({
   },
   nextCancel() {
     this.setState({
-      addserviceVisible: false,
-      displayFees: "none",
-      officialCost: "", //是否有官费
-      costReduction: "", //是否有费减
-      addnextVisible: false,
-      declarationBatch: 1,
-      ifCertificationFee: '',
+      projectOperationVisible: false,
+      dataInfor:{},
+    },()=>{
+      this.xiangmu(this.state.orderNo);
     });
   },
   //点击打卡项目详情
   tableRowClickX(record) {
-    if (record.type == "1") {
-      this.setState({
-        displayFees: "block",
-        costReduction: record.costReduction,
-        officialCost: record.officialCost,
-      });
-    }else{
-      this.setState({
-        displayFees: "none",
-      });
-    }
     this.setState({
-      jid: record.id, //项目ID
-      kid: record.commodityId, //商品ID
-      commodityName: record.commodityName, //金额
-      commodityPrice: record.commodityPrice, //金额
-      commodityQuantity: record.commodityQuantity, //数量
-      taskComment: record.taskComment, //备注
-      main: record.main.toString(), //是否为主要
-      addnextVisible: true,
-      addState: 0,
+      projectOperationVisible:true,
       dataInfor:record,
     });
   },
@@ -1422,241 +1254,6 @@ const PaiDan = React.createClass({
             </Spin>
           </Form>
         </Modal> : <div/>}
-        {this.state.addserviceVisible ? <Modal
-          maskClosable={false}
-          visible={this.state.addserviceVisible}
-          onOk={this.nextCancel}
-          onCancel={this.nextCancel}
-          width="800px"
-          title={"添加项目明细"}
-          footer=""
-          className="admin-desc-content"
-        >
-          <Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">
-            <Spin spinning={this.state.loading}>
-              <div className="clearfix">
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="服务名称"
-                >
-                  <AutoComplete
-                    className="certain-category-search"
-                    dropdownClassName="certain-category-search-dropdown"
-                    dropdownMatchSelectWidth={false}
-                    dropdownStyle={{ width: 200 }}
-                    style={{ width: "200px" }}
-                    placeholder="输入服务名称"
-                    dataSource={options}
-                    value={this.state.commodityName}
-                    onChange={this.httpChange}
-                    filterOption={true}
-                    onSelect={this.selectAuto}
-                  >
-                    <Input />
-                  </AutoComplete>
-                  <span className="mandatory">*</span>
-                </FormItem>
-
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="服务数量"
-                >
-                  <Input
-                    placeholder="请输入服务数量"
-                    style={{ width: "200px" }}
-                    value={this.state.commodityQuantity}
-                    onChange={(e) => {
-                      this.setState({ commodityQuantity: e.target.value });
-                    }}
-                    ref="commodityQuantity"
-                  />
-                  <span className="mandatory">*</span>
-                </FormItem>
-                <FormItem
-                    className="half-item"
-                    labelCol={{ span: 3 }}
-                    wrapperCol={{ span: 14 }}
-                    label="官费:"
-                    style={{
-                      display: this.state.displayFees,
-                      marginLeft: "55px",
-                    }}
-                >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                  <Radio.Group
-                      value={this.state.officialCost}
-                      onChange={(e) => {
-                        this.setState({ officialCost: e.target.value });
-                      }}
-                  >
-                    <Radio value="1">含官费</Radio>
-                    <Radio value="0">不含官费</Radio>
-                  </Radio.Group>
-                </FormItem>
-                <FormItem
-                    className="half-item"
-                    labelCol={{ span: 3 }}
-                    wrapperCol={{ span: 14 }}
-                    label="费减:"
-                    style={{
-                      display: this.state.displayFees,
-                      marginLeft: "55px",
-                    }}
-                >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                  <Radio.Group
-                      value={this.state.costReduction}
-                      onChange={(e) => {
-                        this.setState({ costReduction: e.target.value });
-                      }}
-                  >
-                    <Radio value="1">有费减</Radio>
-                    <Radio value="0">无费减</Radio>
-                  </Radio.Group>
-                </FormItem>
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="实签价格(万元)"
-                >
-                  <Input
-                    placeholder="请输入实签价格"
-                    style={{ width: "200px" }}
-                    value={this.state.commodityPrice}
-                    onChange={(e) => {
-                      this.setState({ commodityPrice: e.target.value });
-                    }}
-                    ref="commodityPrice"
-                  />
-                  <span className="mandatory">*</span>
-                </FormItem>
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="主要业务"
-                >
-                  <Select
-                    placeholder="选择是否为主要业务"
-                    style={{ width: "200px" }}
-                    value={this.state.main}
-                    onChange={(e) => {
-                      this.setState({ main: e });
-                    }}
-                  >
-                    {boutique.map(function (item) {
-                      return (
-                        <Select.Option key={item.value}>
-                          {item.key}
-                        </Select.Option>
-                      );
-                    })}
-                  </Select>
-                  <span className="mandatory">*</span>
-                </FormItem>
-                <div className="clearfix">
-                  <FormItem
-                    labelCol={{ span: 4 }}
-                    wrapperCol={{ span: 16 }}
-                    label="服务说明"
-                  >
-                    <Input
-                      type="textarea"
-                      placeholder="请输入服务说明"
-                      value={this.state.taskComment}
-                      onChange={(e) => {
-                        this.setState({ taskComment: e.target.value });
-                      }}
-                    />
-                  </FormItem>
-                </div>
-                {/*0通用 1专利 2软著 3审计 4双软 5高新 6商标*/}
-                {this.state.addProjectType === 5 ?
-                    <div className="clearfix">
-                      <FormItem
-                          className="half-item"
-                          {...formItemLayout}
-                          label="企业要求申报批次"
-                      >
-                        <Select
-                            placeholder="请选择企业要求申报批次"
-                            style={{ width: "200px" }}
-                            value={this.state.declarationBatch}
-                            onChange={(e) => {
-                              this.setState({ declarationBatch: e });
-                            }}
-                        >
-                          <Select.Option value={1}>
-                            第一批
-                          </Select.Option>
-                          <Select.Option value={2}>
-                            第二批
-                          </Select.Option>
-                          <Select.Option value={3}>
-                            第三批
-                          </Select.Option>
-                          <Select.Option value={4}>
-                            第四批
-                          </Select.Option>
-                        </Select>
-                        <span className="mandatory">*</span>
-                      </FormItem>
-                    </div>: null
-                }
-                {
-                  this.state.isIso?<div className="clearfix">
-                    <FormItem
-                        className="half-item"
-                        {...formItemLayout}
-                        label="是否包含认证费用"
-                    >
-                      <Select
-                          placeholder="请选择是否包含认证费用"
-                          style={{ width: "200px" }}
-                          value={this.state.ifCertificationFee}
-                          onChange={(e) => {
-                            this.setState({ ifCertificationFee: e });
-                          }}
-                      >
-                        <Select.Option value={'0'}>
-                          否
-                        </Select.Option>
-                        <Select.Option value={'1'}>
-                          是
-                        </Select.Option>
-                      </Select>
-                      <span className="mandatory">*</span>
-                    </FormItem>
-                  </div>: null
-                }
-                <FormItem
-                  wrapperCol={{ span: 12, offset: 4 }}
-                  className="half-middle"
-                >
-                  <Button
-                    className="submitSave"
-                    type="primary"
-                    htmlType="submit"
-                  >
-                    保存
-                  </Button>
-                  <Button
-                    className="submitSave"
-                    type="ghost"
-                    onClick={this.nextCancel}
-                  >
-                    取消
-                  </Button>
-                </FormItem>
-              </div>
-            </Spin>
-          </Form>
-        </Modal> : <div/>}
         {this.state.noVisible ? <Modal
           maskClosable={false}
           visible={this.state.noVisible}
@@ -1733,11 +1330,13 @@ const PaiDan = React.createClass({
           visible={this.state.rizhivisible}
           loading={this.state.loading}
         />
-        {this.state.addnextVisible && <ProjectDetailsReadOnly
-            infor={this.state.dataInfor}
-            visible={this.state.addnextVisible}
+        {this.state.projectOperationVisible ? <ProjectOperation
+            readOnly={this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0}
+            orderNo={this.state.orderNo}
+            visible={this.state.projectOperationVisible}
+            dataInfor={this.state.dataInfor}
             onCancel={this.nextCancel}
-        />}
+        /> : null}
       </div>
     );
   }

+ 15 - 328
js/component/manageCenter/project/project/zxsglyOutSourcingPaiDan.jsx

@@ -37,6 +37,7 @@ import {ChooseList} from "../../order/orderNew/chooseList";
 import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly";
 import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
+import ProjectOperation from "../../../common/projectOperation";
 const zxsglyOutSourcingPaiDan = React.createClass({
   loadData(pageNo) {
     this.state.data = [];
@@ -717,78 +718,6 @@ const zxsglyOutSourcingPaiDan = React.createClass({
     });
   },
 
-  //新建项目明细保存
-  nextSubmit(e) {
-    e.preventDefault();
-    if (this.state.gid == undefined || !this.state.gid) {
-      message.warning("服务名称不匹配!");
-      return false;
-    }
-    if (this.state.displayFees=='block') {
-      if(this.state.officialCost==''){
-        message.warning("请选择官费!");
-        return false;
-      }
-      if (this.state.costReduction == "") {
-        message.warning("请选择费减!");
-        return false;
-      }
-    }
-    if (!this.state.commodityPrice) {
-      message.warning("请输入金额!");
-      this.refs.commodityPrice.focus();
-      return false;
-    }
-    if (!this.state.commodityQuantity) {
-      message.warning("请输入商品数量!");
-      this.refs.commodityQuantity.focus();
-      return false;
-    }
-    if (!this.state.main) {
-      message.warning("请选择是否为主要项目!");
-      this.refs.commodityQuantity.focus();
-      return false;
-    }
-    this.setState({
-      loading: true
-    });
-    let api = this.state.addState
-      ? "/api/admin/newOrder/addOrderTask"
-      : "/api/bianji";
-    $.ajax({
-      method: "POST",
-      dataType: "json",
-      crossDomain: false,
-      url: globalConfig.context + api,
-      data: {
-        commodityId: this.state.gid, //商品ID
-        orderNo: this.state.RowData.orderNo, //订单编号
-        commodityName: this.state.commodityName, //商品名称
-        commodityQuantity: this.state.commodityQuantity, //商品数量
-        commodityPrice: this.state.commodityPrice, //签单总价
-        taskComment: this.state.taskComment, //服务说明
-        main: this.state.main, //是否为主要项目
-        officialCost: this.state.displayFees==='block' ? this.state.officialCost : '', //是否有官费
-        costReduction: this.state.displayFees==='block' ?this.state.costReduction : '', //是否有费减
-      }
-    }).done(
-      function(data) {
-        this.setState({
-          loading: false
-        });
-        if (!data.error.length) {
-          message.success("保存成功!");
-          this.nextCancel();
-          //this.loaduser(this.props.datauser);
-          this.xiangmu(this.state.RowData.orderNo);
-          this.loadData();
-        } else {
-          message.warning(data.error[0].message);
-        }
-      }.bind(this)
-    );
-  },
-
   //详情
   callBack(key) {
     if (key === "2") {
@@ -957,70 +886,10 @@ const zxsglyOutSourcingPaiDan = React.createClass({
   //点击添加项目明细
   addDetailed() {
     this.setState({
-      gid: "",
-      customerArr: [],
-      commodityName: "",
-      commodityQuantity: "",
-      commodityId: "",
-      taskComment: "",
-      main: undefined,
-      commodityPrice: "",
-      addState: 1,
-      addserviceVisible: true,
-      displayFees: "none",
-      officialCost: "",
-      costReduction: "",
+      projectOperationVisible: true,
     });
   },
 
-  //修改项目详情
-  tabRowSave(e) {
-    e.preventDefault();
-    if(isNaN(parseFloat(this.state.commodityPrice))){
-      message.warning("请输入正确的金额!");
-      return false;
-    }
-    if (!this.state.commodityQuantity) {
-      message.warning("数量不能为空!");
-      return false;
-    }
-    if (!this.state.main) {
-      message.warning("请选择是否为主要项目!");
-      this.refs.commodityQuantity.focus();
-      return false;
-    }
-    console.log(this.state.gid);
-    $.ajax({
-      method: "POST",
-      dataType: "json",
-      crossDomain: false,
-      url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
-      data: {
-        id: this.state.jid, //项目ID
-        commodityId: this.state.gid, //商品ID
-        orderNo: this.state.RowData.orderNo, //订单编号
-        main: this.state.main, //是否为主要
-        commodityPrice: this.state.commodityPrice, //金额
-        commodityQuantity: this.state.commodityQuantity, //数量
-        taskComment: this.state.taskComment //备注
-      }
-    }).done(
-      function(data) {
-        this.setState({
-          loading: false
-        });
-        if (!data.error.length) {
-          message.success("保存成功!");
-          this.nextCancel();
-          //this.loaduser(this.props.datauser);
-          this.loadData();
-        } else {
-          message.warning(data.error[0].message);
-        }
-      }.bind(this)
-    );
-  },
-
   //节点列表
   jiedian(orderNos) {
     $.ajax({
@@ -1093,27 +962,19 @@ const zxsglyOutSourcingPaiDan = React.createClass({
   },
   nextCancel() {
     this.setState({
-      addserviceVisible: false,
-      addnextVisible: false,
-      displayFees: "none",
-      officialCost: "", //是否有官费
-      costReduction: "", //是否有费减
+      projectOperationVisible: false,
+      gid: "",
+      dataInfor:{},
+    },()=>{
+      this.loadData();
     });
   },
   //点击打卡项目详情
   tableRowClickX(record) {
     this.setState({
-      jid: record.id, //项目ID
-      kid: record.commodityId, //商品ID
-      commodityName: record.commodityName, //金额
-      commodityPrice: record.commodityPrice, //金额
-      commodityQuantity: record.commodityQuantity, //数量
-      taskComment: record.taskComment, //备注
-      main: record.main.toString(), //是否为主要
-      addnextVisible: true,
+      projectOperationVisible:true,
       dataInfor:record,
-      addState: 0
-    });
+    })
   },
   searchSwitch() {
     this.setState({
@@ -1702,182 +1563,6 @@ const zxsglyOutSourcingPaiDan = React.createClass({
         </Modal>
         <Modal
           maskClosable={false}
-          visible={this.state.addserviceVisible}
-          onOk={this.nextCancel}
-          onCancel={this.nextCancel}
-          width="800px"
-          title={"添加项目明细"}
-          footer=""
-          className="admin-desc-content"
-        >
-          <Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">
-              <div className="clearfix">
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="服务名称"
-                >
-                  <AutoComplete
-                    className="certain-category-search"
-                    dropdownClassName="certain-category-search-dropdown"
-                    dropdownMatchSelectWidth={false}
-                    dropdownStyle={{ width: 200 }}
-                    style={{ width: "200px" }}
-                    placeholder="输入服务名称"
-                    dataSource={options}
-                    value={this.state.commodityName}
-                    onChange={this.httpChange}
-                    filterOption={true}
-                    onSelect={this.selectAuto}
-                  >
-                    <Input />
-                  </AutoComplete>
-                  <span className="mandatory">*</span>
-                </FormItem>
-
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="服务数量"
-                >
-                  <Input
-                    placeholder="请输入服务数量"
-                    style={{ width: "200px" }}
-                    value={this.state.commodityQuantity}
-                    onChange={e => {
-                      this.setState({ commodityQuantity: e.target.value });
-                    }}
-                    ref="commodityQuantity"
-                  />
-                  <span className="mandatory">*</span>
-                </FormItem>
-                <FormItem
-                    className="half-item"
-                    labelCol={{ span: 3 }}
-                    wrapperCol={{ span: 14 }}
-                    label="官费:"
-                    style={{
-                      display: this.state.displayFees,
-                      marginLeft: "55px",
-                    }}
-                >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                  <Radio.Group
-                      value={this.state.officialCost}
-                      onChange={(e) => {
-                        this.setState({ officialCost: e.target.value });
-                      }}
-                  >
-                    <Radio value="1">含官费</Radio>
-                    <Radio value="0">不含官费</Radio>
-                  </Radio.Group>
-                </FormItem>
-                <FormItem
-                    className="half-item"
-                    labelCol={{ span: 3 }}
-                    wrapperCol={{ span: 14 }}
-                    label="费减:"
-                    style={{
-                      display: this.state.displayFees,
-                      marginLeft: "55px",
-                    }}
-                >
-                      <span style={{ color: "red", marginRight: "27px" }}>
-                        *
-                      </span>
-                  <Radio.Group
-                      value={this.state.costReduction}
-                      onChange={(e) => {
-                        this.setState({ costReduction: e.target.value });
-                      }}
-                  >
-                    <Radio value="1">有费减</Radio>
-                    <Radio value="0">无费减</Radio>
-                  </Radio.Group>
-                </FormItem>
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="实签价格(万元)"
-                >
-                  <Input
-                    placeholder="请输入实签价格"
-                    style={{ width: "200px" }}
-                    value={this.state.commodityPrice}
-                    onChange={e => {
-                      this.setState({ commodityPrice: e.target.value });
-                    }}
-                    ref="commodityPrice"
-                  />
-                  <span className="mandatory">*</span>
-                </FormItem>
-                <FormItem
-                  className="half-item"
-                  {...formItemLayout}
-                  label="主要业务"
-                >
-                  <Select
-                    placeholder="选择是否为主要业务"
-                    style={{ width: "200px" }}
-                    value={this.state.main}
-                    onChange={e => {
-                      this.setState({ main: e });
-                    }}
-                  >
-                    {boutique.map(function(item) {
-                      return (
-                        <Select.Option key={item.value}>
-                          {item.key}
-                        </Select.Option>
-                      );
-                    })}
-                  </Select>
-                  <span className="mandatory">*</span>
-                </FormItem>
-                <div className="clearfix">
-                  <FormItem
-                    labelCol={{ span: 4 }}
-                    wrapperCol={{ span: 16 }}
-                    label="服务说明"
-                  >
-                    <Input
-                      type="textarea"
-                      placeholder="请输入服务说明"
-                      value={this.state.taskComment}
-                      onChange={e => {
-                        this.setState({ taskComment: e.target.value });
-                      }}
-                    />
-                  </FormItem>
-                </div>
-                <FormItem
-                  wrapperCol={{ span: 12, offset: 4 }}
-                  className="half-middle"
-                >
-                  <Button
-                    className="submitSave"
-                    type="primary"
-                    htmlType="submit"
-                    loading={this.state.loading}
-                  >
-                    保存
-                  </Button>
-                  <Button
-                    className="submitSave"
-                    type="ghost"
-                    onClick={this.nextCancel}
-                  >
-                    取消
-                  </Button>
-                </FormItem>
-              </div>
-          </Form>
-        </Modal>
-
-        <Modal
-          maskClosable={false}
           visible={this.state.noVisible}
           onOk={this.noCancel}
           onCancel={this.noCancel}
@@ -1961,11 +1646,13 @@ const zxsglyOutSourcingPaiDan = React.createClass({
           visible={this.state.rizhivisible}
           loading={this.state.loading}
         />
-        {this.state.addnextVisible && <ProjectDetailsReadOnly
-            infor={this.state.dataInfor}
-            visible={this.state.addnextVisible}
+        {this.state.projectOperationVisible ? <ProjectOperation
+            readOnly={this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0}
+            orderNo={this.state.orderNo}
+            visible={this.state.projectOperationVisible}
+            dataInfor={this.state.dataInfor}
             onCancel={this.nextCancel}
-        />}
+        /> : null}
       </div>
     );
   }

+ 126 - 0
js/component/manageCenter/project/task/businessManagement/checkInfor.jsx

@@ -0,0 +1,126 @@
+import React,{Component} from 'react';
+import {Form, Input, Modal, Select, Spin} from "antd";
+import {
+    getboutique,
+} from "@/tools";
+
+const formItemLayout = {
+    labelCol: { span: 8 },
+    wrapperCol: { span: 14 }
+};
+
+const FormItem = Form.Item;
+
+class checkInfor extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: false,
+        }
+    }
+
+    render() {
+        const {
+            commodityName,
+            commodityQuantity,
+            officialCost,
+            costReduction,
+            commodityPrice,
+            main,
+            taskComment,
+            ifCertificationFee,//是否包含认证费
+            declarationBatch,//批次
+            type,//项目类型  0 正常 1专利 2软著 3审计 4双软 5高新 6商标
+        } = this.props.infor;
+        return (
+            <Modal
+                maskClosable={false}
+                visible={this.props.visible}
+                onOk={this.props.onCancel}
+                onCancel={this.props.onCancel}
+                width="800px"
+                title="项目任务详情"
+                footer=""
+                className="admin-desc-content"
+            >
+                <Form layout="horizontal" id="demand-form">
+                    <div className="clearfix">
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="项目名称"
+                        >
+                            <span>{commodityName}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="项目数量"
+                        >
+                            <span>{commodityQuantity}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="官费"
+                            style={{ display: this.state.displayFees }}
+                        >
+                              <span>
+                                {officialCost === 0 ? "无官费" : "有官费"}
+                              </span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="费减"
+                            style={{ display: this.state.displayFees }}
+                        >
+                              <span>
+                                {costReduction === 0 ? "无费减" : "有费减"}
+                              </span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="金额(万元)"
+                        >
+                            <span>{commodityPrice}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="主要项目"
+                        >
+                            <span>{getboutique(String(main))}</span>
+                        </FormItem>
+                        {type === 5 && <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="企业申报批次"
+                        >
+                                <span>
+                                    {
+                                        declarationBatch === 1 ? '第一批' :
+                                            declarationBatch === 2 ? '第二批' :
+                                                declarationBatch === 3 ? '第三批' :
+                                                    declarationBatch === 4 ? '第四批' : '未知'
+                                    }
+                                </span>
+                        </FormItem>}
+                        <div className="clearfix">
+                            <FormItem
+                                labelCol={{ span: 4 }}
+                                wrapperCol={{ span: 16 }}
+                                label="服务说明"
+                            >
+                                <span>{taskComment}</span>
+                            </FormItem>
+                        </div>
+                    </div>
+                </Form>
+            </Modal>
+        );
+    }
+}
+
+export default checkInfor;

+ 451 - 0
js/component/manageCenter/project/task/businessManagement/index.jsx

@@ -0,0 +1,451 @@
+import React,{Component} from "react";
+import {Button, Cascader, Icon, Input, message, Select, Spin, Table, Tabs, Tag, Tooltip} from "antd";
+import $ from "jquery/src/ajax";
+import {ChooseList} from "../../../order/orderNew/chooseList";
+import {
+    getTaskStatus,
+    getProjectName} from '@/tools';
+import {projectStatusCascader } from '@/dataDic.js';
+import CheckInfor from './checkInfor';
+import OrderInfor from "./orderInfor";
+
+const TabPane = Tabs.TabPane;
+
+class BusinessManagement extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            changeList:[],
+            columns:[
+                {
+                    title: '项目编号',
+                    dataIndex: 'id',
+                    key: 'id',
+                    fixed: 'left',
+                    width: 50,
+                    render: (text, record) => {
+                        if (record.splitStatus == 2) {
+                            return <span>{record.splitSuper + '-' + record.splitId}</span>
+                        } else {
+                            return text
+                        }
+                    },
+                },
+                {
+                    title: '项目名称',
+                    dataIndex: 'commodityName',
+                    key: 'commodityName',
+                    fixed: 'left',
+                    width: 100,
+                    render: text => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'100px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    }
+                },
+                {
+                    title: '项目数量',
+                    dataIndex: 'commodityQuantity',
+                    key: 'commodityQuantity',
+                },
+                {
+                    title: '订单编号',
+                    dataIndex: 'orderNo',
+                    key: 'orderNo',
+                },
+                {
+                    title: '合同编号',
+                    dataIndex: 'contractNo',
+                    key: 'contractNo',
+                },
+                {
+                    title: '客户名称',
+                    dataIndex: 'userName',
+                    key: 'userName',
+                    className: 'userName',
+                    render: text => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'100px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    }
+                },
+                {
+                    title: '业务类别',
+                    dataIndex: 'cname',
+                    key: 'cname',
+                },
+                {
+                    title: '分配时间',
+                    dataIndex: 'taskDistributionTime',
+                    key: 'taskDistributionTime',
+                },
+                {
+                    title: '订单部门',
+                    dataIndex: 'depName',
+                    key: 'depName',
+                },
+                {
+                    title: '操作',
+                    dataIndex: 'operation',
+                    key: 'operation',
+                    render: (text,record) => {
+                        return (
+                            <Button
+                                type="primary"
+                                style={{ margin: '0 10px' }}
+                                onClick={(e) => {
+                                    e.stopPropagation();
+                                    this.setState({
+                                        visible:true,
+                                        infor:record
+                                    })
+                                }}
+                            >
+                                核对专利
+                            </Button>
+
+                        )
+                    }
+                },
+            ],
+            dataSource:[],
+            infor:{},
+
+
+            nameSearch : '',
+            orderNoSearch : '',
+            contractNoSearch : undefined,
+            taskNoSearch : '',
+            departmenttSearch : undefined,
+            projectStatusSearch : [], //项目状态
+            approvalSearch : undefined,
+            outsourceStatusSearch : [],
+
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page)
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据'
+                },
+            },
+
+            departmentArr:[]
+        }
+        this.loadData = this.loadData.bind(this);
+        this.changeList = this.changeList.bind(this);
+        this.departmentList = this.departmentList.bind(this);
+        this.reset = this.reset.bind(this);
+    }
+
+    componentDidMount() {
+        this.loadData();
+        this.departmentList();
+    }
+
+    loadData(pageNo) {
+        this.setState({
+            loading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/orderProject/selectProjectCheck",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                name: this.state.nameSearch || undefined, //客户名称
+                depId: this.state.departmenttSearch, //订单部门
+                orderNo: this.state.orderNoSearch || undefined, //订单编号
+                contractNo: this.state.contractNoSearch, //合同编号
+                taskId: this.state.taskNoSearch || undefined, //项目编号
+                taskStatus: this.state.taskStatuSearch, //项目状态
+                projectStatus: this.state.projectStatusSearch && this.state.projectStatusSearch.length > 0 ?
+                    (typeof this.state.projectStatusSearch[0] === 'string' ? this.state.projectStatusSearch[1] : this.state.projectStatusSearch[0]) : undefined,  //项目状态
+                adminName: this.state.adminName, //项目受理人
+                approval: this.state.approvalSearch, //特批状态搜索
+                outsourceStatus:
+                    this.state.outsourceStatusSearch >= 999
+                        ? undefined
+                        : this.state.outsourceStatusSearch, //外包状态搜索
+            },
+            success: function (data) {
+                let theArr = []
+                if(data.error.length === 0){
+                    for (let i = 0; i < data.data.list.length; i++) {
+                        let thisdata = data.data.list[i];
+                        thisdata.key = i;
+                        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,
+                    })
+                }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
+        });
+    }
+
+    //部门
+    departmentList() {
+        this.setState({
+            loading: true,
+        })
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/organization/selectSuperId',
+            data: {},
+            success: function (data) {
+                let thedata = data.data
+                let theArr = []
+                if (!thedata) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message)
+                    }
+                    thedata = {}
+                } else {
+                    thedata.map(function (item, index) {
+                        theArr.push({
+                            key: index,
+                            name: item.name,
+                            id: item.id,
+                        })
+                    })
+                }
+                this.setState({
+                    departmentArr: theArr,
+                })
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                })
+            }.bind(this)
+        )
+    }
+
+    reset(){
+        this.setState({
+            nameSearch : '',
+            orderNoSearch : '',
+            contractNoSearch : undefined,
+            taskNoSearch : '',
+            departmenttSearch : undefined,
+            projectStatusSearch : [], //项目状态
+            approvalSearch : undefined,
+            outsourceStatusSearch : [],
+        },()=>{
+            this.loadData();
+        })
+    }
+
+    render() {
+        return (
+            <div className="user-content">
+                <div className="content-title">
+                    <span style={{ fontWeight: 900, fontSize: 16 }}>核对专利</span>
+                    <Tabs
+                        defaultActiveKey="1"
+                        className="test"
+                    >
+                        <TabPane tab="搜索" key="1">
+                            <div className="user-search" style={{ marginLeft: 10 }}>
+                                <Input
+                                    placeholder="客户名称"
+                                    value={this.state.nameSearch}
+                                    onChange={(e) => {
+                                        this.setState({ nameSearch: e.target.value })
+                                    }}
+                                />
+                                <Input
+                                    placeholder="订单编号"
+                                    value={this.state.orderNoSearch}
+                                    onChange={(e) => {
+                                        this.setState({ orderNoSearch: e.target.value })
+                                    }}
+                                />
+                                <Input
+                                    placeholder="合同编号"
+                                    value={this.state.contractNoSearch}
+                                    onChange={(e) => {
+                                        this.setState({ contractNoSearch: e.target.value })
+                                    }}
+                                />
+                                <Input
+                                    placeholder="项目编号"
+                                    value={this.state.taskNoSearch}
+                                    onChange={(e) => {
+                                        this.setState({ taskNoSearch: e.target.value })
+                                    }}
+                                />
+                                <Select
+                                    placeholder="选择部门"
+                                    style={{ width: 150, marginRight: '10px' }}
+                                    value={this.state.departmenttSearch}
+                                    onChange={(e) => {
+                                        this.setState({ departmenttSearch: e })
+                                    }}
+                                >
+                                    {this.state.departmentArr.map(function (item) {
+                                        return (
+                                            <Select.Option key={item.id}>{item.name}</Select.Option>
+                                        )
+                                    })}
+                                </Select>
+                                <Cascader
+                                    placeholder="项目状态"
+                                    style={{ width: 150, marginRight: '10px' }}
+                                    options={projectStatusCascader}
+                                    value={this.state.projectStatusSearch}
+                                    onChange={(e)=>{
+                                        this.setState({
+                                            projectStatusSearch: e
+                                        })
+                                    }}
+                                />
+                                <Select
+                                    placeholder="特批状态"
+                                    style={{ width: 150, marginRight: '10px' }}
+                                    value={this.state.approvalSearch}
+                                    onChange={(e) => {
+                                        this.setState({ approvalSearch: e })
+                                    }}
+                                >
+                                    <Select.Option key={0}>非特批</Select.Option>
+                                    <Select.Option key={1}>特批</Select.Option>
+                                </Select>
+                                <Select
+                                    placeholder="外包状态"
+                                    style={{ width: 150, marginRight: '10px' }}
+                                    value={this.state.outsourceStatusSearch}
+                                    onChange={(e) => {
+                                        this.setState({ outsourceStatusSearch: e })
+                                    }}
+                                >
+                                    <Select.Option key={0}>外包待审核</Select.Option>
+                                    <Select.Option key={2}>外包审核驳回</Select.Option>
+                                    <Select.Option key={999}>全部</Select.Option>
+                                </Select>
+                                <Button type="primary" onClick={()=>{
+                                    this.loadData();
+                                }}>
+                                    搜索
+                                </Button>
+                                <Button
+                                    onClick={(e) => {
+                                        this.reset(true)
+                                    }}
+                                >
+                                    重置
+                                </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>
+                    </Tabs>
+                    <div className="patent-table">
+                        <Spin spinning={this.state.loading}>
+                            <Table
+                                size="middle"
+                                columns={
+                                    this.state.changeList.length !== 0
+                                        ? this.state.changeList
+                                        : this.state.columns
+                                }
+                                dataSource={this.state.dataSource}
+                                pagination={false}
+                                onRowClick={(record)=>{
+                                    this.setState({
+                                        orderVisible:true,
+                                        orderNo:record.orderNo
+                                    })
+                                }}
+                            />
+                        </Spin>
+                    </div>
+                </div>
+                {this.state.visible ? <CheckInfor
+                    visible={this.state.visible}
+                    infor={this.state.infor}
+                    onCancel={()=>{
+                        this.setState({
+                            visible:false,
+                            infor:{}
+                        })
+                    }}
+                /> : null}
+                {this.state.orderVisible ? <OrderInfor
+                    visible={this.state.orderVisible}
+                    orderNo={this.state.orderNo}
+                    onCancel={()=>{
+                        this.setState({
+                            orderVisible:false,
+                            orderNo:''
+                        })
+                    }}
+                /> : null}
+            </div>
+        )
+    }
+}
+
+export default BusinessManagement;

+ 775 - 0
js/component/manageCenter/project/task/businessManagement/orderInfor.jsx

@@ -0,0 +1,775 @@
+import React,{Component} from "react";
+import {Button, Col, DatePicker, Form, Input, message, Modal, Select, Spin, Table, Tag, Tooltip} from "antd";
+import {getApprovedState, getLiquidationStatus, getProcessStatus, getProjectName, splitUrl} from "../../../../tools";
+import moment from "moment";
+import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
+import PicturesWall from "../../../order/orderNew/changeComponent/picturesWall";
+import ImgList from "../../../../common/imgList";
+import $ from "jquery";
+
+const FormItem = Form.Item;
+
+const formItemLayout = {
+    labelCol: { span: 8 },
+    wrapperCol: { span: 14 },
+};
+
+class OrderInfor extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            contactList:[],
+
+            columns: [
+                {
+                    title: "业务项目名称",
+                    dataIndex: "commodityName",
+                    key: "commodityName",
+                    render: (text, record) => {
+                        return (
+                            text + "-" + record.id
+                        )
+                    }
+                },
+                {
+                    title: "项目类别",
+                    dataIndex: "cname",
+                    key: "cname",
+                },
+                {
+                    title: "项目数量",
+                    dataIndex: "commodityQuantity",
+                    key: "commodityQuantity",
+                    render: (text, record) => {
+                        if (record.splitStatus == 1) {
+                            return (
+                                <span>
+                                    {text}{" "}
+                                    <Tag
+                                        color="#108ee9"
+                                        onClick={(e) => {
+                                            e.stopPropagation();
+                                            this.showRes(record);
+                                        }}
+                                    >
+                                        已拆
+                                    </Tag>
+                                </span>
+                            );
+                        } else {
+                            return text;
+                        }
+                    },
+                },
+                {
+                    title: "金额(万元)",
+                    dataIndex: "commodityPrice",
+                    key: "commodityPrice",
+                },
+                {
+                    title: "负责人",
+                    dataIndex: "contacts",
+                    key: "contacts",
+                },
+                {
+                    title: "负责人电话",
+                    dataIndex: "contactsMobile",
+                    key: "contactsMobile",
+                },
+                {
+                    title: "项目状态",
+                    dataIndex: "projectStatus",
+                    key: "projectStatus",
+                    render: (text) => {
+                        return getProjectName(text);
+                    },
+                },
+                {
+                    title: "主要项目",
+                    dataIndex: "main",
+                    key: "main",
+                    render: (text) => {
+                        return text ? "是" : "否";
+                    },
+                },
+                {
+                    title: "项目说明",
+                    dataIndex: "taskComment",
+                    key: "taskComment",
+                    render: (text) => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'100px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        );
+                    },
+                },
+            ]
+        }
+        this.loaduser = this.loaduser.bind(this);
+        this.jiedian = this.jiedian.bind(this);
+        this.loadData = this.loadData.bind(this);
+    }
+
+    componentDidMount() {
+        this.loaduser();
+        this.jiedian();
+        this.loadData();
+    }
+
+    //查看项目列表
+    loadData(record) {
+        this.setState({
+            loading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
+            data: {
+                orderNo: this.props.orderNo
+            },
+            success: function (data) {
+                let theArr = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        let thisdata = data.data[i];
+                        thisdata.key = i;
+                        thisdata.sort = thisdata.cSort;
+                        thisdata.declarationBatch = thisdata.declarationBatch || undefined;//申报批次
+                        thisdata.ifCertificationFee = isNaN(parseInt(thisdata.ifCertificationFee)) ? undefined : thisdata.ifCertificationFee;//是否包含申报批次
+                        theArr.push(thisdata);
+                    }
+                }
+                this.setState({
+                    dataSource: theArr,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    loaduser() {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                let thisData = data.data;
+                if (!thisData) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                    thisData = {};
+                }
+                if (thisData.approval == 2) {
+                    thisData.approval = "特批通过";
+                } else if (thisData.approval == 3) {
+                    thisData.approval = "特批驳回";
+                }
+                this.setState({
+                    id: thisData.id,
+                    kehuId: thisData.buyerId,
+                    orderNo: thisData.orderNo, //订单编号
+                    orderType: thisData.orderType, //订单类型
+                    firstAmount: thisData.firstAmount, //首付金额
+                    totalAmount: thisData.totalAmount, //总金额
+                    settlementAmount: thisData.settlementAmount, //结算金额
+                    liquidationStatus: thisData.liquidationStatus, //清算状态
+                    processStatus: thisData.processStatus, //流程状态
+                    orderRemarks: thisData.orderRemarks, //订单备注
+                    contractNo: thisData.contractNo, //合同编号
+                    contacts: thisData.contacts, //联系人
+                    contactMobile: thisData.contactMobile, //联系人电话
+                    legalPerson: thisData.legalPerson, //法人
+                    legalPersonTel: thisData.legalPersonTel, //法人电话
+                    orgCodeUrl: thisData.contractPictureUrl
+                        ? splitUrl(
+                            thisData.contractPictureUrl,
+                            ",",
+                            globalConfig.avatarHost + "/upload"
+                        )
+                        : [], //图片地址
+                    replenishUrl: thisData.agreementUrl
+                        ? splitUrl(
+                            thisData.agreementUrl,
+                            ",",
+                            globalConfig.avatarHost + "/upload"
+                        )
+                        : [], //图片地址
+                    signDate: thisData.signDate, //签单时间
+                    userName: thisData.userName, //客户名称
+                    salesmanName: thisData.salesmanName, //营销员名称
+                    salesmanMobile: thisData.salesmanMobile, //营销员电话
+                    oldSalesmanName: thisData.oldSalesmanName, //营销员名称
+                    oldSalesmanMobile: thisData.oldSalesmanMobile, //营销员电话
+                    financeName: thisData.financeName, //财务名称
+                    financeMobile: thisData.financeMobile, //财务电话
+                    nowFinanceMobile: thisData.nowFinanceMobile,
+                    nowFinance: thisData.nowFinance,
+                    approval:
+                        thisData.approval == 0
+                            ? thisData.approval.toString()
+                            : thisData.approval,
+                    organizationSearch: thisData.orderDep,
+                    depName: thisData.depName,
+                    status: thisData.status,
+                    outsource: thisData.outsource,
+                    deleteSign:thisData.deleteSign,
+                    orderUid:thisData.uid,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    jiedian() {
+        this.setState({
+            loadData: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                let thisData = [];
+                if (data.error.length || data.data.list == "") {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        thisData = data.data[i];
+                        theArr.push({
+                            key: i,
+                            dunSubject: thisData.dunSubject
+                                ? thisData.dunSubject.toString()
+                                : "", //催款科目
+                            id: thisData.id, //节点Id
+                            money: thisData.money, //催款金额
+                            dunStatus: thisData.dunStatus, //催款状态
+                            orderNo: thisData.orderNo,
+                        });
+                    }
+                    this.setState({
+                        contactList: theArr,
+                    });
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    render() {
+        const formItemList = [
+            {
+                label: "企业联系人",
+                content: <span>{this.state.contacts}</span>,
+            },
+            {
+                label: "客户名称",
+                content: <span>
+                    {this.state.userName}
+                    <EnterpriseNameChange
+                        type='journal'
+                        style={{ marginLeft: 10 }}
+                        enterpriseId={this.state.orderUid}/>
+                 </span>,
+            },
+            {
+                label: "联系人电话",
+                content: <span>{this.state.contactMobile}</span>,
+            },
+            {
+                label: "企业法人",
+                content: <span>{this.state.legalPerson}</span>,
+            },
+            {
+                label: "法人电话",
+                content: <span>{this.state.legalPersonTel}</span>,
+            },
+        ];
+        return (
+            <Modal
+                maskClosable={false}
+                visible={this.props.visible}
+                onOk={this.props.onCancel}
+                onCancel={this.props.onCancel}
+                width={800}
+                title='订单详情'
+                footer=""
+                className="admin-desc-content"
+            >
+                <div className="clearfix">
+                    <div className="clearfix">
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="合同编号"
+                        >
+                            {<span>{this.state.contractNo}</span>}
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="订单编号"
+                        >
+                            <span>{this.state.orderNo}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="流程状态"
+                        >
+                              <span>
+                                {getProcessStatus(this.state.processStatus)}
+                              </span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="结算状态"
+                        >
+                              <span>
+                                {getLiquidationStatus(
+                                    this.state.liquidationStatus
+                                )}
+                              </span>
+                        </FormItem>
+                        <div className="clearfix">
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="特批立项"
+                            >
+                                  <span>
+                                    {getApprovedState(this.state.approval)}
+                                  </span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="合同签订时间"
+                            >
+                                <span>{this.state.signDate}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="订单部门"
+                            >
+                                <span>{this.state.depName}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="是否外包"
+                            >
+                                  <span>
+                                    {this.state.outsource == 0 ? "否" : "是"}
+                                  </span>
+                            </FormItem>
+                        </div>
+                    </div>
+                    <h3
+                        style={{
+                            marginLeft: 10,
+                            fontWeight: 800,
+                            marginBottom: 10,
+                        }}
+                    >
+                        收款项目
+                    </h3>
+                    {this.state.processStatus === 0 ? (
+                        <div className="clearfix">
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="签单金额(万元)"
+                            >
+                                <Input
+                                    placeholder="签单金额"
+                                    ref="totalAmountRef"
+                                    value={this.state.totalAmount}
+                                    onChange={(e) => {
+                                        this.setState({
+                                            totalAmount: e.target.value,
+                                        });
+                                    }}
+                                    style={{ width: "240px" }}
+                                />
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="首付金额(万元)"
+                            >
+                                <Input
+                                    placeholder="请输入实签首款金额"
+                                    ref="firstAmountRef"
+                                    value={this.state.firstAmount}
+                                    onChange={(e) => {
+                                        this.setState({
+                                            firstAmount: e.target.value,
+                                        });
+                                    }}
+                                    style={{ width: "240px" }}
+                                />
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="已收款项"
+                            >
+                                <span>
+                                  {this.state.settlementAmount + "万元"}
+                                </span>
+                            </FormItem>
+                        </div>
+                    ) : (
+                        <div className="clearfix">
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="签单金额(万元)"
+                            >
+                                <span>{this.state.totalAmount}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="首付金额(万元)"
+                            >
+                                <span>{this.state.firstAmount}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="已收款项"
+                            >
+                                <span>
+                                  {this.state.settlementAmount + "万元"}
+                                </span>
+                            </FormItem>
+                        </div>
+                    )}
+                    <h3
+                        style={{
+                            marginLeft: 10,
+                            fontWeight: 800,
+                            marginBottom: 10,
+                        }}
+                    >
+                        联系信息
+                    </h3>
+                    <div className="clearfix">
+                        {formItemList.map((data, index) => {
+                            return (
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    key={index}
+                                    label={data.label}
+                                >
+                                    {data.content}
+                                </FormItem>
+                            );
+                        })}
+                    </div>
+                    <div className="clearfix">
+                        <div>
+                            <FormItem
+                                labelCol={{ span: 4 }}
+                                wrapperCol={{ span: 18 }}
+                                label="合同扫描件"
+                            >
+                                <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
+                                    {this.state.orgCodeUrl && this.state.visible && this.state.activeKey === '1'? <ImgList domId={'addService3'} fileList={this.state.orgCodeUrl} ItemWidth={'96px'}/> : <div/>}
+                                </div>
+                                <Modal
+                                    maskClosable={false}
+                                    footer={null}
+                                    width={"50%"}
+                                    visible={this.state.previewVisible}
+                                    onCancel={() => {
+                                        this.setState({
+                                            previewVisible: false,
+                                            rotateDeg: 0,
+                                        });
+                                    }}
+                                >
+                                    <img
+                                        alt=""
+                                        style={{
+                                            width: "100%",
+                                            transform: `rotate(${this.state.rotateDeg}deg)`,
+                                        }}
+                                        src={this.state.previewImage || ""}
+                                    />
+                                    <Button
+                                        onClick={this.rotate}
+                                        style={{
+                                            position: "relative",
+                                            left: "50%",
+                                            transform: "translateX(-50%)",
+                                        }}
+                                    >
+                                        旋转
+                                    </Button>
+                                    <Button
+                                        onClick={this.upImg}
+                                        style={{
+                                            position: "absolute",
+                                            left: -81,
+                                            top: "50%",
+                                            transform: "translateY(-50%)",
+                                        }}
+                                    >
+                                        上一张
+                                    </Button>
+                                    <Button
+                                        onClick={this.downImg}
+                                        style={{
+                                            position: "absolute",
+                                            right: -81,
+                                            top: "50%",
+                                            transform: "translateY(-50%)",
+                                        }}
+                                    >
+                                        下一张
+                                    </Button>
+                                </Modal>
+                                <Button
+                                    style={{
+                                        float: "right",
+                                        marginRight: "140px",
+                                        marginTop: "20px",
+                                    }}
+                                    onClick={this.getOrderLog}
+                                >
+                                    查看订单日志
+                                </Button>
+                            </FormItem>
+                            <FormItem
+                                labelCol={{ span: 4 }}
+                                wrapperCol={{ span: 18 }}
+                                label="补充协议"
+                            >
+                                {/*<Upload*/}
+                                {/*  className="demandDetailShow-upload"*/}
+                                {/*  listType="picture-card"*/}
+                                {/*  fileList={this.state.replenishUrl}*/}
+                                {/*  onPreview={(file) => {*/}
+                                {/*    this.setState({*/}
+                                {/*      previewImage: file.url || file.thumbUrl,*/}
+                                {/*      previewVisibles: true,*/}
+                                {/*    });*/}
+                                {/*  }}*/}
+                                {/*/>*/}
+                                <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
+                                    {
+                                        this.state.visible && this.state.activeKey === '1' && this.state.replenishUrl?
+                                            <ImgList domId={'addService4'} fileList={this.state.replenishUrl} ItemWidth={'96px'}/> :
+                                            <div/>
+                                    }
+                                </div>
+                                <Modal
+                                    maskClosable={false}
+                                    footer={null}
+                                    width={"50%"}
+                                    visible={this.state.previewVisibles}
+                                    onCancel={() => {
+                                        this.setState({
+                                            previewVisibles: false,
+                                            rotateDeg: 0,
+                                        });
+                                    }}
+                                >
+                                    <img
+                                        alt=""
+                                        style={{
+                                            width: "100%",
+                                            transform: `rotate(${this.state.rotateDeg}deg)`,
+                                        }}
+                                        src={this.state.previewImage || ""}
+                                    />
+                                    <Button
+                                        onClick={this.rotates}
+                                        style={{
+                                            position: "relative",
+                                            left: "50%",
+                                            transform: "translateX(-50%)",
+                                        }}
+                                    >
+                                        旋转
+                                    </Button>
+                                    <Button
+                                        onClick={this.upImgs}
+                                        style={{
+                                            position: "absolute",
+                                            left: -81,
+                                            top: "50%",
+                                            transform: "translateY(-50%)",
+                                        }}
+                                    >
+                                        上一张
+                                    </Button>
+                                    <Button
+                                        onClick={this.downImgs}
+                                        style={{
+                                            position: "absolute",
+                                            right: -81,
+                                            top: "50%",
+                                            transform: "translateY(-50%)",
+                                        }}
+                                    >
+                                        下一张
+                                    </Button>
+                                </Modal>
+                            </FormItem>
+                        </div>
+                    </div>
+                    <div className="clearfix">
+                        <FormItem
+                            labelCol={{ span: 4 }}
+                            wrapperCol={{ span: 16 }}
+                            label="订单留言"
+                        >
+                            <p
+                                style={{ width: 500, wordWrap: "break-word" }}
+                            >
+                                {this.state.orderRemarks}
+                            </p>
+                        </FormItem>
+                    </div>
+                    <div className="clearfix">
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="订单负责人"
+                        >
+                            <span>{this.state.salesmanName}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="订单负责人电话"
+                        >
+                            <span>{this.state.salesmanMobile}</span>
+                        </FormItem>
+                    </div>
+                    <div className="clearfix">
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="当前财务负责人"
+                        >
+                            <span>{this.state.nowFinance}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            label="当前财务负责人电话"
+                        >
+                            <span>{this.state.nowFinanceMobile}</span>
+                        </FormItem>
+                    </div>
+                    <div className="clearfix">
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            style={{ opacity: ".5" }}
+                            label="原订单负责人"
+                        >
+                            <span>{this.state.oldSalesmanName}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            style={{ opacity: ".5" }}
+                            label="原订单负责人电话"
+                        >
+                            <span>{this.state.oldSalesmanMobile}</span>
+                        </FormItem>
+                    </div>
+                    <div className="clearfix">
+                        <FormItem
+                            className="half-item"
+                            style={{ opacity: ".5" }}
+                            {...formItemLayout}
+                            label="实际财务操作人"
+                        >
+                            <span>{this.state.financeName}</span>
+                        </FormItem>
+                        <FormItem
+                            className="half-item"
+                            {...formItemLayout}
+                            style={{ opacity: ".5" }}
+                            label="实际财务操作人电话"
+                        >
+                            <span>{this.state.financeMobile}</span>
+                        </FormItem>
+                    </div>
+
+                    <div>
+                        <span style={{ marginLeft: "50px", fontSize: "20px" }}>
+                          项目业务
+                        </span>
+                    </div>
+                    <div
+                        className="patent-table"
+                        style={{ marginBottom: 10 }}
+                    >
+                        <Spin spinning={this.state.loading}>
+                            <Table
+                                columns={this.state.columns}
+                                scroll={{ x: "max-content", y: 0 }}
+                                dataSource={this.state.dataSource}
+                                pagination={false}
+                                onRowClick={this.tableRowClick}
+                                bordered
+                                size="small"
+                            />
+                        </Spin>
+                    </div>
+                </div>
+            </Modal>
+        )
+    }
+}
+
+export default OrderInfor;

+ 33 - 16
js/component/manageCenter/project/task/myTask.jsx

@@ -57,6 +57,8 @@ import ProjectLog from './projectLog';
 import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
 
+import PatentCheck from '../../../common/patentCheck';
+
 const confirm = Modal.confirm
 const FormItem = Form.Item
 const { TabPane } = Tabs
@@ -970,22 +972,22 @@ const Task = React.createClass({
                 }
               },
             },
-            {
-              title: "官费",
-              dataIndex: "officialCost",
-              key: "officialCost",
-              render: (text) => {
-                return text === 1 ? '有官费' : '无官费'
-              },
-            },
-            {
-              title: "费减",
-              dataIndex: "costReduction",
-              key: "costReduction",
-              render: (text) => {
-                return text === 1 ? '有费减' : '无费减'
-              },
-            },
+            // {
+            //   title: "官费",
+            //   dataIndex: "officialCost",
+            //   key: "officialCost",
+            //   render: (text) => {
+            //     return text === 1 ? '有官费' : '无官费'
+            //   },
+            // },
+            // {
+            //   title: "费减",
+            //   dataIndex: "costReduction",
+            //   key: "costReduction",
+            //   render: (text) => {
+            //     return text === 1 ? '有费减' : '无费减'
+            //   },
+            // },
             {
               title: '总价(万元)',
               dataIndex: 'totalAmount',
@@ -1665,6 +1667,7 @@ const Task = React.createClass({
             outsourcePrice: thisdata.outsourcePrice, //外包价格
             declarationBatch: thisdata.declarationBatch,
             orderTaskOfficialCost: thisdata.officialCost,    //官费 0无 1有
+            orderTaskCostReduction: thisdata.costReduction,//费减
             bpType:thisdata.bpType,//0 正常 1专利 2软著 3审计 4双软 5高新 6商标
             specialComment: thisdata.specialComment,
             urgentDay: thisdata.urgentDay, //有无材料
@@ -4541,6 +4544,19 @@ const Task = React.createClass({
                           <Radio value={1}>供应商信息</Radio>
                         </Radio.Group>
                       </FormItem>
+                        <PatentCheck
+                            style={{
+                              position:"absolute",
+                              right: '102px',
+                              border: '1px solid rgb(199 187 187)',
+                              padding:'20px 18px 20px 20px'
+                            }}
+                            id={this.state.id}
+                            projectType={this.state.projectType}  //项目类型
+                            startType={this.state.startType}   //1供应商 0外包
+                            orderTaskOfficialCost={this.state.orderTaskOfficialCost}  //1含官费 0不含官费
+                            orderTaskCostReduction={this.state.orderTaskCostReduction} //1有费减 0无费减
+                        />
                     </div>
                     {/* 专利类型 */}
                     <div
@@ -4936,6 +4952,7 @@ const Task = React.createClass({
                             <CheckProject
                                 {...this.props}
                                 orderTaskOfficialCost={this.state.orderTaskOfficialCost}    //是否含官费  0无1有
+                                orderTaskCostReduction={this.state.orderTaskCostReduction}    //是否含费减  0无1有
                                 containOfficialFees={this.state.containOfficialFees}        //0:实际已缴费 1:实际未缴费
                                 tid={this.state.tid}
                                 oldInfor={this.state.oldInfor}

+ 41 - 3
js/component/manageCenter/set/projectConfigure/addOfficialFeePrice.js

@@ -7,8 +7,14 @@ class AddOfficialFeePrice extends Component{
     constructor(props) {
         super(props);
         this.state={
-            loading: false
+            loading: false,
+            list:[]
         }
+        this.getContactsOption = this.getContactsOption.bind(this);
+    }
+
+    componentDidMount() {
+        this.getContactsOption();
     }
 
     //增加 修改
@@ -47,6 +53,24 @@ class AddOfficialFeePrice extends Component{
         });
     }
 
+    getContactsOption() {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/orderProject/getPatentType',
+            success: function (data) {
+                if (data.error.length === 0) {
+                    this.setState({
+                        list:data.data
+                    })
+                }else{
+                    message.warning(data.error[0].message);
+                };
+            }.bind(this)
+        });
+    }
+
     render() {
         const { getFieldDecorator } = this.props.form;
         return (
@@ -63,6 +87,20 @@ class AddOfficialFeePrice extends Component{
                     <Form onSubmit={(e)=>{
                         this.addSoftWritingPriceFn(e)
                     }}>
+                        <Form.Item label="项目类型">
+                            {getFieldDecorator('patentType', {
+                                initialValue: this.props.infor.patentType,
+                                rules: [{ required: true, message: '请选择项目类型!' }],
+                            })(
+                                <Select style={{ width:'200px'}}>
+                                    {
+                                        this.state.list.map((v,k)=>(
+                                            <Select.Option key={k} value={v.id}>{v.name}</Select.Option>
+                                        ))
+                                    }
+                                </Select>
+                            )}
+                        </Form.Item>
                         <Form.Item label="专利类型">
                             {getFieldDecorator('type', {
                                 initialValue: this.props.infor.type,
@@ -86,7 +124,7 @@ class AddOfficialFeePrice extends Component{
                         <Form.Item  label="减缴比例85%">
                             {getFieldDecorator('proportion85', {
                                 initialValue: this.props.infor.proportion85,
-                                rules: [{ required: true, message: '请输入减缴比例85%!' }],
+                                rules: [{ required: false, message: '请输入减缴比例85%!' }],
                             })(
                                 <Input placeholder="请输入减缴比例85%" type={'number'} style={{width:'250px'}}/>
                             )}
@@ -94,7 +132,7 @@ class AddOfficialFeePrice extends Component{
                         <Form.Item  label="备注">
                             {getFieldDecorator('remarks', {
                                 initialValue: this.props.infor.remarks,
-                                rules: [{ required: true, message: '请输入备注!' }],
+                                rules: [{ required: false, message: '请输入备注!' }],
                             })(
                                 <Input placeholder="请输入备注" type={'textarea'} style={{width:'250px'}}/>
                             )}

+ 38 - 12
js/component/manageCenter/set/projectConfigure/officialFees.js

@@ -15,7 +15,7 @@ class OfficialFees extends Component{
             dataSource: [],
             columns: [
                 {
-                    title: '专利类型',
+                    title: '项目类型',
                     dataIndex: 'type',
                     key: 'type',
                     render: (text) => {
@@ -23,6 +23,11 @@ class OfficialFees extends Component{
                     }
                 },
                 {
+                    title: '专利类型',
+                    dataIndex: 'typePatentName',
+                    key: 'typePatentName',
+                },
+                {
                     title: '全额(万元)',
                     dataIndex: 'amount',
                     key: 'amount',
@@ -63,6 +68,18 @@ class OfficialFees extends Component{
             ],
             addSoftVisible: false,
             infor: {},
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return "共" + total + "条数据";
+                },
+            }
         }
         this.loadData = this.loadData.bind(this);
         this.tableRowClick = this.tableRowClick.bind(this);
@@ -75,7 +92,7 @@ class OfficialFees extends Component{
     }
 
     //搜索功能和初始列表加载
-    loadData() {
+    loadData(pageNo) {
         this.setState({
             loading: true,
         });
@@ -85,7 +102,8 @@ class OfficialFees extends Component{
             crossDomain: false,
             url: globalConfig.context + '/api/admin/company/listOfficialFeePrice',
             data: {
-                type:this.state.type,       //名称
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
             },
             success: function (data) {
                 if (!data.data || !data.data) {
@@ -93,9 +111,17 @@ class OfficialFees extends Component{
                         message.warning(data.error[0].message);
                     };
                 } else {
-                    data.data.map((v,i)=>{v.key = i})
+                    data.data.list.map((v,i)=>{v.key = i})
+                    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: data.data,
+                        dataSource: data.data.list,
+                        page: data.data.pageNo,
+                        pagination: this.state.pagination,
                     });
                 };
 
@@ -170,7 +196,7 @@ class OfficialFees extends Component{
                     <Tabs defaultActiveKey="1" className="test">
                         <TabPane tab="操作" key="1">
                             <div className="user-search" style={{display:'flex',flexFlow:'row',marginBottom:'10px'}}>
-                                <span style={{marginLeft: 'auto'}}>
+                                <span>
                                     <Button type="primary" size={'middle'} onClick={()=>{
                                         this.setState({
                                             addSoftVisible : true
@@ -196,12 +222,12 @@ class OfficialFees extends Component{
                     <div className="patent-table">
                         <Spin spinning={this.state.loading}>
                             <Table size="middle" columns={
-                                this.state.changeList
-                                    ? this.state.changeList
-                                    : this.state.columns
-                            }
+                                    this.state.changeList
+                                        ? this.state.changeList
+                                        : this.state.columns
+                                    }
+                                   pagination={this.state.pagination}
                                    dataSource={this.state.dataSource}
-                                   pagination={false}
                                    style={{
                                        cursor: 'pointer',
                                    }}
@@ -219,7 +245,7 @@ class OfficialFees extends Component{
                         })
                     }}
                     successFn={()=>{
-                        this.loadData();
+                        this.loadData(this.state.page);
                         this.setState({
                             addSoftVisible : false,
                             infor: {}