老师要求我不输入报修用户,默认是自己的账号,那么我想到的就是用vuex全局变量来实现。
最终结果是这样,但实现时遇到了一个问题,用户名可以是中文也可以是英文,中文与英文计算长度的方法是完全不一样的。所以就需要进行字符的判断。
vuex:
export default new Vuex.Store({
state: {
username:'Zyatoer',
pwd:'233',
url:'',
amountprice:0,
waterprice:0,
charge:0,
dormid:0,
roomid:0,
tasktitle:'哈',
taskarea:'',
tasklist:[]
},
getters:{
getTasktitle(state){
return state.tasktitle
},
getTaskarea(state){
return state.taskarea
},
getUsername(state){
return state.username
},
getPassworld(state){
return state.pwd
},
getUrl(state){
return state.url
},
getAmountPrice(state){
return state.amountprice
},
getWaterPrice(state){
return state.waterprice
},
getCharge(state){
return state.charge
},
getDormid(state){
return state.dormid
},
getRoomid(state){
return state.roomid
},
getTasklist(state){
return state.tasklist
}
这里是根据用户的输入来获取相应的全局变量
mounted () {
var _this = this;
_this.resetinput()
// _this.gettime()
// console.log(_this.report.length)
}
挂载函数,在页面挂载时就将input处理好
resetinput(){
let name = document.getElementById('reportman')
let phone = document.getElementById('reporphone')
this.rname = this.$store.state.username
let rname = this.rname
let path = this.isChina(rname)
console.log(path)
if(path == true){
path = 0.36
}else{
path = 0.18
}
let namelength = this.rname.length*path
let phonelength = this.rphone.length*0.36
name.style.width = namelength+'rem'
phone.style.width = phonelength+'rem'
},
//判断是否为中文
isChina(str){
var pattern = new RegExp("[\u4E00-\u9FA5]+");
if(pattern.test(str)){
//如果不是中文返回false
return true
}else{
return false
}
},
通过isChina判断是否为中文,如果为中文则返回不同的长度