Commit 73e7bb3c695aa34e667f0c64d497c863bfa0b55b

Authored by 谭毅彬
1 parent f3022266

首页样式优化

ant-design-vue-jeecg/src/components/layouts/UserLayoutLogin.vue
@@ -5,57 +5,44 @@ @@ -5,57 +5,44 @@
5 <div id="logoImg"> 5 <div id="logoImg">
6 <img src="~@/assets/logo.png" alt="" srcset="" class="imge"> 6 <img src="~@/assets/logo.png" alt="" srcset="" class="imge">
7 </div> 7 </div>
8 - <div id="text">  
9 - 华恒WMS仓储管理系统  
10 - </div> 8 + <div id="text">华恒WMS仓储管理系统</div>
11 </div> 9 </div>
12 <div id="backgroundImg"> 10 <div id="backgroundImg">
13 - 11 + <img src="~@/assets/beijingtu.jpg" alt="" srcset="" class="imge"/>
14 </div> 12 </div>
15 <div id="copyright"> 13 <div id="copyright">
16 - <div id="company">  
17 - Copyright &copy; 2024 华恒焊接股份有限公司  
18 - </div> 14 + <div id="company">Copyright &copy; 2024 华恒焊接股份有限公司</div>
19 </div> 15 </div>
20 </div> 16 </div>
21 -  
22 <div class="right-div"> 17 <div class="right-div">
23 - <div id="welcome">  
24 - 欢迎来到华恒仓储管理系统 !  
25 - </div>  
26 - <a-form-model ref="form" :model="model" :rules="validatorRules">  
27 - <a-form-model-item required prop="username">  
28 - <a-input id="name" v-model="model.username" size="default" autocomplete="off" placeholder="请输入帐户名 / admin"  
29 - @blur="getWarehouse">  
30 - </a-input>  
31 - </a-form-model-item>  
32 - <a-form-model-item required prop="password">  
33 - <a-input id="password" v-model="model.password" size="default" type="password" autocomplete="new-password" @input="maskPassword"  
34 - placeholder="请输入密码">  
35 -  
36 - </a-input>  
37 - </a-form-model-item>  
38 - <a-form-model-item prop="warehouseCode">  
39 - <a-select  
40 - show-search  
41 - placeholder="请选择仓库"  
42 - option-filter-prop="label"  
43 - v-model="model.warehouseCode" id="warehouseCode">  
44 - <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{  
45 - item.name  
46 - }}  
47 - </a-select-option>  
48 - </a-select>  
49 - </a-form-model-item>  
50 - <a-form-item>  
51 - <a-button id="logIn" size="default" type="primary" htmlType="submit" class="login-button" :loading="loginBtn" @click.stop.prevent="handleSubmit" :disabled="loginBtn">  
52 - 登&nbsp;录  
53 - </a-button>  
54 - </a-form-item>  
55 - </a-form-model>  
56 - </div>  
57 -  
58 - 18 + <div id="welcome">欢迎来到华恒仓储管理系统 !</div>
  19 + <a-form-model ref="form" :model="model" :rules="validatorRules">
  20 + <a-form-model-item required prop="username">
  21 + <a-input id="name" v-model="model.username" size="default" autocomplete="off" placeholder="请输入帐户名 / admin" @blur="getWarehouse">
  22 + </a-input>
  23 + </a-form-model-item>
  24 + <a-form-model-item required prop="password">
  25 + <a-input id="password" v-model="model.password" size="default" type="password" autocomplete="new-password" @input="maskPassword" placeholder="请输入密码">
  26 + </a-input>
  27 + </a-form-model-item>
  28 + <a-form-model-item prop="warehouseCode">
  29 + <a-select
  30 + show-search
  31 + placeholder="请选择仓库"
  32 + option-filter-prop="label"
  33 + v-model="model.warehouseCode" id="warehouseCode">
  34 + <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{
  35 + item.name
  36 + }}
  37 + </a-select-option>
  38 + </a-select>
  39 + </a-form-model-item>
  40 + <a-form-item>
  41 + <a-button id="logIn" size="default" type="primary" htmlType="submit" class="login-button"
  42 + :loading="loginBtn" @click.stop.prevent="handleSubmit" :disabled="loginBtn">登 录</a-button>
  43 + </a-form-item>
  44 + </a-form-model>
  45 + </div>
