BookSystem/frontend/dist/assets/RoleManage-DlN5c7Z4.js
jayhgq 6620aec5a2 fix(roles): 隐藏默认查看按钮并优化角色管理功能
- 在role-crud.ts中隐藏默认的查看按钮(view: { show: false })
- 优化RoleManage.vue的axios导入,仅导入isAxiosError
- 更新用户管理中的角色显示逻辑,确保正确显示角色名称
- 添加错误处理逻辑,显示友好的中文错误提示
- 更新相关构建文件和文档说明
2026-05-10 22:06:37 +08:00

2 lines
5.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

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{z as $,n as c,f as K,A as L,g as U,p as h,w as f,r as g,i as u,d as k,B as F,q as j,c as R,b as w,a as B,x as C,C as Y,F as G,D as Q,E as V,o as i,G as J,H as W,_ as X}from"./index-BtuGmbJn.js";import{t as Z}from"./list-query-4ZZvVtjn.js";function ee(D){return()=>({crudOptions:{pagination:{show:!1},search:{show:!0,options:{layout:"inline"},expand:!1},request:{transformQuery:({form:s})=>Z(s,["name"]),pageRequest:async s=>{const{data:t}=await c.post("/roles/search",s);return t},transformRes:({res:s})=>{const t=Array.isArray(s)?s:[];return{currentPage:1,pageSize:Math.max(t.length,1),total:t.length,records:t}},addRequest:async({form:s})=>{await c.post("/roles/",s)},editRequest:async({form:s,row:t})=>{t&&await c.put(`/roles/${t.id}`,s)},delRequest:async({row:s})=>{s&&await c.delete(`/roles/${s.id}`)}},rowHandle:{width:300,buttons:{view:{show:!1},viewPerm:{text:"查看",order:1,click:({row:s})=>{s&&D.onView(s)}},assignPerm:{text:"分配权限",order:2,click:({row:s})=>{s&&D.onAssign(s)}},edit:{text:"编辑",order:10},remove:{text:"删除",order:20}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},name:{title:"角色名称",key:"name",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},creator:{title:"创建人",key:"creator",type:"text"},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:s,row:t,key:p}){!t||s==null||(t[p]=$(s).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:s,row:t,key:p}){!t||s==null||(t[p]=$(s).format("YYYY-MM-DD HH:mm:ss"))}}}}})}const se={key:0,class:"dlg-role"},te={key:1,class:"perm-tags"},oe={key:0,class:"dlg-role"},ae=K({__name:"RoleManage",setup(D){const s=u(!1),t=u(!1),p=u(null),y=u([]),v=u(null),b=u([]),x=u(),P=u(!1),T={label:"label",children:"children"};function A(o){return o.map(e=>{var n;return{id:e.id,label:`${e.name}${e.code}`,children:(n=e.children)!=null&&n.length?A(e.children):void 0}})}async function E(){const{data:o}=await c.get("/permissions/tree");b.value=A(o??[])}async function H(o){p.value=o,s.value=!0;try{const{data:e}=await c.get(`/permissions/role/${o.id}`);y.value=e.permissions??[]}catch{V.error("加载权限失败"),y.value=[]}}function O(o){v.value=o,t.value=!0}async function z(){var e,n,m,a,d;const o=v.value;if(o)try{console.log(`Loading permissions for role id: ${o.id}`);const r=await c.get(`/permissions/role/${o.id}`);console.log("Response data:",r.data);const _=(r.data.permissions??[]).map(q=>q.id);console.log("Permission IDs:",_),await J(),(e=x.value)==null||e.setCheckedKeys(_)}catch(r){console.error("Error loading role permissions:",r),W(r)&&(console.error("Response status:",(n=r.response)==null?void 0:n.status),console.error("Response data:",(m=r.response)==null?void 0:m.data),console.error("Request URL:",(a=r.request)==null?void 0:a.url)),V.error("加载角色权限失败"),(d=x.value)==null||d.setCheckedKeys([])}}async function N(){var e,n,m;const o=v.value;if(o){P.value=!0;try{const a=((e=x.value)==null?void 0:e.getCheckedKeys(!1))??[];await c.post("/permissions/assign",{role_id:o.id,permission_ids:a}),V.success("保存成功"),t.value=!1,M.doRefresh()}catch(a){const d=(m=(n=a==null?void 0:a.response)==null?void 0:n.data)==null?void 0:m.detail;V.error(typeof d=="string"?d:"保存失败")}finally{P.value=!1}}}const{crudBinding:S,crudRef:I,crudExpose:M}=L({createCrudOptions:ee({onView:H,onAssign:O})});return U(async()=>{await E(),M.doRefresh()}),(o,e)=>{const n=g("fs-crud"),m=g("el-tag"),a=g("el-empty"),d=g("el-dialog"),r=g("el-tree"),_=g("el-button"),q=g("fs-page");return i(),h(q,null,{default:f(()=>[k(n,F({ref_key:"crudRef",ref:I},j(S)),null,16),k(d,{modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=l=>s.value=l),title:"查看角色权限",width:"560px","destroy-on-close":"",onClosed:e[1]||(e[1]=l=>y.value=[])},{default:f(()=>[p.value?(i(),R("p",se,[e[4]||(e[4]=w(" 角色:",-1)),B("strong",null,C(p.value.name),1)])):Y("",!0),y.value.length?(i(),R("div",te,[(i(!0),R(G,null,Q(y.value,l=>(i(),h(m,{key:l.id,class:"perm-tag",type:"info"},{default:f(()=>[w(C(l.name)+""+C(l.code)+" ",1)]),_:2},1024))),128))])):(i(),h(a,{key:2,description:"暂未分配权限","image-size":72}))]),_:1},8,["modelValue"]),k(d,{modelValue:t.value,"onUpdate:modelValue":e[3]||(e[3]=l=>t.value=l),title:"分配权限",width:"640px","destroy-on-close":"",onOpen:z},{footer:f(()=>[k(_,{onClick:e[2]||(e[2]=l=>t.value=!1)},{default:f(()=>[...e[6]||(e[6]=[w("取消",-1)])]),_:1}),k(_,{type:"primary",loading:P.value,onClick:N},{default:f(()=>[...e[7]||(e[7]=[w(" 保存 ",-1)])]),_:1},8,["loading"])]),default:f(()=>[v.value?(i(),R("p",oe,[e[5]||(e[5]=w(" 角色:",-1)),B("strong",null,C(v.value.name),1)])):Y("",!0),b.value.length?(i(),h(r,{key:1,ref_key:"permTreeRef",ref:x,class:"perm-tree",data:b.value,"show-checkbox":"","node-key":"id",props:T,"default-expand-all":"","check-strictly":!1},null,8,["data"])):(i(),h(a,{key:2,description:"暂无权限数据","image-size":64}))]),_:1},8,["modelValue"])]),_:1})}}}),le=X(ae,[["__scopeId","data-v-0e80fdd4"]]);export{le as default};