BookSystem/frontend/dist/assets/RoleManage-C7cZ0SSm.js
jayhgq 0545d68018 feat(settings):增加系统Logo系统设置项,并支持根据上传的图片显示系统logo
1. 系统设置中增加系统Logo设置项
2. 系统标题增加logo的显示,并可自动判断,是否上传logo,若上传则显示
3. 完善系统设置功能,支持上传图片,支持设置值为布尔值或列表
4. 增加上传和获取图片的接口
5. 完善nginx,支持图片的接口代理
2026-06-19 23:17:13 +08:00

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