Commit a42687031a7ee314ff234d533d069255474c6c8f
Merge branch 'main' of http://git.xlyprint.cn/zhangz/xlyUmi into main
Showing
3 changed files
with
362 additions
and
140 deletions
src/components/UserRegistration/index.jsx
0 → 100644
| 1 | +import { useState, useEffect } from "react"; | ||
| 2 | +import { ConfigProvider, Modal, Form, Input, Select, message } from "antd"; | ||
| 3 | +import commonConfig from "@/utils/config"; | ||
| 4 | +import * as commonServices from "@/services/services"; | ||
| 5 | + | ||
| 6 | +const UserRegistrationEvent = () => { | ||
| 7 | + const [state, setState0] = useState({}); | ||
| 8 | + const setState = payload => { | ||
| 9 | + setState0({ ...state, ...payload }); | ||
| 10 | + }; | ||
| 11 | + | ||
| 12 | + // 初始化获取所属客户 | ||
| 13 | + useEffect(() => { | ||
| 14 | + const url = `${commonConfig.feedback_host}sysworkorder/getCustomerData`; | ||
| 15 | + commonServices.postValueService("", {}, url).then(({ data: result = {} }) => { | ||
| 16 | + const { code = -1, data, msg = "接口出错" } = result; | ||
| 17 | + if (code > -1) { | ||
| 18 | + setState({ customerData: data }); | ||
| 19 | + } else { | ||
| 20 | + message.error(msg); | ||
| 21 | + } | ||
| 22 | + }); | ||
| 23 | + }, []); | ||
| 24 | + | ||
| 25 | + return { | ||
| 26 | + ...state, | ||
| 27 | + setState, | ||
| 28 | + }; | ||
| 29 | +}; | ||
| 30 | + | ||
| 31 | +const UserRegistration = ({ _this }) => { | ||
| 32 | + const { userRegisterMode } = _this.state; | ||
| 33 | + if (!userRegisterMode) return ""; | ||
| 34 | + | ||
| 35 | + const props = UserRegistrationEvent(); | ||
| 36 | + const { customerData = [] } = props; | ||
| 37 | + | ||
| 38 | + const [form] = Form.useForm(); | ||
| 39 | + | ||
| 40 | + const handleCancel = () => { | ||
| 41 | + _this.setState({ | ||
| 42 | + userRegisterMode: false, | ||
| 43 | + }); | ||
| 44 | + }; | ||
| 45 | + | ||
| 46 | + const handleOk = () => { | ||
| 47 | + form.submit(); | ||
| 48 | + }; | ||
| 49 | + | ||
| 50 | + const onFinish = values => { | ||
| 51 | + console.log("=====Success:", values); | ||
| 52 | + }; | ||
| 53 | + | ||
| 54 | + return ( | ||
| 55 | + <ConfigProvider prefixCls="antdV5"> | ||
| 56 | + <Modal title="用户注册" open={userRegisterMode} okText="确认" cancelText="取消" onOk={handleOk} onCancel={handleCancel} width={400}> | ||
| 57 | + <Form | ||
| 58 | + name="basic" | ||
| 59 | + form={form} | ||
| 60 | + labelCol={{ span: 6 }} | ||
| 61 | + wrapperCol={{ span: 18 }} | ||
| 62 | + style={{ maxWidth: 600 }} | ||
| 63 | + initialValues={{ remember: true }} | ||
| 64 | + onFinish={onFinish} | ||
| 65 | + autoComplete="off" | ||
| 66 | + labelAlign="left" | ||
| 67 | + > | ||
| 68 | + <Form.Item label="用户名" name="username" rules={[{ required: true, message: "未填写用户名!" }]}> | ||
| 69 | + <Input /> | ||
| 70 | + </Form.Item> | ||
| 71 | + | ||
| 72 | + <Form.Item | ||
| 73 | + label="手机号" | ||
| 74 | + name="telenumber" | ||
| 75 | + rules={[ | ||
| 76 | + { required: true, message: "未填写手机号!" }, | ||
| 77 | + { | ||
| 78 | + pattern: /^1[3-9]\d{9}$/, | ||
| 79 | + message: "请输入有效的中国大陆手机号", | ||
| 80 | + }, | ||
| 81 | + ]} | ||
| 82 | + > | ||
| 83 | + <Input /> | ||
| 84 | + </Form.Item> | ||
| 85 | + | ||
| 86 | + <Form.Item label="公司名称" name="company" rules={[{ required: true, message: "未选择公司!" }]}> | ||
| 87 | + <Select | ||
| 88 | + fieldNames={{ label: "sCustomerName", value: "sCustomerId" }} | ||
| 89 | + options={customerData} | ||
| 90 | + showSearch | ||
| 91 | + filterOption={(inputValue, option) => option.sCustomerName?.includes(inputValue)} | ||
| 92 | + /> | ||
| 93 | + </Form.Item> | ||
| 94 | + </Form> | ||
| 95 | + </Modal> | ||
| 96 | + </ConfigProvider> | ||
| 97 | + ); | ||
| 98 | +}; | ||
| 99 | + | ||
| 100 | +export default UserRegistration; |
src/components/login/Login.css
src/components/login/Login.js
| 1 | /* eslint-disable */ | 1 | /* eslint-disable */ |
| 2 | /* eslint-disable no-undef,no-param-reassign */ | 2 | /* eslint-disable no-undef,no-param-reassign */ |
| 3 | -import React, { Component } from 'react'; | ||
| 4 | -import { LockOutlined, UserOutlined } from '@ant-design/icons'; | ||
| 5 | -import { Form } from '@ant-design/compatible'; | 3 | +import React, { Component } from "react"; |
| 4 | +import { LockOutlined, UserOutlined } from "@ant-design/icons"; | ||
| 5 | +import { Form } from "@ant-design/compatible"; | ||
| 6 | // import '@ant-design/compatible/assets/index.css'; | 6 | // import '@ant-design/compatible/assets/index.css'; |
| 7 | import { Input, Button, Select, message, Radio } from 'antd-v4'; | 7 | import { Input, Button, Select, message, Radio } from 'antd-v4'; |
| 8 | -import commonConfig from '@/utils/config'; | 8 | +import commonConfig from "@/utils/config"; |
| 9 | // import * as commonUtils from '../../utils/utils'; | 9 | // import * as commonUtils from '../../utils/utils'; |
| 10 | -import * as commonServices from '@/services/services'; | ||
| 11 | -import * as commonFunc from '@/components/Common/commonFunc'; | ||
| 12 | -import logo from '@/assets/foot_logo.png'; | ||
| 13 | -import * as commonUtils from '@/utils/utils'; | ||
| 14 | -import styles from './Login.css'; | ||
| 15 | -import FaceDetect from '../FaceDetect'; | 10 | +import * as commonServices from "@/services/services"; |
| 11 | +import * as commonFunc from "@/components/Common/commonFunc"; | ||
| 12 | +import logo from "@/assets/foot_logo.png"; | ||
| 13 | +import * as commonUtils from "@/utils/utils"; | ||
| 14 | +import styles from "./Login.css"; | ||
| 15 | +import FaceDetect from "../FaceDetect"; | ||
| 16 | +import UserRegistration from "../UserRegistration"; | ||
| 16 | 17 | ||
| 17 | const FormItem = Form.Item; | 18 | const FormItem = Form.Item; |
| 18 | const { Option } = Select; | 19 | const { Option } = Select; |
| 19 | 20 | ||
| 20 | class LoginForm extends Component { | 21 | class LoginForm extends Component { |
| 21 | constructor(props) { | 22 | constructor(props) { |
| 22 | - | ||
| 23 | let ssoLoginParams = {}; | 23 | let ssoLoginParams = {}; |
| 24 | const urlParams = new URLSearchParams(location.search); | 24 | const urlParams = new URLSearchParams(location.search); |
| 25 | const params = {}; | 25 | const params = {}; |
| @@ -34,16 +34,16 @@ class LoginForm extends Component { | @@ -34,16 +34,16 @@ class LoginForm extends Component { | ||
| 34 | super(props); | 34 | super(props); |
| 35 | this.state = { | 35 | this.state = { |
| 36 | companys: [], | 36 | companys: [], |
| 37 | - sParentId: JSON.parse(localStorage.getItem(`${commonConfig.prefix}companysParentId`)) || '', | ||
| 38 | - sId: JSON.parse(localStorage.getItem(`${commonConfig.prefix}companyId`)) || '', | 37 | + sParentId: JSON.parse(localStorage.getItem(`${commonConfig.prefix}companysParentId`)) || "", |
| 38 | + sId: JSON.parse(localStorage.getItem(`${commonConfig.prefix}companyId`)) || "", | ||
| 39 | loginInfo: [], | 39 | loginInfo: [], |
| 40 | - loginType: 'normal', | ||
| 41 | - sEmployeeNo: '', | 40 | + loginType: "normal", |
| 41 | + sEmployeeNo: "", | ||
| 42 | ssoLoginParams, | 42 | ssoLoginParams, |
| 43 | logoImageInfo: [], | 43 | logoImageInfo: [], |
| 44 | }; | 44 | }; |
| 45 | - this.loginSRMC = props.baseInfo?.flag === 'loginSRMC'; | ||
| 46 | - this.erpBaseWord = this.loginSRMC ? this.props.baseInfo.word : 'ERP' | 45 | + this.loginSRMC = props.baseInfo?.flag === "loginSRMC"; |
| 46 | + this.erpBaseWord = this.loginSRMC ? this.props.baseInfo.word : "ERP"; | ||
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | componentWillMount() { | 49 | componentWillMount() { |
| @@ -57,7 +57,7 @@ class LoginForm extends Component { | @@ -57,7 +57,7 @@ class LoginForm extends Component { | ||
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | handleInit = async () => { | 59 | handleInit = async () => { |
| 60 | - this.handleGetLoginInfo();/* 根据后台配置获取公司信息 */ | 60 | + this.handleGetLoginInfo(); /* 根据后台配置获取公司信息 */ |
| 61 | const configUrl = `${commonConfig.server_host}sysbrands/getSysbrands`; | 61 | const configUrl = `${commonConfig.server_host}sysbrands/getSysbrands`; |
| 62 | const configReturn = (await commonServices.getService(null, configUrl)).data; | 62 | const configReturn = (await commonServices.getService(null, configUrl)).data; |
| 63 | if (configReturn.code === 1) { | 63 | if (configReturn.code === 1) { |
| @@ -69,7 +69,7 @@ class LoginForm extends Component { | @@ -69,7 +69,7 @@ class LoginForm extends Component { | ||
| 69 | } else { | 69 | } else { |
| 70 | message.error(configReturn.msg); | 70 | message.error(configReturn.msg); |
| 71 | } | 71 | } |
| 72 | - } | 72 | + }; |
| 73 | 73 | ||
| 74 | // 获取自定义logo | 74 | // 获取自定义logo |
| 75 | handleGetLogoImage = () => { | 75 | handleGetLogoImage = () => { |
| @@ -87,7 +87,7 @@ class LoginForm extends Component { | @@ -87,7 +87,7 @@ class LoginForm extends Component { | ||
| 87 | } else { | 87 | } else { |
| 88 | this.setState(({ logoImageInfo }) => { | 88 | this.setState(({ logoImageInfo }) => { |
| 89 | const logoImageInfoNew = [...logoImageInfo]; | 89 | const logoImageInfoNew = [...logoImageInfo]; |
| 90 | - logoImageInfoNew[index] = ''; | 90 | + logoImageInfoNew[index] = ""; |
| 91 | return { logoImageInfo: logoImageInfoNew }; | 91 | return { logoImageInfo: logoImageInfoNew }; |
| 92 | }); | 92 | }); |
| 93 | } | 93 | } |
| @@ -95,18 +95,18 @@ class LoginForm extends Component { | @@ -95,18 +95,18 @@ class LoginForm extends Component { | ||
| 95 | ImgObj.onerror = () => { | 95 | ImgObj.onerror = () => { |
| 96 | this.setState(({ logoImageInfo }) => { | 96 | this.setState(({ logoImageInfo }) => { |
| 97 | const logoImageInfoNew = [...logoImageInfo]; | 97 | const logoImageInfoNew = [...logoImageInfo]; |
| 98 | - logoImageInfoNew[index] = ''; | 98 | + logoImageInfoNew[index] = ""; |
| 99 | return { logoImageInfo: logoImageInfoNew }; | 99 | return { logoImageInfo: logoImageInfoNew }; |
| 100 | }); | 100 | }); |
| 101 | }; | 101 | }; |
| 102 | } | 102 | } |
| 103 | - } | 103 | + }; |
| 104 | 104 | ||
| 105 | /* 获取登录窗体配置文字 */ | 105 | /* 获取登录窗体配置文字 */ |
| 106 | handleGetLoginInfo = async () => { | 106 | handleGetLoginInfo = async () => { |
| 107 | - const sModelsId = '16148217740007696998039471379000'; | 107 | + const sModelsId = "16148217740007696998039471379000"; |
| 108 | const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}&sName=/commonAuto`; | 108 | const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}&sName=/commonAuto`; |
| 109 | - const configReturn = (await commonServices.getService('', configUrl)).data; | 109 | + const configReturn = (await commonServices.getService("", configUrl)).data; |
| 110 | if (configReturn.code === 1) { | 110 | if (configReturn.code === 1) { |
| 111 | const dataReturn = configReturn.dataset.rows; | 111 | const dataReturn = configReturn.dataset.rows; |
| 112 | if (commonUtils.isNotEmptyArr(dataReturn)) { | 112 | if (commonUtils.isNotEmptyArr(dataReturn)) { |
| @@ -123,17 +123,17 @@ class LoginForm extends Component { | @@ -123,17 +123,17 @@ class LoginForm extends Component { | ||
| 123 | } else { | 123 | } else { |
| 124 | message.error(configReturn.msg); | 124 | message.error(configReturn.msg); |
| 125 | } | 125 | } |
| 126 | - } | 126 | + }; |
| 127 | 127 | ||
| 128 | handleSelect = (value, option) => { | 128 | handleSelect = (value, option) => { |
| 129 | - const sParentId = option.props['data-parentid']; | 129 | + const sParentId = option.props["data-parentid"]; |
| 130 | this.setState({ | 130 | this.setState({ |
| 131 | sParentId, | 131 | sParentId, |
| 132 | sId: value, | 132 | sId: value, |
| 133 | }); | 133 | }); |
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | - handleSubmit = (e) => { | 136 | + handleSubmit = e => { |
| 137 | e.preventDefault(); | 137 | e.preventDefault(); |
| 138 | this.props.form.validateFields(async (err, values) => { | 138 | this.props.form.validateFields(async (err, values) => { |
| 139 | if (!err) { | 139 | if (!err) { |
| @@ -148,19 +148,19 @@ class LoginForm extends Component { | @@ -148,19 +148,19 @@ class LoginForm extends Component { | ||
| 148 | const xlybusinessActiveTreeArr = []; | 148 | const xlybusinessActiveTreeArr = []; |
| 149 | for (let i = 0; i < localStorage.length; i++) { | 149 | for (let i = 0; i < localStorage.length; i++) { |
| 150 | const key = localStorage.key(i); | 150 | const key = localStorage.key(i); |
| 151 | - if (key && key.includes('xlybusinessActiveTree')) { | 151 | + if (key && key.includes("xlybusinessActiveTree")) { |
| 152 | xlybusinessActiveTreeArr.push([key, localStorage.getItem(key)]); | 152 | xlybusinessActiveTreeArr.push([key, localStorage.getItem(key)]); |
| 153 | } | 153 | } |
| 154 | } | 154 | } |
| 155 | localStorage.clear(); | 155 | localStorage.clear(); |
| 156 | - xlybusinessActiveTreeArr.forEach((item) => { | 156 | + xlybusinessActiveTreeArr.forEach(item => { |
| 157 | localStorage.setItem(item[0], item[1]); | 157 | localStorage.setItem(item[0], item[1]); |
| 158 | }); | 158 | }); |
| 159 | const value = values; | 159 | const value = values; |
| 160 | if (!bSsoLogin) { | 160 | if (!bSsoLogin) { |
| 161 | value.sParentId = this.state.sParentId; | 161 | value.sParentId = this.state.sParentId; |
| 162 | value.sId = this.state.sId; | 162 | value.sId = this.state.sId; |
| 163 | - if (this.state.loginType === 'face') { | 163 | + if (this.state.loginType === "face") { |
| 164 | value.sEmployeeNo = this.sEmployeeNo; | 164 | value.sEmployeeNo = this.sEmployeeNo; |
| 165 | } | 165 | } |
| 166 | } | 166 | } |
| @@ -170,40 +170,49 @@ class LoginForm extends Component { | @@ -170,40 +170,49 @@ class LoginForm extends Component { | ||
| 170 | if (commonUtils.isNotEmptyObject(dataReturn.msg)) { | 170 | if (commonUtils.isNotEmptyObject(dataReturn.msg)) { |
| 171 | message.warning(dataReturn.msg, 6); | 171 | message.warning(dataReturn.msg, 6); |
| 172 | } | 172 | } |
| 173 | - const { | ||
| 174 | - token, gdslogininfo: userinfo, systemData, commonConst, rxtx, passworIsOld, auxiliaryQty, | ||
| 175 | - } = dataReturn.dataset.rows[0]; | 173 | + const { token, gdslogininfo: userinfo, systemData, commonConst, rxtx, passworIsOld, auxiliaryQty } = dataReturn.dataset.rows[0]; |
| 176 | // commonUtils.setSystemSettings(systemData); | 174 | // commonUtils.setSystemSettings(systemData); |
| 177 | // commonUtils.setCommonConst(commonConst); | 175 | // commonUtils.setCommonConst(commonConst); |
| 178 | const decimals = {}; | 176 | const decimals = {}; |
| 179 | if (systemData !== undefined) { | 177 | if (systemData !== undefined) { |
| 180 | - const dNetPrice = systemData.filter(item => (item.sName === 'NetPrice'))[0]; | ||
| 181 | - const dNetMoney = systemData.filter(item => (item.sName === 'NetMoney'))[0]; | ||
| 182 | - const dNumAlign = systemData.filter(item => (item.sName === 'CkxNumAlign'))[0]; | 178 | + const dNetPrice = systemData.filter(item => item.sName === "NetPrice")[0]; |
| 179 | + const dNetMoney = systemData.filter(item => item.sName === "NetMoney")[0]; | ||
| 180 | + const dNumAlign = systemData.filter(item => item.sName === "CkxNumAlign")[0]; | ||
| 183 | /* 20230628老孟提的需求:单价设置6位,金额设置2位,不根据配置走 */ | 181 | /* 20230628老孟提的需求:单价设置6位,金额设置2位,不根据配置走 */ |
| 184 | // decimals.dNetPrice = 12; | 182 | // decimals.dNetPrice = 12; |
| 185 | decimals.dNetPrice = Number(dNetPrice.sValue); // 20240528晚上杨昌辉提-钱豹要求改; | 183 | decimals.dNetPrice = Number(dNetPrice.sValue); // 20240528晚上杨昌辉提-钱豹要求改; |
| 186 | decimals.dNetMoney = 2; | 184 | decimals.dNetMoney = 2; |
| 187 | // decimals.dNetPrice = dNetPrice !== undefined && dNetPrice.sValue !== undefined ? (dNetPrice.sValue) * 1 : 6; | 185 | // decimals.dNetPrice = dNetPrice !== undefined && dNetPrice.sValue !== undefined ? (dNetPrice.sValue) * 1 : 6; |
| 188 | // decimals.dNetMoney = dNetMoney !== undefined && dNetMoney.sValue !== undefined ? (dNetMoney.sValue) * 1 : 6; | 186 | // decimals.dNetMoney = dNetMoney !== undefined && dNetMoney.sValue !== undefined ? (dNetMoney.sValue) * 1 : 6; |
| 189 | - decimals.dNumAlign = dNumAlign !== undefined && dNumAlign.sValue !== undefined ? (dNumAlign.sValue) : 0; | 187 | + decimals.dNumAlign = dNumAlign !== undefined && dNumAlign.sValue !== undefined ? dNumAlign.sValue : 0; |
| 190 | // commonUtils.setNetPrice(decimals.dNetPrice); | 188 | // commonUtils.setNetPrice(decimals.dNetPrice); |
| 191 | // commonUtils.setNetMoney(decimals.dNetMoney); | 189 | // commonUtils.setNetMoney(decimals.dNetMoney); |
| 192 | // commonUtils.setDateFormat(commonFunc.getDateFormat(systemData)); | 190 | // commonUtils.setDateFormat(commonFunc.getDateFormat(systemData)); |
| 193 | } | 191 | } |
| 194 | // 判断是否是初始密码 | 192 | // 判断是否是初始密码 |
| 195 | - if (values.username !== 'zhangz') { | ||
| 196 | - localStorage.setItem(`${commonConfig.prefix}changePwd`, (passworIsOld === true || passworIsOld === 'true') ? 'true' : 'false'); | 193 | + if (values.username !== "zhangz") { |
| 194 | + localStorage.setItem(`${commonConfig.prefix}changePwd`, passworIsOld === true || passworIsOld === "true" ? "true" : "false"); | ||
| 197 | } | 195 | } |
| 198 | /* 登录记住公司信息 */ | 196 | /* 登录记住公司信息 */ |
| 199 | localStorage.setItem(`${commonConfig.prefix}companysParentId`, JSON.stringify(this.state.sParentId)); | 197 | localStorage.setItem(`${commonConfig.prefix}companysParentId`, JSON.stringify(this.state.sParentId)); |
| 200 | localStorage.setItem(`${commonConfig.prefix}companyId`, JSON.stringify(this.state.sId)); | 198 | localStorage.setItem(`${commonConfig.prefix}companyId`, JSON.stringify(this.state.sId)); |
| 201 | - const companyName = commonUtils.isNotEmptyArr(this.state.companys) ? this.state.companys.filter(item => item.sId === userinfo.sSubsidiaryId)[0].sName : ''; | 199 | + const companyName = commonUtils.isNotEmptyArr(this.state.companys) |
| 200 | + ? this.state.companys.filter(item => item.sId === userinfo.sSubsidiaryId)[0].sName | ||
| 201 | + : ""; | ||
| 202 | userinfo.companyName = companyName; | 202 | userinfo.companyName = companyName; |
| 203 | const { footer, logoImageInfo } = this.state; | 203 | const { footer, logoImageInfo } = this.state; |
| 204 | - const isInitPassword = passworIsOld === true || passworIsOld === 'true'; | 204 | + const isInitPassword = passworIsOld === true || passworIsOld === "true"; |
| 205 | await this.props.onLogin({ | 205 | await this.props.onLogin({ |
| 206 | - token, systemData, rxtx, commonConst, userinfo, decimals, dateFormat: commonFunc.getDateFormat(systemData), footer, logoImageInfo, auxiliaryQty, | 206 | + token, |
| 207 | + systemData, | ||
| 208 | + rxtx, | ||
| 209 | + commonConst, | ||
| 210 | + userinfo, | ||
| 211 | + decimals, | ||
| 212 | + dateFormat: commonFunc.getDateFormat(systemData), | ||
| 213 | + footer, | ||
| 214 | + logoImageInfo, | ||
| 215 | + auxiliaryQty, | ||
| 207 | isInitPassword, | 216 | isInitPassword, |
| 208 | }); | 217 | }); |
| 209 | } else { | 218 | } else { |
| @@ -212,128 +221,142 @@ class LoginForm extends Component { | @@ -212,128 +221,142 @@ class LoginForm extends Component { | ||
| 212 | this.handleInit(); | 221 | this.handleInit(); |
| 213 | }); | 222 | }); |
| 214 | } | 223 | } |
| 215 | - } | 224 | + }; |
| 216 | 225 | ||
| 217 | - onLoginTypeChange = (e) => { | 226 | + onLoginTypeChange = e => { |
| 218 | this.setState({ | 227 | this.setState({ |
| 219 | - loginType: e.target.value | ||
| 220 | - }) | 228 | + loginType: e.target.value, |
| 229 | + }); | ||
| 221 | }; | 230 | }; |
| 222 | 231 | ||
| 223 | //人脸验证登录 | 232 | //人脸验证登录 |
| 224 | - onIdentifySuccess = async(e) => { | 233 | + onIdentifySuccess = async e => { |
| 225 | this.sEmployeeNo = e.dataset.rows[0].sEmployeeNo; | 234 | this.sEmployeeNo = e.dataset.rows[0].sEmployeeNo; |
| 226 | const value = {}; | 235 | const value = {}; |
| 227 | value.sEmployeeNo = this.sEmployeeNo; | 236 | value.sEmployeeNo = this.sEmployeeNo; |
| 228 | value.sParentId = e.dataset.rows[0].sBrandsId; | 237 | value.sParentId = e.dataset.rows[0].sBrandsId; |
| 229 | value.sId = e.dataset.rows[0].sSubsidiaryId; | 238 | value.sId = e.dataset.rows[0].sSubsidiaryId; |
| 230 | await this.handleLogin(value); | 239 | await this.handleLogin(value); |
| 231 | - } | 240 | + }; |
| 232 | 241 | ||
| 233 | render() { | 242 | render() { |
| 234 | const { getFieldDecorator } = this.props.form; | 243 | const { getFieldDecorator } = this.props.form; |
| 235 | const { companys, sId, loginInfo, ssoLoginParams, footer } = this.state; | 244 | const { companys, sId, loginInfo, ssoLoginParams, footer } = this.state; |
| 236 | if (commonUtils.isNotEmptyObject(ssoLoginParams)) { | 245 | if (commonUtils.isNotEmptyObject(ssoLoginParams)) { |
| 237 | - return (''); | 246 | + return ""; |
| 238 | } | 247 | } |
| 239 | 248 | ||
| 240 | const companysId = commonUtils.isNotEmptyObject(sId) ? sId : commonUtils.isNotEmptyArr(companys) ? companys[0].sId : chooseBranchCompany; | 249 | const companysId = commonUtils.isNotEmptyObject(sId) ? sId : commonUtils.isNotEmptyArr(companys) ? companys[0].sId : chooseBranchCompany; |
| 241 | - const options = companys.map(com => | ||
| 242 | - ( | ||
| 243 | - <Option key={com.sId} data-parentid={com.sParentId} className={styles.loginOption}> | ||
| 244 | - {com.sName} | ||
| 245 | - </Option>)); | ||
| 246 | - let sLanguage = 'sChinese'; | 250 | + const options = companys.map(com => ( |
| 251 | + <Option key={com.sId} data-parentid={com.sParentId} className={styles.loginOption}> | ||
| 252 | + {com.sName} | ||
| 253 | + </Option> | ||
| 254 | + )); | ||
| 255 | + let sLanguage = "sChinese"; | ||
| 247 | if (companys !== null && companys.length > 0) { | 256 | if (companys !== null && companys.length > 0) { |
| 248 | sLanguage = companys[0].sLanguage !== null ? companys[0].sLanguage.toString() : sLanguage; | 257 | sLanguage = companys[0].sLanguage !== null ? companys[0].sLanguage.toString() : sLanguage; |
| 249 | } | 258 | } |
| 250 | const { loginLoading, logoImageInfo } = this.state; | 259 | const { loginLoading, logoImageInfo } = this.state; |
| 251 | - let XiaoLingYang = sLanguage === 'sChinese' ? '小羚羊' : (sLanguage === 'sEnglish' ? 'XiaoLingYang' : '小羚羊');/* 小羚羊 */ | ||
| 252 | - let WelcometoERP = sLanguage === 'sChinese' ? `欢迎登录${this.erpBaseWord}` : (sLanguage === 'sEnglish' ? `Welcometo${this.erpBaseWord}` : `歡迎登錄${this.erpBaseWord}`);/* 欢迎登录ERP */ | ||
| 253 | - let companyName = sLanguage === 'sChinese' ? '上海小羚羊软件' : (sLanguage === 'sEnglish' ? 'ShangHaiXiaoLingYangSoft' : '上海小羚羊軟件');/* 上海小羚羊软件 */ | ||
| 254 | - let printAllFlow = sLanguage === 'sChinese' ? '智能印刷全流程' : (sLanguage === 'sEnglish' ? 'IntelligentPrintAllFlow' : '智能印刷全流程');/* 智能印刷全流程 */ | ||
| 255 | - let ERP = this.erpBaseWord;/* ERP */ | ||
| 256 | - let UserLogin = sLanguage === 'sChinese' ? '用户登录' : (sLanguage === 'sEnglish' ? 'UserLogin' : '用戶登錄');/* 用户登录 */ | ||
| 257 | - let pleaseInputUserName = sLanguage === 'sChinese' ? '请输入你的用户名' : (sLanguage === 'sEnglish' ? 'pleaseInputUserName' : '請輸入妳的用戶名');/* 请选择分公司名称 */ | ||
| 258 | - let pleaseInputPassword = sLanguage === 'sChinese' ? '请输入你的密码' : (sLanguage === 'sEnglish' ? '请输入你的密码' : '請輸入妳的用戶名');/* 请选择分公司名称 */ | ||
| 259 | - let chooseBranchCompany = sLanguage === 'sChinese' ? '请选择分公司名称' : (sLanguage === 'sEnglish' ? 'Please select branch name' : '請選擇分公司名稱');/* 请选择分公司名称 */ | ||
| 260 | - let btnLogin = sLanguage === 'sChinese' ? '登 录' : (sLanguage === 'sEnglish' ? 'Login' : '登 錄');/* 登 陆 */ | ||
| 261 | - let Copyright = 'Copyright';/* Copyright */ | ||
| 262 | - let AddrOne = sLanguage === 'sChinese' ? '小羚羊软件' : (sLanguage === 'sEnglish' ? 'XiaoLingYangSoft' : '小羚羊軟件');/* 小羚羊软件 */ | ||
| 263 | - let AddrTwo = sLanguage === 'sChinese' ? '印刷智慧工厂' : (sLanguage === 'sEnglish' ? 'PrintingSmartFactory' : '印刷智慧工廠');/* 印刷智慧工厂 */ | ||
| 264 | - let AddrThree = sLanguage === 'sChinese' ? '印刷MES' : (sLanguage === 'sEnglish' ? 'WelcometoMes' : '印刷MES');/* 印刷MES */ | ||
| 265 | - let AddrFour = sLanguage === 'sChinese' ? '印刷ERP' : (sLanguage === 'sEnglish' ? 'PrintingErp' : '印刷ERP');/* 印刷ERP */ | ||
| 266 | - let AddrFive = sLanguage === 'sChinese' ? '印刷电商平台' : (sLanguage === 'sEnglish' ? 'PrintingE-commercePlatform' : '印刷電商平台');/* 印刷电商平台 */ | ||
| 267 | - let AddrSix = sLanguage === 'sChinese' ? '文件智能处理' : (sLanguage === 'sEnglish' ? 'FileIntelligenceHandle' : '文件智能處理');/* 文件智能处理 */ | ||
| 268 | - let AddrSeven = sLanguage === 'sChinese' ? '印前自动化' : (sLanguage === 'sEnglish' ? 'PrepressAutomation' : '印前自動化');/* 印前自动化 */ | ||
| 269 | - let AddrEight = '400-880-6237';/* 400-880-6237 */ | ||
| 270 | - const AddrIcp = '沪ICP备14034791号-1'; /* 粤ICP备2022093080号-1 */ | 260 | + let XiaoLingYang = sLanguage === "sChinese" ? "小羚羊" : sLanguage === "sEnglish" ? "XiaoLingYang" : "小羚羊"; /* 小羚羊 */ |
| 261 | + let WelcometoERP = | ||
| 262 | + sLanguage === "sChinese" | ||
| 263 | + ? `欢迎登录${this.erpBaseWord}` | ||
| 264 | + : sLanguage === "sEnglish" | ||
| 265 | + ? `Welcometo${this.erpBaseWord}` | ||
| 266 | + : `歡迎登錄${this.erpBaseWord}`; /* 欢迎登录ERP */ | ||
| 267 | + let companyName = | ||
| 268 | + sLanguage === "sChinese" ? "上海小羚羊软件" : sLanguage === "sEnglish" ? "ShangHaiXiaoLingYangSoft" : "上海小羚羊軟件"; /* 上海小羚羊软件 */ | ||
| 269 | + let printAllFlow = | ||
| 270 | + sLanguage === "sChinese" ? "智能印刷全流程" : sLanguage === "sEnglish" ? "IntelligentPrintAllFlow" : "智能印刷全流程"; /* 智能印刷全流程 */ | ||
| 271 | + let ERP = this.erpBaseWord; /* ERP */ | ||
| 272 | + let UserLogin = sLanguage === "sChinese" ? "用户登录" : sLanguage === "sEnglish" ? "UserLogin" : "用戶登錄"; /* 用户登录 */ | ||
| 273 | + let pleaseInputUserName = | ||
| 274 | + sLanguage === "sChinese" ? "请输入你的用户名" : sLanguage === "sEnglish" ? "pleaseInputUserName" : "請輸入妳的用戶名"; /* 请选择分公司名称 */ | ||
| 275 | + let pleaseInputPassword = | ||
| 276 | + sLanguage === "sChinese" ? "请输入你的密码" : sLanguage === "sEnglish" ? "请输入你的密码" : "請輸入妳的用戶名"; /* 请选择分公司名称 */ | ||
| 277 | + let chooseBranchCompany = | ||
| 278 | + sLanguage === "sChinese" | ||
| 279 | + ? "请选择分公司名称" | ||
| 280 | + : sLanguage === "sEnglish" | ||
| 281 | + ? "Please select branch name" | ||
| 282 | + : "請選擇分公司名稱"; /* 请选择分公司名称 */ | ||
| 283 | + let btnLogin = sLanguage === "sChinese" ? "登 录" : sLanguage === "sEnglish" ? "Login" : "登 錄"; /* 登 陆 */ | ||
| 284 | + let Copyright = "Copyright"; /* Copyright */ | ||
| 285 | + let AddrOne = sLanguage === "sChinese" ? "小羚羊软件" : sLanguage === "sEnglish" ? "XiaoLingYangSoft" : "小羚羊軟件"; /* 小羚羊软件 */ | ||
| 286 | + let AddrTwo = sLanguage === "sChinese" ? "印刷智慧工厂" : sLanguage === "sEnglish" ? "PrintingSmartFactory" : "印刷智慧工廠"; /* 印刷智慧工厂 */ | ||
| 287 | + let AddrThree = sLanguage === "sChinese" ? "印刷MES" : sLanguage === "sEnglish" ? "WelcometoMes" : "印刷MES"; /* 印刷MES */ | ||
| 288 | + let AddrFour = sLanguage === "sChinese" ? "印刷ERP" : sLanguage === "sEnglish" ? "PrintingErp" : "印刷ERP"; /* 印刷ERP */ | ||
| 289 | + let AddrFive = | ||
| 290 | + sLanguage === "sChinese" ? "印刷电商平台" : sLanguage === "sEnglish" ? "PrintingE-commercePlatform" : "印刷電商平台"; /* 印刷电商平台 */ | ||
| 291 | + let AddrSix = sLanguage === "sChinese" ? "文件智能处理" : sLanguage === "sEnglish" ? "FileIntelligenceHandle" : "文件智能處理"; /* 文件智能处理 */ | ||
| 292 | + let AddrSeven = sLanguage === "sChinese" ? "印前自动化" : sLanguage === "sEnglish" ? "PrepressAutomation" : "印前自動化"; /* 印前自动化 */ | ||
| 293 | + let AddrEight = "400-880-6237"; /* 400-880-6237 */ | ||
| 294 | + const AddrIcp = "沪ICP备14034791号-1"; /* 粤ICP备2022093080号-1 */ | ||
| 271 | if (commonUtils.isNotEmptyArr(loginInfo)) { | 295 | if (commonUtils.isNotEmptyArr(loginInfo)) { |
| 272 | - const CompanyNameData = loginInfo.filter(item => item.sControlName === 'CompanyName'); | 296 | + const CompanyNameData = loginInfo.filter(item => item.sControlName === "CompanyName"); |
| 273 | XiaoLingYang = commonUtils.isNotEmptyArr(CompanyNameData) ? CompanyNameData[0].showName : XiaoLingYang; | 297 | XiaoLingYang = commonUtils.isNotEmptyArr(CompanyNameData) ? CompanyNameData[0].showName : XiaoLingYang; |
| 274 | 298 | ||
| 275 | if (!this.loginSRMC) { | 299 | if (!this.loginSRMC) { |
| 276 | - const filterDataLoginERP = loginInfo.filter(item => item.sControlName === 'LoginERP'); | 300 | + const filterDataLoginERP = loginInfo.filter(item => item.sControlName === "LoginERP"); |
| 277 | WelcometoERP = commonUtils.isNotEmptyArr(filterDataLoginERP) ? filterDataLoginERP[0].showName : WelcometoERP; | 301 | WelcometoERP = commonUtils.isNotEmptyArr(filterDataLoginERP) ? filterDataLoginERP[0].showName : WelcometoERP; |
| 278 | } | 302 | } |
| 279 | 303 | ||
| 280 | - const CompanyAllNameData = loginInfo.filter(item => item.sControlName === 'CompanyAllName'); | 304 | + const CompanyAllNameData = loginInfo.filter(item => item.sControlName === "CompanyAllName"); |
| 281 | companyName = commonUtils.isNotEmptyArr(CompanyAllNameData) ? CompanyAllNameData[0].showName : companyName; | 305 | companyName = commonUtils.isNotEmptyArr(CompanyAllNameData) ? CompanyAllNameData[0].showName : companyName; |
| 282 | 306 | ||
| 283 | - const PrintAllFlowData = loginInfo.filter(item => item.sControlName === 'PrintAllFlow'); | 307 | + const PrintAllFlowData = loginInfo.filter(item => item.sControlName === "PrintAllFlow"); |
| 284 | printAllFlow = commonUtils.isNotEmptyArr(PrintAllFlowData) ? PrintAllFlowData[0].showName : printAllFlow; | 308 | printAllFlow = commonUtils.isNotEmptyArr(PrintAllFlowData) ? PrintAllFlowData[0].showName : printAllFlow; |
| 285 | 309 | ||
| 286 | if (!this.loginSRMC) { | 310 | if (!this.loginSRMC) { |
| 287 | - const ERPData = loginInfo.filter(item => item.sControlName === 'ERP'); | 311 | + const ERPData = loginInfo.filter(item => item.sControlName === "ERP"); |
| 288 | ERP = commonUtils.isNotEmptyArr(ERPData) ? ERPData[0].showName : ERP; | 312 | ERP = commonUtils.isNotEmptyArr(ERPData) ? ERPData[0].showName : ERP; |
| 289 | } | 313 | } |
| 290 | 314 | ||
| 291 | - const UserLoginData = loginInfo.filter(item => item.sControlName === 'UserLogin'); | ||
| 292 | - UserLogin = commonUtils.isNotEmptyArr(UserLoginData) ? UserLoginData[0].showName : 'UserLogin'; | 315 | + const UserLoginData = loginInfo.filter(item => item.sControlName === "UserLogin"); |
| 316 | + UserLogin = commonUtils.isNotEmptyArr(UserLoginData) ? UserLoginData[0].showName : "UserLogin"; | ||
| 293 | 317 | ||
| 294 | - const PleaseInputUserNameData = loginInfo.filter(item => item.sControlName === 'PleaseInputUserName'); | 318 | + const PleaseInputUserNameData = loginInfo.filter(item => item.sControlName === "PleaseInputUserName"); |
| 295 | pleaseInputUserName = commonUtils.isNotEmptyArr(PleaseInputUserNameData) ? PleaseInputUserNameData[0].showName : pleaseInputUserName; | 319 | pleaseInputUserName = commonUtils.isNotEmptyArr(PleaseInputUserNameData) ? PleaseInputUserNameData[0].showName : pleaseInputUserName; |
| 296 | 320 | ||
| 297 | - const PasswordData = loginInfo.filter(item => item.sControlName === 'PleaseInputPassword'); | ||
| 298 | - pleaseInputPassword = commonUtils.isNotEmptyArr(PasswordData) ? PasswordData[0].showName : 'PleaseInputPassword'; | 321 | + const PasswordData = loginInfo.filter(item => item.sControlName === "PleaseInputPassword"); |
| 322 | + pleaseInputPassword = commonUtils.isNotEmptyArr(PasswordData) ? PasswordData[0].showName : "PleaseInputPassword"; | ||
| 299 | 323 | ||
| 300 | - const ChooseBranchCompanyData = loginInfo.filter(item => item.sControlName === 'ChooseBranchCompany'); | 324 | + const ChooseBranchCompanyData = loginInfo.filter(item => item.sControlName === "ChooseBranchCompany"); |
| 301 | chooseBranchCompany = commonUtils.isNotEmptyArr(ChooseBranchCompanyData) ? ChooseBranchCompanyData[0].showName : chooseBranchCompany; | 325 | chooseBranchCompany = commonUtils.isNotEmptyArr(ChooseBranchCompanyData) ? ChooseBranchCompanyData[0].showName : chooseBranchCompany; |
| 302 | 326 | ||
| 303 | - const BtnLoginData = loginInfo.filter(item => item.sControlName === 'BtnLogin'); | 327 | + const BtnLoginData = loginInfo.filter(item => item.sControlName === "BtnLogin"); |
| 304 | btnLogin = commonUtils.isNotEmptyArr(BtnLoginData) ? BtnLoginData[0].showName : btnLogin; | 328 | btnLogin = commonUtils.isNotEmptyArr(BtnLoginData) ? BtnLoginData[0].showName : btnLogin; |
| 305 | 329 | ||
| 306 | - const CopyrightData = loginInfo.filter(item => item.sControlName === 'Copyright'); | 330 | + const CopyrightData = loginInfo.filter(item => item.sControlName === "Copyright"); |
| 307 | Copyright = commonUtils.isNotEmptyArr(CopyrightData) ? CopyrightData[0].showName : Copyright; | 331 | Copyright = commonUtils.isNotEmptyArr(CopyrightData) ? CopyrightData[0].showName : Copyright; |
| 308 | 332 | ||
| 309 | - const AddrOneData = loginInfo.filter(item => item.sControlName === 'AddrOne'); | 333 | + const AddrOneData = loginInfo.filter(item => item.sControlName === "AddrOne"); |
| 310 | AddrOne = commonUtils.isNotEmptyArr(AddrOneData) ? AddrOneData[0].showName : AddrOne; | 334 | AddrOne = commonUtils.isNotEmptyArr(AddrOneData) ? AddrOneData[0].showName : AddrOne; |
| 311 | 335 | ||
| 312 | - const AddrTwoData = loginInfo.filter(item => item.sControlName === 'AddrTwo'); | 336 | + const AddrTwoData = loginInfo.filter(item => item.sControlName === "AddrTwo"); |
| 313 | AddrTwo = commonUtils.isNotEmptyArr(AddrTwoData) ? AddrTwoData[0].showName : AddrTwo; | 337 | AddrTwo = commonUtils.isNotEmptyArr(AddrTwoData) ? AddrTwoData[0].showName : AddrTwo; |
| 314 | 338 | ||
| 315 | - const AddrThreeData = loginInfo.filter(item => item.sControlName === 'AddrThree'); | 339 | + const AddrThreeData = loginInfo.filter(item => item.sControlName === "AddrThree"); |
| 316 | AddrThree = commonUtils.isNotEmptyArr(AddrThreeData) ? AddrThreeData[0].showName : AddrThree; | 340 | AddrThree = commonUtils.isNotEmptyArr(AddrThreeData) ? AddrThreeData[0].showName : AddrThree; |
| 317 | 341 | ||
| 318 | - const AddrFourData = loginInfo.filter(item => item.sControlName === 'AddrFour'); | 342 | + const AddrFourData = loginInfo.filter(item => item.sControlName === "AddrFour"); |
| 319 | AddrFour = commonUtils.isNotEmptyArr(AddrFourData) ? AddrFourData[0].showName : AddrFour; | 343 | AddrFour = commonUtils.isNotEmptyArr(AddrFourData) ? AddrFourData[0].showName : AddrFour; |
| 320 | 344 | ||
| 321 | - const AddrFiveData = loginInfo.filter(item => item.sControlName === 'AddrFive'); | 345 | + const AddrFiveData = loginInfo.filter(item => item.sControlName === "AddrFive"); |
| 322 | AddrFive = commonUtils.isNotEmptyArr(AddrFiveData) ? AddrFiveData[0].showName : AddrFive; | 346 | AddrFive = commonUtils.isNotEmptyArr(AddrFiveData) ? AddrFiveData[0].showName : AddrFive; |
| 323 | 347 | ||
| 324 | - const AddrSixData = loginInfo.filter(item => item.sControlName === 'AddrSix'); | 348 | + const AddrSixData = loginInfo.filter(item => item.sControlName === "AddrSix"); |
| 325 | AddrSix = commonUtils.isNotEmptyArr(AddrSixData) ? AddrSixData[0].showName : AddrSix; | 349 | AddrSix = commonUtils.isNotEmptyArr(AddrSixData) ? AddrSixData[0].showName : AddrSix; |
| 326 | 350 | ||
| 327 | - const AddrSevenData = loginInfo.filter(item => item.sControlName === 'AddrSeven'); | 351 | + const AddrSevenData = loginInfo.filter(item => item.sControlName === "AddrSeven"); |
| 328 | AddrSeven = commonUtils.isNotEmptyArr(AddrSevenData) ? AddrSevenData[0].showName : AddrSeven; | 352 | AddrSeven = commonUtils.isNotEmptyArr(AddrSevenData) ? AddrSevenData[0].showName : AddrSeven; |
| 329 | 353 | ||
| 330 | - const AddrEightData = loginInfo.filter(item => item.sControlName === 'AddrEight'); | 354 | + const AddrEightData = loginInfo.filter(item => item.sControlName === "AddrEight"); |
| 331 | AddrEight = commonUtils.isNotEmptyArr(AddrEightData) ? AddrEightData[0].showName : AddrEight; | 355 | AddrEight = commonUtils.isNotEmptyArr(AddrEightData) ? AddrEightData[0].showName : AddrEight; |
| 332 | } | 356 | } |
| 333 | 357 | ||
| 334 | - | ||
| 335 | const dropdownStyle = { | 358 | const dropdownStyle = { |
| 336 | - fontSize: '14px', | 359 | + fontSize: "14px", |
| 337 | }; | 360 | }; |
| 338 | 361 | ||
| 339 | // 修改favicon | 362 | // 修改favicon |
| @@ -352,24 +375,27 @@ class LoginForm extends Component { | @@ -352,24 +375,27 @@ class LoginForm extends Component { | ||
| 352 | 375 | ||
| 353 | // 修改左上角logo | 376 | // 修改左上角logo |
| 354 | const xlyHeaderLogo = logoImageInfo[1]; | 377 | const xlyHeaderLogo = logoImageInfo[1]; |
| 355 | - const root = document.querySelector('#root'); | ||
| 356 | - root.style.removeProperty('--xly-header-logo-opacity'); | ||
| 357 | - root.style.removeProperty('--xly-header-logo'); | 378 | + const root = document.querySelector("#root"); |
| 379 | + root.style.removeProperty("--xly-header-logo-opacity"); | ||
| 380 | + root.style.removeProperty("--xly-header-logo"); | ||
| 358 | if (xlyHeaderLogo !== undefined) { | 381 | if (xlyHeaderLogo !== undefined) { |
| 359 | - root.style.setProperty('--xly-header-logo-opacity', 1); | ||
| 360 | - if (xlyHeaderLogo !== '') { | ||
| 361 | - root.style.setProperty('--xly-header-logo', `url(${xlyHeaderLogo})`); | 382 | + root.style.setProperty("--xly-header-logo-opacity", 1); |
| 383 | + if (xlyHeaderLogo !== "") { | ||
| 384 | + root.style.setProperty("--xly-header-logo", `url(${xlyHeaderLogo})`); | ||
| 362 | } | 385 | } |
| 363 | } | 386 | } |
| 364 | 387 | ||
| 365 | // 修改foot的logo | 388 | // 修改foot的logo |
| 366 | - const xlyFootLogo = logoImageInfo[3] === '' ? logo : logoImageInfo[3]; | 389 | + const xlyFootLogo = logoImageInfo[3] === "" ? logo : logoImageInfo[3]; |
| 367 | 390 | ||
| 368 | return ( | 391 | return ( |
| 369 | <div className={styles.wraper}> | 392 | <div className={styles.wraper}> |
| 370 | <div className={styles.header}> | 393 | <div className={styles.header}> |
| 371 | <div className={styles.logo}> | 394 | <div className={styles.logo}> |
| 372 | - <h1>{XiaoLingYang}<span>{WelcometoERP}</span></h1> | 395 | + <h1> |
| 396 | + {XiaoLingYang} | ||
| 397 | + <span>{WelcometoERP}</span> | ||
| 398 | + </h1> | ||
| 373 | </div> | 399 | </div> |
| 374 | </div> | 400 | </div> |
| 375 | <div className={styles.login}> | 401 | <div className={styles.login}> |
| @@ -379,29 +405,42 @@ class LoginForm extends Component { | @@ -379,29 +405,42 @@ class LoginForm extends Component { | ||
| 379 | <h2>{printAllFlow}</h2> | 405 | <h2>{printAllFlow}</h2> |
| 380 | <h3>{ERP}</h3> | 406 | <h3>{ERP}</h3> |
| 381 | </div> | 407 | </div> |
| 382 | - <Form onSubmit={this.handleSubmit} className={`${styles.loginForm_mode} ${this.state.loginType === 'face' ? styles.loginForm_face : ''}`}> | ||
| 383 | - <div className={styles.loginTitle}> | ||
| 384 | - {UserLogin} | ||
| 385 | - </div> | 408 | + <Form onSubmit={this.handleSubmit} className={`${styles.loginForm_mode} ${this.state.loginType === "face" ? styles.loginForm_face : ""}`}> |
| 409 | + <div className={styles.loginTitle}>{UserLogin}</div> | ||
| 386 | <div className={styles.loginMiddle}> | 410 | <div className={styles.loginMiddle}> |
| 387 | - { this.state.loginType === 'face' ? | ||
| 388 | - <div style={{marginBottom: '22px'}}> | ||
| 389 | - <FaceDetect loginAfterInit={true} onIdentifySuccess={this.onIdentifySuccess} actionType={'identifyFace'}></FaceDetect> | 411 | + {this.state.loginType === "face" ? ( |
| 412 | + <div style={{ marginBottom: "22px" }}> | ||
| 413 | + <FaceDetect loginAfterInit={true} onIdentifySuccess={this.onIdentifySuccess} actionType={"identifyFace"}></FaceDetect> | ||
| 390 | </div> | 414 | </div> |
| 391 | - : | 415 | + ) : ( |
| 392 | <> | 416 | <> |
| 393 | <FormItem className={styles.loginTip}> | 417 | <FormItem className={styles.loginTip}> |
| 394 | - {getFieldDecorator('username', { | 418 | + {getFieldDecorator("username", { |
| 395 | rules: [{ required: true, message: pleaseInputUserName }], | 419 | rules: [{ required: true, message: pleaseInputUserName }], |
| 396 | - })(<Input className={styles.loginInput} size="large" prefix={<UserOutlined className={styles.loginIcon} />} placeholder={pleaseInputUserName} />)} | 420 | + })( |
| 421 | + <Input | ||
| 422 | + className={styles.loginInput} | ||
| 423 | + size="large" | ||
| 424 | + prefix={<UserOutlined className={styles.loginIcon} />} | ||
| 425 | + placeholder={pleaseInputUserName} | ||
| 426 | + /> | ||
| 427 | + )} | ||
| 397 | </FormItem> | 428 | </FormItem> |
| 398 | <FormItem className={styles.loginTip}> | 429 | <FormItem className={styles.loginTip}> |
| 399 | - {getFieldDecorator('password', { | 430 | + {getFieldDecorator("password", { |
| 400 | rules: [{ required: true, message: pleaseInputPassword }], | 431 | rules: [{ required: true, message: pleaseInputPassword }], |
| 401 | - })(<Input className={styles.loginInput} size="large" prefix={<LockOutlined className={styles.loginIcon} />} type="password" placeholder={pleaseInputPassword} />)} | 432 | + })( |
| 433 | + <Input | ||
| 434 | + className={styles.loginInput} | ||
| 435 | + size="large" | ||
| 436 | + prefix={<LockOutlined className={styles.loginIcon} />} | ||
| 437 | + type="password" | ||
| 438 | + placeholder={pleaseInputPassword} | ||
| 439 | + /> | ||
| 440 | + )} | ||
| 402 | </FormItem> | 441 | </FormItem> |
| 403 | </> | 442 | </> |
| 404 | - } | 443 | + )} |
| 405 | {/*<FormItem className={styles.loginTip}>*/} | 444 | {/*<FormItem className={styles.loginTip}>*/} |
| 406 | {/* {getFieldDecorator('username', {*/} | 445 | {/* {getFieldDecorator('username', {*/} |
| 407 | {/* rules: [{ required: true, message: pleaseInputUserName }],*/} | 446 | {/* rules: [{ required: true, message: pleaseInputUserName }],*/} |
| @@ -427,35 +466,110 @@ class LoginForm extends Component { | @@ -427,35 +466,110 @@ class LoginForm extends Component { | ||
| 427 | </Button> | 466 | </Button> |
| 428 | </FormItem> | 467 | </FormItem> |
| 429 | {/*屏蔽人脸*/} | 468 | {/*屏蔽人脸*/} |
| 430 | - <div style={{textAlign: 'right'}}> | ||
| 431 | - <Radio.Group onChange={this.onLoginTypeChange} value={this.state.loginType} buttonStyle="solid"> | 469 | + <div style={{ textAlign: "right", position: "relative" }}> |
| 470 | + { ['project.xlyprint.cn', 'localhost'].includes(location.hostname) ? ( | ||
| 471 | + <Button type="link" size="large" className={styles.userRegister} onClick={() => { this.setState({ userRegisterMode: true }); }}> | ||
| 472 | + 用户注册 | ||
| 473 | + </Button> | ||
| 474 | + ) : "" } | ||
| 475 | + <Radio.Group onChange={this.onLoginTypeChange} value={this.state.loginType} buttonStyle="solid"> | ||
| 432 | <Radio.Button value="normal">普通登录</Radio.Button> | 476 | <Radio.Button value="normal">普通登录</Radio.Button> |
| 433 | <Radio.Button value="face">扫脸登录</Radio.Button> | 477 | <Radio.Button value="face">扫脸登录</Radio.Button> |
| 434 | </Radio.Group> | 478 | </Radio.Group> |
| 435 | </div> | 479 | </div> |
| 436 | </Form> | 480 | </Form> |
| 481 | + <UserRegistration _this={this} /> | ||
| 437 | </div> | 482 | </div> |
| 438 | </div> | 483 | </div> |
| 439 | <div className={styles.footer}> | 484 | <div className={styles.footer}> |
| 440 | - {xlyFootLogo && <img alt="logo" src={xlyFootLogo} style={{ maxWidth: 20, maxHeight: 20 }} />} | ||
| 441 | - ©{Copyright} <span className={styles.linkStyle}><a href="http://www.xlyprint.com/" target="_blank" rel="noopener noreferrer">{AddrOne}</a> </span> | ||
| 442 | - { | ||
| 443 | - commonUtils.isNotEmptyArr(footer) ? ( | ||
| 444 | - <> | ||
| 445 | - {footer.map(item => { | ||
| 446 | - const { sIcon, sLink, sName } = item; | ||
| 447 | - let sPart = ''; | ||
| 448 | - const sIconPart = sIcon ? <img src={sIcon} alt="" /> : ''; | ||
| 449 | - if (sLink) { | ||
| 450 | - sPart = <> | <span className={styles.linkStyle}><a href={sLink} target="_blank" rel="noopener noreferrer"> {sIconPart} {sName}</a></span></>; | ||
| 451 | - } else { | ||
| 452 | - sPart = <> | <span>{sIconPart}{sName}</span></>; | ||
| 453 | - } | ||
| 454 | - return sPart; | ||
| 455 | - })} | ||
| 456 | - </> | ||
| 457 | - ) : <> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/zngc.html" target="_blank" rel="noopener noreferrer">{AddrTwo}</a> </span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/znwl.html" target="_blank" rel="noopener noreferrer">{AddrThree}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yb.html" target="_blank" rel="noopener noreferrer" >{AddrFour}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yshlw.html" target="_blank" rel="noopener noreferrer">{AddrFive}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/znwj.html" target="_blank" rel="noopener noreferrer">{AddrSix}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yqzdh.html" target="_blank" rel="noopener noreferrer">{AddrSeven}</a></span> | {AddrEight} | <span className={styles.linkStyle}><a href="http://beian.miit.gov.cn" target="_blank" rel="noopener noreferrer"> <img src="//gw.alicdn.com/tfs/TB1jwakrbH1gK0jSZFwXXc7aXXa-20-20.png" alt="" /> {AddrIcp}</a></span></> | ||
| 458 | - } | 485 | + {xlyFootLogo && <img alt="logo" src={xlyFootLogo} style={{ maxWidth: 20, maxHeight: 20 }} />}©{Copyright}{" "} |
| 486 | + <span className={styles.linkStyle}> | ||
| 487 | + <a href="http://www.xlyprint.com/" target="_blank" rel="noopener noreferrer"> | ||
| 488 | + {AddrOne} | ||
| 489 | + </a>{" "} | ||
| 490 | + </span> | ||
| 491 | + {commonUtils.isNotEmptyArr(footer) ? ( | ||
| 492 | + <> | ||
| 493 | + {footer.map(item => { | ||
| 494 | + const { sIcon, sLink, sName } = item; | ||
| 495 | + let sPart = ""; | ||
| 496 | + const sIconPart = sIcon ? <img src={sIcon} alt="" /> : ""; | ||
| 497 | + if (sLink) { | ||
| 498 | + sPart = ( | ||
| 499 | + <> | ||
| 500 | + {" "} | ||
| 501 | + |{" "} | ||
| 502 | + <span className={styles.linkStyle}> | ||
| 503 | + <a href={sLink} target="_blank" rel="noopener noreferrer"> | ||
| 504 | + {" "} | ||
| 505 | + {sIconPart} {sName} | ||
| 506 | + </a> | ||
| 507 | + </span> | ||
| 508 | + </> | ||
| 509 | + ); | ||
| 510 | + } else { | ||
| 511 | + sPart = ( | ||
| 512 | + <> | ||
| 513 | + {" "} | ||
| 514 | + |{" "} | ||
| 515 | + <span> | ||
| 516 | + {sIconPart} | ||
| 517 | + {sName} | ||
| 518 | + </span> | ||
| 519 | + </> | ||
| 520 | + ); | ||
| 521 | + } | ||
| 522 | + return sPart; | ||
| 523 | + })} | ||
| 524 | + </> | ||
| 525 | + ) : ( | ||
| 526 | + <> | ||
| 527 | + {" "} | ||
| 528 | + |{" "} | ||
| 529 | + <span className={styles.linkStyle}> | ||
| 530 | + <a href="http://www.xlyprint.com/zngc.html" target="_blank" rel="noopener noreferrer"> | ||
| 531 | + {AddrTwo} | ||
| 532 | + </a>{" "} | ||
| 533 | + </span>{" "} | ||
| 534 | + |{" "} | ||
| 535 | + <span className={styles.linkStyle}> | ||
| 536 | + <a href="http://www.xlyprint.com/znwl.html" target="_blank" rel="noopener noreferrer"> | ||
| 537 | + {AddrThree} | ||
| 538 | + </a> | ||
| 539 | + </span>{" "} | ||
| 540 | + |{" "} | ||
| 541 | + <span className={styles.linkStyle}> | ||
| 542 | + <a href="http://www.xlyprint.com/yb.html" target="_blank" rel="noopener noreferrer"> | ||
| 543 | + {AddrFour} | ||
| 544 | + </a> | ||
| 545 | + </span>{" "} | ||
| 546 | + |{" "} | ||
| 547 | + <span className={styles.linkStyle}> | ||
| 548 | + <a href="http://www.xlyprint.com/yshlw.html" target="_blank" rel="noopener noreferrer"> | ||
| 549 | + {AddrFive} | ||
| 550 | + </a> | ||
| 551 | + </span>{" "} | ||
| 552 | + |{" "} | ||
| 553 | + <span className={styles.linkStyle}> | ||
| 554 | + <a href="http://www.xlyprint.com/znwj.html" target="_blank" rel="noopener noreferrer"> | ||
| 555 | + {AddrSix} | ||
| 556 | + </a> | ||
| 557 | + </span>{" "} | ||
| 558 | + |{" "} | ||
| 559 | + <span className={styles.linkStyle}> | ||
| 560 | + <a href="http://www.xlyprint.com/yqzdh.html" target="_blank" rel="noopener noreferrer"> | ||
| 561 | + {AddrSeven} | ||
| 562 | + </a> | ||
| 563 | + </span>{" "} | ||
| 564 | + | {AddrEight} |{" "} | ||
| 565 | + <span className={styles.linkStyle}> | ||
| 566 | + <a href="http://beian.miit.gov.cn" target="_blank" rel="noopener noreferrer"> | ||
| 567 | + {" "} | ||
| 568 | + <img src="//gw.alicdn.com/tfs/TB1jwakrbH1gK0jSZFwXXc7aXXa-20-20.png" alt="" /> {AddrIcp} | ||
| 569 | + </a> | ||
| 570 | + </span> | ||
| 571 | + </> | ||
| 572 | + )} | ||
| 459 | {/* ©{Copyright} <span className={styles.linkStyle}><a href="http://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">{AddrOne}</a> </span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/zngc.html" target="_blank" rel="noopener noreferrer">{AddrTwo}</a> </span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/znwl.html" target="_blank" rel="noopener noreferrer">{AddrThree}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yb.html" target="_blank" rel="noopener noreferrer" >{AddrFour}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yshlw.html" target="_blank" rel="noopener noreferrer">{AddrFive}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/znwj.html" target="_blank" rel="noopener noreferrer">{AddrSix}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yqzdh.html" target="_blank" rel="noopener noreferrer">{AddrSeven}</a></span> | {AddrEight} | <span className={styles.linkStyle}><a href="http://beian.miit.gov.cn"> <img src="//gw.alicdn.com/tfs/TB1jwakrbH1gK0jSZFwXXc7aXXa-20-20.png" alt="" /> {AddrIcp}</a></span> */} | 573 | {/* ©{Copyright} <span className={styles.linkStyle}><a href="http://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">{AddrOne}</a> </span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/zngc.html" target="_blank" rel="noopener noreferrer">{AddrTwo}</a> </span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/znwl.html" target="_blank" rel="noopener noreferrer">{AddrThree}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yb.html" target="_blank" rel="noopener noreferrer" >{AddrFour}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yshlw.html" target="_blank" rel="noopener noreferrer">{AddrFive}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/znwj.html" target="_blank" rel="noopener noreferrer">{AddrSix}</a></span> | <span className={styles.linkStyle}><a href="http://www.xlyprint.com/yqzdh.html" target="_blank" rel="noopener noreferrer">{AddrSeven}</a></span> | {AddrEight} | <span className={styles.linkStyle}><a href="http://beian.miit.gov.cn"> <img src="//gw.alicdn.com/tfs/TB1jwakrbH1gK0jSZFwXXc7aXXa-20-20.png" alt="" /> {AddrIcp}</a></span> */} |
| 460 | </div> | 574 | </div> |
| 461 | </div> | 575 | </div> |