59 <two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess" @cancel="stepCaptchaCancel"></two-step-captcha> 46 <two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess" @cancel="stepCaptchaCancel"></two-step-captcha>
60 <login-select-tenant ref="loginSelect" @success="loginSelectOk" ></login-select-tenant> 47 <login-select-tenant ref="loginSelect" @success="loginSelectOk" ></login-select-tenant>
61 48
@@ -63,19 +50,19 @@ @@ -63,19 +50,19 @@
63 </template> 50 </template>
64 51
65 <script> 52 <script>
66 -import RouteView from "@/components/layouts/RouteView"  
67 -import {mixinDevice} from '@/utils/mixin.js'  
68 -import LoginAccount from "@views/user/LoginAccount.vue";  
69 -import {mapActions} from "vuex";  
70 -import {getAction} from "@api/manage";  
71 -import {getWarehouseByUserCode} from "@api/api";  
72 -import TwoStepCaptcha from "@comp/tools/TwoStepCaptcha.vue";  
73 -import LoginSelectTenant from "@views/user/LoginSelectTenant.vue";  
74 -import {timeFix} from "@/utils/util"; 53 +import RouteView from '@/components/layouts/RouteView'
  54 +import { mixinDevice } from '@/utils/mixin.js'
  55 +import LoginAccount from '@views/user/LoginAccount.vue'
  56 +import { mapActions } from 'vuex'
  57 +import { getAction } from '@api/manage'
  58 +import { getWarehouseByUserCode } from '@api/api'
  59 +import TwoStepCaptcha from '@comp/tools/TwoStepCaptcha.vue'
  60 +import LoginSelectTenant from '@views/user/LoginSelectTenant.vue'
  61 +import { timeFix } from '@/utils/util'
