You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
5.9 KiB
1 line
5.9 KiB
import{C as e,Ct as t,D as n,E as r,G as i,I as a,T as o,X as s,Xt as c,Y as l,at as u,b as d,d as f,ht as p,m,ot as h,tn as g,x as _}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as v,l as y,s as b}from"./index-DPkd2m0V.js";import{t as x}from"./usePageLoad-DFTLo_Lv.js";import{r as S}from"./admin-list-CBoToEFo.js";import{r as C}from"./menus-DmW1hoEc.js";import{a as w,i as T,n as E,r as D,t as O}from"./roles-DTsz1LFJ.js";var k={class:`list-page`},A={class:`page-header`},j={class:`list-filter-bar`},M={class:`table-row-actions`},N={class:`list-pager`},P=b(n({__name:`index`,setup(n){let b=p(!1),P=p([]),F=p({current_page:1,per_page:20,total:0}),I=p(``),L=p(1),R=p([]),z=p(!1),B=p(null),V=p({code:``,name:``,remark:``,sort:0,status:1}),H=p();function U(e){return e.map(e=>({id:e.id,label:e.title,children:e.children?.length?U(e.children):void 0}))}async function W(){b.value=!0;try{let e=await T({page:L.value,page_size:F.value.per_page,keyword:I.value||void 0});P.value=e.items,F.value=e.meta}finally{b.value=!1}}async function G(){R.value=U(await C())}async function K(){B.value=null,V.value={code:``,name:``,remark:``,sort:0,status:1},await G(),z.value=!0,await a(),H.value?.setCheckedKeys([],!1)}async function q(e){e.code===`super_admin`&&y.warning(`超级管理员角色请谨慎修改菜单分配`),B.value=e.id,await G();let t=await D(e.id);V.value={code:t.code,name:t.name,remark:t.remark||``,sort:t.sort,status:t.status},z.value=!0,await a(),H.value?.setCheckedKeys(t.menu_ids,!1)}async function J(){let e=H.value?.getCheckedKeys(!1)||[];B.value?await w(B.value,{name:V.value.name,remark:V.value.remark||null,sort:V.value.sort,status:V.value.status,menu_ids:e}):await O({code:V.value.code,name:V.value.name,remark:V.value.remark||null,sort:V.value.sort,status:V.value.status,menu_ids:e}),y.success(`已保存`),z.value=!1,await W()}async function Y(e){if(e.code===`super_admin`){y.warning(`不能删除预置超级管理员`);return}await v.confirm(`确定删除角色「${e.name}」?`,`提示`,{type:`warning`}),await E(e.id),y.success(`已删除`),await W()}function X(){L.value=1,W()}function Z(){I.value=``,L.value=1,W()}return x(W),(n,a)=>{let p=l(`el-button`),v=l(`el-input`),y=l(`el-table-column`),x=l(`el-table`),C=l(`el-pagination`),w=l(`el-card`),T=l(`el-form-item`),E=l(`el-input-number`),D=l(`el-switch`),O=l(`el-form`),U=l(`el-tree`),G=l(`el-dialog`),Q=s(`loading`);return i(),e(m,null,[d(`div`,k,[d(`div`,A,[a[11]||=d(`h1`,{class:`page-title`},`角色管理`,-1),r(p,{type:`primary`,size:`small`,class:`btn-create`,onClick:K},{default:u(()=>[...a[10]||=[o(`新增角色`,-1)]]),_:1})]),r(w,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,j,[r(v,{modelValue:I.value,"onUpdate:modelValue":a[0]||=e=>I.value=e,placeholder:`名称/编码`,clearable:``,class:`filter-search`,onKeyup:f(X,[`enter`])},null,8,[`modelValue`]),r(p,{type:`primary`,onClick:X},{default:u(()=>[...a[12]||=[o(`搜索`,-1)]]),_:1}),r(p,{onClick:Z},{default:u(()=>[...a[13]||=[o(`重置`,-1)]]),_:1})]),h((i(),_(x,{data:P.value,"row-key":`id`},{default:u(()=>[r(y,{prop:`code`,label:`编码`,width:`160`}),r(y,{prop:`name`,label:`名称`,width:`160`}),r(y,{prop:`remark`,label:`备注`,"min-width":`200`,"show-overflow-tooltip":``}),r(y,{prop:`sort`,label:`排序`,width:`80`,align:`center`}),r(y,{label:`状态`,width:`90`,align:`center`},{default:u(({row:e})=>[d(`span`,{class:c([`status-badge`,t(S)(e.status)])},g(e.status===1?`启用`:`停用`),3)]),_:1}),r(y,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,M,[r(p,{class:`btn-action-secondary`,onClick:t=>q(e)},{default:u(()=>[...a[14]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(p,{class:`btn-action-secondary`,disabled:e.code===`super_admin`,onClick:t=>Y(e)},{default:u(()=>[...a[15]||=[o(` 删除 `,-1)]]),_:1},8,[`disabled`,`onClick`])])]),_:1})]),_:1},8,[`data`])),[[Q,b.value]]),d(`div`,N,[r(C,{"current-page":L.value,"onUpdate:currentPage":a[1]||=e=>L.value=e,layout:`total, prev, pager, next`,total:F.value.total,"page-size":F.value.per_page,onCurrentChange:W},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(G,{modelValue:z.value,"onUpdate:modelValue":a[9]||=e=>z.value=e,title:B.value?`编辑角色`:`新增角色`,width:`520px`},{footer:u(()=>[r(p,{onClick:a[8]||=e=>z.value=!1},{default:u(()=>[...a[16]||=[o(`取消`,-1)]]),_:1}),r(p,{type:`primary`,onClick:J},{default:u(()=>[...a[17]||=[o(`保存`,-1)]]),_:1})]),default:u(()=>[a[18]||=d(`p`,{class:`hint`},[o(`当前阶段仅按`),d(`strong`,null,`菜单`),o(`控制侧栏与页面入口;接口暂不做权限码校验。`)],-1),r(O,{"label-width":`88px`},{default:u(()=>[B.value?(i(),_(T,{key:1,label:`编码`},{default:u(()=>[r(v,{modelValue:V.value.code,"onUpdate:modelValue":a[3]||=e=>V.value.code=e,disabled:``},null,8,[`modelValue`])]),_:1})):(i(),_(T,{key:0,label:`编码`},{default:u(()=>[r(v,{modelValue:V.value.code,"onUpdate:modelValue":a[2]||=e=>V.value.code=e,placeholder:`唯一编码`},null,8,[`modelValue`])]),_:1})),r(T,{label:`名称`},{default:u(()=>[r(v,{modelValue:V.value.name,"onUpdate:modelValue":a[4]||=e=>V.value.name=e},null,8,[`modelValue`])]),_:1}),r(T,{label:`备注`},{default:u(()=>[r(v,{modelValue:V.value.remark,"onUpdate:modelValue":a[5]||=e=>V.value.remark=e,type:`textarea`,rows:2},null,8,[`modelValue`])]),_:1}),r(T,{label:`排序`},{default:u(()=>[r(E,{modelValue:V.value.sort,"onUpdate:modelValue":a[6]||=e=>V.value.sort=e},null,8,[`modelValue`])]),_:1}),r(T,{label:`状态`},{default:u(()=>[r(D,{modelValue:V.value.status,"onUpdate:modelValue":a[7]||=e=>V.value.status=e,"active-value":1,"inactive-value":0},null,8,[`modelValue`])]),_:1})]),_:1}),a[19]||=d(`h4`,{class:`tree-title`},`菜单分配`,-1),r(U,{ref_key:`menuRef`,ref:H,data:R.value,"show-checkbox":``,"node-key":`id`,props:{label:`label`,children:`children`},"default-expand-all":``,"check-strictly":``,class:`menu-tree`},null,8,[`data`])]),_:1},8,[`modelValue`,`title`])],64)}}}),[[`__scopeId`,`data-v-97831e12`]]);export{P as default}; |