Vue-element-admin?導(dǎo)出json和導(dǎo)入json文件的方法
應(yīng)用場(chǎng)景:
有一個(gè)菜單管理的功能,主要用來跟管理后臺(tái)的菜單對(duì)應(yīng),方便后臺(tái)菜單權(quán)限控制。 每次新加功能菜單都需要開發(fā)人員在后臺(tái)手動(dòng)輸入,在測(cè)試環(huán)境操作完待發(fā)布時(shí)又要到生產(chǎn)環(huán)境操作一遍,非常繁瑣。
為了簡(jiǎn)化操作流程,計(jì)劃做一個(gè)導(dǎo)出再導(dǎo)入的功能,基于適用人群和數(shù)據(jù)特征,覺得json文件比較適合。 開發(fā)人員只需要在配置一次,發(fā)布時(shí)從測(cè)試環(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對(duì)象
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對(duì)象
//提交給后端處理
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue 項(xiàng)目中的this.$get,this.$post等$的用法案例詳解
vue.js的插件應(yīng)該暴露一個(gè)install方法。這個(gè)方法的第一個(gè)參數(shù)是vue構(gòu)造器,第二個(gè)參數(shù)是一個(gè)可選的選項(xiàng)對(duì)象,首頁(yè)要安裝axios,本文結(jié)合案例代碼給大家詳細(xì)講解vue 中的this.$get,this.$post等$的用法,一起學(xué)習(xí)下吧2022-12-12
Vue3+Antd實(shí)現(xiàn)彈框顯示內(nèi)容并加入復(fù)制按鈕
這篇文章主要介紹了Vue3+Antd實(shí)現(xiàn)彈框顯示內(nèi)容并加入復(fù)制按鈕,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
Vue實(shí)現(xiàn)美團(tuán)app的影院推薦選座功能【推薦】
大家都經(jīng)常使用美團(tuán)app買電影票,很多朋友不知道她的功能是怎么實(shí)現(xiàn)的,作為我程序員一枚對(duì)它的算法很好奇,今天小編就把基于Vue實(shí)現(xiàn)美團(tuán)app的影院推薦選座功能分享到腳本之家平臺(tái),感興趣的朋友一起看看吧2018-08-08
Vue前端中展示監(jiān)控?cái)z像頭視頻流完整的配置和實(shí)現(xiàn)方案
在Vue框架中實(shí)現(xiàn)播放監(jiān)控視頻流,是一個(gè)涉及前端技術(shù)和后端服務(wù)的綜合性任務(wù),這篇文章主要介紹了Vue前端中展示監(jiān)控?cái)z像頭視頻流完整的配置和實(shí)現(xiàn)方案的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-06-06