75 62
76 export default { 63 export default {
77 - name: "UserLayout",  
78 - components: {LoginSelectTenant, TwoStepCaptcha}, 64 + name: 'UserLayout',
  65 + components: { LoginSelectTenant, TwoStepCaptcha },
79 data() { 66 data() {
80 return { 67 return {
81 requestCodeSuccess: false, 68 requestCodeSuccess: false,
@@ -91,29 +78,40 @@ export default { @@ -91,29 +78,40 @@ export default {
91 model: { 78 model: {
92 username: '', 79 username: '',
93 password: '', 80 password: '',
94 - warehouseCode: '', 81 + warehouseCode: ''
95 // inputCode: '' 82 // inputCode: ''
96 }, 83 },
97 validatorRules: { 84 validatorRules: {
98 username: [ 85 username: [
99 - {required: true, message: <span style="color: red; font-weight: bold; margin-left: 45px;">请输入用户名!</span>},  
100 - {validator: this.handleUsernameOrEmail} 86 + {
  87 + required: true,
  88 + message: <span style="color: red; font-weight: bold; margin-left: 10%;">请输入用户名!</span>
  89 + },
  90 + { validator: this.handleUsernameOrEmail }
101 ], 91 ],
102 - password: [{  
103 - required: true, message: <span style="color: red; font-weight: bold; margin-left: 45px;">请输入密码!</span>, validator: 'click'  
104 - }],  
105 - warehouseCode: [{  
106 - required: true, message: <span style="color: red; font-weight: bold; margin-left: 45px;">请选择仓库!</span>, trigger: "change" , validator: 'click'  
107 - }], 92 + password: [
  93 + {
  94 + required: true,
  95 + message: <span style="color: red; font-weight: bold; margin-left: 10%;">请输入密码!</span>,
  96 + validator: 'click'
  97 + }
  98 + ],
  99 + warehouseCode: [
  100 + {
  101 + required: true,
  102 + message: <span style="color: red; font-weight: bold; margin-left: 10%;">请选择仓库!</span>,
  103 + trigger: 'change',
  104 + validator: 'click'
  105 + }
  106 + ]
108 } 107 }
109 } 108 }
110 }, 109 },
111 created() { 110 created() {
112 - this.handleChangeCheckCode();  
113 - this.getWarehouse(); 111 + this.handleChangeCheckCode()
  112 + this.getWarehouse()
114 }, 113 },
115 114
116 -  
117 methods: { 115 methods: {
118 stepCaptchaCancel() { 116 stepCaptchaCancel() {
119 this.Logout().then(() => { 117 this.Logout().then(() => {
@@ -126,10 +124,10 @@ export default { @@ -126,10 +124,10 @@ export default {
126 this.loginSuccess() 124 this.loginSuccess()
127 }, 125 },
128 handleSubmit() { 126 handleSubmit() {
129 - this.loginBtn = true; 127 + this.loginBtn = true
130 // if (this.customActiveKey === 'tab1') { 128 // if (this.customActiveKey === 'tab1') {
131 - // 使用账户密码登录  
132 - this.handleLogin(this.rememberMe) 129 + // 使用账户密码登录
  130 + this.handleLogin(this.rememberMe)
133 // } else { 131 // } else {
134 // //手机号码登录 132 // //手机号码登录
135 // this.$refs.plogin.handleLogin(this.rememberMe) 133 // this.$refs.plogin.handleLogin(this.rememberMe)
@@ -137,7 +135,7 @@ export default { @@ -137,7 +135,7 @@ export default {
137 }, 135 },
138 // 校验失败 136 // 校验失败
139 validateFail() { 137 validateFail() {
140 - this.loginBtn = false; 138 + this.loginBtn = false
141 }, 139 },
142 requestSuccess(loginResult) { 140 requestSuccess(loginResult) {
143 this.$refs.loginSelect.show(loginResult) 141 this.$refs.loginSelect.show(loginResult)
@@ -146,52 +144,54 @@ export default { @@ -146,52 +144,54 @@ export default {
146 this.loginSuccess() 144 this.loginSuccess()
147 }, 145 },
148 loginSuccess() { 146 loginSuccess() {
149 - this.$router.push({path: "/dashboard/analysis"}); 147 + this.$router.push({ path: '/dashboard/analysis' })
150 this.$notification.success({ 148 this.$notification.success({
151 message: '欢迎', 149 message: '欢迎',
152 - description: `${timeFix()},欢迎回来`,  
153 - }); 150 + description: `${timeFix()},欢迎回来`
  151 + })
154 }, 152 },
155 //登录后台失败 153 //登录后台失败
156 requestFailed(err) { 154 requestFailed(err) {
157 - let description = ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试" 155 + let description = ((err.response || {}).data || {}).message || err.message || '请求出现错误,请稍后再试'
158 this.$notification['error']({ 156 this.$notification['error']({
159 message: '登录失败', 157 message: '登录失败',
160 description: description, 158 description: description,
161 - duration: 4,  
162 - }); 159 + duration: 4
  160 + })
163 //账户密码登录错误后更新验证码 161 //账户密码登录错误后更新验证码
164 if (this.customActiveKey === 'tab1' && description.indexOf('密码错误') > 0) { 162 if (this.customActiveKey === 'tab1' && description.indexOf('密码错误') > 0) {
165 this.$refs.alogin.handleChangeCheckCode() 163 this.$refs.alogin.handleChangeCheckCode()
166 } 164 }
167 - this.loginBtn = false; 165 + this.loginBtn = false
168 }, 166 },
169 ...mapActions(['Login']), 167 ...mapActions(['Login']),
170 /**刷新验证码*/ 168 /**刷新验证码*/
171 handleChangeCheckCode() { 169 handleChangeCheckCode() {
172 - this.currdatetime = new Date().getTime(); 170 + this.currdatetime = new Date().getTime()
173 // this.model.inputCode = '' 171 // this.model.inputCode = ''
174 - getAction(`/sys/randomImage/${this.currdatetime}`).then(res => {  
175 - if (res.success) {  
176 - this.randCodeImage = res.result  
177 - this.requestCodeSuccess = true  
178 - } else {  
179 - this.$message.error(res.message) 172 + getAction(`/sys/randomImage/${this.currdatetime}`)
  173 + .then(res => {
  174 + if (res.success) {
  175 + this.randCodeImage = res.result
  176 + this.requestCodeSuccess = true
  177 + } else {
  178 + this.$message.error(res.message)
  179 + this.requestCodeSuccess = false
  180 + }
  181 + })
  182 + .catch(() => {
180 this.requestCodeSuccess = false 183 this.requestCodeSuccess = false
181 - }  
182 - }).catch(() => {  
183 - this.requestCodeSuccess = false  
184 - }) 184 + })
185 }, 185 },
186 186
187 getWarehouse() { 187 getWarehouse() {
188 - const that = this;  
189 - this.querySource.username = that.model.username;  
190 - let obj = getWarehouseByUserCode(that.querySource);  
191 - obj.then((res) => {  
192 - that.warehouseList = res.result; 188 + const that = this
  189 + this.querySource.username = that.model.username
  190 + let obj = getWarehouseByUserCode(that.querySource)
  191 + obj.then(res => {
  192 + that.warehouseList = res.result
193 if (this.warehouseList != null) { 193 if (this.warehouseList != null) {
194 - this.model.warehouseCode = this.warehouseList[0].code; 194 + this.model.warehouseCode = this.warehouseList[0].code
195 } 195 }
196 }) 196 })
197 }, 197 },
@@ -222,7 +222,7 @@ export default { @@ -222,7 +222,7 @@ export default {
222 222
223 // 判断登录类型 223 // 判断登录类型
224 handleUsernameOrEmail(rule, value, callback) { 224 handleUsernameOrEmail(rule, value, callback) {
225 - const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; 225 + const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/
226 if (regex.test(value)) { 226 if (regex.test(value)) {
227 this.loginType = 0 227 this.loginType = 0
228 } else { 228 } else {
@@ -239,47 +239,51 @@ export default { @@ -239,47 +239,51 @@ export default {
239 let promiseArray = [] 239 let promiseArray = []
240 for (let item of arr) { 240 for (let item of arr) {
241 let p = new Promise((resolve, reject) => { 241 let p = new Promise((resolve, reject) => {
242 - this.$refs['form'].validateField(item, (err) => { 242 + this.$refs['form'].validateField(item, err => {
243 if (!err) { 243 if (!err) {
244 - resolve(); 244 + resolve()
245 } else { 245 } else {
246 - reject(err); 246 + reject(err)
247 } 247 }
248 }) 248 })
249 - }); 249 + })
250 promiseArray.push(p) 250 promiseArray.push(p)
251 } 251 }
252 - Promise.all(promiseArray).then(() => {  
253 - callback()  
254 - }).catch(err => {  
255 - callback(err)  
256 - }) 252 + Promise.all(promiseArray)
  253 + .then(() => {
  254 + callback()
  255 + })
  256 + .catch(err => {
  257 + callback(err)
  258 + })
257 }, 259 },
258 acceptUsername(username) { 260 acceptUsername(username) {
259 this.model['username'] = username 261 this.model['username'] = username
260 }, 262 },
261 // 账号密码登录 263 // 账号密码登录
262 handleLogin(rememberMe) { 264 handleLogin(rememberMe) {
263 - this.validateFields(['username', 'password'], (err) => { 265 + this.validateFields(['username', 'password'], err => {
264 if (!err) { 266 if (!err) {
265 let loginParams = { 267 let loginParams = {
266 username: this.model.username, 268 username: this.model.username,
267 password: this.maskedPassword, 269 password: this.maskedPassword,
268 warehouseCode: this.model.warehouseCode, 270 warehouseCode: this.model.warehouseCode,
269 checkKey: this.currdatetime, 271 checkKey: this.currdatetime,
270 - remember_me: rememberMe, 272 + remember_me: rememberMe
271 } 273 }
272 - this.Login(loginParams).then((res) => {  
273 - this.$emit('success', res.result)  
274 - this.loginSuccess()  
275 - }).catch((err) => {  
276 - this.validateFail()  
277 - this.requestFailed(err)  
278 - this.$emit('fail', err)  
279 - if (err.code == 499) {  
280 - this.$router.push({path: "/user/systemTokenModal"})  
281 - }  
282 - }); 274 + this.Login(loginParams)
  275 + .then(res => {
  276 + this.$emit('success', res.result)
  277 + this.loginSuccess()
  278 + })
  279 + .catch(err => {
  280 + this.validateFail()
  281 + this.requestFailed(err)
  282 + this.$emit('fail', err)
  283 + if (err.code == 499) {
  284 + this.$router.push({ path: '/user/systemTokenModal' })
  285 + }
  286 + })
283 } else { 287 } else {
284 this.validateFail() 288 this.validateFail()
285 this.$emit('validateFail') 289 this.$emit('validateFail')
@@ -291,231 +295,234 @@ export default { @@ -291,231 +295,234 @@ export default {
291 </script> 295 </script>
292 296
293 <style lang="less" scoped> 297 <style lang="less" scoped>
294 - #userLayout {  
295 - height: 100%;  
296 - display: flex; /* 设置flex布局 */  
297 - width: 100%; /* 容器宽度设置为100% */  
298 - }  
299 - ::v-deep .ant-select-selection{  
300 - border-width: 1px;  
301 - border-radius: 12px;  
302 - width: 100% !important;  
303 - height: 100% !important;  
304 - background-color: #fff;  
305 - background-image: url(../../assets/cangku.png);  
306 - padding-left: 50px; /* 留出图片的空间 */  
307 - background-repeat: no-repeat;  
308 - background-position: 20px center;  
309 - background-size: 28px 28px;  
310 - box-shadow: 2px 5px 5px #c3c3c3;  
311 - font-size: 18px;  
312 - } 298 +#userLayout {
  299 + height: 100%;
  300 + display: flex; /* 设置flex布局 */
  301 + width: 100%; /* 容器宽度设置为100% */
  302 +}
  303 +::v-deep .ant-select-selection {
  304 + border-width: 1px;
  305 + border-radius: 12px;
  306 + width: 100% !important;
  307 + height: 100% !important;
  308 + background-color: #fff;
  309 + background-image: url(../../assets/cangku.png);
  310 + padding-left: 50px; /* 留出图片的空间 */
  311 + background-repeat: no-repeat;
  312 + background-position: 20px center;
  313 + background-size: 28px 28px;
  314 + box-shadow: 2px 5px 5px #c3c3c3;
  315 + font-size: 18px;
  316 +}
313 317
314 - /deep/ .ant-select-selection__rendered{  
315 - margin-top: 8px;  
316 - } 318 +/deep/ .ant-select-selection__rendered {
  319 + margin-top: 8px;
  320 +}
317 321
318 - ///deep/ .ant-select-dropdown-menu-item-selected{  
319 - // font-size: 18px;  
320 - // height: 30px;  
321 - //} 322 +///deep/ .ant-select-dropdown-menu-item-selected{
  323 +// font-size: 18px;
  324 +// height: 30px;
  325 +//}
322 326
323 - .left-div {  
324 - flex: 0 0 65%; /* 左侧div宽度为容器的70% */  
325 - } 327 +.left-div {
  328 + flex: 0 0 65%; /* 左侧div宽度为容器的70% */
  329 +}
326 330
327 - .right-div {  
328 - flex: 0 0 35%;  
329 - background-color: #FAFAFA;  
330 - button.login-button {  
331 - padding: 0 15px;  
332 - font-size: 16px;  
333 - height: 20px;  
334 - width: 60%;  
335 - }  
336 - }  
337 - #backgroundImg {  
338 - //margin-top: 80px;  
339 - height: 60%;  
340 - //margin-left: 130px;  
341 - background-image: url(../../assets/beijingtu.jpg); 331 +.right-div {
  332 + flex: 0 0 35%;
  333 + background-color: #fafafa;
  334 +}
  335 +#backgroundImg {
  336 + height: 80%;
  337 + display: flex;
  338 + justify-content: center;
  339 + align-items: flex-start;
  340 + .imge {
  341 + height: 75%;
342 background-size: contain; 342 background-size: contain;
343 background-repeat: no-repeat; 343 background-repeat: no-repeat;
344 position: relative; 344 position: relative;
345 - left: 9%;  
346 - }  
347 - #logo {  
348 - height: 15%;  
349 - width: 100%;  
350 - //background-color: red;  
351 - //margin-left: 150px;  
352 - //margin-left: 11%;  
353 - //margin-top: 30px;  
354 - display: flex; 345 + background-position: top center;
355 } 346 }
356 - #logoImg {  
357 - width: 35%;  
358 - height: 100%;  
359 - float: right;  
360 - position: relative;  
361 - //background-color: yellow;  
362 - .imge{  
363 - width: 50%;  
364 - height: 20%;  
365 - position: absolute;  
366 - right: 3%; /* 水平居右 */  
367 - top: 50%; /* 从顶部偏移50% */  
368 - transform: translateY(-50%); /* 向上移动自身高度的50%,实现垂直居中 */  
369 - //object-fit: contain;  
370 - //top: 39%;  
371 - //left: 45%;  
372 - //object-fit: cover; /* 或 contain、fill、none、scale-down */  
373 - //object-position: center;  
374 - }  
375 - }  
376 - #text{  
377 - height: 100%;  
378 - width: 100%;  
379 - font-size: 1vw;  
380 - align-content: center;  
381 - color: #333333;  
382 - //margin-left: 5px;  
383 - font-family: 'Microsoft YaHei', 'SimSun', sans-serif;  
384 - font-weight: bold;  
385 - //background-color: blue;  
386 - }  
387 - #copyright{  
388 - height: 40%;  
389 - width: 100%;  
390 - //margin-left: 820px;  
391 - //margin-top: 100px;  
392 - }  
393 - #form-container{  
394 - width: 200px; /* 设置宽度 */  
395 - height: 50px; /* 设置高度 */  
396 - //margin-left: 820px;  
397 - //margin-top: 100px;  
398 - }  
399 - #company{  
400 - //background-color: #0c8fcf;  
401 - align-content: center;  
402 - text-align: right;  
403 - color: #AC1E2B;  
404 - font-size: 14px;  
405 - width: 90%;  
406 - height: 95%;  
407 - }  
408 - #suggest{  
409 - //background-color: yellow;  
410 - //width: 350px;  
411 - width: 100%;  
412 - height: 25%;  
413 - color: #666666;  
414 - font-size: 14px;  
415 - //text-align: center;  
416 - }  
417 - #welcome{  
418 - font-size: 20px;  
419 - margin-top: 150px;  
420 - margin-left: 45px;  
421 - color: #333333;  
422 - }  
423 - #name{  
424 - border-width: 1px;  
425 - border-style: solid;  
426 - border-radius: 12px;  
427 - width: 450px;  
428 - height: 50px;  
429 - margin-top: 30px;  
430 - margin-left: 45px;  
431 - background-image: url(../../assets/huiyuan.png);  
432 - padding-left: 60px; /* 留出图片的空间 */  
433 - background-repeat: no-repeat;  
434 - background-position: 20px center;  
435 - background-size: 26px 26px;  
436 - font-size: 18px;  
437 - color: #333333;  
438 - box-shadow: 2px 5px 5px #c3c3c3;  
439 - }  
440 - #name::after {  
441 - content: "";  
442 - display: inline-block;  
443 - width: 0;  
444 - height: 0;  
445 - overflow: hidden;  
446 - }  
447 - #name::placeholder{  
448 - font-size: 18px;  
449 - color: #999999;  
450 - padding-left: 0px  
451 - }  
452 - #password{  
453 - //border-color: #AC1E2B;  
454 - border-width: 1px;  
455 - border-style: solid;  
456 - border-radius: 12px;  
457 - width: 450px;  
458 - height: 50px;  
459 - margin-top: 10px;  
460 - margin-left: 45px;  
461 - background-image: url(../../assets/mima.png);  
462 - padding-left: 60px; /* 留出图片的空间 */  
463 - background-repeat: no-repeat;  
464 - background-position: 20px center;  
465 - background-size: 26px 26px;  
466 - font-size: 18px;  
467 - color: #333333;  
468 - box-shadow: 2px 5px 5px #c3c3c3;  
469 - }  
470 - #password::after {  
471 - content: "";  
472 - display: inline-block;  
473 - width: 0;  
474 - height: 0;  
475 - overflow: hidden;  
476 - }  
477 - #password::placeholder{  
478 - font-size: 18px;  
479 - color: #999999;  
480 - padding-left: 0px  
481 - }  
482 - #warehouseCode{  
483 - border-color: #ebf3fd;  
484 - border-width: 1px;  
485 - border-style: solid;  
486 - border-radius: 12px;  
487 - width: 450px;  
488 - height: 50px;  
489 - margin-top: 10px;  
490 - margin-left: 45px;  
491 - font-size: 16px;  
492 - text-align: center;  
493 - //color: #333333;  
494 - }  
495 - a-select {  
496 - width: 100%;  
497 - height: 100%;  
498 - font-size: 16px;  
499 - color: #333;  
500 - background-color: #fff;  
501 - border: 1px solid #ccc;  
502 - border-radius: 4px;  
503 - }  
504 - #logIn{  
505 - border-color: #AC1E2B;  
506 - border-width: 1px;  
507 - border-style: solid;  
508 - border-radius: 12px;  
509 - width: 450px;  
510 - height: 50px;  
511 - margin-top: 10px;  
512 - margin-left: 45px;  
513 - font-size: 26px;  
514 - align-items: center;  
515 - justify-content: center;  
516 - display: flex;  
517 - color: #ebf3fd;  
518 - background-color: red; 347 +}
  348 +#logo {
  349 + height: 15%;
  350 + width: 100%;
  351 + //background-color: red;
  352 + //margin-left: 150px;
  353 + //margin-left: 11%;
  354 + //margin-top: 30px;
  355 + display: flex;
  356 +}
  357 +#logoImg {
  358 + width: 35%;
  359 + height: 100%;
  360 + float: right;
  361 + position: relative;
  362 + //background-color: yellow;
  363 + .imge {
  364 + width: 60%;
  365 + height: 20%;
  366 + position: absolute;
  367 + right: 3%; /* 水平居右 */
  368 + top: 50%; /* 从顶部偏移50% */
  369 + transform: translateY(-50%); /* 向上移动自身高度的50%,实现垂直居中 */
  370 + //object-fit: contain;
  371 + //top: 39%;
  372 + //left: 45%;
  373 + //object-fit: cover; /* 或 contain、fill、none、scale-down */
  374 + //object-position: center;
519 } 375 }
520 - 376 +}
  377 +#text {
  378 + height: 100%;
  379 + width: 100%;
  380 + font-size: 1vw;
  381 + align-content: center;
  382 + color: #333333;
  383 + //margin-left: 5px;
  384 + font-family: 'Microsoft YaHei', 'SimSun', sans-serif;
  385 + font-weight: bold;
  386 + //background-color: blue;
  387 +}
  388 +#copyright {
  389 + height: 5%;
  390 + width: stretch;
  391 + position: fixed;
  392 + // transform: translateX(-50%);
  393 + //margin-left: 820px;
  394 + //margin-top: 100px;
  395 +}
  396 +#form-container {
  397 + width: 200px; /* 设置宽度 */
  398 + height: 50px; /* 设置高度 */
  399 + //margin-left: 820px;
  400 + //margin-top: 100px;
  401 +}
  402 +#company {
  403 + align-content: center;
  404 + text-align: center;
  405 + color: #ac1e2b;
  406 + height: 100%;
  407 + width: 100%;
  408 + font-size: 0.9vw;
  409 + align-content: baseline;
  410 + font-family: 'Microsoft YaHei', 'SimSun', sans-serif;
  411 +}
  412 +#welcome {
  413 + width: 85%;
  414 + height: 3vw;
  415 + margin-top: 25%;
  416 + margin-left: 50%;
  417 + transform: translateX(-48%);
  418 + color: #333333;
  419 + font-size: 1.5vw;
  420 + align-content: center;
  421 + font-family: 'Microsoft YaHei', 'SimSun', sans-serif;
  422 +}
  423 +#name {
  424 + border-width: 1px;
  425 + border-style: solid;
  426 + border-radius: 0.6vw;
  427 + width: 85%;
  428 + height: 3vw;
  429 + line-height: 3vw;
  430 + margin-top: 2.5vw;
  431 + margin-left: 8%;
  432 + background-image: url(../../assets/huiyuan.png);
  433 + padding-left: 12%; /* 留出图片的空间 */
  434 + background-repeat: no-repeat;
  435 + background-position: 20px center;
  436 + background-size: 26px 26px;
  437 + font-size: 1vw;
  438 + color: #333333;
  439 + box-shadow: 2px 5px 5px #c3c3c3;
  440 +}
  441 +#name::after {
  442 + content: '';
  443 + display: inline-block;
  444 + width: 0;
  445 + height: 0;
  446 + overflow: hidden;
  447 +}
  448 +#name::placeholder {
  449 + font-size: 18px;
  450 + color: #999999;
  451 + padding-left: 0px;
  452 +}
  453 +#password {
  454 + //border-color: #AC1E2B;
  455 + border-width: 1px;
  456 + border-style: solid;
  457 + border-radius: 0.6vw;
  458 + width: 85%;
  459 + height: 3vw;
  460 + line-height: 3vw;
  461 + margin-top: 0.5vw;
  462 + margin-left: 8%;
  463 + background-image: url(../../assets/mima.png);
  464 + padding-left: 12%; /* 留出图片的空间 */
  465 + background-repeat: no-repeat;
  466 + background-position: 20px center;
  467 + background-size: 26px 26px;
  468 + font-size: 1vw;
  469 + color: #333333;
  470 + box-shadow: 2px 5px 5px #c3c3c3;
  471 +}
  472 +#password::after {
  473 + content: '';
  474 + display: inline-block;
  475 + width: 0;
  476 + height: 0;
  477 + overflow: hidden;
  478 +}
  479 +#password::placeholder {
  480 + font-size: 18px;
  481 + color: #999999;
  482 + padding-left: 0px;
  483 +}
  484 +/deep/ .ant-form-item-control{
  485 + line-height: 65px;
  486 +}
  487 +#warehouseCode {
  488 + border-color: #ebf3fd;
  489 + border-width: 1px;
  490 + border-style: solid;
  491 + border-radius: 0.6vw;
  492 + width: 85%;
  493 + height: 3vw;
  494 + line-height: 3vw;
  495 + margin-top: 0.5vw;
  496 + margin-left: 8%;
  497 + font-size: 1vw;
  498 + text-align: center;
  499 + //color: #333333;
  500 +}
  501 +a-select {
  502 + width: 100%;
  503 + height: 100%;
  504 + font-size: 16px;
  505 + color: #333;
  506 + background-color: #fff;
  507 + border: 1px solid #ccc;
  508 + border-radius: 4px;
  509 +}
  510 +#logIn {
  511 + border-color: #ac1e2b;
  512 + border-width: 1px;
  513 + border-style: solid;
  514 + border-radius: 0.6vw;
  515 + width: 85%;
  516 + height: 3vw;
  517 + line-height: 3vw;
  518 + margin-top: 0.5vw;
  519 + margin-left: 8%;
  520 + font-size: 1.8vw;
  521 + align-items: center;
  522 + justify-content: center;
  523 + display: flex;
  524 + color: #ebf3fd;
  525 + background-color: red;
  526 + box-shadow: 2px 5px 5px #c3c3c3;
  527 +}
521 </style> 528 </style>
522 \ No newline at end of file 529 \ No newline at end of file