From b68edf1ec5867dd2bd60ee64a205879093b5cf4f Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 30 七月 2024 17:47:07 +0800 Subject: [PATCH] 1、调整登录页及首页样式(暂未使用响应式布局,背景图片需压缩,页面加载慢) 2、新增大模型对话页面 3、新增菜单管理使用自定义icon功能 4、调整全局项目名称和LOGO(除浏览器页签logo,暂无黑底logo的底图) --- src/views/user/LoginAccount.vue | 136 ++++++++++++++++++++++++--------------------- 1 files changed, 72 insertions(+), 64 deletions(-) diff --git a/src/views/user/LoginAccount.vue b/src/views/user/LoginAccount.vue index 1ff9a73..40714d6 100644 --- a/src/views/user/LoginAccount.vue +++ b/src/views/user/LoginAccount.vue @@ -1,32 +1,35 @@ <template> - <div> - <a-form-model ref="form" :model="model" :rules="validatorRules"> - <a-form-model-item required prop="username"> - <a-input v-model="model.username" size="large" placeholder="璇疯緭鍏ュ笎鎴峰悕 / admin"> - <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-model-item> - <a-form-model-item required prop="password"> - <a-input v-model="model.password" size="large" type="password" autocomplete="false" placeholder="璇疯緭鍏ュ瘑鐮� / 123456"> - <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-model-item> + <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-form-model-item required prop="username"> + <div class="login-input"> + <img src="../../assets/icons/account.png" height="25" style="margin-right: 10px"> + <a-input v-model="model.username" size="large" placeholder="鐢ㄦ埛鍚�" ref="inputRef" @focus="inputFocus"/> + </div> + </a-form-model-item> + <a-form-model-item required prop="password"> + <div class="login-input"> + <img src="../../assets/icons/password.png" height="25" style="margin-right: 10px"> + <a-input v-model="model.password" size="large" type="password" autocomplete="false" + placeholder="瀵嗙爜"/> + </div> + </a-form-model-item> - <a-row :gutter="0"> - <a-col :span="16"> - <a-form-model-item required prop="inputCode"> - <a-input v-model="model.inputCode" size="large" type="text" placeholder="璇疯緭鍏ラ獙璇佺爜"> - <a-icon slot="prefix" type="smile" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-model-item> - </a-col> - <a-col :span="8" style="text-align: right"> - <img v-if="requestCodeSuccess" style="margin-top: 2px;" :src="randCodeImage" @click="handleChangeCheckCode"/> - <img v-else style="margin-top: 2px;" src="../../assets/checkcode.png" @click="handleChangeCheckCode"/> - </a-col> - </a-row> - </a-form-model> - </div> + <a-row :gutter="0" style="height: 40px"> + <a-col :span="16"> + <a-form-model-item required prop="inputCode"> + <div class="login-input"> + <img src="../../assets/icons/inputCode.png" height="25" style="margin-right: 10px"> + <a-input v-model="model.inputCode" size="large" type="text" placeholder="璇疯緭鍏ラ獙璇佺爜"/> + </div> + </a-form-model-item> + </a-col> + <a-col :span="8" style="height: 55px;display: flex;justify-content: right;align-items: center;padding-left: 15px"> + <img v-if="requestCodeSuccess" style="height: 45px;width:100%;border-radius: 15px;" :src="randCodeImage" + @click="handleChangeCheckCode"/> + <img v-else style="margin-top: 2px;" src="../../assets/checkcode.png" @click="handleChangeCheckCode"/> + </a-col> + </a-row> + </a-form-model> </template> <script> @@ -36,18 +39,18 @@ export default { name: 'LoginAccount', - data(){ + data() { return { requestCodeSuccess: false, randCodeImage: '', currdatetime: '', loginType: 0, - model:{ + model: { username: 'admin', password: '123456', inputCode: '' }, - validatorRules:{ + validatorRules: { username: [ { required: true, message: '璇疯緭鍏ョ敤鎴峰悕!' }, { validator: this.handleUsernameOrEmail } @@ -63,29 +66,29 @@ } }, created() { - this.handleChangeCheckCode(); + this.handleChangeCheckCode() }, - methods:{ + methods: { ...mapActions(['Login']), /**鍒锋柊楠岃瘉鐮�*/ - handleChangeCheckCode(){ - this.currdatetime = new Date().getTime(); + handleChangeCheckCode() { + this.currdatetime = new Date().getTime() this.model.inputCode = '' - getAction(`/sys/randomImage/${this.currdatetime}`).then(res=>{ - if(res.success){ + getAction(`/sys/randomImage/${this.currdatetime}`).then(res => { + if (res.success) { this.randCodeImage = res.result - this.requestCodeSuccess=true - }else{ + this.requestCodeSuccess = true + } else { this.$message.error(res.message) - this.requestCodeSuccess=false + this.requestCodeSuccess = false } - }).catch(()=>{ - this.requestCodeSuccess=false + }).catch(() => { + this.requestCodeSuccess = false }) }, // 鍒ゆ柇鐧诲綍绫诲瀷 - handleUsernameOrEmail (rule, value, callback) { - const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; + handleUsernameOrEmail(rule, value, callback) { + const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/ if (regex.test(value)) { this.loginType = 0 } else { @@ -98,57 +101,61 @@ * @param arr * @param callback */ - validateFields(arr, callback){ + validateFields(arr, callback) { let promiseArray = [] - for(let item of arr){ + for (let item of arr) { let p = new Promise((resolve, reject) => { - this.$refs['form'].validateField(item, (err)=>{ - if(!err){ - resolve(); - }else{ - reject(err); + this.$refs['form'].validateField(item, (err) => { + if (!err) { + resolve() + } else { + reject(err) } }) - }); + }) promiseArray.push(p) } - Promise.all(promiseArray).then(()=>{ + Promise.all(promiseArray).then(() => { callback() - }).catch(err=>{ + }).catch(err => { callback(err) }) }, - acceptUsername(username){ + acceptUsername(username) { this.model['username'] = username }, //璐﹀彿瀵嗙爜鐧诲綍 - handleLogin(rememberMe){ - this.validateFields([ 'username', 'password', 'inputCode' ], (err)=>{ - if(!err){ + handleLogin(rememberMe) { + this.validateFields(['username', 'password', 'inputCode'], (err) => { + if (!err) { let loginParams = { username: this.model.username, password: this.model.password, captcha: this.model.inputCode, checkKey: this.currdatetime, - remember_me: rememberMe, + remember_me: rememberMe } - console.log("鐧诲綍鍙傛暟", loginParams) + console.log('鐧诲綍鍙傛暟', loginParams) this.Login(loginParams).then((res) => { this.$emit('success', res.result) }).catch((err) => { //update-begin-author: taoyan date:20220425 for: 鐧诲綍椤甸潰锛屽綋杈撳叆楠岃瘉鐮侀敊璇椂锛岄獙璇佺爜鍥剧墖瑕佸埛鏂颁竴涓嬶紝鑰屼笉鏄繚鎸佹棫鐨勯獙璇佺爜鍥剧墖涓嶅彉 #41 - if(err && err.code===412){ - this.handleChangeCheckCode(); + if (err && err.code === 412) { + this.handleChangeCheckCode() } //update-end-author: taoyan date:20220425 for: 鐧诲綍椤甸潰锛屽綋杈撳叆楠岃瘉鐮侀敊璇椂锛岄獙璇佺爜鍥剧墖瑕佸埛鏂颁竴涓嬶紝鑰屼笉鏄繚鎸佹棫鐨勯獙璇佺爜鍥剧墖涓嶅彉 #41 this.$emit('fail', err) - }); - }else{ + }) + } else { this.$emit('validateFail') } }) - } + }, + inputFocus() { + console.log('瑙﹀彂focus', this.$refs.inputRef.$el.style) + this.$refs.inputRef.$el.style = 'background-color:#f00' + } } @@ -157,4 +164,5 @@ <style scoped> + </style> \ No newline at end of file -- Gitblit v1.9.3