1账劲、給element的input添加點(diǎn)擊事件無效初澎,代碼如下:
<el-input type="textarea"? readonly @click="openRole()" placeholder="請(qǐng)輸入內(nèi)容" v-model="name" > </el-input>
修改為@click.native即可;
<el-input type="textarea"? readonly @click.native="openRole()" placeholder="請(qǐng)輸入內(nèi)容" v-model="name" > </el-input>
2橘霎、element的dialog里面嵌套dialog,第二層會(huì)被遮蓋
解決辦法:給dialog添加屬性“:append-to-body=true”,再修改一下樣式即可
3蔫浆、vue-router路由無法跳轉(zhuǎn),且路徑總有“ # ”
解決辦法:添加mode:' history '姐叁,既可以去掉#瓦盛,也能實(shí)現(xiàn)路由的跳轉(zhuǎn),如下圖所示
4外潜、echart圖表的div寬高設(shè)置為100%原环,渲染的實(shí)際寬高變成100px;
解決辦法:在mounted()中添加如下代碼
????let chart = document.getElementById(('myChart'));
? ? chart.style.width = window.innerWidth - 560 + 'px';//數(shù)字根據(jù)自身進(jìn)行調(diào)整
? ? chart.style.height = window.innerHeight - 140 + 'px';
? ? this.myChart = this.$echarts.init(chart);
? ? let that = this;
? ? window.addEventListener("resize", function () {
? ? ? let chart = document.getElementById(('myChart'));
? ? ? chart.style.width = window.innerWidth - 560 + 'px';
? ? ? chart.style.height = window.innerHeight - 140 + 'px';
? ? ? that.myChart.resize();
? ? });
5、echart餅圖無法展示數(shù)據(jù)处窥,如下圖
解決辦法:在option.series每條數(shù)據(jù)添加label:
label : { normal : { formatter: '嘱吗{c} (0y2c4ce%)', textStyle : { fontWeight : 'normal',? fontSize : 15 } } },
注:option.series每條數(shù)據(jù)加radius : '80%',?center: ['50%', '50%'],可調(diào)整餅圖大小和圓心位置
6、設(shè)置div寬高= 屏幕可見的寬高? -? 指定寬高(注意空格)
width: calc(100vw - 540px);????????height: calc(100vh - 140px);
7滔驾、vue+element中validate方法不執(zhí)行也不報(bào)錯(cuò)
癥結(jié):自定義校驗(yàn)中需每一個(gè)判斷都有callback()
問題描述:寫了一個(gè)自定義校驗(yàn)金額的規(guī)則谒麦,代碼如下(第一次未加else):
但是點(diǎn)擊保存按鈕時(shí),未彈出“保存成功”的提示哆致,代碼如下
8绕德、element的el-table表頭和表格有錯(cuò)位,解決辦法在th中添加如下樣式
display: table-cell!important;
9沽瞭、a=[1,2,3],b.a=a;a[0]=0;b.b=a;此時(shí)發(fā)現(xiàn)b中的a也變成了[0,1,2],
癥結(jié):js對(duì)象的深復(fù)制和淺復(fù)制
解決辦法:a=[1,2,3],b.a=JSON.parse(JSON.stringify(a);
a[0]=0;b.b=JSON.parse(JSON.stringify(a))
解析:深復(fù)制:b復(fù)制了a,a改變了迁匠,b沒變;???實(shí)現(xiàn)方式{
(1)b= JSON.parse(JSON.stringify(a)) (2)遞歸復(fù)制所有屬性(3)jquery的$.extend方法? ? ?}
? ??淺復(fù)制:b復(fù)制了a,a改變了,b也變了;? ?實(shí)現(xiàn)b=a
10驹溃、element 懸浮框樣式修改
問題描述:使用el-select ,下拉框樣式需要進(jìn)行修改,但是不能影響其他頁面的下拉框樣式延曙。
癥結(jié):scoped讓樣式只在當(dāng)前頁作用豌鹤,但是element自帶的樣式無法與scoped兼容
解決辦法:el-select有屬性popper-class(給下拉框設(shè)置class),然后以這個(gè)class來設(shè)置樣式,不能使用scoped,否則無法生效
11枝缔、axios請(qǐng)求同步
問題描述:表頭和表數(shù)據(jù)是兩個(gè)獨(dú)立接口布疙,頁面表頭 渲染出來蚊惯,表數(shù)據(jù)無法渲染,但是有對(duì)應(yīng)條數(shù)的方格灵临。
癥結(jié):axios是異步請(qǐng)求截型,數(shù)據(jù)請(qǐng)求有時(shí)間差
解決辦法:修改axios請(qǐng)求,將兩個(gè)接口同步請(qǐng)求儒溉,然后再進(jìn)行處理
axios.all([請(qǐng)求1,請(qǐng)求2]).then(axios.spread(function(res1,res2){
//res1是請(qǐng)求1的返回結(jié)果宦焦,res2是請(qǐng)求2的返回結(jié)果
}))
12、vue+xlsx實(shí)現(xiàn)前端下載功能顿涣,但導(dǎo)出重復(fù)的表格數(shù)據(jù)
癥結(jié):el-table用fixed屬性使表格的某列固定不動(dòng)波闹,element實(shí)現(xiàn)固定列的原理是:創(chuàng)建兩個(gè)table的dom元素,通過一個(gè)顯示涛碑、一個(gè)隱藏來實(shí)現(xiàn)交互效果精堕。這也導(dǎo)致導(dǎo)出時(shí)會(huì)將兩個(gè)table都 導(dǎo)出,導(dǎo)致數(shù)據(jù)重復(fù)
解決辦法:下載時(shí)先移除有fixed的table元素蒲障,然后在append回去歹篓。這樣既能實(shí)現(xiàn)導(dǎo)出單份數(shù)據(jù),也能保留固定列的功能揉阎。具體解決辦法如下圖:
13庄撮、前端調(diào)用后臺(tái)地址實(shí)現(xiàn)下載功能,ie下報(bào)錯(cuò)? ? ?原因是路徑有中文余黎,需要手動(dòng)轉(zhuǎn)義
原代碼:window.location.href=baseUrl+'?name=張三&age=14'
正確代碼:window.location.href=encodeURI(baseUrl+'?name=張三&age=14')
14重窟、多級(jí)表頭,表頭是循環(huán)生成惧财,但是樣式錯(cuò)亂巡扇。
原本兩個(gè)子類的一級(jí)表頭只有一個(gè)子類,還有其他的一級(jí)表頭無法顯示垮衷。
原因在于循環(huán)時(shí)必須綁定的key值厅翔,循環(huán)生成,每次使用的都是下標(biāo)搀突,導(dǎo)致key值會(huì)有重復(fù)刀闷。將key值 設(shè)置為唯一標(biāo)識(shí)的字段即可解決問題
15、子組件強(qiáng)制刷新頁面仰迁,加載mounted方法:
描述:父組件給子組件傳值甸昏,若第二次和第一次傳的值一樣,watch無法監(jiān)控徐许,導(dǎo)致數(shù)據(jù)沒變化施蜜,因此需要強(qiáng)制刷新子組件,讓其執(zhí)行mounted函數(shù)
解決辦法:在父組件中雌隅,子組件綁定不同的key,便可實(shí)現(xiàn)強(qiáng)制刷新
<child :key='key'></child>
data() { return { key:0}},
function xx(){this.key++;}
16翻默、element的下拉框添加多選缸沃,報(bào)錯(cuò):Error in event handler for "handleOptionClick": "TypeError: value.push is not a function
癥結(jié):多選框綁定的參數(shù)應(yīng)該是個(gè)數(shù)組,而非字符串
form:{? cityName:[]//?cityName:""就會(huì)報(bào)以上錯(cuò)誤修械,切記?}
補(bǔ)充:若提交給后臺(tái)的是字符串趾牧,可在提交前cityName.toString()將其轉(zhuǎn)換成字符串。