lvzhuo 3 years ago
parent
commit
fc770d184d

+ 1 - 1
src/App.css

@@ -80,7 +80,7 @@
   float: left;
 }
 .header_menu{
-  width: calc(100% - 440px);
+  width: calc(100% - 450px);
   height: 60px;
   background-color: #fff;
   float: left;

+ 25 - 16
src/App.js

@@ -1,4 +1,4 @@
-import React, { Component, Suspense } from 'react';
+import React, { Suspense } from 'react';
 import ReactDOM from 'react-dom';
 import './App.css';
 import { Menu, Button, Result, notification, Spin } from 'antd';
@@ -9,7 +9,6 @@ import cookie from 'react-cookies'
 import {
   MenuUnfoldOutlined,
   MenuFoldOutlined,
-  PieChartOutlined,
 } from '@ant-design/icons';
 export default class App extends React.Component {
   constructor(props) {
@@ -19,7 +18,7 @@ export default class App extends React.Component {
       current: 1,
       arr1: [
         { txt: '商户入网', icon: 'GlobalOutlined', assembly: 'Layout' }, //  no  1-0
-        { txt: '商户入网列表', icon: 'SlidersOutlined', assembly: 'center-tab' }   // ok 1-1
+        // { txt: '商户入网列表', icon: 'SlidersOutlined', assembly: 'center-tab' }   // ok 1-1
       ],
       arr2: [
         { txt: '账户概览', icon: '', assembly: 'Account-overview' },  //ok 2-0
@@ -28,7 +27,6 @@ export default class App extends React.Component {
         { txt: '发起提现', icon: '', assembly: 'Cash-initiated' }, //ok 2-3
         { txt: '提现记录', icon: '', assembly: 'Withdrawal-record' }, //ok 2-4
         { txt: '分账结算记录', icon: '', assembly: 'Income-record' }, //ok 2-5
-        // { txt : 'demo' , icon : '', assembly:'homePage'},
       ],
       assembly: 'Layout',
       defaultSelectedKeys: 'Layout',
@@ -36,7 +34,8 @@ export default class App extends React.Component {
       user_txt: {},
       signout: false,
       isSignout: 'no',
-      yc: ''
+      yc: '',
+      jurs : true
     }
   }
 
@@ -44,18 +43,20 @@ export default class App extends React.Component {
   componentDidMount() {
     let isSignout = localStorage.getItem('isSignout');  //获取退出时存储的数据,用于判断用户退出后是否刷新页面
     // let obj = {   //默认信息
-    //   userName: '测试用户',
+    //   userName: '测试用户blabalablalba',
     //   mallId: 2, //多商户所属商城id
     //   merchantNo: 'com.smrongshengtianxia',//入网的appname、社群name、商户号等(香香或者嘉旺提供)
     //   merchantType: 2,//入网来源,2:app或社群3:商户或店铺(香香或者嘉旺提供)
     //   Jur: 1,//用户权限
     //   pages: '1-0'
     // }
-
     // let userData = obj
-    
+  
     let userData = cookie.load('userInformation');// 获取上游跳转时带给的信息
-    // userData = JSON.parse(encodeURIComponent(userData));
+    let type = this.isObject(userData)
+    if( type == false){
+      userData = JSON.parse(unescape(userData));
+    }
     this.autoLogin(userData) //跳转查询用户信息,验证用户是否入网
     if(isSignout == 'yes' && userData == undefined){ //拦截是否为刷新页面
       this.setState({
@@ -64,6 +65,11 @@ export default class App extends React.Component {
     }
 
   }
+
+
+  isObject (obj){
+    return (typeof obj=='object')&&obj.constructor==Object;
+  }
   initJurisdiction() {//初始化用户权限
     let e = JSON.parse(localStorage.getItem('userData'));
     let page = e.pages.split('-');  //切割拿到的跳转菜单字符串,分割跳转
@@ -133,7 +139,8 @@ export default class App extends React.Component {
    * 逻辑更改:如果商户未入网无论指定跳转到任何页面全部跳转为入网页面
    */
   autoLogin = (e) => {   //初始化进入页面请求查询用户是否入网以及其他信息
-    localStorage.removeItem('userData') //退出清除用户本地数据
+    // console.log(e)
+    localStorage.setItem('userData', JSON.stringify(e)) //存储上游信息 到本地储存
     let that_ = this;
     let url = '/payment/merchant.query.groovy'
     let param = {
@@ -166,7 +173,8 @@ export default class App extends React.Component {
           if (s == undefined) {  //商户已入网
               that_.setState({
                 arr1: [{ txt: '商户入网列表', icon: 'SlidersOutlined', assembly: 'center-tab' }],
-                assembly: 'center-tab'
+                assembly: 'center-tab',
+                jurs : false
               });
               if (e.pages == '1-0') {
                 notification.open({
@@ -210,7 +218,7 @@ export default class App extends React.Component {
   }
 
   render() {
-    const { current, arr1, arr2, user_txt, signout, assembly, assembly_cw, yc } = this.state;
+    const { current, arr1, arr2, user_txt, signout, assembly, assembly_cw, yc ,jurs } = this.state;
     const { SubMenu } = Menu;
     return (
       <React.Fragment>
@@ -247,17 +255,18 @@ export default class App extends React.Component {
                     </Button>
                   </div>
                   <Menu onClick={this.handleClick.bind(this)} selectedKeys={[current]} mode="horizontal" className='header_navs'>
-                    <Menu.Item key={1} icon={<SettingOutlined />}>
+                    {jurs == true && <Menu.Item key={1} icon={<SettingOutlined />}>
                       高级设置
-                    </Menu.Item>
+                    </Menu.Item>}
+                    
                     <Menu.Item key={2} icon={<DollarCircleOutlined />}>
                       财务管理
                     </Menu.Item>
                   </Menu>
                 </div>
                 <div className='header_user' style={{ lineHeight: '60px' }}>
-                  <div style={{ width: '50%', lineHeight: '60px', display: 'inline-block' }}>用户名 : {user_txt.userName}</div>
-                  <div style={{ width: '50%', lineHeight: '60px', display: 'inline-block' }}>
+                  <div style={{ width: '50%', lineHeight: '60px', float: 'left', whiteSpace: 'nowrap',textOverflow : 'ellipsis',overflow : 'hidden' }}>用户名 : {user_txt.userName}</div>
+                  <div style={{ width: '50%', lineHeight: '60px', float: 'left' }}>
                     {/* <a>修改密码</a> */}
                     <a style={{ marginLeft: '10px' }} onClick={this.signout.bind(this)}>退出</a>
                   </div>

+ 1 - 1
src/common/publish.js

@@ -54,7 +54,7 @@ export function $Axios (method,urls, param, fn, err) {
     // if(process.env.NODE_ENV === 'development'){ 
         url = 'http://paytest.zhongsou.com'//开发测试环境API
     // }else{  
-    //     url = 'http://pay.zhongsou.com' //生产线上环境API
+        // url = 'http://pay.zhongsou.com' //生产线上环境API
     // }
     // url = 'http://192.168.31.17:8816'//开发测试环境API
 	let methods = method.trim()

+ 102 - 12
src/common/ssq.js

@@ -13745,6 +13745,96 @@ const ssq = {
         { txt: '政府机关', value: 'GOVERNMENT_AGENCIES', type: 2 },
         { txt: '其他', value: 'OTHERS', type: 2 },
     ],
+    'INDIVIDUAL_BUSINESS' : [    //个体工商户
+        { txt : '被分账方' , of : 'M', value : 'signedType'},   //默认必填
+        { txt : '签约名称' , of : 'M', value : 'signedName'},   //默认必填
+        { txt : '商户签约性质' , of : 'M', value : 'registerRole'},  //默认必填
+        { txt : '证书类型' , of : 'M', value : 'cerType'},  //当签约性质不为自然人时必传
+        { txt : '商户简称' , of : 'M', value : 'signedShorthand'},  //默认必填
+        { txt : '经营地址省' , of : 'M', value : 'businessAddressProvince'}, //默认必填
+        { txt : '经营地址市' , of : 'M', value : 'businessAddressCity'}, //默认必填
+        { txt : '经营地址区' , of : 'M', value : 'businessAddressArea'}, //默认必填
+        { txt : '经营地址' , of : 'M', value : 'businessAddress'}, //默认必填
+        { txt : '联系人姓名' , of : 'M', value : 'contactName'}, //默认必填
+        { txt : '联系人邮箱' , of : 'M', value : 'contactEmail'}, //默认必填
+        { txt : '联系人电话' , of : 'M', value : 'contactPhone'}, //默认必填
+        { txt : '法人姓名' , of : 'M', value : 'legalPersonName'}, //默认必填
+        { txt : '法人证件类型' , of : 'M', value : 'legalPersonIdType'}, //默认必填
+        { txt : '证件号码' , of : 'M', value : 'legalPersonIdNo'}, //默认必填
+        { txt : '企业证件类型' , of : 'M', value : 'cerNoType'}, //商户类型不为自然人时必填
+        { txt : '资质证书编号' , of : 'M', value : 'cerNo'}, //商户类型不为自然人时必填
+        { txt : '营业面积' , of : 'M', value : 'sellingArea'}, //商户类型不为自然人时必填
+        { txt : '公司员工规模' , of : 'M', value : 'staffSize'}, //商户类型不为自然人时必填
+        { txt : '交易场景说明' , of : 'M', value : 'tradingScenarios'}, //商户类型不为自然人或被分账方时必传
+        { txt : '法人证件人像面路径' , of : 'M', value : 'legalIdCardProsPath'}, //默认必填
+        { txt : '法人证件国徽面路径' , of : 'M', value : 'legalIdCardConsPath'}, //默认必填
+        { txt : '营业执照照片路径' , of : 'M', value : 'businessLicensePath'}, //默认必填
+        { txt : '开户许可证照片路径' , of : 'M', value : 'openAccountPath'}, //默认必填
+        { txt : '法人银行卡图影印件路径' , of : 'M', value : 'legalPersonBankCardPath'}, //默认必填
+        { txt : '开户名称' , of : 'M', value : 'accountName'}, //默认必填
+        { txt : '开户账号' , of : 'M', value : 'bankCardNo'}, //默认必填
+        { txt : '市编码' , of : 'M', value : 'cityCode'}, //默认必填
+        { txt : '省编码' , of : 'M', value : 'provinceCode'}, //默认必填
+        { txt : '结算银行卡属性' , of : 'M', value : 'accountType'}, //商户类型为个体工商户时必填,个人默认对私,企业等默认对公
+        
+    ],
+    'NATURAL_PERSON' : [ //自然人
+        { txt : '被分账方' , of : 'M', value : 'signedType'},   //默认必填
+        { txt : '签约名称' , of : 'M', value : 'signedName'},   //默认必填
+        { txt : '商户签约性质' , of : 'M', value : 'registerRole'},  //默认必填
+        { txt : '商户简称' , of : 'M', value : 'signedShorthand'},  //默认必填
+        { txt : '经营地址省' , of : 'M', value : 'businessAddressProvince'}, //默认必填
+        { txt : '经营地址市' , of : 'M', value : 'businessAddressCity'}, //默认必填
+        { txt : '经营地址区' , of : 'M', value : 'businessAddressArea'}, //默认必填
+        { txt : '经营地址' , of : 'M', value : 'businessAddress'}, //默认必填
+        { txt : '联系人姓名' , of : 'M', value : 'contactName'}, //默认必填
+        { txt : '联系人邮箱' , of : 'M', value : 'contactEmail'}, //默认必填
+        { txt : '联系人电话' , of : 'M', value : 'contactPhone'}, //默认必填
+        { txt : '法人姓名' , of : 'M', value : 'legalPersonName'}, //默认必填
+        { txt : '法人职业' , of : 'M', value : 'profession'}, //商户类型为自然人时必传
+        { txt : '法人证件类型' , of : 'M', value : 'legalPersonIdType'}, //默认必填
+        { txt : '证件号码' , of : 'M', value : 'legalPersonIdNo'}, //默认必填
+        { txt : '法人证件人像面路径' , of : 'M', value : 'legalIdCardProsPath'}, //默认必填
+        { txt : '法人证件国徽面路径' , of : 'M', value : 'legalIdCardConsPath'}, //默认必填
+        { txt : '营业执照照片路径' , of : 'M', value : 'businessLicensePath'}, //默认必填
+        { txt : '开户许可证照片路径' , of : 'M', value : 'openAccountPath'}, //默认必填
+        { txt : '法人银行卡图影印件路径' , of : 'M', value : 'legalPersonBankCardPath'}, //默认必填
+        { txt : '开户名称' , of : 'M', value : 'accountName'}, //默认必填
+        { txt : '开户账号' , of : 'M', value : 'bankCardNo'}, //默认必填
+        { txt : '市编码' , of : 'M', value : 'cityCode'}, //默认必填
+        { txt : '省编码' , of : 'M', value : 'provinceCode'}, //默认必填
+    ],
+    'offlist' : [ //默认
+        { txt : '被分账方' , of : 'M', value : 'signedType'},   //默认必填
+        { txt : '签约名称' , of : 'M', value : 'signedName'},   //默认必填
+        { txt : '商户签约性质' , of : 'M', value : 'registerRole'},  //默认必填
+        { txt : '证书类型' , of : 'M', value : 'cerType'},  //当签约性质不为自然人时必传
+        { txt : '商户简称' , of : 'M', value : 'signedShorthand'},  //默认必填
+        { txt : '经营地址省' , of : 'M', value : 'businessAddressProvince'}, //默认必填
+        { txt : '经营地址市' , of : 'M', value : 'businessAddressCity'}, //默认必填
+        { txt : '经营地址区' , of : 'M', value : 'businessAddressArea'}, //默认必填
+        { txt : '经营地址' , of : 'M', value : 'businessAddress'}, //默认必填
+        { txt : '联系人姓名' , of : 'M', value : 'contactName'}, //默认必填
+        { txt : '联系人邮箱' , of : 'M', value : 'contactEmail'}, //默认必填
+        { txt : '联系人电话' , of : 'M', value : 'contactPhone'}, //默认必填
+        { txt : '法人姓名' , of : 'M', value : 'legalPersonName'}, //默认必填
+        { txt : '法人证件类型' , of : 'M', value : 'legalPersonIdType'}, //默认必填
+        { txt : '证件号码' , of : 'M', value : 'legalPersonIdNo'}, //默认必填
+        { txt : '企业证件类型' , of : 'M', value : 'cerNoType'}, //商户类型不为自然人时必填
+        { txt : '资质证书编号' , of : 'M', value : 'cerNo'}, //商户类型不为自然人时必填
+        { txt : '营业面积' , of : 'M', value : 'sellingArea'}, //商户类型不为自然人时必填
+        { txt : '公司员工规模' , of : 'M', value : 'staffSize'}, //商户类型不为自然人时必填
+        { txt : '交易场景说明' , of : 'M', value : 'tradingScenarios'}, //商户类型不为自然人或被分账方时必传
+        { txt : '法人证件人像面路径' , of : 'M', value : 'legalIdCardProsPath'}, //默认必填
+        { txt : '法人证件国徽面路径' , of : 'M', value : 'legalIdCardConsPath'}, //默认必填
+        { txt : '营业执照照片路径' , of : 'M', value : 'businessLicensePath'}, //默认必填
+        { txt : '开户许可证照片路径' , of : 'M', value : 'openAccountPath'}, //默认必填
+        { txt : '法人银行卡图影印件路径' , of : 'M', value : 'legalPersonBankCardPath'}, //默认必填
+        { txt : '开户名称' , of : 'M', value : 'accountName'}, //默认必填
+        { txt : '开户账号' , of : 'M', value : 'bankCardNo'}, //默认必填
+        { txt : '市编码' , of : 'M', value : 'cityCode'}, //默认必填
+        { txt : '省编码' , of : 'M', value : 'provinceCode'}, //默认必填
+    ],
     'certificate': [
         { txt: '统一社会信用代码证', value: 'UNIFORM_SOCIAL_CREDIT_CODE' },
         { txt: '民办非企业单位登记证书', value: 'PRIVATE_NON_ENTERPRISE_UNIT_REGISTRATION_CERTIFICATE' },
@@ -13810,18 +13900,18 @@ const ssq = {
         { txt: '营业执照号码', value: 'BUSINESS_LICENSE_NO' },
     ],
     'rightArray': [
-        { txt: '营业执照照片路径', value: 1, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M' ,type:'.jpg, .jpeg, .png, .pdf'},
-        { txt: '开户许可证招聘路径', value: 2, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '法人证件人面像路径', value: 3, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '法人证件国徽面路径', value: 4, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M' ,type:'.jpg, .jpeg, .png, .pdf'},
-        { txt: '确认入网意愿视频路径', value: 5, txts: '格式限制为.AVI, .mov, .rmvb, .rm, .FLV, .mp4, .3gp,最大不超过50M',type:'.AVI, .mov, .rmvb, .rm, .FLV, .mp4, .3gp' },
-        { txt: '法人手持证件影印件路径', value: 6, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '商户网址截图影印件路径', value: 7, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '公众号/小程序/生活号影印件路径', value: 8, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: 'APP首页截图影印件路径', value: 9, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '法人银行卡图影印件路径', value: 10, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '确认入网意愿其他方式验证路径', value: 11, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
-        { txt: '其他资质文件路径', value: 12, txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '营业执照照片路径', value: 'businessLicensePath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M' ,type:'.jpg, .jpeg, .png, .pdf'},
+        { txt: '开户许可证招聘路径', value: 'openAccountPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '法人证件人面像路径', value: 'legalIdCardProsPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '法人证件国徽面路径', value: 'legalIdCardConsPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M' ,type:'.jpg, .jpeg, .png, .pdf'},
+        { txt: '确认入网意愿视频路径', value: 'desireAuthPath', txts: '格式限制为.AVI, .mov, .rmvb, .rm, .FLV, .mp4, .3gp,最大不超过50M',type:'.AVI, .mov, .rmvb, .rm, .FLV, .mp4, .3gp' },
+        { txt: '法人手持证件影印件路径', value: 'holdingIdCardPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '商户网址截图影印件路径', value: 'webSitePath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '公众号/小程序/生活号影印件路径', value: 'wechatAppletPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: 'APP首页截图影印件路径', value: 'appPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '法人银行卡图影印件路径', value: 'legalPersonBankCardPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '确认入网意愿其他方式验证路径', value: 'desireAuthOtherPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
+        { txt: '其他资质文件路径', value: 'otherCerPath', txts: '格式限制为.jpg, .jpeg, .png, .pdf,最大不超过50M',type:'.jpg, .jpeg, .png, .pdf' },
     ],
     'options': [
         { label: '网站', value: 'WEBSITE' },

+ 3 - 3
src/component/Account-overview/Account-overview.jsx

@@ -283,7 +283,7 @@ export default class AccountOverview extends React.Component {
                                 </div>
                                 <div style={{ width: '65%', height: '120px', float: 'left' }}>
                                     <div style={{ lineHeight: '40px' }}>商户编号 : {data.merchantId == '' ? '--' : data.merchantId}</div>
-                                    <div style={{ lineHeight: '40px' }}>商户名称 : {data.signedShorthand == '' ? '--' : data.signedShorthand}</div>
+                                    <div style={{ lineHeight: '40px' }}>商户名称 : {data.name == '' ? '--' : data.name}</div>
                                     <div style={{ lineHeight: '40px' }}>商户邮箱 : {data.contactEmail == '' ? '--' : data.contactEmail}</div>
                                 </div>
                             </div>
@@ -338,7 +338,7 @@ export default class AccountOverview extends React.Component {
                         </div>
                         <div className='c-ls'>
                             <div className='titles_tk'>验证码 :</div>
-                            <div className='titles_yzm'><Input className='inputs' id='num1' maxLength={6} onChange={(e) => this.inputChange1(e)} /></div>
+                            <div className='titles_yzm'><Input className='inputs' id='num1' autocomplete="off" maxLength={6} onChange={(e) => this.inputChange1(e)} /></div>
                         </div>
                         <div className='c-ls'>
                             <div className='titles_tk'>支付密码 :</div>
@@ -356,7 +356,7 @@ export default class AccountOverview extends React.Component {
                         </div>
                         <div className='c-ls'>
                             <div className='titles_tk'>确认支付密码 :</div>
-                            <div className='titles_num'><Input.Password id='cfPassword' placeholder="再次输入支付密码" /></div>
+                            <div className='titles_num'><Input.Password id='cfPassword' autocomplete="off" placeholder="再次输入支付密码" /></div>
                         </div>
 
 

+ 5 - 4
src/component/Cash-initiated/Cash-initiated.jsx

@@ -50,15 +50,16 @@ export default class AccountOverview extends React.Component {
     subClick(){
         if( document.getElementById("je").value !== ''){
             if( document.getElementById("pwd").value !== ''){
-                if(this.state.data.withdrawBalance > 0 && this.state.data.withdrawBalance < document.getElementById("je").value){
+                if(Number(this.state.data.withdrawBalance) > 0 && Number(this.state.data.withdrawBalance) >= Number(document.getElementById("je").value)){
                     if(this.state.isPwd == 1){
+                        let nums = 0.5;
                         let that_ = this;
                         let url = '/payment/merchant.pickup.groovy'
                         let params = {
                             action :"create",//提现
                             merchantNo : JSON.parse(localStorage.getItem('userData')).merchantNo,//入网的appname、社群name、商户号等(香香或者嘉旺提供)
                             merchantType : JSON.parse(localStorage.getItem('userData')).merchantType, //入网来源,2:app或社群 3:商户或店铺(香香或者嘉旺提供)
-                            withdrawAmount : document.getElementById("je").value,//提现金额以元为单位,默认都是人民币,以元为单位
+                            withdrawAmount : Number(document.getElementById("je").value) + Number(nums),//提现金额以元为单位,默认都是人民币,以元为单位
                             pwd : document.getElementById("pwd").value//String,交易密码
                         }
                         $Axios('get',url,params,(res) => {
@@ -125,11 +126,11 @@ export default class AccountOverview extends React.Component {
                        </div>
                        <div>
                             <div style={{width:'120px',display : 'inline-block',}}> 手续费 : </div>
-                            0元
+                            0.5
                        </div>
                        <div>
                             <div style={{width:'120px',display : 'inline-block',}}> 交易密码 : </div>
-                            <div style={{width:'200px',display:'inline-block'}}><Input id='pwd' key={pwd} placeholder="请输入密码" /></div>
+                            <div style={{width:'200px',display:'inline-block'}}><Input.Password id='pwd' key={pwd} placeholder="请输入密码" /></div>
                        </div>
                        <div>
                             <Button onClick={this.btnCzClick.bind(this)}>重置</Button>

+ 2 - 3
src/component/Finance-orderQuery/Finance-orderQuery.jsx

@@ -47,7 +47,7 @@ export default class FinanceoRderQuery extends React.Component {
                     key: 'stbPrice',
                 },
                 {
-                    title: '积分币金额',
+                    title: '本币余额',
                     dataIndex: 'benbiPrice',
                     key: 'benbiPrice',
                 },
@@ -288,7 +288,6 @@ export default class FinanceoRderQuery extends React.Component {
         $Axios('get', url, params, (res) => {
             let status = res.data.head.status;
             let data = res.data.body.list;
-            console.log(data)
             if (status == 200 && data !== undefined) {
                 let arr = [];
                 data.map((item, index) => {
@@ -419,7 +418,7 @@ export default class FinanceoRderQuery extends React.Component {
                                 <p><span className={StyleData.spans}>订单金额 :</span> {payOrderInfo.totalAmount}</p>
                                 <p><span className={StyleData.spans}>支付金额 :</span> {payOrderInfo.cash}</p>
                                 <p><spam className={StyleData.spans}>联盟积分 :</spam> {payOrderInfo.stbPrice}</p>
-                                <p><span className={StyleData.spans}>积分币金额 :</span> {payOrderInfo.benbiPrice}</p>
+                                <p><span className={StyleData.spans}>本币余额 :</span> {payOrderInfo.benbiPrice}</p>
                             </div>
                             <div className={StyleData.tabDiv}>
                                 <p style={{ fontSize: '16px', fontWeight: '600' }}>订单金额流向信息</p>

+ 1 - 1
src/component/Income-record/Income-record.jsx

@@ -76,7 +76,7 @@ export default class IncomeRecord extends React.Component {
     }
 
     onChange(date, dateString){
-        console.log(date, dateString);
+        // console.log(date, dateString);
     }
 
     changePage(e) {

+ 69 - 197
src/component/Layout/Layout.jsx

@@ -6,12 +6,14 @@ import styleData from '../moduleCss/style.module.scss';
 import CenterO from '../center-o/centerO.jsx'
 import CenterW from '../center-w/centerW.jsx'
 import CenterS from '../center-s/centerS.jsx'
+import select_data from '../../common/ssq';
+import { triggerFocus } from 'antd/lib/input/Input';
 export default class Layout extends React.Component {
     constructor(props) {
         super(props)
         this.state = {
             headTxt: '商户入网 > 商户基本信息',
-            htmls: 1,
+            htmls: 3,
             initHtmls: 1,
             Params_o: {},
             Params_w: {},
@@ -21,7 +23,8 @@ export default class Layout extends React.Component {
             btnType : '',
             registerRole :'',
             isModalVisible: false,
-            modalTxt : ''
+            modalTxt : '',
+            offlist : select_data.offlist,
         }
 
     }
@@ -43,202 +46,66 @@ export default class Layout extends React.Component {
             btnType: false
         });
     }
+
     Validation_data(e) {
+        let listArr = [];  //必填项数组
         let data = '';
-        let flag = true;
         if (e == 1) {
             data = JSON.parse(localStorage.getItem('oData'));
             this.setState({
-                signedType: data.signedType,
-                registerRole : data.registerRole 
-            });
-            if (data.signedName == '') {
-                this.messageTK('请输入签约名称')
-                flag = false
-                return flag
-            };
-            if (data.registerRole == '') {
-                this.messageTK('请选择商户签约性质')
-                flag = false
-                return flag
-            };
-            if (data.signedShorthand == '') {
-                this.messageTK('请输入商户简称')
-                flag = false
-                return flag
-            };
-            if (data.contactName == '') {
-                this.messageTK('请输入联系人姓名')
-                flag = false
-                return flag
-            };
-            if (data.contactEmail == '') {
-                this.messageTK('请输入联系人邮箱')
-                flag = false
-                return flag
-            };
-            if (data.contactPhone == '') {
-                this.messageTK('请输入联系人电话')
-                flag = false
-                return flag
-            };
-            if (data.businessAddressProvince == '') {
-                this.messageTK('请选择经营地省')
-                flag = false
-                return flag
-            };
-            if (data.businessAddressCity == '') {
-                this.messageTK('请选择经营地市')
-                flag = false
-                return flag
-            };
-            if (data.businessAddress == '') {
-                this.messageTK('请输入经营地址')
-                flag = false
-                return flag
-            };
-            if(data.desireAuth == 'DESIRE_MOBILEINFO'){
-                if (data.legalPersonName == '') {
-                    this.messageTK('请输入法人姓名')
-                    flag = false
-                    return flag
-                };
-                if (data.legalPersonIdNo == '') {
-                    this.messageTK('请输入法人身份证号')
-                    flag = false
-                    return flag
-                };
-                if (data.legalPersonPhoneNo == '') {
-                    this.messageTK('请输入法人手机号')
-                    flag = false
-                    return flag
-                };
-            }
-            return flag
-            
-        } else if (e == 2) {
+                registerRole : data.registerRole
+            })
+        }
+        if (e == 2) {
             data = JSON.parse(localStorage.getItem('wData'));
-            if (data.legalPersonName == '') {
-                this.messageTK('请输入法人姓名')
-                flag = false
-                return flag
-            };
-            if (data.legalPersonIdType == '') {
-                this.messageTK('请选择法人证件类型')
-                flag = false
-                return flag
-            };
-            if (data.legalPersonIdNo == '') {
-                this.messageTK('请输入法人证件号码')
-                flag = false
-                return flag
-            };
-            if (data.legalPersonIdNo == '') {
-                this.messageTK('请输入法人证件号码')
-                flag = false
-                return flag
-            };
-            if (this.state.signedType !== 'NATURAL_PERSON') { //法人不为自然人时
-                if (data.cerNoType == '') {
-                    this.messageTK('请选择企业证件类型')
-                    flag = false
-                    return flag
-                };
-                if (data.cerNo == '') {
-                    this.messageTK('请输入资质证书编号')
-                    flag = false
-                    return flag
-                };
-                if (data.sellingArea == '') {
-                    this.messageTK('请选择营业面积')
-                    flag = false
-                    return flag
-                };
-                if (data.staffSize == '') {
-                    this.messageTK('请选择员工规模')
-                    flag = false
-                    return flag
-                };
-                if (data.staffSize == '') {
-                    this.messageTK('请选择员工规模')
-                    flag = false
-                    return flag
-                };
-            }
-            if (data.legalIdCardProsPath == '') {
-                this.messageTK('请上传法人证件人像面图片')
-                flag = false
-                return flag
-            };
-            if (data.legalIdCardConsPath == '') {
-                this.messageTK('请上传法人证件国徽图片')
-                flag = false
-                return flag
-            };
-            if (data.businessLicensePath == '') {
-                this.messageTK('请上传营业执照照片')
-                flag = false
-                return flag
-            };
-            if (data.openAccountPath == '') {
-                this.messageTK('请上传开户许可证照片')
-                flag = false
-                return flag
-            };
-            if (data.holdingIdCardPath == '') {
-                this.messageTK('请上传法人手持证件照片')
-                flag = false
-                return flag
-            };
-            if (data.legalPersonBankCardPath == '') {
-                this.messageTK('请上传法人银行卡照片')
-                flag = false
-                return flag
-            };
-            return flag
-
-        } else if (e == 3) {
+        }
+        if (e == 3) {
             data = JSON.parse(localStorage.getItem('sData'));
-            if (data.accountName == '') {
-                this.messageTK('请输入开户名称')
-                flag = false
-                return flag
-            };
-            if (data.bankCardNo == '') {
-                this.messageTK('请输入开户账号')
-                flag = false
-                return flag
-            };
-            if (data.provinceCode == '') {
-                this.messageTK('请选择省编码')
-                flag = false
-                return flag
-            };
-            if (data.cityCode == '') {
-                this.messageTK('请选择市编码')
-                flag = false
-                return flag
-            };
-            if(data.accountType == 'PUBLIC'){
-                if (data.bankCode == '') {
-                    this.messageTK('请选择开户行')
-                    flag = false
-                    return flag
-                };
-                if (data.bankBranchName == '') {
-                    this.messageTK('请输入支行名称')
-                    flag = false
-                    return flag
-                };
+        }
+        console.log(this.state.registerRole)
+        if(this.state.registerRole == 'INDIVIDUAL_BUSINESS'){ //个体工商户必填项验证
+            let datas = select_data.INDIVIDUAL_BUSINESS;
+            if(data.desireAuth == 'DESIRE_MOBILEINFO'){ //手机短信验证 增加必填项
+                datas.push({ txt : '法人手机号' , of : 'M', value : 'legalPersonPhoneNo'})
             }
-            if (data.withdrawRate == '') {
-                this.messageTK('请输入体现费率')
-                flag = false
-                return flag
-            };
-            return flag
-
+            datas.map((item,index) => {
+                let s = item.value;
+                for(let key  in data){
+                    if(key == s){
+                        if(data[key] == ''){
+                            listArr.push(key);
+                        }
+                    }
+                }
+            })
+            
+        }else if(this.state.registerRole == 'NATURAL_PERSON'){ //自然人必填项验证
+            let datas = select_data.NATURAL_PERSON;  //必填项列表
+            datas.map((item,index) => {  
+                let s = item.value;
+                for(let key  in data){
+                    console.log(key)
+                    if(key == s){
+                        if(data[key] == ''){
+                            listArr.push(key)
+                        }
+                    }
+                }
+            });
+        }else{ //默认必填项验证
+            let datas = select_data.offlist;  //必填项列表
+            datas.map((item,index) => {  
+                let s = item.value;
+                for(let key  in data){
+                    if(key == s){
+                        if(data[key] == ''){
+                            listArr.push(key)
+                        }
+                    }
+                }
+            });
         }
+        return listArr;
     }
 
     messageTK(e){
@@ -262,14 +129,16 @@ export default class Layout extends React.Component {
         let that_ = this;
         that_.setState({lodings : true});
         that_.CenterO.childMethod()  //第一页跳第二页保存第一页数据
-        let flag = that_.Validation_data(1);//验证第一页数据 所有必填项是否获得数据
-        if(flag == false){
+        let list = that_.Validation_data(1);//验证第一页必填项是否填写,获取未填写的必填项
+        that_.CenterO.verification(list)  //发送给组件 未填写必填项 给出提示
+        let flag = list.length > 0 ? false : true;  //list长度大于0 代表有必填项未填写
+        if(flag == false){  //标记为false 则拦截跳转组件
             that_.setState({lodings : false})
         }else{
             setTimeout(function(){ that_.setState({lodings : false}) }, 500);
         }    
 
-        if(flag == true){
+        if(flag == true){ //标记为true 允许跳转
             that_.setState({lodings : true});
             setTimeout(function () {
                 that_.CenterW.childMethod()  //第一页跳第二页回填数据
@@ -302,9 +171,12 @@ export default class Layout extends React.Component {
         let headTxt = '商户入网 > 结算信息'
         let that_ = this;
         that_.setState({lodings : true});
-        that_.CenterW.childMethod()  //第二页跳第三页保存第二页数据
-        let flag = that_.Validation_data(2);//验证第二页数据 所有必填项是否获得数据
 
+        that_.CenterW.childMethod()  //第一页跳第二页保存第一页数据
+        let list = that_.Validation_data(2);//验证第一页必填项是否填写,获取未填写的必填项
+        console.log(list)
+        that_.CenterW.verification(list)  //发送给组件 未填写必填项 给出提示
+        let flag = list.length > 0 ? false : true;  //list长度大于0 代表有必填项未填写
         if(flag == false){
             that_.setState({lodings : false})
         }else{
@@ -492,11 +364,11 @@ export default class Layout extends React.Component {
                         {htmls === 3 && (<CenterS arr={this.state.Params_S} parent={this} onRef={this.bindRef_s}></CenterS>)}
                     </div>
                     <div className={styleData.center_bottom}>
-                        {htmls === 1 && lodings == false &&  <Button className={styleData.btn, styleData.btn_next} type="primary" onClick={() => this.btnClick_1()} loading={btnType}>下一步</Button>}
+                        {htmls === 1 && lodings == false &&  <Button className={styleData.btn, styleData.btn_next} type="primary" htmlType="submit" onClick={() => this.btnClick_1()} loading={btnType}>下一步</Button>}
                         {htmls === 2 && lodings == false &&  <Button className={styleData.btn, styleData.btn_xg} onClick={() => this.btnClick_2()} loading={btnType}>上一步</Button>}
-                        {htmls === 2 && lodings == false &&  <Button className={styleData.btn, styleData.btn_next} type="primary" onClick={() => this.btnClick_3()} loading={btnType}>下一步</Button>}
+                        {htmls === 2 && lodings == false &&  <Button className={styleData.btn, styleData.btn_next} type="primary" htmlType="submit" onClick={() => this.btnClick_3()} loading={btnType}>下一步</Button>}
                         {htmls === 3 && lodings == false &&  <Button className={styleData.btn, styleData.btn_xg} onClick={() => this.btnClick_4()} loading={btnType}>上一步</Button>}
-                        {htmls === 3 && lodings == false &&  <Button className={styleData.btn, styleData.btn_next} type="primary" onClick={() => this.btnClick('ok')} loading={btnType}>提交</Button>}
+                        {htmls === 3 && lodings == false &&  <Button className={styleData.btn, styleData.btn_next} type="primary" htmlType="submit" onClick={() => this.btnClick('ok')} loading={btnType}>提交</Button>}
                     </div>
                 </div>
                 {/* <Modal title="入网结果"

+ 2 - 2
src/component/Refund-inquiry/Refund-inquiry.jsx

@@ -40,7 +40,7 @@ export default class RefundInquiry extends React.Component {
                     key: 'stbPrice',
                 },
                 {
-                    title: '积分币金额',
+                    title: '本币余额',
                     dataIndex: 'benbiPrice',
                     key: 'benbiPrice',
                 },
@@ -433,7 +433,7 @@ export default class RefundInquiry extends React.Component {
                                     <p>订单金额 :  {refundInfo.totalAmount}</p>
                                     <p>退款金额 :  {refundInfo.cash}</p>
                                     <p>退款本币 :  {refundInfo.benbiPrice}</p>
-                                    <p>退款积分 :  {refundInfo.stbPrice}</p>
+                                    <p>退款联盟积分 :  {refundInfo.stbPrice}</p>
                                     <p>退款原因 :  {refundInfo.remark}</p>
                                     <p>退款账户 :  {$payTxt(refundInfo.payType)}</p>
                                 </div>

+ 292 - 94
src/component/center-o/centerO.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Radio, Select, Input } from 'antd';
+import { Radio, Select, Input,Form } from 'antd';
 // import { $Axios } from '../../common/publish';
 import select_data from '../../common/ssq';
 import '../center-o/centerO.scss'
@@ -18,7 +18,9 @@ export default class centerO extends React.Component {
             regionTxt: 2,
             datas: null,
             lodings: false,
-            desireAuth: ''
+            desireAuth: '',
+            offlist : select_data.offlist,
+            validation_list : []
         }
 
     }
@@ -31,6 +33,17 @@ export default class centerO extends React.Component {
         this.initData();
     }
 
+    listTypes(e){
+        let data = this.state.offlist;
+        let type = data.find((item,index) => { return item.value == e});
+        if(type !== undefined){
+            type = true
+        }else{
+            type = false
+        }
+        return type
+    }
+
     initData() {
         if (this.props.arr) {  //初始化判断数据回填
             if (this.state.Params.businessAddressProvince !== undefined) {
@@ -70,8 +83,8 @@ export default class centerO extends React.Component {
             contactPhone: document.getElementById("mynums").value,// 联系人电话
             businessClassification: this.state.Params.businessClassification, //业务分类 (签约类型为被分账方不传此参数)
             desireAuth: this.state.Params.desireAuth == undefined ? 'DESIRE_VIDEO' : this.state.Params.desireAuth, // 开户意愿核实类型
-            legalPersonName : this.state.Params.desireAuth == 'DESIRE_MOBILEINFO' ? document.getElementById("myname1").value : '',// 法人姓名
-            legalPersonIdNo : this.state.Params.desireAuth == 'DESIRE_MOBILEINFO' ? document.getElementById("myname2").value : '',// 法人身份证号
+            // legalPersonName : this.state.Params.desireAuth == 'DESIRE_MOBILEINFO' ? document.getElementById("myname1").value : '',// 法人姓名
+            // legalPersonIdNo : this.state.Params.desireAuth == 'DESIRE_MOBILEINFO' ? document.getElementById("myname2").value : '',// 法人身份证号
             legalPersonPhoneNo : this.state.Params.desireAuth == 'DESIRE_MOBILEINFO' ? document.getElementById("myname3").value : '',// 法人手机号
         }
         localStorage.setItem('oData', JSON.stringify(Params))
@@ -81,7 +94,23 @@ export default class centerO extends React.Component {
     handleChangeQy(e) {  //商户签约性质
         let registerRole = e;
         this.state.Params.registerRole = registerRole;
-        // console.log(this.state.Params)
+        if(registerRole == 'INDIVIDUAL_BUSINESS'){ //个体工商户
+            this.setState({
+                offlist:select_data.INDIVIDUAL_BUSINESS
+            })
+        }
+
+        if(registerRole == 'NATURAL_PERSON'){  //自然人
+            this.setState({
+                offlist:select_data.NATURAL_PERSON
+            })
+        }
+
+        if(registerRole == 'offlist'){ //默认
+            this.setState({
+                offlist:select_data.offlist
+            })
+        }
     }
 
     handleChangeZs(e) {  //商户证书类型
@@ -137,147 +166,316 @@ export default class centerO extends React.Component {
         this.setState({
             desireAuth: desireAuth
         })
-        // console.log(this.state)
+
     }
     childMethod() { //暴露给父组件的方法,集合当前页面拿到的参数存入缓存
         let data = this.Inputdata();
         this.toParent(data)
     }
 
+    verification(e) { //暴露给父组件的方法,验证当前页面必填项
+        console.log(e);
+        this.setState({
+            validation_list : e
+        })
+    }
+
     inputDatas(e) {
         // console.log(e)
     }
+    
+    // verificationMap(e){
+    //     let data = this.state.validation_list;
+    //     let type = false;
+    //     if(data.length > 0){
+    //         let s = ;
+    //         console.log(s)
+    //     }else{
+
+    //     }
+
+    //     return type;
+    // }
 
 
     render() {
-        const { selectData, cityOs, regionOs, citylist, regionlist, cityTxt, regionTxt, desireAuth, Params } = this.state;
+        const { selectData, cityOs, regionOs, citylist, regionlist, cityTxt, regionTxt, desireAuth, Params , validation_list } = this.state;
         const { Option } = Select;
         const { TextArea } = Input;
+        const layout = {
+            labelCol: { span: 4 },
+            // wrapperCol: { span:  },
+          };
         return (
             <div className='center_up'>
+                 <Form 
+                    {...layout}
+                    // initialValuess={{ 'registerRole' : '1'}}
+                 >
                 <div className='center_left'>
-                    <div className='c-l'>
-                        <div className='titles'> 商户入网类型<i className='label_x'>*</i> : </div>
-                        <Radio.Group name="radiogroup" defaultValue={1}>
-                            <Radio value={1}>被分帐方</Radio>
-                        </Radio.Group>
+                    <div className='c-x' style={{height : '50px'}}>
+                        {/* <div className='titles'> 商户入网类型{this.listTypes('signedType') == true && <i className='label_x'>*</i>} : </div> */}
+                        <Form.Item
+                            label="商户入网类型"
+                            name="signedType"
+                            labelCol={{ style: { width: 150 } }}
+                            rules={[{ required: this.listTypes('signedType') == true ? true : false }]}
+                        >
+                            <Radio.Group name="radiogroup" defaultValue={1}>
+                                <Radio value={1}>被分帐方</Radio>
+                            </Radio.Group>
+                        </Form.Item>
+                        
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 签约名称<i className='label_x'>*</i>  : </div>
-                        <div className='inputs'><Input id='qymc' placeholder='请输入签约名称' defaultValue={Params.signedName} /></div>
+                        {/* <div className='titles'> 签约名称{this.listTypes('signedName') == true && <i className='label_x'>*</i>}  : </div> */}
+                        <div className='inputs'>
+                            <Form.Item
+                                label="签约名称"
+                                name="signedName"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('signedName') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'signedName'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'signedName'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='qymc' style={{ width: 200 }} placeholder='请输入签约名称' defaultValue={Params.signedName} />
+                            </Form.Item>
+                            {/* <Input id='qymc' placeholder='请输入签约名称' defaultValue={Params.signedName} /> */}
+                        </div>
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 商户签约性质<i className='label_x'>*</i>  : </div>
-                        <Select
-                            size='default'
-                            id='qyxz'
-                            placeholder="请选择商户签约性质"
-                            defaultValue={Params.registerRole}
-                            onChange={this.handleChangeQy.bind(this)}
-                            style={{ width: 200 }}
-                        >
-                            {selectData.contract.map((item, index) => (
-                                <Option key={index} value={item.value}>{item.txt}</Option>
-                            ))}
-                        </Select>
+                        {/* <div className='titles'> 商户签约性质{this.listTypes('registerRole') == true && <i className='label_x'>*</i>}  : </div> */}
+                        <Form.Item
+                                label="商户签约性质"
+                                name="registerRole"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('registerRole') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'registerRole'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'registerRole'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                 <Select
+                                    size='default'
+                                    id='qyxz'
+                                    placeholder="请选择商户签约性质"
+                                    defaultValue={Params.registerRole}
+                                    onChange={this.handleChangeQy.bind(this)}
+                                    style={{ width: 200 }}
+                                >
+                                    {selectData.contract.map((item, index) => (
+                                        <Option key={index} value={item.value}>{item.txt}</Option>
+                                    ))}
+                                </Select>
+                            </Form.Item>
+                       
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 证书类型 : </div>
-                        <Select
-                            size='default'
-                            id='zslx'
-                            placeholder="请选择证书类型"
-                            defaultValue={Params.cerType}
-                            onChange={this.handleChangeZs.bind(this)}
-                            style={{ width: 200 }}
-                        >
-                            {selectData.certificate.map((item, index) => (
-                                <Option key={index} value={item.value}>{item.txt}</Option>
-                            ))}
-                        </Select>
+                        {/* <div className='titles'> 证书类型{this.listTypes('cerType') == true && <i className='label_x'>*</i>} : </div> */}
+                            <Form.Item
+                                label="证书类型"
+                                name="cerType"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('cerType') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'cerType'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'cerType'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                 <Select
+                                    size='default'
+                                    id='zslx'
+                                    placeholder="请选择证书类型"
+                                    defaultValue={Params.cerType}
+                                    onChange={this.handleChangeZs.bind(this)}
+                                    style={{ width: 200 }}
+                                >
+                                    {selectData.certificate.map((item, index) => (
+                                        <Option key={index} value={item.value}>{item.txt}</Option>
+                                    ))}
+                                </Select>
+                            </Form.Item>
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 商户简称<i className='label_x'>*</i>  : </div>
-                        <div className='inputs'><Input id='names' placeholder="请输入商户简称" defaultValue={Params.signedShorthand} /></div>
+                        {/* <div className='titles'> 商户简称{this.listTypes('signedShorthand') == true && <i className='label_x'>*</i>}  : </div> */}
+                            <Form.Item
+                                label="商户简称"
+                                name="signedShorthand"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('signedShorthand') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'signedShorthand'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'signedShorthand'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='names' style={{ width: 200 }} placeholder='请输入商户简称' defaultValue={Params.signedShorthand} />
+                            </Form.Item>
+                        {/* <div className='inputs'><Input id='names' placeholder="请输入商户简称" defaultValue={Params.signedShorthand} /></div> */}
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 联系人姓名<i className='label_x'>*</i>  : </div>
-                        <div className='inputs'><Input id='myname' placeholder="请输入联系人姓名" defaultValue={Params.contactName} /></div>
+                            <Form.Item
+                                label="联系人姓名"
+                                name="contactName"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('contactName') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'contactName'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'contactName'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='myname' style={{ width: 200 }} placeholder='请输入商户简称' defaultValue={Params.contactName} />
+                            </Form.Item>
+                        {/* <div className='titles'> 联系人姓名{this.listTypes('contactName') == true && <i className='label_x'>*</i>}  : </div>
+                        <div className='inputs'><Input id='myname' placeholder="请输入联系人姓名" defaultValue={Params.contactName} /></div> */}
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 联系人邮箱<i className='label_x'>*</i>  : </div>
-                        <div className='inputs'><Input id='mymail' placeholder="请输入联系人邮箱" defaultValue={Params.contactEmail} /></div>
+                            <Form.Item
+                                label="联系人邮箱"
+                                name="contactEmail"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('contactEmail') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'contactEmail'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'contactEmail'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='mymail' style={{ width: 200 }} placeholder='请输入商户简称' defaultValue={Params.contactEmail} />
+                            </Form.Item>
+                        {/* <div className='titles'> 联系人邮箱{this.listTypes('contactEmail') == true && <i className='label_x'>*</i>}  : </div>
+                        <div className='inputs'><Input id='mymail' placeholder="请输入联系人邮箱" defaultValue={Params.contactEmail} /></div> */}
                     </div>
                     <div className='c-l'>
-                        <div className='titles'> 联系人电话<i className='label_x'>*</i>  : </div>
-                        <div className='inputs'><Input id='mynums' placeholder="请输入联系人电话" onChange={this.inputDatas.bind(this)} defaultValue={Params.contactPhone} /></div>
+                        <Form.Item
+                                label="联系人电话"
+                                name="contactPhone"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('contactPhone') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'contactPhone'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'contactPhone'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='mynums' style={{ width: 200 }} placeholder="请输入联系人电话" onChange={this.inputDatas.bind(this)} defaultValue={Params.contactPhone} />
+                            </Form.Item>
+                        {/* <div className='titles'> 联系人电话{this.listTypes('contactPhone') == true && <i className='label_x'>*</i>}  : </div> */}
+                        {/* <div className='inputs'><Input id='mynums' placeholder="请输入联系人电话" onChange={this.inputDatas.bind(this)} defaultValue={Params.contactPhone} /></div> */}
                     </div>
                 </div>
                 <div className='center_right'>
-                    <div className='c-l'>
-                        <div className='titles_o'> 经营地址省<i className='label_x'>*</i>  : </div>
-                        <Select size='default' placeholder="请选择省份" defaultValue={Params.businessAddressProvince} onChange={this.province_select.bind(this)} style={{ width: 200 }}>
-                            {selectData.Area.map((item, index) => (
-                                <Option key={index} value={item.provinceCode}>{item.provinceName}</Option>
-                            ))}
-                        </Select>
+                    <div className='c-l' style={{marginTop : '10px'}}>
+                        {/* <div className='titles_o'> 经营地址省{this.listTypes('businessAddressProvince') == true && <i className='label_x'>*</i>}  : </div> */}
+                            <Form.Item
+                                label="经营地址省"
+                                name="businessAddressProvince"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('businessAddressProvince') == true ? true : false , message: ''}]}
+                                validateStatus = {validation_list.find((item,index) => { return item == 'businessAddressProvince'}) !== undefined ? 'error' : null}
+                                help = {validation_list.find((item,index) => { return item == 'businessAddressProvince'}) !== undefined ? '此项为必填项!' : null}
+                            >
+                                 <Select size='default' placeholder="请选择省份" defaultValue={Params.businessAddressProvince} onChange={this.province_select.bind(this)} style={{ width: 200 }}>
+                                    {selectData.Area.map((item, index) => (
+                                        <Option key={index} value={item.provinceCode}>{item.provinceName}</Option>
+                                    ))}
+                                </Select>
+                            </Form.Item>
+                        
                     </div>
                     <div className='c-l'>
-                        <div className='titles_o'> 经营地址市<i className='label_x'>*</i>  : </div>
-                        <Select size='default' placeholder="请选择市" defaultValue={Params.businessAddressCity} key={cityTxt} onChange={this.city_select.bind(this)} style={{ width: 200 }} disabled={cityOs}>
-                            {citylist.map((item, index) => (
-                                <Option key={index} value={item.cityCode}>{item.cityName}</Option>
-                            ))}
-                        </Select>
+                        {/* <div className='titles_o'> 经营地址市{this.listTypes('businessAddressCity') == true && <i className='label_x'>*</i>}  : </div> */}
+                        <Form.Item
+                            label="经营地址市"
+                            name="businessAddressCity"
+                            labelCol={{ style: { width: 150 } }}
+                            rules={[{ required: this.listTypes('businessAddressCity') == true ? true : false , message: ''}]}
+                            validateStatus = {validation_list.find((item,index) => { return item == 'businessAddressCity'}) !== undefined ? 'error' : null}
+                            help = {validation_list.find((item,index) => { return item == 'businessAddressCity'}) !== undefined ? '此项为必填项!' : null}
+                        >
+                            <Select size='default' placeholder="请选择市" defaultValue={Params.businessAddressCity} key={cityTxt} onChange={this.city_select.bind(this)} style={{ width: 200 }} disabled={cityOs}>
+                                {citylist.map((item, index) => (
+                                    <Option key={index} value={item.cityCode}>{item.cityName}</Option>
+                                ))}
+                            </Select>
+                        </Form.Item>
                     </div>
                     <div className='c-l'>
-                        <div className='titles_o'> 经营地址区 : </div>
-                        <Select size='default' placeholder="请选择区" defaultValue={Params.businessAddressArea} key={regionTxt} onChange={this.region_select.bind(this)} style={{ width: 200 }} disabled={regionOs}>
-                            {regionlist.map((item, index) => (
-                                <Option key={index} value={item.areaCode}>{item.areaName}</Option>
-                            ))}
-                        </Select>
+                        <Form.Item
+                            label="经营地址区"
+                            name="businessAddressArea"
+                            labelCol={{ style: { width: 150 } }}
+                            rules={[{ required: this.listTypes('businessAddressArea') == true ? true : false , message: ''}]}
+                            validateStatus = {validation_list.find((item,index) => { return item == 'businessAddressArea'}) !== undefined ? 'error' : null}
+                            help = {validation_list.find((item,index) => { return item == 'businessAddressArea'}) !== undefined ? '此项为必填项!' : null}
+                        >
+                            <Select size='default' placeholder="请选择区" defaultValue={Params.businessAddressArea} key={regionTxt} onChange={this.region_select.bind(this)} style={{ width: 200 }} disabled={regionOs}>
+                                {regionlist.map((item, index) => (
+                                    <Option key={index} value={item.areaCode}>{item.areaName}</Option>
+                                ))}
+                            </Select>
+                        </Form.Item>
+                        {/* <div className='titles_o'> 经营地址区{this.listTypes('businessAddressArea') == true && <i className='label_x'>*</i>} : </div> */}
+                        
                     </div>
-                    <div className='c-x'>
-                        <div className='titles_txt'> 经营地址<i className='label_x'>*</i>  : </div>
-                        <div className='TextAreas'>
-                            <TextArea id='mywb' style={{ resize: 'none' }} defaultValue={Params.businessAddress} rows={6} />
-                        </div>
+                    <div className='c-x' style={{marginBottom : '30px'}}>
+                        {/* <div className='titles_txt'> 经营地址{this.listTypes('businessAddress') == true && <i className='label_x'>*</i>}  : </div> */}
+                        <Form.Item
+                            label="经营地址区"
+                            name="businessAddress"
+                            labelCol={{ style: { width: 150 } }}
+                            rules={[{ required: this.listTypes('businessAddress') == true ? true : false , message: ''}]}
+                            validateStatus = {validation_list.find((item,index) => { return item == 'businessAddress'}) !== undefined ? 'error' : null}
+                            help = {validation_list.find((item,index) => { return item == 'businessAddress'}) !== undefined ? '此项为必填项!' : null}
+                        >
+                             <div className='TextAreas' >
+                                <TextArea id='mywb' style={{ resize: 'none' }} defaultValue={Params.businessAddress} rows={6} />
+                            </div>
+                        </Form.Item>
+                       
                     </div>
                     <div className='c-l'>
-                        <div className='titles_o'> 业务类型 : </div>
-                        <Select size='default' placeholder="请选择业务类型" defaultValue={Params.businessClassification} onChange={this.handleChange.bind(this)} style={{ width: 400 }}>
-                            {selectData.fication.map((item, index) => (
-                                <Option key={index} value={item.value}>{item.txt}</Option>
-                            ))}
-                        </Select>
+                        {/* <div className='titles_o'> 业务类型{this.listTypes('businessClassification') == true && <i className='label_x'>*</i>} : </div> */}
+                        <Form.Item
+                            label="业务类型"
+                            name="businessClassification"
+                            labelCol={{ style: { width: 150 } }}
+                            rules={[{ required: this.listTypes('businessClassification') == true ? true : false , message: ''}]}
+                            validateStatus = {validation_list.find((item,index) => { return item == 'businessClassification'}) !== undefined ? 'error' : null}
+                            help = {validation_list.find((item,index) => { return item == 'businessClassification'}) !== undefined ? '此项为必填项!' : null}
+                        >
+                             <Select size='default' placeholder="请选择业务类型" defaultValue={Params.businessClassification} onChange={this.handleChange.bind(this)} style={{ width: 400 }}>
+                                {selectData.fication.map((item, index) => (
+                                    <Option key={index} value={item.value}>{item.txt}</Option>
+                                ))}
+                            </Select>
+                        </Form.Item>
+                       
                     </div>
                     <div className='c-l'>
-                        <div className='titles_o'> 开户意愿核实类型 : </div>
-                        <Radio.Group name="radiogroup" defaultValue={Params.desireAuth == undefined ? 'DESIRE_VIDEO' : Params.desireAuth} onChange={this.onChangeRadio.bind(this)}>
-                            <Radio value='DESIRE_VIDEO'>视频验证</Radio>
-                            <Radio value='DESIRE_MOBILEINFO'>手机短信验证</Radio>
-                            <Radio value='DESIRE_NONEED'>其他验证方式</Radio>
-                        </Radio.Group>
+                        <Form.Item
+                            label="开户意愿核实类型"
+                            name="desireAuth"
+                            labelCol={{ style: { width: 150 } }}
+                            rules={[{ required: this.listTypes('desireAuth') == true ? true : false }]}
+                            // validateStatus="error"
+                            // help="此项为必填项!"
+                        >
+                             <Radio.Group name="radiogroup" defaultValue={Params.desireAuth == undefined ? 'DESIRE_VIDEO' : Params.desireAuth} onChange={this.onChangeRadio.bind(this)}>
+                                <Radio value='DESIRE_VIDEO'>视频验证</Radio>
+                                <Radio value='DESIRE_MOBILEINFO'>手机短信验证</Radio>
+                                <Radio value='DESIRE_NONEED'>其他验证方式</Radio>
+                            </Radio.Group>
+                        </Form.Item>
+                        {/* <div className='titles_o'> 开户意愿核实类型{this.listTypes('desireAuth') == true && <i className='label_x'>*</i>} : </div> */}
+                        
                     </div>
                     {
                         desireAuth == 'DESIRE_MOBILEINFO' &&
                         <div>
                             <div className='c-l'>
-                                <div className='titles_o'> 法人姓名<i className='label_x'>*</i> : </div>
-                                <div className='inputs'><Input id='myname1' placeholder="请输入法人姓名" defaultValue={Params.contactName} /></div>
-                            </div>
-                            <div className='c-l'>
-                                <div className='titles_o'> 法人身份证号<i className='label_x'>*</i> : </div>
-                                <div className='inputs'><Input id='myname2' placeholder="请输入法人身份证号" defaultValue={Params.legalPersonIdNo} /></div>
-                            </div>
-                            <div className='c-l'>
-                                <div className='titles_o'> 法人手机号<i className='label_x'>*</i> : </div>
-                                <div className='inputs'><Input id='myname3' placeholder="请输入法人手机号" defaultValue={Params.legalPersonPhoneNo} /></div>
+                                <Form.Item
+                                    label="法人手机号"
+                                    name="legalPersonPhoneNo"
+                                    labelCol={{ style: { width: 150 } }}
+                                    rules={[{ required: this.listTypes('legalPersonPhoneNo') == true ? true : false , message: ''}]}
+                                    validateStatus = {validation_list.find((item,index) => { return item == 'legalPersonPhoneNo'}) !== undefined ? 'error' : null}
+                                    help = {validation_list.find((item,index) => { return item == 'legalPersonPhoneNo'}) !== undefined ? '此项为必填项!' : null}
+                                >
+                                    <Input id='myname3' style={{ width: 200 }} placeholder="请输入法人手机号" defaultValue={Params.legalPersonPhoneNo} />
+                                </Form.Item>
+                                {/* <div className='titles_o'> 法人手机号<i className='label_x'>*</i> : </div>
+                                <div className='inputs'><Input id='myname3' placeholder="请输入法人手机号" defaultValue={Params.legalPersonPhoneNo} /></div> */}
                             </div>
                         </div>
                     }
                 </div>
+                </Form>
             </div>
         )
     }

+ 6 - 6
src/component/center-o/centerO.scss

@@ -12,13 +12,13 @@
             display: inline-block;
         }
         .inputs{
-            width: 200px;
-            display: inline-block;
+            width: 360px !important;
+            // display: inline-block;
         }
         .c-l{
             width: 100%;
-            height: 50px;
-            line-height: 50px;
+            height: 65px !important;
+            // line-height: 65px !important;
         }
     }
     .center_right{
@@ -42,8 +42,8 @@
             float: left;
         }
         .inputs{
-            width: 200px;
-            display: inline-block;
+            // width: 200px;
+            // display: inline-block;
         }
         .TextAreas{
             width: 400px;

+ 2 - 1
src/component/center-tab/center-tab.jsx

@@ -134,7 +134,8 @@ export default class centerTab extends React.Component {
         })
         let url = '/payment/merchant.query.groovy'
         let params = {
-            appName: record.appName,//当前需要查询用户的 appName
+            merchantNo: JSON.parse(localStorage.getItem('userData')).merchantNo,//入网的appname、社群name、商户号等(香香或者嘉旺提供)
+            merchantType: JSON.parse(localStorage.getItem('userData')).merchantType, //入网来源,2:app或社群 3:商户或店铺(香香或者嘉旺提供)
             action: 'queryInfo' // 查询当前商户信息
         }
         $Axios('get', url, params, (res) => {

+ 340 - 155
src/component/center-w/centerW.jsx

@@ -1,5 +1,6 @@
+//eslint-disable
 import React from 'react';
-import { Spin, Select, Input, Upload, Button, Checkbox } from 'antd';
+import { Spin, Select, Input, Upload, Button, Checkbox, Form,Tooltip } from 'antd';
 import { UploadOutlined } from '@ant-design/icons';
 import axios from "axios";
 import select_data from '../../common/ssq';
@@ -16,18 +17,18 @@ export default class centerW extends React.Component {
             headerProps: {
                 progress: {
                     strokeColor: {
-                      '0%': '#108ee9',
-                      '100%': '#87d068',
+                        '0%': '#108ee9',
+                        '100%': '#87d068',
                     },
                     strokeWidth: 3,
                     format: percent => `${parseFloat(percent.toFixed(2))}%`,
-                  }
+                }
             },
             imgType: null,
             Params: this.props.arr,
             tradingScenarios: [],
             datas: {},
-            signedType: '',
+            signedName: '',
             businessLicensePath: '',//营业执照照片路径
             openAccountPath: '',//开户许可证照片路径
             legalIdCardProsPath: '',//法人证件人像面路径
@@ -40,18 +41,40 @@ export default class centerW extends React.Component {
             legalPersonBankCardPath: '',//法人银行卡图影印件路径
             desireAuthOtherPath: '',//确认入网意愿其他验证方式路径
             otherCerPath: '',//其他资质文件路径
-            scLodings : null
+            scLodings: null,
+            offlist: select_data.offlist,
+            validation_list: [],
+            form_width: 200
         }
 
     }
 
     componentDidMount() {
         this.props.onRef(this);
-        let signedType = JSON.parse(localStorage.getItem('oData')).signedType;
-        localStorage.setItem('rightArray',JSON.stringify(select_data.rightArray))
+        let registerRole = JSON.parse(localStorage.getItem('oData')).registerRole;
+        localStorage.setItem('rightArray', JSON.stringify(select_data.rightArray))
         this.setState({
-            signedType: signedType,
+            registerRole: registerRole,
         });
+
+        if (registerRole == 'INDIVIDUAL_BUSINESS') { //个体工商户
+            this.setState({
+                offlist: select_data.INDIVIDUAL_BUSINESS
+            })
+        }
+
+        if (registerRole == 'NATURAL_PERSON') {  //自然人
+            this.setState({
+                offlist: select_data.NATURAL_PERSON
+            })
+        }
+
+        if (registerRole == 'offlist') { //默认
+            this.setState({
+                offlist: select_data.offlist
+            })
+        }
+        console.log(registerRole)
     }
 
     toParent = (data) => {
@@ -61,7 +84,7 @@ export default class centerW extends React.Component {
     InputWdata(e) {
         let Params = {
             legalPersonName: document.getElementById("legalPersonName").value,//法人姓名
-            profession: this.state.Params.profession, //法人职业
+            profession: this.state.Params.profession == undefined ? '' : this.state.Params.profession,
             legalPersonIdType: this.state.Params.legalPersonIdType == undefined ? '' : this.state.Params.legalPersonIdType,//法人证件类型
             legalPersonIdNo: document.getElementById("legalPersonIdNo").value, //证件号码
             idEffectiveDateStart: '',//法人证件有效期开始日期
@@ -128,6 +151,7 @@ export default class centerW extends React.Component {
     }
 
     CheckChange(e) {
+        console.log(e)
         this.state.Params.tradingScenarios = e.toString()
     }
 
@@ -137,7 +161,7 @@ export default class centerW extends React.Component {
     }
     UploadImgstate() {  //修改上传图片状态
         let fileList = this.state.fileList;
-        
+
         let imgType = this.state.imgType; //当前上传图片点击的Index
         fileList[0].status = 'done'  //上传成功之后的状态 自动修改
         fileList[0].response = fileList[0].name  //图片上传成功之后展示的TIP
@@ -153,7 +177,7 @@ export default class centerW extends React.Component {
         let file = e.file;
         let that_ = this;
         that_.setState({
-            scLodings : true
+            scLodings: true
         })
         const formData = new FormData();
         formData.append('file', file)
@@ -166,14 +190,14 @@ export default class centerW extends React.Component {
             let status = res.data.msg;
             if (status == '获取成功') {
                 let dataUrl = res.data.filesResult[0].fileName;
-                that_.wjbc(imgType,dataUrl)
+                that_.wjbc(imgType, dataUrl)
             }
         }).catch((error) => { //上传失败后设置回之前的上前数量与状态
             console.log(error);
         })
     }
 
-    wjbc(e,dataUrl) {
+    wjbc(e, dataUrl) {
         let that_ = this;
         let rightArray = this.state.rightArray;
         switch (e) {
@@ -182,8 +206,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.businessLicensePath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    businessLicensePath : dataUrl,
-                    scLodings : false
+                    businessLicensePath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 1:
@@ -191,9 +215,9 @@ export default class centerW extends React.Component {
                 that_.state.Params.openAccountPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    openAccountPath : dataUrl,
-                    scLodings : false
-                    
+                    openAccountPath: dataUrl,
+                    scLodings: false
+
                 })
                 break;
             case 2:
@@ -201,8 +225,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.legalIdCardProsPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    legalIdCardProsPath : dataUrl,
-                    scLodings : false
+                    legalIdCardProsPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 3:
@@ -210,8 +234,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.legalIdCardConsPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    legalIdCardConsPath : dataUrl,
-                    scLodings : false
+                    legalIdCardConsPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 4:
@@ -219,8 +243,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.desireAuthPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    desireAuthPath : dataUrl,
-                    scLodings : false
+                    desireAuthPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 5:
@@ -228,8 +252,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.holdingIdCardPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    holdingIdCardPath : dataUrl,
-                    scLodings : false
+                    holdingIdCardPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 6:
@@ -237,8 +261,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.webSitePath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    webSitePath : dataUrl,
-                    scLodings : false
+                    webSitePath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 7:
@@ -246,8 +270,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.wechatAppletPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    wechatAppletPath : dataUrl,
-                    scLodings : false
+                    wechatAppletPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 8:
@@ -255,8 +279,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.appPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    appPath : dataUrl,
-                    scLodings : false
+                    appPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 9:
@@ -264,8 +288,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.legalPersonBankCardPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    legalPersonBankCardPath : dataUrl,
-                    scLodings : false
+                    legalPersonBankCardPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 10:
@@ -273,8 +297,8 @@ export default class centerW extends React.Component {
                 that_.state.Params.desireAuthOtherPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    desireAuthOtherPath : dataUrl,
-                    scLodings : false
+                    desireAuthOtherPath: dataUrl,
+                    scLodings: false
                 })
                 break;
             case 11:
@@ -282,140 +306,301 @@ export default class centerW extends React.Component {
                 that_.state.Params.otherCerPath = dataUrl;
                 that_.setState({
                     rightArray: rightArray,
-                    otherCerPath : dataUrl,
-                    scLodings : false
+                    otherCerPath: dataUrl,
+                    scLodings: false
                 })
                 break;
         }
     }
 
 
+    listTypes(e) {
+        let data = this.state.offlist;
+        let type = data.find((item, index) => { return item.value == e });
+        if (type !== undefined) {
+            type = true
+        } else {
+            type = false
+        }
+        return type
+    }
 
+    verification(e) { //暴露给父组件的方法,验证当前页面必填项
+        this.setState({
+            validation_list : e,
+            rightArray : this.state.rightArray
+        })
+    }
 
-
-
-
-    // defaultValue={Params.signedName}
     render() {
-        const { selectData, Params, signedType, rightArray,headerProps,scLodings,imgType } = this.state;
+        const { selectData, Params, signedType, rightArray, headerProps, scLodings, imgType, validation_list, form_width } = this.state;
         const { Option } = Select;
-
+        const layout = {
+            labelCol: { span: 4 },
+        };
+        const onFinish = (values) => {
+            console.log('xxx: ', values);
+        };
+        console.log(Params)
+        console.log(validation_list)
+        let s = validation_list.find((item, index) => { return item === 'businessLicensePath'}) ;
+        console.log(s)
+        // Params.profession = 8
         return (
             <div className={styleData.center_up}>
-                <div className={styleData.center_left}>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 法人姓名<i className='label_x'>*</i> : </div>
-                        <div className={styleData.inputs}><Input id='legalPersonName' placeholder="请输入法人姓名" defaultValue={Params.legalPersonName} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 法人职业 : </div>
-                        <Select size='default' placeholder="请选择法人职业" defaultValue={Params.profession} onChange={this.selectChange_1.bind(this)} style={{ width: 200 }}>
-                            {selectData.contractW.map((item, index) => (
-                                <Option key={index} value={item.value}>{item.txt}</Option>
-                            ))}
-                        </Select>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 法人证件类型<i className='label_x'>*</i>: </div>
-                        <Select size='default' placeholder="请选择证件类型" defaultValue={Params.legalPersonIdType} onChange={this.selectChange_2.bind(this)} style={{ width: 200 }}>
-                            {selectData.certificateW.map((item, index) => (
-                                <Option key={index} value={item.value}>{item.txt}</Option>
-                            ))}
-                        </Select>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 法人证件号码<i className='label_x'>*</i>: </div>
-                        <div className={styleData.inputs}><Input id='legalPersonIdNo' placeholder="请输入证件号码" defaultValue={Params.legalPersonIdNo} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 企业证件类型{signedType == 'BY_SPLIT_BILL' && <i className='label_x'>*</i>} : </div>
-                        <Select size='default' placeholder="请选择证件类型" defaultValue={Params.cerNoType} onChange={this.selectChange_3.bind(this)} style={{ width: 200 }}>
-                            {selectData.cerNoTypeW.map((item, index) => (
-                                <Option key={index} value={item.value}>{item.txt}</Option>
-                            ))}
-                        </Select>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 资质证书编号{signedType == 'BY_SPLIT_BILL' && <i className='label_x'>*</i>} : </div>
-                        <div className={styleData.inputs}><Input id='cerNo' placeholder="请输入证书编号" defaultValue={Params.cerNo} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 营业面积{signedType == 'BY_SPLIT_BILL' && <i className='label_x'>*</i>} : </div>
-                        <div className={styleData.inputs}>
-                            <Select size='default' placeholder="请选择营业面积" defaultValue={Params.sellingArea} onChange={this.selectChange_4.bind(this)} style={{ width: 200 }}>
-                                <Option key={1} value='A'>500平米以上</Option>
-                                <Option key={2} value='B'>200-500平米(含)</Option>
-                                <Option key={3} value='C'>200平米以下</Option>
-                            </Select>
+                <Form
+                    {...layout}
+                    onFinish={onFinish}
+                    initialValues={{  //数据回填
+                        'legalPersonName' : Params.legalPersonName == undefined ? '' : Params.legalPersonName, 
+                        'tradingScenarios':  Params.tradingScenarios == undefined ? ['WEBSITE'] : Params.tradingScenarios, 
+                        'profession' : Params.profession == undefined ? null : Params.profession, 
+                        'legalPersonIdType' : Params.legalPersonIdType == undefined ? null : Params.legalPersonIdType, 
+ 
+                    }}
+                >
+                    <div className={styleData.center_left}>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="法人姓名"
+                                name="legalPersonName"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('legalPersonName') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'legalPersonName' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'legalPersonName' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='legalPersonName' style={{ width: form_width }} placeholder="请输入法人姓名" />
+                            </Form.Item>
                         </div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 公司员工规模{signedType == 'BY_SPLIT_BILL' && <i className='label_x'>*</i>} : </div>
-                        <div className={styleData.inputs}>
-                            <Select size='default' placeholder="请选择营业面积" defaultValue={Params.staffSize} onChange={this.selectChange_5.bind(this)} style={{ width: 200 }}>
-                                <Option key={4} value='A'>100人以上</Option>
-                                <Option key={5} value='B'>50-100人(含)</Option>
-                                <Option key={6} value='C'>50人以下</Option>
-                            </Select>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="法人职业"
+                                name="profession"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('profession') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'profession' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'profession' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Select size='default' placeholder="请选择法人职业"  onChange={this.selectChange_1.bind(this)} style={{ width: 200 }}>
+                                    {selectData.contractW.map((item, index) => (
+                                        <Option key={index} value={item.value}>{item.txt}</Option>
+                                    ))}
+                                </Select>
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="法人证件类型"
+                                name="legalPersonIdType"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('legalPersonIdType') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'legalPersonIdType' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'legalPersonIdType' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Select size='default' placeholder="请选择证件类型"  onChange={this.selectChange_2.bind(this)} style={{ width: 200 }}>
+                                    {selectData.certificateW.map((item, index) => (
+                                        <Option key={index} value={item.value}>{item.txt}</Option>
+                                    ))}
+                                </Select>
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="法人证件号码"
+                                name="legalPersonIdNo"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('legalPersonIdNo') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'legalPersonIdNo' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'legalPersonIdNo' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='legalPersonIdNo' style={{ width: form_width }} placeholder="请输入证件号码" defaultValue={Params.legalPersonIdNo} />
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="企业证件类型"
+                                name="cerNoType"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('cerNoType') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'cerNoType' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'cerNoType' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Select size='default' placeholder="请选择证件类型" defaultValue={Params.cerNoType} onChange={this.selectChange_3.bind(this)} style={{ width: 200 }}>
+                                    {selectData.cerNoTypeW.map((item, index) => (
+                                        <Option key={index} value={item.value}>{item.txt}</Option>
+                                    ))}
+                                </Select>
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="资质证书编号"
+                                name="cerNo"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('cerNo') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'cerNo' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'cerNo' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='cerNo' style={{ width: form_width }} placeholder="请输入证书编号" defaultValue={Params.cerNo} />
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="营业面积"
+                                name="sellingArea"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('sellingArea') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'sellingArea' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'sellingArea' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Select size='default' placeholder="请选择营业面积" defaultValue={Params.sellingArea} onChange={this.selectChange_4.bind(this)} style={{ width: 200 }}>
+                                    <Option key={1} value='A'>500平米以上</Option>
+                                    <Option key={2} value='B'>200-500平米(含)</Option>
+                                    <Option key={3} value='C'>200平米以下</Option>
+                                </Select>
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="公司员工规模"
+                                name="staffSize"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('staffSize') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'staffSize' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'staffSize' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Select size='default' placeholder="请选择员工规模" defaultValue={Params.staffSize} onChange={this.selectChange_5.bind(this)} style={{ width: 200 }}>
+                                    <Option key={4} value='A'>100人以上</Option>
+                                    <Option key={5} value='B'>50-100人(含)</Option>
+                                    <Option key={6} value='C'>50人以下</Option>
+                                </Select>
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="交易场景说明"
+                                name="tradingScenarios"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('tradingScenarios') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'tradingScenarios' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'tradingScenarios' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Checkbox.Group options={selectData.options}   onChange={this.CheckChange.bind(this)} />
+                            </Form.Item>
+
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="网站网址"
+                                name="webSite"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('webSite') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'webSite' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'webSite' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='webSite' style={{ width: form_width }} placeholder="请输入网站网址" defaultValue={Params.webSite} />
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="网站名称"
+                                name="webSiteName"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('webSiteName') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'webSiteName' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'webSiteName' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='webSiteName' style={{ width: form_width }} placeholder="请输入网站名称" defaultValue={Params.webSiteName} />
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="ICP备案号"
+                                name="icp"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('icp') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'icp' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'icp' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='icp' style={{ width: form_width }} placeholder="请输入ICP备案号" defaultValue={Params.icp} />
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="APP名称"
+                                name="appName"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('appName') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'appName' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'appName' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='appName' style={{ width: form_width }} placeholder="请输入APP名称" defaultValue={Params.appName} />
+                            </Form.Item>
+                        </div>
+                        <div className={styleData.cl}>
+                            <Form.Item
+                                label="公众号/小程序/生活号"
+                                name="wechatAppletName"
+                                labelCol={{ style: { width: 150 } }}
+                                rules={[{ required: this.listTypes('wechatAppletName') == true ? true : false, message: '' }]}
+                                validateStatus={validation_list.find((item, index) => { return item == 'wechatAppletName' }) !== undefined ? 'error' : null}
+                                help={validation_list.find((item, index) => { return item == 'wechatAppletName' }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <Input id='wechatAppletName' style={{ width: form_width }} placeholder="请输入名称" defaultValue={Params.wechatAppletName} />
+                            </Form.Item>
                         </div>
                     </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 交易场景说明<i className='label_x'>*</i> : </div>
-                        <Checkbox.Group options={selectData.options} defaultValue={['WEBSITE']} onChange={this.CheckChange.bind(this)} />
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 网站网址 : </div>
-                        <div className={styleData.inputs}><Input id='webSite' placeholder="请输入网站网址" defaultValue={Params.webSite} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 网站名称 : </div>
-                        <div className={styleData.inputs}><Input id='webSiteName' placeholder="请输入网站名称" defaultValue={Params.webSiteName} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> ICP备案号 : </div>
-                        <div className={styleData.inputs}><Input id='icp' placeholder="请输入ICP备案号" defaultValue={Params.icp} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> APP名称 : </div>
-                        <div className={styleData.inputs}><Input id='appName' placeholder="请输入APP名称" defaultValue={Params.appName} /></div>
-                    </div>
-                    <div className={styleData.cl}>
-                        <div className={styleData.titles}> 公众号/小程序/生活号 : </div>
-                        <div className={styleData.inputs}><Input id='wechatAppletName' placeholder="请输入名称" defaultValue={Params.wechatAppletName} /></div>
-                    </div>
-                </div>
-                <div className={styleData.center_right}>
-                    {rightArray.map((item, index) => (
-                        <div className={styleData.cl} key={index}>
-                            <div className={styleData.titles}> {item.txt}{(item.value == 1 || item.value == 2 || item.value == 3 || item.value == 4 || item.value == 6 || item.value == 10) && <i className='label_x'>*</i>} : </div>
-                            <div className={styleData.Upload_wrap}>
-                                <Upload
-                                     {...headerProps}
-                                    name="files"
-                                    className={"Upload" + index}
-                                    maxCount={1}
-                                    showUploadList={false}
-                                    accept={item.type}
-                                    customRequest={this.handleChange.bind(this)}
-                                    onChange={this.onChangeUpload.bind(this)}
-                                    
-                                >
-                                    <Button icon={<UploadOutlined />} onClick={() => this.btnClick(index)}>选择文件</Button>
-                                </Upload>
-                                <div className={styleData.title_tips} style={{
-                                    color : item.txts == '上传成功' ? 'green' : 'red' 
-                                }} >
-                                    {scLodings == true && imgType == index && <Spin size="small" tip="上传中..." style={{
-                                        fontSize : '12px'
-                                    }}></Spin>}
-                                    {scLodings == true && imgType !== index && item.txts}
-                                    {scLodings == null  && imgType !== index && item.txts}
-                                    {scLodings == false && item.txts}
+                    <div className={styleData.center_right}>
+                        {rightArray.map((item, index) => (
+                            <Form.Item
+                                key={index}
+                                label={item.txt}
+                                name={item.value}
+                                labelCol={{ style: { width: 320 } }}
+                                rules={[{ required: this.listTypes(item.value) == true ? true : false, message: '' }]}
+                                // validateStatus={validation_list.find((item, index) => { return item == item.value }) !== undefined ? 'error' : null}
+                                // help={validation_list.find((item, index) => { return item == item.value }) !== undefined ? '此项为必填项!' : null}
+                            >
+                                <div className={styleData.cl} key={index}>
+                                    <Upload
+                                        {...headerProps}
+                                        name={item.value}
+                                        className={"Upload" + index}
+                                        maxCount={1}
+                                        showUploadList={false}
+                                        accept={item.type}
+                                        customRequest={this.handleChange.bind(this)}
+                                        onChange={this.onChangeUpload.bind(this)}
+
+                                    >
+                                        {
+                                            validation_list.find((items, index) => { return items == `${item.value}` }) !== undefined ? 
+                                            <Tooltip title="请上传必须文件!" color="red" key={index} defaultVisible={true} placement="rightTop">
+                                                <Button  icon={<UploadOutlined />} onClick={() => this.btnClick(index)}>选择文件</Button>
+                                            </Tooltip>
+                                            : <Button  icon={<UploadOutlined />} onClick={() => this.btnClick(index)} >选择文件</Button>
+                                        }
+                                        
+                                        
+                                    </Upload>
+                                    <div className={styleData.title_tips} style={{
+                                        color: item.txts == '上传成功' ? 'green' : 'red',
+                                        display : 'inline-block',
+                                        marginLeft : '15px'
+                                    }} >
+                                        {scLodings == true && imgType == index && <Spin size="small" tip="上传中..." style={{
+                                            fontSize: '12px'
+                                        }}></Spin>}
+                                        {scLodings == true && imgType !== index && item.txts}
+                                        {scLodings == null && imgType !== index && item.txts}
+                                        {scLodings == false && item.txts}
+                                    </div>
+
                                 </div>
-                            </div>
-                        </div>
-                    ))}
-                </div>
+                            </Form.Item>
+                        ))}
+                    </div>
+                </Form>
             </div>
         )
     }

+ 0 - 206
src/component/homePage/homePage.jsx

@@ -1,206 +0,0 @@
-import React from 'react';
-import { Input, Upload, Button,message } from 'antd';
-import axios from "axios";
-import { UploadOutlined,LoadingOutlined, DownOutlined,UpOutlined  } from '@ant-design/icons';
-export default class homePage extends React.Component {
-    constructor(props) {
-        super(props)
-        this.state = {
-            fileList : [],
-            imgType : '',
-            imageUrl : '',
-            loading : '',
-            url : '',
-            select_o : false,
-            select_t : false,
-            RequestData : '',
-            ResponseData : ''
-        }
-        
-    }
-
-	componentDidMount() {
-        let box = document.getElementById("imgBox"); 
-        if(box){ //此处在加一层判断,更加严密,如果box存在的情况下获取
-            this.setState({
-                height : box.offsetHeight + 'px'
-            })
-        }
-    }
-
-    getBase64(img, callback) { //解码图片信息及URL等
-        const reader = new FileReader();
-        reader.addEventListener('load', () => callback(reader.result));
-        reader.readAsDataURL(img);
-    }
-
-    onChangeUpload(info){ //获取图片信息
-        let taht_ = this;
-        let fileList = [...info.fileList];
-        this.state.fileList = fileList;
-        if (info.file.status === 'uploading') { //图片上传状态改变
-            this.setState({ loading: true });
-        }
-        this.getBase64(info.file.originFileObj, imageUrl => //图片上传状态改变 并获取URL储存
-            taht_.setState({
-                imageUrl,
-                loading: false,
-            }),
-        );
-    }
-
-    btnClick(e){  //区分上传图片类型
-        this.setState({	
-            imgType : e
-        })
-    }
-
-    btnClick_jc(){ //检测图片获取URL
-        let url = document.getElementById("urls").value;
-        this.setState({
-            url : url
-        });
-        message.info(`已获取${url}`);
-    }
-
-    handleChange(e){
-        let file = e.file;
-        let that_ = this; //axios 内部指针不同 设置setState时候用that_
-        const formData = new FormData();   //提交图片的格式
-        formData.append('file', file)
-        formData.append('merchantSerialNumber', 'MCT_202106262257460929210')  //可以自定义参数 例子
-        let config = {
-            method: 'post',  //请求方式
-            headers: { 'Content-Type': 'multipart/form-data' } //请求头格式自定义
-        }
-        axios.post('http://xxxxxxxx',formData, config).then((res) => {
-                // 上传成功后的回调
-        }).catch((error) => { 
-                //上传失败后回调
-            console.log(error);
-        })
-        
-    }
-
-    select_o(){  //右侧第一个下拉菜单展开与收回
-        let select_o = this.state.select_o;
-        let data = 'RequestData数据组' //替换为API接口返回的数据 
-        this.setState({
-            select_o : select_o == false ? true : false,
-            RequestData : data
-        });
-    }
-
-    select_t(){ //右侧第二个下拉菜单展开与收回
-        let select_t = this.state.select_t;
-        let data = 'Response数据组' //替换为API接口返回的数据 
-        this.setState({
-            select_t : select_t == false ? true : false,
-            ResponseData : data
-        });
-    }
-
-    render() {
-        const { loading,imageUrl,height,select_o,select_t,RequestData,ResponseData } = this.state;
-        return(
-            <div className='rootDom'>
-               <div style={{
-                   width : '80%',
-                   height : '100%',
-                   float : 'left',
-                }}>
-                    <div id='imgBox' style={{width:'100%',height:'90%',background:'rgba(0,0,0,0.5)'}}>
-                        {
-                            imageUrl == '' && <div className="icons-list" style={{width : '100%',height : '100%',background : 'rgba(0,0,0,0.5)',textAlign:'center',lineHeight:height,fontSize:'50px',color:'#ccc'}}>
-                                您还没有上传图片~
-                            </div>
-                        }
-                        {
-                            loading == true && <div className="icons-list" style={{width : '100%',height : '100%',background : '#fff',textAlign:'center',lineHeight:height}}>
-                            <LoadingOutlined style={{
-                                fontSize :'50px',
-                                color : 'rgb(24, 144, 255)',
-                            }} />
-                            </div>
-                        }
-                        {
-                            imageUrl !== '' && <img alt="example" style={{ width: '100%',height:'100%' }} src={imageUrl} />
-                        }
-                    </div>
-                    <div style={{width:'100%',height:'10%',background:'rgba(0,0,0,0.9)',padding : '2% 6%'}}>
-                        <div style={{width : '50%',display:'inline-block'}}>
-                            <Input id='urls' placeholder="请输入网络图片URL" />
-                        </div>
-                        <div style={{display:'inline-block'}}>
-                            <Button type="primary" style={{width:'120px'}} onClick={() =>this.btnClick_jc()}>检测</Button>
-                        </div>
-                        <div style={{width : '10%',display:'inline-block',marginLeft:'30px',marginRight : '30px',textAlign:'center',fontSize:'20px',color:'#fff'}}>
-                            或
-                        </div>
-                        <div style={{display:'inline-block'}}>
-                            <Upload 
-                                //  {...headerProps}
-                                name="files"
-                                className="Upload"
-                                maxCount={1}   //限制图片上传个数
-                                showUploadList={false}
-                                accept = '.jpg, .jpeg, .png, .pdf'   //限制图片上传格式
-                                customRequest={this.handleChange.bind(this)}  //自定义上传请求API
-                                onChange={this.onChangeUpload.bind(this)}
-                            >
-                                <Button icon={<UploadOutlined />} type="primary" style={{width:'120px'}} onClick={() =>this.btnClick()}>本地上传</Button>
-                            </Upload>
-                        </div>
-                       
-                    </div>
-                   
-                </div>
-                
-
-               <div style={{
-                   width : '20%',
-                   height : '100%',
-                   overflow:'auto',
-                   float : 'left',
-                }}>
-                    <div 
-                        style={{width:'100%',height : '60px',textAlign:'center',lineHeight:'60px',borderBottom:'1px solid #D3D3D3',backgroundColor: '#ccc',fontSize:'22px'}}
-                        onClick={this.select_o.bind(this)}
-                    >
-                        Request 
-                        {select_o == true && <DownOutlined style={{float:'right',marginRight : '20px' ,lineHeight:'60px'}} />}
-                        {select_o == false &&<UpOutlined  style={{float:'right',marginRight : '20px' ,lineHeight:'60px'}} />}
-                    </div>
-                    {
-                        select_o == true &&  <div style={{
-                            width : '100%',
-                            height : '500px',
-                            backgroundColor: '#D3D3D3',
-                            padding : '2%'
-                        }}>
-                            {RequestData}
-                        </div>
-                    }
-                    <div 
-                        style={{width:'100%',height : '60px',textAlign:'center',lineHeight:'60px',borderBottom:'1px solid #D3D3D3',backgroundColor: '#ccc',fontSize:'22px'}}
-                        onClick={this.select_t.bind(this)}
-                    >
-                        Response 
-                        {select_t == true && <DownOutlined style={{float:'right',marginRight : '20px' ,lineHeight:'60px'}} />}
-                        {select_t == false &&<UpOutlined  style={{float:'right',marginRight : '20px' ,lineHeight:'60px'}} />}
-                    </div>
-                    {
-                        select_t == true &&  <div style={{
-                            width : '100%',
-                            height : '500px',
-                            backgroundColor: '#D3D3D3',
-                            padding : '2%'
-                        }}>
-                            {ResponseData}
-                        </div>
-                    }
-                </div>
-            </div>
-        )
-    }
-}

+ 0 - 0
src/component/homePage/homePage.scss


+ 4 - 1
src/component/moduleCss/style.module.scss

@@ -59,11 +59,13 @@
             width: 100%;
             height: 50px;
             line-height: 50px;
+            margin-bottom: 2px;
         }
     }
     .center_right{
         width: 60%;
         height: 100%;
+        // padding-left: 80px;
         float: left;
         .titles{
             width: 240px;
@@ -103,11 +105,12 @@
             width: 500px;
             height: 50px;
             display: inline-block;
-            position: relative;
+            
             .Upload{
                 width: 100%;
                 height: 100%;
                 overflow: hidden;
+                position: relative;
             }
             .title_tips{
                 position: absolute;