menu-I9G9pFe_.js 6.6 KB

1
  1. import{N as oe}from"./_hc-vue3-ui-Dz3VIK_0.js";import{m as v}from"./menu-8EFrrLGI.js";import{a as w,h as ne,d as se,k as ue}from"./_js-fast-way-lp0pFBB6.js";import{r as L}from"./tools-DXTkKCbt.js";import{_ as re}from"../js2/index-DiyEdzWI.js";import{i as de,b as d,aa as s,c as h,e as C,f as b,A as l,y as t,F as ie,q as N,P as c}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";const me={class:"hc-layout-box menu-page"},ce={class:"relative w-[300px]"},pe={key:0},fe={key:1},ve={__name:"menu",setup(_e){de(()=>{I(),T()});const _=d({name:null}),S=()=>{I()},z=[{key:"name",name:"菜单名称",minWidth:260},{key:"code",name:"菜单编号",width:240},{key:"path",name:"路由地址",minWidth:220},{key:"category",name:"菜单类型",width:90,align:"center"},{key:"sort",name:"排序",width:80,align:"center"},{key:"remark",name:"备注",minWidth:200},{key:"action",name:"操作",width:200,fixed:"right",align:"center"}],y=d([]),x=d(!1),I=async()=>{y.value=[],x.value=!0;const{data:n}=await v.getLazyList({..._.value,parentId:0});y.value=w(n),x.value=!1},R=async(n,e,u)=>{const{data:r}=await v.getLazyList({..._.value,parentId:n.id});u(w(r))},V=d([]),q=n=>{V.value=n},B={label:"title"},M=d([]),T=async()=>{const{data:n}=await v.getMenuTree();M.value=w(n)},i=d(!1),U=d(null),o=d({category:1}),A={name:{required:!0,trigger:"blur",message:"请输入菜单名称"},path:{required:!0,trigger:"blur",message:"请输入路由地址"},code:{required:!0,trigger:"blur",message:"请输入菜单编号"}},P=n=>{o.value={...n,children:null},i.value=!0},W=()=>{o.value={category:1,parentId:0,sort:1},i.value=!0},E=n=>{const e=se(n);delete e.id,delete e.children,o.value=e,i.value=!0},K=()=>{const n=V.value;if(n.length<=0)return window.$message.warning("请选择要删除的菜单"),!1;oe(async e=>{const u=ue(n),{code:r,msg:p}=await v.del(u);e(),r===200?(window.$message.success("删除成功"),L()):window.$message.error(p??"删除失败")})},j=n=>{o.value={category:1,parentId:n.id,sort:1},i.value=!0},G=async()=>{if(!await ne(U.value))return!1;const e=o.value;e.parentId=e.parentId??0,e.alias=e.code;const{error:u,code:r,msg:p}=await v.submit(e);!u&&r===200?(window?.$message?.success("操作成功"),i.value=!1,L()):window?.$message?.error(p??"操作失败")},H=()=>{i.value=!1,o.value={}},g=d(!1),J=n=>{o.value.source=n,g.value=!1};return(n,e)=>{const u=s("hc-icon"),r=s("el-button"),p=s("hc-search-input"),k=s("el-link"),O=s("hc-table"),Q=s("hc-card"),f=s("el-input"),m=s("el-form-item"),$=s("el-col"),X=s("el-tree-select"),Y=s("el-input-number"),D=s("el-radio"),Z=s("el-radio-group"),ee=s("el-row"),le=s("el-form"),ae=s("hc-dialog"),te=s("hc-menu-icon");return h(),C(ie,null,[b("div",me,[l(Q,{scrollbar:!1,"action-size":"lg"},{extra:t(()=>[l(r,{color:"#20C98B",type:"primary",onClick:W},{default:t(()=>[l(u,{class:"text-white",name:"add"}),e[12]||(e[12]=b("span",{class:"text-white"},"新增",-1))]),_:1}),l(r,{disabled:V.value.length<=0,color:"#FF6C6C",onClick:K},{default:t(()=>[l(u,{class:"text-white",name:"delete-bin-2"}),e[13]||(e[13]=b("span",{class:"text-white"},"删除",-1))]),_:1},8,["disabled"])]),header:t(()=>[b("div",ce,[l(p,{modelValue:_.value.name,"onUpdate:modelValue":e[0]||(e[0]=a=>_.value.name=a),color:"#151921",text:"搜索",onSearch:S},null,8,["modelValue"])])]),default:t(()=>[l(O,{"check-style":{fixed:!0,width:29},column:z,datas:y.value,"index-style":{fixed:!0,width:60},"is-index":!0,ui:"no-border",class:"menu-page-table","is-check":"",lazy:"",border:"",load:R,onSelectionChange:q},{category:t(({row:a})=>[a.category===1?(h(),C("span",pe,"菜单")):N("",!0),a.category===2?(h(),C("span",fe,"按钮")):N("",!0)]),action:t(({row:a})=>[l(k,{type:"success",onClick:F=>P(a)},{default:t(()=>[l(u,{name:"edit"}),e[14]||(e[14]=c(" 编辑 "))]),_:2},1032,["onClick"]),l(k,{type:"success",onClick:F=>j(a)},{default:t(()=>[l(u,{name:"edit"}),e[15]||(e[15]=c(" 新增子项 "))]),_:2},1032,["onClick"]),l(k,{type:"success",onClick:F=>E(a)},{default:t(()=>[l(u,{name:"file-copy"}),e[16]||(e[16]=c(" 复制 "))]),_:2},1032,["onClick"])]),_:1},8,["datas"])]),_:1})]),l(ae,{modelValue:i.value,"onUpdate:modelValue":e[10]||(e[10]=a=>i.value=a),title:o.value.id?"修改菜单":"新增菜单",widths:"46rem",onClose:H,onSave:G},{default:t(()=>[l(le,{ref_key:"formRef",ref:U,model:o.value,rules:A,"label-position":"top","label-width":"auto",size:"large"},{default:t(()=>[l(ee,{gutter:20},{default:t(()=>[l($,{span:12},{default:t(()=>[l(m,{label:"菜单名称:",prop:"name"},{default:t(()=>[l(f,{modelValue:o.value.name,"onUpdate:modelValue":e[1]||(e[1]=a=>o.value.name=a),placeholder:"六字以内的名称"},null,8,["modelValue"])]),_:1}),l(m,{label:"路由地址:",prop:"path"},{default:t(()=>[l(f,{modelValue:o.value.path,"onUpdate:modelValue":e[2]||(e[2]=a=>o.value.path=a),placeholder:"url上显示的地址"},null,8,["modelValue"])]),_:1}),l(m,{label:"菜单编号:",prop:"code"},{default:t(()=>[l(f,{modelValue:o.value.code,"onUpdate:modelValue":e[3]||(e[3]=a=>o.value.code=a),placeholder:"路由中的跳转name"},null,8,["modelValue"])]),_:1}),l(m,{label:"菜单备注:"},{default:t(()=>[l(f,{modelValue:o.value.remark,"onUpdate:modelValue":e[4]||(e[4]=a=>o.value.remark=a)},null,8,["modelValue"])]),_:1})]),_:1}),l($,{span:12},{default:t(()=>[l(m,{label:"上级菜单:"},{default:t(()=>[l(X,{modelValue:o.value.parentId,"onUpdate:modelValue":e[5]||(e[5]=a=>o.value.parentId=a),placeholder:"选择上级菜单",data:M.value,props:B,clearable:"",filterable:"","check-strictly":"",block:"","render-after-expand":!1},null,8,["modelValue","data"])]),_:1}),l(m,{label:"菜单图标:"},{default:t(()=>[l(f,{modelValue:o.value.source,"onUpdate:modelValue":e[7]||(e[7]=a=>o.value.source=a),clearable:""},{append:t(()=>[l(r,{onClick:e[6]||(e[6]=a=>g.value=!0)},{default:t(()=>e[17]||(e[17]=[c("选择图标")])),_:1})]),_:1},8,["modelValue"])]),_:1}),l(m,{label:"菜单排序:"},{default:t(()=>[l(Y,{modelValue:o.value.sort,"onUpdate:modelValue":e[8]||(e[8]=a=>o.value.sort=a),min:1,block:"","controls-position":"right"},null,8,["modelValue"])]),_:1}),l(m,{label:"菜单类型:"},{default:t(()=>[l(Z,{modelValue:o.value.category,"onUpdate:modelValue":e[9]||(e[9]=a=>o.value.category=a)},{default:t(()=>[l(D,{value:1},{default:t(()=>e[18]||(e[18]=[c("菜单")])),_:1}),l(D,{value:2,class:"ml-6"},{default:t(()=>e[19]||(e[19]=[c("按钮")])),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(te,{modelValue:g.value,"onUpdate:modelValue":e[11]||(e[11]=a=>g.value=a),onFinish:J},null,8,["modelValue"])],64)}}},Ie=re(ve,[["__scopeId","data-v-f6a0131b"]]);export{Ie as default};