1.vform的使用與傳值
使用動態表單,把當前的用戶名傳值進動態表單,另外動態表單的上傳組件成功后傳值會父組件。
在父組件的加載函數中增加:
mounted(){this.$refs.vFormRef.addEC("getuploadfile",this);},
該方法為給表單加載外部組件。如下:
現在我們到表單設置的頁面中
const getatt=this.getFormRef().getEC("getuploadfile");
const info=getatt.getuserinfo();
this.getWidgetRef("name",showError=true).setValue(info)
該語句的含義為,先獲取外部組件,然后調用外部組件的方法。
this.getWidgetRef(“name”,showError=true).setValue(info)中的name是組件的名,見圖。
然后,再看上傳組件的方法
this.getWidgetRef("table_id",showError=true).setValue(result.msg)
const getatt=this.getFormRef().getEC("getuploadfile");
getatt.getattlist(result.msg)
含義為上傳文件成功為調用父組件的getattlist()方法
getattlist(param){this.tableId=paramthis.attqueryParams.tableId=paramlistAttendance(this.attqueryParams).then(res => {res.rows.forEach(item=>item.savebtn=1);this.attendanceList = res.rows;this.total = res.total;});},
通過this.$refs.vFormRef.addEC(“name”,this);方法給父組件定義一個名稱;
表單內部使用this.getFormRef().getEC(“name”)可以獲取到這個父組件。進而可以調用父組件的所有方法。
2.el-table中的行動態改變樣式
查詢資料使用 :row-class-name="函數"這個方法來動態改變樣式。
代碼片段如下:
<el-table :data="attendanceList" :row-class-name="rowStyle" @cell-mouse-enter="handleCellEnter" @cell-mouse-leave="handleCellLeave" ><el-table-column type="selection" width="55" align="center" />
在組件的方法中定義rowStyle
rowStyle({row, rowIndex}){const date=new Date();date.setDate(date.getDate()-15)if(new Date(row.entryTime)>date){return 'success__class';}else if(new Date(row.leaveDate)>date){return 'error__class';}if(row.remark !=''){}return '';},
避坑
需要定義success__class和error__class的樣式
.el-table .success__class{color:white;background-color:red;}.el-table .error__class{text-decoration: line-through;background-color:grey}
本來寫到了使用el-table的父組件中的樣式表中,結果樣式不發生變化,從瀏覽器里面調試查看 table tr 的class中已經根據條件出現了success__class和error__class,但樣式沒有變化!!
幾經排查發現,主要是因為父組件中的
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
我們把success__class和error__class的樣式寫到/assets/styles/index.scss中,保存即可生效。
3.靜態資料下載
想法把系統說明書放到前端中,直接使用URL下載,
前端頁面代碼如:
<p><i class="el-icon-shopping-bag-2"></i> 生產運營流程幫助文檔下載:<a style="color: #365be4" href="/static/doc/用戶手冊-生產運營.docx" target="_blank">點我下載</a></p>
避坑
嘗試把《用戶手冊-生產運營.docx》放到ruoyi-ui/src/assets/doc/中,doc文件夾是新建,結果測試無法下載,查詢資料,需要把《用戶手冊-生產運營.docx》放到ruoyi-ui/public/static/doc/中,測試成功。
打包之后/public/static/doc目錄一樣存在。部署測試下載說明書成功!!
特此記錄上述三點。