1、出現跨域問題(已經進行跨域設置的情況下)

這個問題找了半天。。。。最后的解決方式:查看后台支持的編碼格式和前端axios發送過去的的編碼格式是否一致。不一致就會出現跨域問題。至於為什么也不明白,可能是瀏覽器認為不一致的編碼就是跨域也可能就是瀏覽器的bug吧。
具體方式:可以安裝一個叫qs的依賴,然后在請求前用qs.stringify()方法轉一下再發送請求,就ok了。
首先下載qs:npm install qs
然后引入import qs from 'qs'
在請求接口中設置一下:
代碼: export function userLogin(params){
return service({
method:'post',
url:'/a/login',
data: qs.stringify(params), //主要是這一步很重要!
}).then((res)=>{return res.data}).catch((err)=>{console.log(err)})
}
2、vue多個路由綁定到同一個組件上,造成created只執行一次,就是說頁面加載成功一次后就不能再變化,所以不論怎么觸發路由跳轉頁面都只顯示第一次加載的數據。
效果:點擊左側樹節點實現右側頁面跳轉
經查閱資料,原因是:這個和vue的生命周期有關系,出現這種情況是因為頁面在加載成功后他的大多數鈎子函數(如mounted、computed...)就不會再次觸發,所以導致頁面感覺沒有實現跳轉。
解決方法:針對這種情況,其實不需要進行頁面切換,只需要頁面中的數據發生變化就好。在頁面中監聽路由地址的變化,當地址變化的時候,就重新加載數據。
具體代碼:
watch: {
'$route.path': function (to, from) {
this.initInfo();//調用相應方法
}
}
3、el-tree控件,鼠標手移到樹節點上,鼠標手和節點顯示不對應。
原因:樣式設置有問題,通過f12調試發現,某條樹節點的高度太高,以至於把其他的節點都覆蓋住了,所以這個節點高度太高,跨度太大,所以鼠標手和節點位置會有偏差。
解決:修改每個樹節點的高度。
4、el-tree控件,如何設置樹節點選中背景顏色
解決:加上highlight-current

在樣式中設置:

5、element-ui組件使用el-table如何動態設置列表的寬度
首先說一下自己遇到的問題吧:

表頭數據也是動態獲取的,所以不好給每表頭設置固定寬度,而且是使用v-for循環顯示表頭。這個時候的需求就是想把倒數第二列的寬度設置寬一些,其他列寬度窄些。
具體的實現方法:


在表格中添加寬度屬性:width,在method中添加自定義列的寬度的方法。判斷某個表頭的字段是不是倒數第二個,然后設置寬度,如果不是再設置成其他寬度。這里我為了讓表格寬度自適應不同瀏覽器,用了百分比設置寬度,但是效果不理想。
所以考慮不用百分比但又要自適應,這里才有min-width,設置最小寬度的同時會動態分配寬度。


這時候效果就比較理想,效果圖如下:

6、el-tree控制如何自定義圖標樣式?
怎么將圖標從圖1改成圖2,數據從后台獲取的?
解決:研究了一下開發文檔有個icon-class可以自定義圖標樣式
剛開始我理解錯了,在icon-class前加了:當做動態屬性處理了,其實這個就是一個class。

這樣直接使用即可。
就可以得到想要的效果。class具體的值可以查看
https://element.eleme.cn/#/zh-CN/component/icon
7、element-ui組件中使用form表單,自定義驗證規則時導致validate不能執行。
解決:在自定義規則中

一定要在自定義規則之后加上else{callback()}
否則,callback不能進行回調。導致validate()無法執行。
如果有多條驗證規則,每條規則都要加上else{callback()}才可以!
