| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145 | // 开单import React, { Component } from "react";import { AutoComplete, Button, Upload, Form, Input, message, Modal, Radio, Select, Spin, Tag, } from "antd";import { boutique } from "../../dataDic";import $ from "jquery";import { getboutique, splitUrl } from "../../tools";import { vipYear } from "../../dataDic";import ImgList from "../imgList";const FormItem = Form.Item;const Option = Select.Option;const RadioGroup = Radio.Group;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,            orgCodeUrl: [],            patentTransfer: props.dataInfor ? props.dataInfor.patentTransfer : 0, //收否为专利转让 0 否 1 是            serviceLife: [],            isVip: undefined,            histYear: [],            isEdit: false,//是否可编辑            contractTerm: [],//合同期            addyear: undefined,//            isGive: undefined,//是否赠送            cPeriod: 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, newData } = 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",            });        }        let llist = []        if (newData && newData.length > 0) {            for (var i = 0; i < newData.length; i++) {                if (newData[i].commodityId == dataInfor.commodityId) {                    llist.push(newData[i].serviceYear != dataInfor.serviceYear && newData[i].serviceYear)                }            }        }        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,            orgCodeUrl: dataInfor.pictureUrl                ? splitUrl(                    dataInfor.pictureUrl,                    ",",                    globalConfig.avatarHost + "/upload"                )                : [],            isVip: dataInfor.cSort,            yearSum: dataInfor.yearSum,//会员总服务年限            serviceLife: !dataInfor.serviceLife ? [] : JSON.parse(dataInfor.serviceLife), // 会员服务年限            contractTerm: !dataInfor.contractTerm ? [] : JSON.parse(dataInfor.contractTerm), // 合同期            serviceYear: dataInfor.serviceYear,//本次派单            // isEdit: true, // 不可编辑            isEdit: llist.length <= 1 ? false : true, // 同一会员项目有且只有一条时可编辑   其他情况不可编辑            histYear: llist, // 本次已派单            cPeriod: llist.length <= 1 ? false : !dataInfor.contractTerm ? false : true, //合同期        });    }    onSubmit() {        if (this.state.gid === undefined || !this.state.gid) {            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.displayFees === 'block') {            if (this.state.patentType === "" && !this.state.patentTransfer) {                message.warning("请选择专利类型!");                return false;            }            if (this.state.officialCost === '') {                message.warning("请选择官费!");                return false;            }            if (this.state.costReduction === "" && (this.state.patentType === 0 || this.state.patentType === 2) && this.state.officialCost === 1) {                message.warning("请选择费减!");                return false;            }        }        if (isNaN(parseFloat(this.state.commodityPrice))) {            message.warning("请输入正确的金额!");            return false;        }        if (this.state.addProjectType == "3") {// 3审计            if (this.state.serviceLife.length === 0) {                message.warning("请选择服务年限!");                return            }            if (this.state.serviceLife.length != this.state.commodityQuantity) {                message.warning("服务数量与服务年限不符!");                return            }        }        if (!this.state.main) {            message.warning("请选择是否为主要项目!");            return false;        }        if (this.state.addProjectType === 5) {// 5高新            if (!this.state.declarationBatch) {                message.warning("请选择企业要求申报批次!");                return            }            if (!this.state.serviceYear) {                message.warning("请选择申报年份!");                return            }        }        if (this.state.isIso && !this.state.ifCertificationFee) {            message.warning("请选择是否包含认证费用!");            return false;        }        if (this.state.isVip == 6) {            if (this.state.yearSum === undefined) {                message.warning("请选择会员总服务年限!");                return            }            if (this.state.serviceLife.length === 0) {                message.warning("请添加会员服务年限!");                return            }            if (this.state.serviceLife.length != this.state.yearSum) {                message.warning("会员服务年限与总年限不符合!");                return            }            if (this.state.serviceYear === undefined) {                message.warning("请选择本次派单年份!");                return            }            if (this.state.contractTerm.length === 0) {                message.warning("请填写合同期!");                return            }        }        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, //是否为主要项目        }        if (this.state.displayFees === 'block') {            infor.officialCost = this.state.officialCost //是否有官费            infor.costReduction = (this.state.patentType === 0 || this.state.patentType === 2) ? (this.state.officialCost === 1 ? this.state.costReduction : 0) : 0//是否有费减            infor.patentType = this.state.patentType //专利类型        }        if (this.state.isIso) {            infor.ifCertificationFee = this.state.ifCertificationFee || undefined;//是否包含认证费用        }        if (this.state.addProjectType == "3") {//审计            infor.serviceLife = JSON.stringify(this.state.serviceLife) //服务年限        }        if (this.state.addProjectType == "5") {//高新            infor.declarationBatch = this.state.declarationBatch || 1//申报批次            infor.serviceYear = this.state.serviceYear //申报年份        }        if (this.state.isVip == 6) {//会员            infor.yearSum = this.state.yearSum //会员总服务年限            infor.serviceLife = JSON.stringify(this.state.serviceLife) //会员服务年限            infor.serviceYear = this.state.serviceYear //本次派单年份            infor.contractTerm = JSON.stringify(this.state.contractTerm)//合同期        }        $.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() {        const { type = "", dataInfor } = this.props        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.addProjectType == "3") {            if (this.state.serviceLife.length === 0) {                message.warning("请选择服务年限!");                return            }            if (this.state.serviceLife.length != this.state.commodityQuantity) {                message.warning("服务数量与服务年限不符!");                return            }        }        if (!this.state.main) {            message.warning("请选择是否为主要项目!");            return false;        }        if (this.state.addProjectType === 5) {// 5高新            if (!this.state.declarationBatch) {                message.warning("请选择企业要求申报批次!");                return            }            if (!this.state.serviceYear) {                message.warning("请选择申报年份!");                return            }        }        if (this.state.isVip == 6) {            if (this.state.yearSum === undefined) {                message.warning("请选择会员总服务年限!");                return            }            if (this.state.serviceLife.length === 0) {                message.warning("请添加会员服务年限!");                return            }            if (this.state.serviceLife.length != this.state.yearSum) {                message.warning("会员服务年限与总年限不符合!");                return            }            if (this.state.serviceYear === undefined) {                message.warning("请选择本次派单年份!");                return            }            if (this.state.contractTerm.length === 0) {                message.warning("请填写合同期!");                return            }        }        this.setState({            loading: true,        });        let infor = {            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, //备注        }        if (this.state.displayFees === 'block') {            infor.officialCost = this.state.officialCost //是否有官费            infor.costReduction = (this.state.patentType === 0 || this.state.patentType === 2) ? (this.state.officialCost === 1 ? this.state.costReduction : 0) : 0//是否有费减            infor.patentType = this.state.patentType //专利类型        }        if (this.state.isIso) {            infor.ifCertificationFee = this.state.ifCertificationFee || undefined;//是否包含认证费用        }        if (this.state.addProjectType == "3") {//审计            infor.serviceLife = JSON.stringify(this.state.serviceLife) //服务年限        }        if (this.state.addProjectType == "5") {//高新            infor.declarationBatch = this.state.declarationBatch || undefined//申报批次            infor.serviceYear = this.state.serviceYear //申报年份        }        if (this.state.isVip == 6) {//会员            infor.yearSum = this.state.yearSum //会员总服务年限            infor.serviceLife = JSON.stringify(this.state.serviceLife) //会员服务年限            infor.serviceYear = this.state.serviceYear //本次派单年份            infor.contractTerm = JSON.stringify(this.state.contractTerm)//合同期        }        // 新开单与签单项目变更 -- 编辑项目        if (type == "biangeng") {            infor.id = dataInfor.id            infor.type = dataInfor.tid ? 2 : 1            infor.tid = dataInfor.tid        }        $.ajax({            method: "POST",            dataType: "json",            crossDomain: false,            url: globalConfig.context + type == ""                ? "/api/admin/newOrder/updateOrderTask"                : "/api/admin/orderChange/updateChangeTask",            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)        );    }    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) {        const { newData } = this.props        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",                patentTransfer: kid.patentTransfer,            });        } 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,// 是否为贯标项目            isVip: kid.cSort,//暂时判断等于6的时候会员            commodityQuantity: kid.cSort == 6 ? 1 : undefined,//服务数量            histYear: [],        });        if (newData && newData.length > 0 && kid.cSort == 6) {            let llist = []            for (var i = 0; i < newData.length; i++) {                if (newData[i].commodityId == kid.id) {                    llist.push(newData[i].serviceYear)                }            }            this.setState({                histYear: llist            })            for (var i = newData.length - 1; i >= 0; i--) {                if (newData[i].commodityId == kid.id) {                    this.setState({                        commodityPrice: newData[i].commodityPrice, // 实签价格                        main: "0", // 是否为主要项目                        yearSum: newData[i].yearSum.toString(), // 会员总服务年限                        serviceLife: !newData[i].serviceLife ? [] : JSON.parse(newData[i].serviceLife), // 会员服务年限                        contractTerm: !newData[i].contractTerm ? [] : JSON.parse(newData[i].contractTerm), // 合同期                        taskComment: newData[i].taskComment, // 项目说明                        isEdit: true, // 不可编辑                        cPeriod: !newData[i].contractTerm ? false : true, //合同期编辑                    })                    return                } else {                    this.setState({                        commodityPrice: undefined,                        main: undefined,                        yearSum: undefined,                        serviceLife: [],                        contractTerm: [],                        taskComment: undefined,                        isEdit: false, // 可编辑                        cPeriod: false,                    })                }            }        }    }    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)        });    }    handleClose(removedTag) {        let serviceLife = this.state.serviceLife.filter(tag => { return tag !== removedTag });        this.setState({ serviceLife, serviceYear: undefined });    }    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>            ));        let children = vipYear.map(its => (            <Option key={its}>{its}</Option>        ));        const { readOnly } = this.props;        const { isVip, histYear, isEdit } = this.state        return (            <Modal                maskClosable={false}                visible={this.props.visible}                onOk={this.props.onCancel}                onCancel={this.props.onCancel}                width="900px"                title={readOnly ? "项目任务详情" : 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}                                    style={{ width: "200px" }}                                    dataSource={options}                                    placeholder="输入服务名称"                                    value={this.state.commodityName}                                    onChange={this.httpChange}                                    filterOption={true}                                    onSelect={this.selectAuto}                                >                                    <Input />                                </AutoComplete>}                                {!readOnly && <span className="mandatory">*</span>}                            </FormItem>                            <FormItem                                className="half-item"                                {...formItemLayout}                                label="服务数量"                            >                                {readOnly ? this.state.commodityQuantity : <Input                                    placeholder="请输入服务数量"                                    disabled={isVip == 6}                                    value={this.state.commodityQuantity}                                    style={{ width: "200px" }}                                    onChange={(e) => {                                        this.setState({ commodityQuantity: e.target.value });                                    }}                                    ref="commodityQuantity"                                />}                                {!readOnly && <span className="mandatory">*</span>}                            </FormItem>                            <div style={{ marginTop: "33px", color: "red", textAlign: "right", position: "relative", top: "-8", left: "0" }}>如会员项目,服务一年,请填写1,服务二年,请填写2,依次类推</div>                            {!this.state.patentTransfer && <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 !== 0 && e !== 2) {                                            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>                            {                                readOnly ?                                    <FormItem                                        className="half-item"                                        labelCol={{ span: 3 }}                                        wrapperCol={{ span: 14 }}                                        label="费减:"                                        style={{                                            display: this.state.displayFees,                                            marginLeft: "63px",                                        }}                                    >                                        {this.state.costReduction === 1 ? '有费减' : this.state.costReduction === 0 ? '无费减' : ''}                                        <span style={{ color: "red", marginLeft: "8px" }}>                                            *                                        </span>                                    </FormItem>                                    :                                    (this.state.patentType === 0 || this.state.patentType === 2) && this.state.officialCost === 1 &&                                    <FormItem                                        className="half-item"                                        labelCol={{ span: 3 }}                                        wrapperCol={{ span: 14 }}                                        label="费减:"                                        style={{                                            display: this.state.displayFees,                                            marginLeft: "63px",                                        }}                                    >                                        {/*不含官费或者专利类型不为复审或者申请时置灰*/}                                        <Radio.Group                                            disabled={this.state.officialCost === 0 || (this.state.patentType !== 0 && this.state.patentType !== 2)}                                            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                                    type='number'                                    placeholder="请输入实签价格"                                    disabled={isEdit}                                    value={this.state.commodityPrice}                                    style={{ width: "200px" }}                                    onChange={(e) => {                                        this.setState({ commodityPrice: e.target.value });                                    }}                                    ref="commodityPrice"                                />}                                {!readOnly && <span className="mandatory">*</span>}                            </FormItem>                            {                                //审计                                this.state.addProjectType == "3" &&                                <FormItem                                    className="half-item"                                    {...formItemLayout}                                    label="服务年限"                                >                                    {                                        readOnly ?                                            !!this.state.serviceLife ? this.state.serviceLife.toString() : "" :                                            <Select                                                mode="multiple"                                                style={{ width: '200px' }}                                                placeholder="请选择服务年限"                                                value={this.state.serviceLife}                                                onChange={(e) => {                                                    this.setState({                                                        serviceLife: e,                                                    })                                                }}                                            >                                                {children}                                            </Select>                                    }                                    {!readOnly && <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>}                                {!readOnly && <span className="mandatory">*</span>}                            </FormItem>                            {                                isVip == 6 &&                                <FormItem                                    className="half-item"                                    {...formItemLayout}                                    label="会员总服务年限"                                >                                    {readOnly ?                                        !this.state.yearSum ? "" :                                            [                                                { value: "0", key: "" },                                                { value: "1", key: "一年" },                                                { value: "2", key: "二年" },                                                { value: "3", key: "三年" },                                                { value: "4", key: "四年" },                                                { value: "5", key: "五年" },                                            ][this.state.yearSum]["key"] :                                        <Select                                            placeholder="请选择会员总服务年限"                                            style={{ width: "200px" }}                                            disabled={isEdit}                                            value={typeof (this.state.yearSum) === "number" ? this.state.yearSum.toString() : this.state.yearSum}                                            onChange={(e) => {                                                this.setState({                                                    yearSum: e,                                                    serviceLife: [],                                                    serviceYear: undefined,                                                });                                            }}                                        >                                            {[                                                { value: "1", key: "一年" },                                                { value: "2", key: "二年" },                                                { value: "3", key: "三年" },                                                { value: "4", key: "四年" },                                                { value: "5", key: "五年" },                                            ].map(function (item) {                                                return (                                                    <Select.Option key={item.value}>                                                        {item.key}                                                    </Select.Option>                                                );                                            })}                                        </Select>}                                    {!readOnly && <span className="mandatory">*</span>}                                </FormItem>                            }                            {                                isVip == 6 &&                                <FormItem                                    className="half-item"                                    {...formItemLayout}                                    label="会员服务年限"                                >                                    {                                        readOnly ?                                            !!this.state.serviceLife ? this.state.serviceLife.toString() : "" :                                            <div>                                                {                                                    this.state.serviceLife.map((tag) =>                                                        <Tag closable={!isEdit} key={tag} afterClose={() => this.handleClose(tag)}>                                                            {tag}                                                        </Tag>                                                    )                                                }                                                {                                                    !isEdit && (this.state.serviceLife.length < this.state.yearSum) &&                                                    <Button                                                        size="small"                                                        type="primary"                                                        onClick={() => {                                                            this.setState({                                                                addYears: true,                                                                addyear: undefined,                                                                isGive: undefined,                                                            })                                                        }}>                                                        + 添加服务年限                                                    </Button>                                                }                                            </div>                                        // <Select                                        //     mode="multiple"                                        //     style={{ width: '200px' }}                                        //     placeholder="请选择服务年限"                                        //     value={this.state.serviceLife}                                        //     onChange={e => {                                        //         this.setState({                                        //             serviceLife: e,                                        //             serviceYear: undefined,                                        //         })                                        //     }}                                        // >                                        //     {children}                                        // </Select>                                    }                                    {/* {!readOnly && <span className="mandatory">*</span>} */}                                </FormItem>                            }                            {                                isVip == 6 &&                                <FormItem                                    className="half-item"                                    {...formItemLayout}                                    label="本次派单"                                >                                    {readOnly ?                                        this.state.serviceYear :                                        <Select                                            placeholder="请选择本次派单年份"                                            style={{ width: "200px" }}                                            value={this.state.serviceYear}                                            onChange={(e) => {                                                this.setState({ serviceYear: e });                                            }}                                        >                                            {this.state.serviceLife.length > 0 && this.state.serviceLife.map(function (item) {                                                return (                                                    <Select.Option key={item} disabled={histYear.includes(item)}>                                                        {item}                                                    </Select.Option>                                                );                                            })}                                        </Select>}                                    {!readOnly && <span className="mandatory">*</span>}                                </FormItem>                            }                            {                                isVip == 6 &&                                <FormItem                                    className="half-item"                                    {...formItemLayout}                                    label="合同期"                                >                                    {                                        readOnly ?                                            !!this.state.contractTerm ? this.state.contractTerm.toString() : "" :                                            <Select                                                mode="multiple"                                                style={{ width: '200px' }}                                                placeholder="请选择合同期"                                                disabled={this.state.cPeriod}                                                value={this.state.contractTerm}                                                onChange={e => {                                                    this.setState({                                                        contractTerm: e,                                                    })                                                }}                                            >                                                {children}                                            </Select>                                    }                                    {!readOnly && <span className="mandatory">*</span>}                                </FormItem>                            }                            {/* {                                this.state.orgCodeUrl.length > 0 &&                                <div className="clearfix">                                    <FormItem                                        labelCol={{ span: 4 }}                                        wrapperCol={{ span: 16 }}                                        label="附件"                                    >                                        <ImgList                                            fileList={this.state.orgCodeUrl}                                            domId="publicStatistics"                                        />                                    </FormItem>                                </div>                            } */}                            <div className="clearfix">                                <FormItem                                    labelCol={{ span: 4 }}                                    wrapperCol={{ span: 16 }}                                    label="项目说明"                                >                                    {readOnly ? this.state.taskComment :                                        <Input                                            type="textarea"                                            placeholder=""                                            autosize={{ minRows: 4 }}                                            value={this.state.taskComment}                                            onChange={(e) => {                                                this.setState({ taskComment: e.target.value });                                            }}                                        />}                                </FormItem>                                {/* <div style={{ color: "red", marginLeft: 144 }}>                                    请详细说明项目服务时间,总服务时间及付款情况,如:<span style={{ color: "#333" }}>派2022年会员服务,总会员服务三年,客户付款情况说明</span>                                    <p>未付款时,需进行特批审核,请详细说明预计付款时间等详细情况</p>                                </div> */}                            </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>}                                        {!readOnly && <span className="mandatory">*</span>}                                    </FormItem>                                    <FormItem                                        className="half-item"                                        {...formItemLayout}                                        label="申报年份"                                    >                                        {                                            readOnly ? this.state.serviceYear :                                                <Select                                                    style={{ width: '200px' }}                                                    placeholder="请选择申报年份"                                                    value={this.state.serviceYear}                                                    onChange={e => {                                                        this.setState({                                                            serviceYear: e,                                                        })                                                    }}                                                >                                                    {                                                        vipYear.map(its => (                                                            <Option key={its}>{its}</Option>                                                        ))                                                    }                                                </Select>                                        }                                        {!readOnly && <span className="mandatory">*</span>}                                    </FormItem>                                </div> : null                            }                            {                                this.props.isIso || this.state.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>}                                        {!readOnly && <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>                {                    this.state.addYears &&                    <Modal                        title="添加服务年限"                        visible={this.state.addYears}                        okText="添加"                        onOk={() => {                            if (!this.state.addyear) {                                message.warn("请选择年份!")                                return                            }                            if (this.state.isGive == undefined) {                                message.warn("请选择是否赠送!")                                return                            }                            let slist = this.state.serviceLife                            if (this.state.isGive == 0) {                                slist.push(this.state.addyear)                            } else if (this.state.isGive == 1) {                                let newYear = this.state.addyear + "(赠)"                                slist.push(newYear)                            }                            this.setState({                                serviceLife: slist,                                addYears: false                            })                        }}                        onCancel={() => {                            this.setState({                                addYears: false                            })                        }}                    >                        <Select                            style={{ width: '200px', marginRight: 50 }}                            placeholder="请选择年份"                            onChange={e => {                                this.setState({                                    addyear: e,                                })                            }}                        >                            {                                vipYear.map(its => (                                    <Option                                        key={its}                                        disabled={this.state.serviceLife.toString().includes(its)}                                    >{its}</Option>                                ))                            }                        </Select>                        <RadioGroup                            onChange={e => {                                this.setState({                                    isGive: e.target.value                                })                            }}                            value={this.state.isGive}                        >                            <Radio value={0}>非赠送</Radio>                            <Radio value={1}>赠送</Radio>                        </RadioGroup>                    </Modal>                }            </Modal >        )    }}export default ProjectOperation;
 |