<el-form-item prop="password" :label="$t('bankcard_settings_98_4_35_zIbf')"> <el-input :type="((readonly && ruleForm.password) || ruleForm.password)?'password':'text'" :readonly="readonly" auto-complete="confirm-password" v-model="ruleForm.password" :placeholder="$t('bankcard_settings_99_7_64_zMkJ')" @focus="changAttr($event,'focus')" @blur="changAttr($event,'blur')" @click.native="clickEvt" ref="password" /> </el-form-item>
changAttr/clickEvt办法
changAttr(e, type) { if (type === 'focus') { if (e) { e.stopPropagation(); e.preventDefault(); } setTimeout(() => { this.readonly = false; }, 100); } else { if (e) { e.stopPropagation(); } this.readonly = true; } }, clickEvt() { if (this.$refs.password) { this.$refs.password.$refs.input.onmousedown = (evt) => { if (evt) { evt.preventDefault(); evt.stopPropagation(); } if (this.ruleForm.password === '' || this.readonly) { this.$refs.password.$refs.input.blur(); setTimeout(() => { this.$refs.password.$refs.input.focus(); }, 0); } return false; }; } },
具体