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.8 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-BKGTVidA.js";import{n as x,t as S}from"./usePageLoad-D9c6HmVf.js";import{r as C}from"./admin-list-DjncsyJC.js";import{r as w}from"./menus-Dn5_D4Aw.js";import{a as T,i as E,n as D,r as O,t as k}from"./roles-CkdU5cIP.js";var A={class:`list-page`},j={class:`page-header`},M={class:`list-filter-bar`},N={class:`table-row-actions`},P={class:`list-pager`},F=b(n({__name:`index`,setup(n){let b=p(!1),F=p([]),I=p({current_page:1,per_page:20,total:0}),L=p(``),R=p(1),z=p([]),B=p(!1),V=p(null),H=p({code:``,name:``,remark:``,sort:0,status:1}),U=p();function W(e){return e.map(e=>({id:e.id,label:e.title,children:e.children?.length?W(e.children):void 0}))}async function G(){b.value=!0;try{let e=await E({page:R.value,page_size:I.value.per_page,keyword:L.value||void 0});F.value=e.items,I.value=e.meta}finally{b.value=!1}}async function K(){z.value=W(await w())}async function q(){V.value=null,H.value={code:``,name:``,remark:``,sort:0,status:1},await K(),B.value=!0,await a(),U.value?.setCheckedKeys([],!1)}async function J(e){e.code===`super_admin`&&y.warning(`超级管理员角色请谨慎修改菜单分配`),V.value=e.id,await K();let t=await O(e.id);H.value={code:t.code,name:t.name,remark:t.remark||``,sort:t.sort,status:t.status},B.value=!0,await a(),U.value?.setCheckedKeys(t.menu_ids,!1)}async function Y(){let e=U.value?.getCheckedKeys(!1)||[];V.value?await T(V.value,{name:H.value.name,remark:H.value.remark||null,sort:H.value.sort,status:H.value.status,menu_ids:e}):await k({code:H.value.code,name:H.value.name,remark:H.value.remark||null,sort:H.value.sort,status:H.value.status,menu_ids:e}),y.success(`已保存`),B.value=!1,await G()}async function X(e){if(e.code===`super_admin`){y.warning(`不能删除预置超级管理员`);return}await v.confirm(`确定删除角色「${e.name}」?`,`提示`,{type:`warning`}),await D(e.id),y.success(`已删除`),await G()}function Z(){R.value=1,G()}function Q(){L.value=``,R.value=1,G()}return S(G),(n,a)=>{let p=l(`el-button`),v=l(`el-input`),y=l(`el-table-column`),S=l(`el-table`),w=l(`el-pagination`),T=l(`el-card`),E=l(`el-form-item`),D=l(`el-input-number`),O=l(`el-switch`),k=l(`el-form`),W=l(`el-tree`),K=l(`el-dialog`),$=s(`loading`);return i(),e(m,null,[d(`div`,A,[d(`div`,j,[r(x),r(p,{type:`primary`,size:`small`,class:`btn-create`,onClick:q},{default:u(()=>[...a[10]||=[o(`新增角色`,-1)]]),_:1})]),r(T,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,M,[r(v,{modelValue:L.value,"onUpdate:modelValue":a[0]||=e=>L.value=e,placeholder:`名称/编码`,clearable:``,class:`filter-search`,onKeyup:f(Z,[`enter`])},null,8,[`modelValue`]),r(p,{type:`primary`,onClick:Z},{default:u(()=>[...a[11]||=[o(`搜索`,-1)]]),_:1}),r(p,{onClick:Q},{default:u(()=>[...a[12]||=[o(`重置`,-1)]]),_:1})]),h((i(),_(S,{data:F.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(C)(e.status)])},g(e.status===1?`启用`:`停用`),3)]),_:1}),r(y,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,N,[r(p,{class:`btn-action-primary`,onClick:t=>J(e)},{default:u(()=>[...a[13]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(p,{class:`btn-action-brand`,disabled:e.code===`super_admin`,onClick:t=>X(e)},{default:u(()=>[...a[14]||=[o(` 删除 `,-1)]]),_:1},8,[`disabled`,`onClick`])])]),_:1})]),_:1},8,[`data`])),[[$,b.value]]),d(`div`,P,[r(w,{"current-page":R.value,"onUpdate:currentPage":a[1]||=e=>R.value=e,layout:`total, prev, pager, next`,total:I.value.total,"page-size":I.value.per_page,onCurrentChange:G},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(K,{modelValue:B.value,"onUpdate:modelValue":a[9]||=e=>B.value=e,title:V.value?`编辑角色`:`新增角色`,width:`520px`},{footer:u(()=>[r(p,{onClick:a[8]||=e=>B.value=!1},{default:u(()=>[...a[15]||=[o(`取消`,-1)]]),_:1}),r(p,{type:`primary`,onClick:Y},{default:u(()=>[...a[16]||=[o(`保存`,-1)]]),_:1})]),default:u(()=>[a[17]||=d(`p`,{class:`hint`},[o(`当前阶段仅按`),d(`strong`,null,`菜单`),o(`控制侧栏与页面入口;接口暂不做权限码校验。`)],-1),r(k,{"label-width":`88px`},{default:u(()=>[V.value?(i(),_(E,{key:1,label:`编码`},{default:u(()=>[r(v,{modelValue:H.value.code,"onUpdate:modelValue":a[3]||=e=>H.value.code=e,disabled:``},null,8,[`modelValue`])]),_:1})):(i(),_(E,{key:0,label:`编码`},{default:u(()=>[r(v,{modelValue:H.value.code,"onUpdate:modelValue":a[2]||=e=>H.value.code=e,placeholder:`唯一编码`},null,8,[`modelValue`])]),_:1})),r(E,{label:`名称`},{default:u(()=>[r(v,{modelValue:H.value.name,"onUpdate:modelValue":a[4]||=e=>H.value.name=e},null,8,[`modelValue`])]),_:1}),r(E,{label:`备注`},{default:u(()=>[r(v,{modelValue:H.value.remark,"onUpdate:modelValue":a[5]||=e=>H.value.remark=e,type:`textarea`,rows:2},null,8,[`modelValue`])]),_:1}),r(E,{label:`排序`},{default:u(()=>[r(D,{modelValue:H.value.sort,"onUpdate:modelValue":a[6]||=e=>H.value.sort=e},null,8,[`modelValue`])]),_:1}),r(E,{label:`状态`},{default:u(()=>[r(O,{modelValue:H.value.status,"onUpdate:modelValue":a[7]||=e=>H.value.status=e,"active-value":1,"inactive-value":0},null,8,[`modelValue`])]),_:1})]),_:1}),a[18]||=d(`h4`,{class:`tree-title`},`菜单分配`,-1),r(W,{ref_key:`menuRef`,ref:U,data:z.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-d0445cd4`]]);export{F as default};