Files
fast_response/front/public/admin/assets/pages-system-menu-list.DeqaCHr3.js
Your Name dce091da91 t
2025-03-27 07:52:44 +00:00

2 lines
7.6 KiB
JavaScript
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as e,V as n,J as t,a4 as a,T as s,q as i,a5 as l,a6 as u,d as r,f as d,c as o,w as c,i as m,x as _,y as p,z as g,A as f,o as h,h as b,j as y,a as M,t as C,b as T,a7 as x,a8 as k,k as w,l as v,F as S,C as $}from"./index-Br__yMYG.js";import{_ as z}from"./uni-badge.BmciozNA.js";import{_ as j}from"./unicloud-db.DlY2v4vi.js";n.database();const D=[];function I(e,n,t=0){return e.forEach((a=>{a.menu_id===n&&a.parent_id&&(t=t+1+I(e,a.parent_id,t))})),t}function L(e,n,t=[]){return e.find((e=>e.parent_id===n))&&e.forEach((a=>{a.parent_id===n&&(t.push(a._id),L(e,a.menu_id,t))})),t}const P=e({data:()=>({query:"",where:"",orderby:"create_date asc",options:{pageSize:2e4,pageCurrent:1},selectedIndexs:[],loading:!0,menus:[],errMsg:"",currentTab:"menus",selectedPluginMenuIndexs:[]}),computed:{pluginMenus(){const e=[];if(!this.$hasRole("admin"))return e;const n=this.menus;return n.length?(D.forEach((t=>{n.find((e=>e.menu_id===t.menu_id))||e.push(t)})),e):e}},watch:{pluginMenus(e){e.length||(this.currentTab="menus")}},methods:{...t({init:"app/init"}),getSortMenu:e=>(e.map((n=>{e.some((e=>e.parent_id===n.menu_id))||(n.isLeafNode=!0)})),a(e)),onqueryload(e){for(var n=0;n<e.length;n++){let t=e[n];const a=I(e,t.menu_id);t.name=(a?" ".repeat(a)+"|-":"")+t.name}const t=this.getSortMenu(e),a=[];this.patTree(t,a),e.length=0,e.push(...a),this.menus=e},patTree(e,n){return e.forEach((e=>{n.push(e),e.children.length&&this.patTree(e.children,n)})),n},switchTab(e){this.currentTab=e},loadData(e=!0){this.$refs.udb.loadData({clear:e})},navigateTo(e,n){s({url:e,events:{refreshData:()=>{this.loadData(n)}}})},confirmDelete(e){let n=e._id,t="是否删除该菜单?";const a=L(this.menus,e.menu_id);a.length&&(t="是否删除该菜单及其子菜单?"),n=[n,...a],i({title:"提示",content:t,success:e=>{e.confirm&&this.$refs.udb.remove(n,{needConfirm:!1})}})},pluginMenuSelectChange(e){this.selectedPluginMenuIndexs=e.detail.index},addPluginMenus(e){if(!this.selectedPluginMenuIndexs.length)return i({title:"提示",content:"请选择要添加的菜单!",showCancel:!1});const t=this.pluginMenus,a=[];this.selectedPluginMenuIndexs.forEach((e=>{const n=t[e];if(n){const e=JSON.parse(JSON.stringify(n));delete e.json,a.push(e)}})),i({title:"提示",content:"您确认要添加已选中的菜单吗?",success:e=>{if(!e.confirm)return;l({mask:!0});const s=a.length===t.length;n.database().collection("opendb-admin-menus").add(a).then((e=>{this.init(),i({title:"提示",content:"添加菜单成功!",showCancel:!1,success:()=>{this.$refs.pluginMenusTable.clearSelection(),s&&(this.currentTab="menus"),this.loadData()}})})).catch((e=>{i({title:"提示",content:e.message,showCancel:!1})})).finally((()=>{u()}))}})}}},[["render",function(e,n,t,a,s,i){const l=m,u=r(d("uni-badge"),z),D=$,I=r(d("uni-th"),_),L=r(d("uni-tr"),p),P=r(d("uni-td"),g),E=r(d("uni-table"),f),q=r(d("unicloud-db"),j);return h(),o(l,null,{default:c((()=>[b(l,{class:"uni-tabs__header"},{default:c((()=>[b(l,{class:"uni-tabs__nav-wrap"},{default:c((()=>[b(l,{class:"uni-tabs__nav-scroll"},{default:c((()=>[b(l,{class:"uni-tabs__nav"},{default:c((()=>[b(l,{onClick:n[0]||(n[0]=e=>i.switchTab("menus")),class:y([{"is-active":"menus"===s.currentTab},"uni-tabs__item"])},{default:c((()=>[M(C(e.$t("menu.text.menuManager")),1)])),_:1},8,["class"]),i.pluginMenus.length?(h(),o(l,{key:0,onClick:n[1]||(n[1]=e=>i.switchTab("pluginMenus")),class:y([{"is-active":"pluginMenus"===s.currentTab},"uni-tabs__item"])},{default:c((()=>[M(C(e.$t("menu.text.additiveMenu"))+" ",1),b(u,{class:"menu-badge",text:i.pluginMenus.length,type:"error"},null,8,["text"])])),_:1},8,["class"])):T("",!0)])),_:1})])),_:1})])),_:1})])),_:1}),x(b(l,null,{default:c((()=>[b(l,{class:"uni-header",style:{"border-bottom":"0","margin-bottom":"-15px"}},{default:c((()=>[b(l,{class:"uni-group"},{default:c((()=>[b(D,{onClick:n[2]||(n[2]=e=>i.navigateTo("./add")),size:"mini",plain:"true",type:"primary"},{default:c((()=>[M(C(e.$t("menu.button.addFirstLevelMenu")),1)])),_:1})])),_:1}),b(l,{class:"uni-group"})])),_:1}),b(l,{class:"uni-container"},{default:c((()=>[b(q,{ref:"udb",onLoad:i.onqueryload,collection:"opendb-admin-menus",options:s.options,where:s.where,"page-data":"replace",orderby:s.orderby,getcount:!0,"page-size":s.options.pageSize,"page-current":s.options.pageCurrent},{default:c((({data:n,pagination:t,loading:a,error:u})=>[b(E,{loading:a,class:"table-pc",emptyText:s.errMsg||e.$t("common.empty"),border:"",stripe:""},{default:c((()=>[b(L,null,{default:c((()=>[b(I,{align:"center"},{default:c((()=>[M("排序")])),_:1}),b(I,{width:"200",align:"center"},{default:c((()=>[M("名称")])),_:1}),b(I,{align:"center"},{default:c((()=>[M("标识")])),_:1}),b(I,{align:"center"},{default:c((()=>[M("URL")])),_:1}),b(I,{width:"100",align:"center"},{default:c((()=>[M("是否启用")])),_:1}),b(I,{align:"center"},{default:c((()=>[M("操作")])),_:1})])),_:1}),(h(!0),w(S,null,v(n,((n,t)=>(h(),o(L,{key:t},{default:c((()=>[b(P,{align:"center"},{default:c((()=>[M(C(n.sort),1)])),_:2},1024),b(P,null,{default:c((()=>[M(C(n.name),1)])),_:2},1024),b(P,null,{default:c((()=>[M(C(n.menu_id),1)])),_:2},1024),b(P,null,{default:c((()=>[M(C(n.url),1)])),_:2},1024),b(P,{align:"center",class:y({"menu-disable":!n.enable})},{default:c((()=>[M(C(n.enable?"已启用":"未启用"),1)])),_:2},1032,["class"]),b(P,{align:"center"},{default:c((()=>[b(l,{class:"uni-group"},{default:c((()=>[n.url?T("",!0):(h(),o(D,{key:0,onClick:e=>i.navigateTo("./add?parent_id="+n.menu_id,!1),class:"uni-button",size:"mini",type:"primary"},{default:c((()=>[M(C(e.$t("menu.button.addChildMenu")),1)])),_:2},1032,["onClick"])),b(D,{onClick:e=>i.navigateTo("./edit?id="+n._id,!1),class:"uni-button",size:"mini",type:"primary"},{default:c((()=>[M(C(e.$t("common.button.edit")),1)])),_:2},1032,["onClick"]),"system_menu"!==n.menu_id&&"system_management"!==n.menu_id?(h(),o(D,{key:1,onClick:e=>i.confirmDelete(n),class:"uni-button",size:"mini",type:"warn"},{default:c((()=>[M(C(e.$t("common.button.delete")),1)])),_:2},1032,["onClick"])):T("",!0)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1032,["loading","emptyText"])])),_:1},8,["onLoad","options","where","orderby","page-size","page-current"])])),_:1})])),_:1},512),[[k,"menus"===s.currentTab]]),x(b(l,null,{default:c((()=>[b(l,{class:"uni-header",style:{"border-bottom":"0","margin-bottom":"-15px"}},{default:c((()=>[b(l,{class:"uni-group"},{default:c((()=>[b(D,{style:{width:"130px"},onClick:i.addPluginMenus,size:"mini",type:"primary"},{default:c((()=>[M("添加选中的菜单")])),_:1},8,["onClick"])])),_:1}),b(l,{class:"uni-group"})])),_:1}),b(l,{class:"uni-container"},{default:c((()=>[b(E,{ref:"pluginMenusTable",type:"selection",border:"",stripe:"",onSelectionChange:i.pluginMenuSelectChange},{default:c((()=>[b(L,null,{default:c((()=>[b(I,{align:"center"},{default:c((()=>[M("名称(标识)")])),_:1}),b(I,{align:"center"},{default:c((()=>[M("URL")])),_:1}),b(I,{align:"center"},{default:c((()=>[M("插件菜单 json 文件")])),_:1})])),_:1}),(h(!0),w(S,null,v(i.pluginMenus,((e,n)=>(h(),o(L,{key:n},{default:c((()=>[b(P,null,{default:c((()=>[M(C(e.name)+""+C(e.menu_id)+"",1)])),_:2},1024),b(P,null,{default:c((()=>[M(C(e.url),1)])),_:2},1024),b(P,null,{default:c((()=>[M(C(e.json),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1},8,["onSelectionChange"]),b(l,{class:"uni-sub-title",style:{"margin-top":"15px"}},{default:c((()=>[M(" 以上待添加菜单来自于三方插件,添加后,将显示在菜单管理中,若不希望显示在上述表格中时,可手动删除项目中对应的`插件id-menu.json`文件。 ")])),_:1})])),_:1})])),_:1},512),[[k,"pluginMenus"===s.currentTab]])])),_:1})}],["__scopeId","data-v-83255111"]]);export{P as default};