From e843aabbda5e8761b6a8af0fe85119bdcf5b3fe8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 25 十二月 2020 15:09:06 +0800 Subject: [PATCH] bms 登录 --- src/components/tabview/index.jsx | 2 src/index.js | 15 +++ src/views/login/loginform.jsx | 25 ++---- src/components/header/index.jsx | 5 public/options.json | 6 src/setupProxy.js | 14 +++ src/store/options.js | 2 src/api/index.js | 18 ++++ src/views/login/index.scss | 30 +++++-- config/webpack.config.js | 4 src/tabviews/zshare/fileupload/index.jsx | 2 src/utils/utils.js | 2 src/views/login/index.jsx | 85 ++++++++++++++------ 13 files changed, 142 insertions(+), 68 deletions(-) diff --git a/config/webpack.config.js b/config/webpack.config.js index 6591fda..54b9961 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -1,4 +1,4 @@ -'use strict'; +// 'use strict'; const fs = require('fs'); const isWsl = require('is-wsl'); @@ -25,7 +25,7 @@ const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin'); const ForkTsCheckerWebpackPlugin = require('react-dev-utils/ForkTsCheckerWebpackPlugin'); const typescriptFormatter = require('react-dev-utils/typescriptFormatter'); -const eslint = require('eslint'); +// const eslint = require('eslint'); const postcssNormalize = require('postcss-normalize'); diff --git a/public/options.json b/public/options.json index 5b90290..1b4c2d5 100644 --- a/public/options.json +++ b/public/options.json @@ -1,7 +1,7 @@ { - "appId": "201912040924165801464FF1788654BC5AC73", - "appkey": "20191106103859640976D6E924E464D029CF0", - "mainSystemApi": "http://sso.mk9h.cn/cloud/webapi/dostars", + "appId": "20201221213901540C6BC419CE41E47FABA62", + "appkey": "2020122121373692319E639E61B0E46A6BC2C", + "mainSystemApi": "http://cloud.positecgroup.com:8080/webapi/dostar", "systemType": "", "externalDatabase": "false", "lineColor": "", diff --git a/src/api/index.js b/src/api/index.js index b6024f5..2bf0ef3 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -117,6 +117,24 @@ } /** + * @description 浣跨敤dostar鎺ュ彛锛岃烦杩囬獙璇� + * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� + */ + loginAndRedirect (param) { + let url = '' + if (process.env.NODE_ENV === 'production') { + url = document.location.origin + '/Home/LoginAndRedirect' + } else { + url = '/Home/LoginAndRedirect' + } + + return axios({ + url: url, + data: param + }) + } + + /** * @description 浣跨敤dostar鎺ュ彛锛岃烦杞嚦dostars * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� */ diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index f9fdafa..3a06ea9 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -136,10 +136,11 @@ // 缂栬緫鐘舵�佷笅锛屼笉鍙垏鎹㈣彍鍗� return } + if (value.PageParam.OpenType === 'menu') { this.props.modifyMainMenu(value) - } else { - window.open('#/' + value.PageParam.linkUrl + '/') + } else if (value.PageParam.OpenType === 'outpage') { + window.open(value.PageParam.linkUrl) } } diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx index 9f990a9..3a7e507 100644 --- a/src/components/tabview/index.jsx +++ b/src/components/tabview/index.jsx @@ -33,7 +33,7 @@ if (process.env.NODE_ENV === 'production') { service = document.location.origin + '/' + window.GLOB.service + 'zh-CN/' } else { - service = window.GLOB.location + window.GLOB.service + 'zh-CN/' + service = window.GLOB.location + '/' + window.GLOB.service + 'zh-CN/' } class Header extends Component { diff --git a/src/index.js b/src/index.js index 9da847a..073c566 100644 --- a/src/index.js +++ b/src/index.js @@ -43,6 +43,17 @@ ) } +// bms +sessionStorage.setItem('UserID', localStorage.getItem('UserID') || '') +sessionStorage.setItem('LoginUID', localStorage.getItem('LoginUID') || '') +sessionStorage.setItem('User_Name', localStorage.getItem('User_Name') || '') +sessionStorage.setItem('Full_Name', localStorage.getItem('Full_Name') || '') +sessionStorage.setItem('avatar', localStorage.getItem('avatar') || '') +sessionStorage.setItem('dataM', localStorage.getItem('dataM') || '') +sessionStorage.setItem('localDataM', localStorage.getItem('localDataM') || '') +sessionStorage.setItem('debug', localStorage.getItem('debug') || '') +sessionStorage.setItem('role_id', localStorage.getItem('role_id') || '') +sessionStorage.setItem('localRole_id', localStorage.getItem('localRole_id') || '') if (sessionStorage.getItem('loginError')) { try { @@ -182,8 +193,8 @@ GLOB.service = _service ? _service + '/' : '' } else { GLOB.linkurl = '' - GLOB.location = 'http://qingqiumarket.cn/' - GLOB.service = 'mkwms/' + GLOB.location = 'http://bms-test.kresstools.cn' + GLOB.service = 'oc/' } if (GLOB.style && options.styles[GLOB.style]) { diff --git a/src/setupProxy.js b/src/setupProxy.js index 96428c2..f0f93f1 100644 --- a/src/setupProxy.js +++ b/src/setupProxy.js @@ -1,6 +1,6 @@ const proxy = require('http-proxy-middleware') -const host = 'http://qingqiumarket.cn' -const service = 'mkwms/' +const host = 'http://bms-test.kresstools.cn' +const service = 'oc/' module.exports = function(app) { app.use(proxy('/webapi', { @@ -39,4 +39,14 @@ '^/wxpay': '/' } })) + + app.use(proxy('/Home', { + target: `${host}/Home`, + secure: false, + changeOrigin: true, + pathRewrite: { + '^/Home': '/' + } + // cookieDomainRewrite: "http://localhost:3000" + })) } \ No newline at end of file diff --git a/src/store/options.js b/src/store/options.js index fc36c60..624bea1 100644 --- a/src/store/options.js +++ b/src/store/options.js @@ -3,7 +3,7 @@ sysType: 'bG9j$mkYWw=', // yun ( Y2xv$mkdWQ= ) 銆� dandian ( U1$mkNP ) 銆� yewu ( bG9j$mkYWw= ) caId: 'MjAyMDAxMTYxMjMzMzU1MDd$mkGQzkyMzI1Rjk4MDY0QUNGQjQ2Mg==', cakey: 'MjAyMDAxMTYxMjQwMDQ2NDM$mk2N0QzODE2MjExNUI0MTc4OTVDMQ==', - cdomain: 'aHR0cDovL2Nsb3V$mkkLm1rOWguY24=', // window.btoa('') 鍩熷悕 涓嶅甫 /; baoshide ( aHR0cDovL2Nsb3VkLnBv$mkc2l0ZWNncm91cC5jb206ODA4MA== ) + cdomain: 'aHR0cDovL2Nsb3VkLnBv$mkc2l0ZWNncm91cC5jb206ODA4MA==', // window.btoa('') 鍩熷悕 涓嶅甫 /; baoshide ( aHR0cDovL2Nsb3VkLnBv$mkc2l0ZWNncm91cC5jb206ODA4MA== ) styles: { white: 'mk-white' } diff --git a/src/tabviews/zshare/fileupload/index.jsx b/src/tabviews/zshare/fileupload/index.jsx index 0207a36..7578173 100644 --- a/src/tabviews/zshare/fileupload/index.jsx +++ b/src/tabviews/zshare/fileupload/index.jsx @@ -12,7 +12,7 @@ if (process.env.NODE_ENV === 'production') { service = document.location.origin + '/' + window.GLOB.service } else { - service = window.GLOB.location + window.GLOB.service + service = window.GLOB.location + '/' + window.GLOB.service } class FileUpload extends Component { diff --git a/src/utils/utils.js b/src/utils/utils.js index ca41324..bee9aae 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -698,7 +698,7 @@ if (process.env.NODE_ENV === 'production') { baseurl = document.location.origin + '/' + window.GLOB.service } else { - baseurl = window.GLOB.location + window.GLOB.service + baseurl = window.GLOB.location + '/' + window.GLOB.service } let realurl = url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 727768a..ab058ec 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -85,18 +85,18 @@ // 鐧诲綍鎻愪氦 let res = await Api.getusermsg(param.username, param.password) if (res.status) { - sessionStorage.setItem('UserID', res.UserID) - sessionStorage.setItem('LoginUID', res.LoginUID) - sessionStorage.setItem('User_Name', res.UserName) - sessionStorage.setItem('Full_Name', res.FullName) - sessionStorage.setItem('avatar', res.icon || '') - sessionStorage.setItem('dataM', res.dataM ? 'true' : '') - sessionStorage.setItem('localDataM', res.dataM ? 'true' : '') - sessionStorage.setItem('debug', res.debug || '') - sessionStorage.setItem('role_id', res.role_id || '') - sessionStorage.setItem('localRole_id', res.role_id || '') + localStorage.setItem('UserID', res.UserID) + localStorage.setItem('LoginUID', res.LoginUID) + localStorage.setItem('User_Name', res.UserName) + localStorage.setItem('Full_Name', res.FullName) + localStorage.setItem('avatar', res.icon || '') + localStorage.setItem('dataM', res.dataM ? 'true' : '') + localStorage.setItem('localDataM', res.dataM ? 'true' : '') + localStorage.setItem('debug', res.debug || '') + localStorage.setItem('role_id', res.role_id || '') + localStorage.setItem('localRole_id', res.role_id || '') - localStorage.setItem('lang', param.lang || 'zh-CN') + localStorage.setItem('lang', 'zh-CN') let _url = window.location.href.split('#')[0] @@ -106,19 +106,51 @@ localStorage.removeItem(_url) } - // if (this.props.location.state && this.props.location.state.from.pathname) { - // // 鏌ョ湅鏄惁涓哄叾浠栭〉闈㈣烦杞紝璺緞瀛樺湪鏃讹紝璺冲洖鍘熼〉闈� - // this.props.history.replace(this.props.location.state.from.pathname) - // } - - let _history = sessionStorage.getItem('history') - if (_history) { - sessionStorage.removeItem('history') - // 鏌ョ湅鏄惁涓哄叾浠栭〉闈㈣烦杞紝璺緞瀛樺湪鏃讹紝璺冲洖鍘熼〉闈� - this.props.history.replace(_history) - } else { - this.props.history.replace('/main') + let _param = { + UserName: param.username, + Password: param.password, + BasePath: '/' } + + localStorage.setItem('bmsSystem', param.system) + + if (param.system !== 'new') { + Api.loginAndRedirect(_param).then(result => { + if (result.IsError) { + this.setState({ + isDisabled: false + }) + message.warning('鐧诲綍澶辫触,鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒!') + } else { + if (process.env.NODE_ENV === 'production') { + window.location.replace(document.location.origin + '/Home/Index') + } else { + window.location.replace(window.GLOB.location + '/Home/Index') + } + } + }) + } else { + sessionStorage.setItem('UserID', res.UserID) + sessionStorage.setItem('LoginUID', res.LoginUID) + sessionStorage.setItem('User_Name', res.UserName) + sessionStorage.setItem('Full_Name', res.FullName) + sessionStorage.setItem('avatar', res.icon || '') + sessionStorage.setItem('dataM', res.dataM ? 'true' : '') + sessionStorage.setItem('localDataM', res.dataM ? 'true' : '') + sessionStorage.setItem('debug', res.debug || '') + sessionStorage.setItem('role_id', res.role_id || '') + sessionStorage.setItem('localRole_id', res.role_id || '') + + let _history = sessionStorage.getItem('history') + if (_history) { + sessionStorage.removeItem('history') + // 鏌ョ湅鏄惁涓哄叾浠栭〉闈㈣烦杞紝璺緞瀛樺湪鏃讹紝璺冲洖鍘熼〉闈� + this.props.history.replace(_history) + } else { + this.props.history.replace('/main') + } + } + } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') { message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒') @@ -463,15 +495,14 @@ } render () { - const { lineColor, bgImage, loginlogo, copyRight, webSite, ICP, loginWays, touristLogin } = this.state + const { lineColor, loginlogo, bgImage, copyRight, webSite, ICP, loginWays, touristLogin } = this.state return ( - <div className="login-container" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : {}}> + <div className="login-container"> <div className="logo" style={lineColor ? {borderColor: lineColor} : {}}> {loginlogo ? <img src={loginlogo} alt=""/> : null} - {this.state.platName ? <p className="plat-name">{this.state.platName}</p> : null} </div> - <div className="login-middle" style={lineColor ? {borderColor: lineColor} : {}}> + <div className="login-middle" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : null}> {loginWays ? <LoginForm platName={this.state.platName} dict={this.state.dict} diff --git a/src/views/login/index.scss b/src/views/login/index.scss index 0591041..eba2bfd 100644 --- a/src/views/login/index.scss +++ b/src/views/login/index.scss @@ -1,16 +1,16 @@ .login-container { height: 100vh; min-height: 600px; - background-color: #000000; + background-color: #ffffff; background-size: cover; background-repeat: no-repeat; background-position: center center; .logo { position: relative; - height: 100px; - padding-top: 30px; - line-height: 80px; - border-bottom: 2px solid #1890ff; + height: 70px; + padding-top: 10px; + width: 990px; + margin: 0 auto; img { max-height: 100%; } @@ -76,10 +76,12 @@ .login-middle { position: relative; height: calc(100vh - 194px); - min-height: 420px; - background-size: cover; + min-height: 475px; + background-color: #427CAA; + background-image: url('http://bms-test.kresstools.cn/Content/images/login2/bg_mid.png'); + background-size: contain; + background-repeat: no-repeat; background-position: center center; - border-bottom: 2px solid #1890ff; .login-form { float: right; @@ -93,6 +95,12 @@ .form-item-wrap { padding: 0.6vw 1.6vw 1.6vw; + } + .title { + color: #427CAA; + font-size: 22px; + font-weight: bold; + margin: 15px 1.6vw 5px; } h4 { @@ -188,15 +196,17 @@ } .login-bottom { text-align: center; - color: #ffffff; + color: #666; padding-top: 20px; + font: 12px/150% Arial,Verdana,"\5b8b\4f53"; p span.split { margin-right: 15px; } a { display: inline-block; margin-bottom: 5px; - color: #ffffff; + color: #666; + font: 12px/150% Arial,Verdana,"\5b8b\4f53"; } } .ant-btn-primary[disabled] { diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx index d781667..9bff724 100644 --- a/src/views/login/loginform.jsx +++ b/src/views/login/loginform.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Form, Icon, Input, Button, Checkbox, Select, Modal, Tabs, message } from 'antd' +import { Form, Icon, Input, Button, Checkbox, Select, Modal, message } from 'antd' import md5 from 'md5' import moment from 'moment' @@ -10,7 +10,6 @@ import './index.scss' const { warning } = Modal -const { TabPane } = Tabs let LoginVerCodeTimer = null class LoginTabForm extends Component { @@ -276,9 +275,7 @@ return ( <Form className={`login-form login-form-${loginWays.length}`} id="login-form" onSubmit={this.handleSubmit}> - <Tabs type="card" activeKey={activeKey} onChange={this.onChangeTab}> - {loginWays.map(item => (<TabPane tab={item.label} key={item.type}></TabPane>))} - </Tabs> + <p className="title">{this.props.platName}</p> <div className="form-item-wrap"> {activeKey === 'uname_pwd' ? <Form.Item> {getFieldDecorator('username', { @@ -341,20 +338,16 @@ initialValue: remember, })(<Checkbox onChange={this.rememberChange}>{this.props.dict['login.remember']}</Checkbox>)} </Form.Item> : null} - {this.props.langList && this.props.langList.length > 0 ? <Form.Item className="minline right"> - {getFieldDecorator('lang', { - initialValue: this.props.lang, + <Form.Item className="minline right"> + {getFieldDecorator('system', { + initialValue: localStorage.getItem('bmsSystem') === 'new' ? 'new' : 'old', })( - <Select - onChange={(value) => {this.changelang(value)}} - getPopupContainer={() => document.getElementById('login-form')} - > - {this.props.langList.map((item, index) => { - return <Select.Option key={index} value={item.Lang}>{item.LangName}</Select.Option> - })} + <Select getPopupContainer={() => document.getElementById('login-form')}> + <Select.Option key="old" value="old">鍘熺郴缁�</Select.Option> + <Select.Option key="new" value="new">鏂扮郴缁�</Select.Option> </Select> )} - </Form.Item> : null} + </Form.Item> {['uname_pwd', 'sms_vcode'].includes(activeKey) ? <Form.Item className="btn-login"> <Button type="primary" htmlType="submit" className="login-form-button" disabled={this.props.isDisabled} loading={this.props.isDisabled}> {this.props.dict['login.submit']} -- Gitblit v1.8.0