Vue-element-admin?導(dǎo)出json和導(dǎo)入json文件的方法
應(yīng)用場景:
有一個菜單管理的功能,主要用來跟管理后臺的菜單對應(yīng),方便后臺菜單權(quán)限控制。 每次新加功能菜單都需要開發(fā)人員在后臺手動輸入,在測試環(huán)境操作完待發(fā)布時又要到生產(chǎn)環(huán)境操作一遍,非常繁瑣。
為了簡化操作流程,計劃做一個導(dǎo)出再導(dǎo)入的功能,基于適用人群和數(shù)據(jù)特征,覺得json文件比較適合。 開發(fā)人員只需要在配置一次,發(fā)布時從測試環(huán)境導(dǎo)出json文件,再導(dǎo)入到生成即可。
安裝file-saver
? permission git:(feature/init) npm install file-saver --save
或者直接在 package.json 中添加
"file-saver": "^2.0.5",
導(dǎo)出
onclick: (item) => { this.exportMenu(item) }, ……………… exportMenu(row) { const filename = row?.menuName || 'unknown'; const data = JSON.stringify(this.generalExportData(row));//格式化導(dǎo)出的數(shù)據(jù),轉(zhuǎn)成JSON字符串 const blob = new Blob([data], { type: '' }); FileSaver.saveAs(blob, filename +'.json'); }, //遞歸格式化,用來處理要導(dǎo)出的json對象 generalExportData(item) { const menu = { parent: item.parent, type: item.type, name: item.name, title: item.title, icon: item.icon, path: item.path } if (item.children) { menu.children = []; item.children.forEach(child => { menu.children.push(this.generalExportData(child)) }) } return menu; },
導(dǎo)入
<el-upload v-permission="['MenuAdd']" :limit="1" action="https://jsonplaceholder.typicode.com/posts/" ref="upload" accept=".json" :file-list="fileList" :show-file-list="false" :on-change="importMenu" > <el-button v-loading="uploadLoading" v-no-more-click class="el-icon-upload" type="primary" > {{ $trans_btn('import') }} </el-button> </el-upload> importMenu(file) { let reader = new FileReader(); reader.readAsText(file.raw); reader.onload = (e) => { this.uploadLoading = true; const menu = JSON.parse(e.target.result);//轉(zhuǎn)成JSON對象 //提交給后端處理 importMenu({systemId: this.systemId, menu: menu}).then((res) => { if (res.code > 0) { this.$message.error(res.msg) } else { this.$message.success(this.$trans('msg.success')); this.saveSuccess();//處理成功要重新渲染列表 } this.uploadLoading = false }).catch((e) => { console.log(e); this.uploadLoading = false }); }; },
到此這篇關(guān)于Vue-element-admin 導(dǎo)出json和導(dǎo)入json文件的文章就介紹到這了,更多相關(guān)Vue-element-admin 導(dǎo)出json內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue實現(xiàn)Tab標(biāo)簽路由效果并用Animate.css做轉(zhuǎn)場動畫效果的代碼
這篇文章主要介紹了Vue實現(xiàn)Tab標(biāo)簽路由效果,并用Animate.css做轉(zhuǎn)場動畫效果,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07vue項目動態(tài)設(shè)置iframe元素高度的操作代碼
在現(xiàn)代Web開發(fā)中,iframe元素常用于嵌入外部內(nèi)容到當(dāng)前網(wǎng)頁中,比如在線文檔、視頻播放器或是廣告,Vue框架提供了強大的工具來解決這個問題,通過動態(tài)設(shè)置iframe元素的高度,我們可以確保頁面布局既美觀又高效,本文給大家介紹了vue項目動態(tài)設(shè)置iframe元素高度的操作2024-10-10vue使用cesium創(chuàng)建數(shù)據(jù)白模方式
這篇文章主要介紹了vue使用cesium創(chuàng)建數(shù)據(jù)白模方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10