yee 7 years ago
parent
commit
bb7c2df96e

+ 158 - 144
js/component/account/services/cognizance.jsx

@@ -9,7 +9,7 @@ import moment from 'moment';
 import './cognizance.less';
 
 const CognizanceDescFrom = Form.create()(React.createClass({
-    loadData() {
+    loadData(theCid, theYear) {
         this.setState({
             loading: true
         });
@@ -19,8 +19,8 @@ const CognizanceDescFrom = Form.create()(React.createClass({
             crossDomain: false,
             url: globalConfig.context + "/api/user/cognizance/cognizanceDetail",
             data: {
-                cid: this.props.data.cid,
-                year: this.props.data.year
+                cid: theCid || this.props.data.cid,
+                year: theYear || this.props.data.year
             },
             success: function (data) {
                 if (data.error.length || !data.data) {
@@ -49,8 +49,26 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                     salesRevenue: data.data.salesRevenue3,
                     grossProfit: data.data.grossProfit3
                 }];
-                this.state.netAssetRate = 1 / 2 * (data.data.netAsset2 / data.data.netAsset3 + data.data.netAsset1 / data.data.netAsset2) - 1;
-                this.state.salesRevenueRate = 1 / 2 * (data.data.salesRevenue2 / data.data.salesRevenue3 + data.data.salesRevenue1 / data.data.salesRevenue2) - 1;
+                if (data.data.netAsset2 == 0) {
+                    this.state.netAssetRate = 0;
+                } else if (data.data.netAsset3 == 0) {
+                    this.state.netAssetRate = (data.data.netAsset1 / data.data.netAsset2) - 1;
+                } else {
+                    this.state.netAssetRate = 1 / 2 * (data.data.netAsset2 / data.data.netAsset3 + data.data.netAsset1 / data.data.netAsset2) - 1;
+                };
+                if (this.state.netAssetRate < 0 || isNaN(this.state.netAssetRate)) {
+                    this.state.netAssetRate = 0
+                };
+                if (data.data.salesRevenue2 == 0) {
+                    this.state.salesRevenueRate = 0;
+                } else if (data.data.salesRevenue3 == 0) {
+                    this.state.salesRevenueRate = (data.data.salesRevenue1 / data.data.salesRevenue2) - 1;
+                } else {
+                    this.state.salesRevenueRate = 1 / 2 * (data.data.salesRevenue2 / data.data.salesRevenue3 + data.data.salesRevenue1 / data.data.salesRevenue2) - 1;
+                };
+                if (this.state.salesRevenueRate < 0 || isNaN(this.state.salesRevenueRate)) {
+                    this.state.salesRevenueRate = 0
+                };
             }.bind(this),
         }).always(function () {
             this.setState({
@@ -58,7 +76,7 @@ const CognizanceDescFrom = Form.create()(React.createClass({
             });
         }.bind(this));
     },
-    getStateData() {
+    getStateData(theCid) {
         this.setState({
             loading: true
         });
@@ -68,7 +86,7 @@ const CognizanceDescFrom = Form.create()(React.createClass({
             crossDomain: false,
             url: globalConfig.context + "/api/user/cognizance/cognizanceLog",
             data: {
-                cid: this.props.data.cid
+                cid: theCid || this.props.data.cid
             },
             success: function (data) {
                 if (data.error.length || !data.data) {
@@ -184,164 +202,160 @@ const CognizanceDescFrom = Form.create()(React.createClass({
     },
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible) {
-            this.getStateData();
-            this.loadData();
+            this.getStateData(nextProps.data.cid);
+            this.loadData(nextProps.data.cid, nextProps.data.year);
         };
     },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
-        const theData = this.state.data;
+        const theData = this.state.data || {};
         const formItemLayout = {
             labelCol: { span: 6 },
             wrapperCol: { span: 12 },
         };
         const _me = this;
-        if (this.state.data) {
-            return (
-                <Form onSubmit={this.handleSubmit} id="highTechApply-form">
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">公司名称: </span>
-                            <span>{theData.unitName}</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">公司组织机构代码: </span>
-                            <span>{theData.orgCode}</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">公司地址: </span>
-                            <span>{theData.postalAddress}</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">申请年份: </span>
-                            <span>{this.state.year}</span>
-                        </div>
-                        <FormItem className="half-item"
-                            labelCol={{ span: 6 }}
-                            wrapperCol={{ span: 14 }}
-                        >
-                            {getFieldDecorator('contacts', {
-                                rules: [{ required: true, message: '此项为必填项!' }],
-                                initialValue: theData.contacts
-                            })(
-                                <Select placeholder='选择一个联系人'>{this.props.contactsOption}</Select>
-                                )}
-                        </FormItem>
+        return (
+            <Form onSubmit={this.handleSubmit} id="highTechApply-form">
+                <div className="clearfix">
+                    <div className="half-item">
+                        <span className="item-title">公司名称: </span>
+                        <span>{theData.unitName}</span>
+                    </div>
+                    <div className="half-item">
+                        <span className="item-title">公司组织机构代码: </span>
+                        <span>{theData.orgCode}</span>
                     </div>
-                    <FormItem style={{ width: '50%' }}
-                        labelCol={{ span: 0 }}
-                        wrapperCol={{ span: 24 }}
-                        label="技术领域"
+                    <div className="half-item">
+                        <span className="item-title">公司地址: </span>
+                        <span>{theData.postalAddress}</span>
+                    </div>
+                    <div className="half-item">
+                        <span className="item-title">申请年份: </span>
+                        <span>{this.state.year}</span>
+                    </div>
+                    <FormItem className="half-item"
+                        labelCol={{ span: 6 }}
+                        wrapperCol={{ span: 14 }}
                     >
-                        <span className="item-title">技术领域: </span>
-                        {getFieldDecorator('technicalField', {
-                            rules: [{ type: 'array', required: true, message: '此项为必填项!' }],
-                            initialValue: [theData.technicalField1, theData.technicalField2, theData.technicalField3]
+                        {getFieldDecorator('contacts', {
+                            rules: [{ required: true, message: '此项为必填项!' }],
+                            initialValue: theData.contacts
                         })(
-                            <Cascader options={techFieldList} placeholder="请选择技术领域" />
+                            <Select placeholder='选择一个联系人'>{this.props.contactsOption}</Select>
                             )}
                     </FormItem>
-                    <div className="clearfix">
-                        <div>
-                            <span className="form-title">获得知识产权数量(件): </span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">一类: </span>
-                            <span>{theData.firstCatagory}</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">二类: </span>
-                            <span>{theData.secondCatagory}</span>
-                        </div>
-                    </div>
-                    <div className="clearfix">
-                        <div>
-                            <span className="form-title">人力资源状况(人): </span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">职工总数: </span>
-                            <span>{theData.firmTotal}</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">科技人员数: </span>
-                            <span>{theData.techTotal}</span>
-                        </div>
+                </div>
+                <FormItem style={{ width: '50%' }}
+                    labelCol={{ span: 0 }}
+                    wrapperCol={{ span: 24 }}
+                    label="技术领域"
+                >
+                    <span className="item-title">技术领域: </span>
+                    {getFieldDecorator('technicalField', {
+                        rules: [{ type: 'array', required: true, message: '此项为必填项!' }],
+                        initialValue: [theData.technicalField1, theData.technicalField2, theData.technicalField3]
+                    })(
+                        <Cascader options={techFieldList} placeholder="请选择技术领域" />
+                        )}
+                </FormItem>
+                <div className="clearfix">
+                    <div>
+                        <span className="form-title">获得知识产权数量(件): </span>
                     </div>
-                    <div className="form-title">近三年经营状况(万元): </div>
-                    <Table pagination={false} dataSource={this.state.moneyTable} columns={this.state.moneyColumns} />
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">净资产增长率: </span>
-                            <span>{isNaN(this.state.netAssetRate) ? '数据错误无法计算' : (this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">销售收入增长率: </span>
-                            <span>{isNaN(this.state.salesRevenueRate) ? '数据错误无法计算' : (this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
-                        </div>
+                    <div className="half-item">
+                        <span className="item-title">一类: </span>
+                        <span>{theData.firstCatagory}</span>
                     </div>
-                    <div className="clearfix">
-                        <div><span className="form-title">近三年研究开发费用总额(万元): </span></div>
-                        <div className="third-item">
-                            <div className="item-title">近三年研究开发费用总额</div>
-                            <p>{theData.researchCost}</p>
-                        </div>
-                        <div className="third-item">
-                            <div className="item-title">其中: 在中国境内研发费用总和</div>
-                            <p>{theData.territory}</p>
-                        </div>
-                        <div className="third-item">
-                            <div className="item-title">其中: 基础研究投入费用总额</div>
-                            <div>
-                                <FormItem
-                                    labelCol={{ span: 0 }}
-                                    wrapperCol={{ span: 24 }}
-                                >
-                                    {getFieldDecorator('basicResearchCost', {
-                                        rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
-                                        initialValue: theData.basicResearchCost
-                                    })(
-                                        <InputNumber min={0} max={999999} step={0.01} />
-                                        )}
-                                    <span>万元</span>
-                                </FormItem>
-                            </div>
-                        </div>
+                    <div className="half-item">
+                        <span className="item-title">二类: </span>
+                        <span>{theData.secondCatagory}</span>
                     </div>
+                </div>
+                <div className="clearfix">
                     <div>
-                        <span className="item-title">近一年企业总收入(万元): </span>
-                        <span>{theData.totalRevenue}</span>
+                        <span className="form-title">人力资源状况(人): </span>
                     </div>
-                    <div>
-                        <span className="item-title">近一年高新技术产品收入(万元): </span>
-                        <span>{theData.lastYearRevenue}</span>
+                    <div className="half-item">
+                        <span className="item-title">职工总数: </span>
+                        <span>{theData.firmTotal}</span>
                     </div>
-                    <div className="item-title">申请认定前一年内是否发生过重大安全、重大质量或严重环境违法行为</div>
-                    <FormItem
-                        labelCol={{ span: 0 }}
-                        wrapperCol={{ span: 24 }}
-                    >
-                        {getFieldDecorator('accident', {
-                            rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
-                            initialValue: theData.accident
-                        })(
-                            <Radio.Group>
-                                <Radio value={0}>否</Radio>
-                                <Radio value={1}>是</Radio>
-                            </Radio.Group>
-                            )}
-                    </FormItem>
-                    <div className="form-title">状态流转记录: </div>
-                    <Table pagination={false} dataSource={this.state.stateTable} columns={this.state.stateColumns} />
-                    <FormItem style={{ marginTop: '20px' }}>
-                        <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
-                        <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
-                    </FormItem>
-                </Form >
-            );
-        } else {
-            return (<div></div>)
-        };
+                    <div className="half-item">
+                        <span className="item-title">科技人员数: </span>
+                        <span>{theData.techTotal}</span>
+                    </div>
+                </div>
+                <div className="form-title">近三年经营状况(万元): </div>
+                <Table pagination={false} dataSource={this.state.moneyTable} columns={this.state.moneyColumns} />
+                <div className="clearfix">
+                    <div className="half-item">
+                        <span className="item-title">净资产增长率: </span>
+                        <span>{isNaN(this.state.netAssetRate) || this.state.netAssetRate == Infinity ? '数据错误无法计算' : (this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
+                    </div>
+                    <div className="half-item">
+                        <span className="item-title">销售收入增长率: </span>
+                        <span>{isNaN(this.state.salesRevenueRate) || this.state.salesRevenueRate == Infinity ? '数据错误无法计算' : (this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
+                    </div>
+                </div>
+                <div className="clearfix">
+                    <div><span className="form-title">近三年研究开发费用总额(万元): </span></div>
+                    <div className="third-item">
+                        <div className="item-title">近三年研究开发费用总额</div>
+                        <p>{theData.researchCost}</p>
+                    </div>
+                    <div className="third-item">
+                        <div className="item-title">其中: 在中国境内研发费用总和</div>
+                        <p>{theData.territory}</p>
+                    </div>
+                    <div className="third-item">
+                        <div className="item-title">其中: 基础研究投入费用总额</div>
+                        <div>
+                            <FormItem
+                                labelCol={{ span: 0 }}
+                                wrapperCol={{ span: 24 }}
+                            >
+                                {getFieldDecorator('basicResearchCost', {
+                                    rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
+                                    initialValue: theData.basicResearchCost
+                                })(
+                                    <InputNumber min={0} max={999999} step={0.01} />
+                                    )}
+                                <span>万元</span>
+                            </FormItem>
+                        </div>
+                    </div>
+                </div>
+                <div>
+                    <span className="item-title">近一年企业总收入(万元): </span>
+                    <span>{theData.totalRevenue}</span>
+                </div>
+                <div>
+                    <span className="item-title">近一年高新技术产品收入(万元): </span>
+                    <span>{theData.lastYearRevenue}</span>
+                </div>
+                <div className="item-title">申请认定前一年内是否发生过重大安全、重大质量或严重环境违法行为</div>
+                <FormItem
+                    labelCol={{ span: 0 }}
+                    wrapperCol={{ span: 24 }}
+                >
+                    {getFieldDecorator('accident', {
+                        rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
+                        initialValue: theData.accident
+                    })(
+                        <Radio.Group>
+                            <Radio value={0}>否</Radio>
+                            <Radio value={1}>是</Radio>
+                        </Radio.Group>
+                        )}
+                </FormItem>
+                <div className="form-title">状态流转记录: </div>
+                <Table pagination={false} dataSource={this.state.stateTable} columns={this.state.stateColumns} />
+                <FormItem style={{ marginTop: '20px' }}>
+                    <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
+                    <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
+                </FormItem>
+            </Form >
+        );
     },
 }));
 

+ 3 - 3
js/component/manageCenter/servicesManage/highTech/highTechApply.jsx

@@ -320,7 +320,7 @@ const CognizanceDescFrom = Form.create()(React.createClass({
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
-        const theData = this.state.data;
+        const theData = this.state.data || {};
         const formItemLayout = {
             labelCol: { span: 6 },
             wrapperCol: { span: 12 },
@@ -510,11 +510,11 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                         <div className="clearfix">
                             <div className="half-item">
                                 <span className="item-title">净资产增长率: </span>
-                                <span>{isNaN(this.state.netAssetRate) ? '数据错误无法计算' : (this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
+                                <span>{isNaN(this.state.netAssetRate) || this.state.netAssetRate === Infinity ? '数据错误无法计算' : (this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
                             </div>
                             <div className="half-item">
                                 <span className="item-title">销售收入增长率: </span>
-                                <span>{isNaN(this.state.salesRevenueRate) ? '数据错误无法计算' : (this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
+                                <span>{isNaN(this.state.salesRevenueRate) || this.state.salesRevenueRate === Infinity ? '数据错误无法计算' : (this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
                             </div>
                         </div>
                         <div className="clearfix">