You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
5.3 KiB
JavaScript
2 lines
5.3 KiB
JavaScript
var u=(e,n,t)=>new Promise((c,p)=>{var d=o=>{try{l(t.next(o))}catch(s){p(s)}},f=o=>{try{l(t.throw(o))}catch(s){p(s)}},l=o=>o.done?c(o.value):Promise.resolve(o.value).then(d,f);l((t=t.apply(e,n)).next())});import{u as h}from"./useRender-C6_44OXE.js";import{g as a}from"./dict-1X4Pwk-Z.js";import{D as r}from"./dictEnum-DeC8h6ZR.js";import{bz as i}from"./entry/index-C2Ijy48E-1723706691540.js";const b={M:{value:"目录",icon:"fxemoji:folder"},C:{value:"菜单",icon:"fluent-emoji-flat:open-book"},F:{value:"按钮",icon:"fluent-emoji:ok-button"}},{renderDict:m,renderIcon:g,renderIconSpan:I}=h(),M=[{title:"菜单名称",dataIndex:"menuName"},{title:"图标",dataIndex:"icon",width:80,customRender({value:e}){return e==="#"?"":g(e)}},{title:"排序",dataIndex:"orderNum",width:120},{title:"组件类型",dataIndex:"menuType",width:150,customRender({value:e}){const n=b[e];return I(n.icon,n.value,!0,"5px")}},{title:"权限标识",dataIndex:"perms"},{title:"组件路径",dataIndex:"component"},{title:"状态",dataIndex:"status",width:100,customRender({value:e}){return m(e,r.NORMAL_DISABLE)}},{title:"显示",dataIndex:"visible",width:100,customRender({value:e}){return m(e,r.SHOW_HIDE)}},{title:"创建时间",dataIndex:"createTime"}],v=[{field:"menuName",label:"菜单名称 ",component:"Input"},{field:"status",label:"菜单状态 ",component:"Select",componentProps:{options:a(r.NORMAL_DISABLE)}},{field:"visible",label:"显示状态",component:"Select",componentProps:{options:a(r.SHOW_HIDE)}}],R=[{field:"menuId",label:"菜单ID",component:"Input",show:!1},{field:"parentId",label:"上级菜单 ",required:!0,defaultValue:0,component:"TreeSelect",colProps:{span:24}},{field:"menuType",label:"菜单类型 ",component:"RadioButtonGroup",defaultValue:"M",componentProps({formActionType:e}){return{options:[{label:"目录",value:"M"},{label:"菜单",value:"C"},{label:"按钮",value:"F"}],onChange:()=>u(this,null,function*(){e&&(yield e.clearValidate())})}},colProps:{span:12}},{field:"icon",label:"菜单图标 ",component:"IconPicker",helpMessage:"选择或者从 https://icon-sets.iconify.design/ 查找名称粘贴",colProps:{span:12},ifShow:({values:e})=>e.menuType!=="F"},{field:"menuName",label:"菜单名称 ",helpMessage:"显示在菜单栏的名称",component:"Input",required:!0,colProps:{span:12}},{field:"orderNum",label:"显示排序 ",component:"InputNumber",helpMessage:"排序, 数字越小越靠前",required:!0,colProps:{span:12}},{field:"path",label:"路由地址",component:"Input",helpMessage:["路由地址不带/, 如: menu, user","链接为http(s)://开头","链接默认使用内部iframe打开, 可通过{是否外链}控制打开方式"],required:!0,colProps:{span:24},ifShow:({values:e})=>e.menuType!=="F",dynamicRules({model:e}){return e.isFrame!=="0"?[{required:!0,message:"请输入路由地址",trigger:"change",whitespace:!0},{required:!1,message:"路由地址不需要带/",validator:(n,t)=>t&&(t.startsWith("/")||t.startsWith("\\"))?Promise.reject("路由地址不需要带/"):Promise.resolve(),trigger:"change"}]:[{required:!0,message:"输入正确的链接",type:"url",trigger:"change"}]},componentProps({formModel:e,formActionType:n}){return i(e.path)&&n.clearValidate("component"),e.isFrame==="0"?{placeholder:"填写链接地址http(s):// 使用新页面打开"}:{placeholder:"填写路由地址/链接地址 链接默认使用内部iframe内嵌打开"}}},{field:"component",label:"组件路径",component:"Input",defaultValue:"",helpMessage:"填写./src/views下的组件路径, 如system/menu/index",colProps:{span:24},ifShow:({values:e})=>e.menuType==="C",dynamicDisabled:({values:e})=>e.isFrame==="0",dynamicRules({model:e}){return e.path&&!i(e.path)?[{required:!0,message:"非链接时必填组件路径",trigger:"change"}]:[]}},{field:"isFrame",label:"是否外链",component:"RadioButtonGroup",helpMessage:["外链为http(s)://开头","选择否时, 使用iframe从内部打开页面, 否则新窗口打开"],defaultValue:"1",componentProps:{options:[{label:"是",value:"0"},{label:"否",value:"1"}]},colProps:{span:12},ifShow:({values:e})=>e.menuType!=="F"},{field:"visible",label:"显示状态",component:"RadioButtonGroup",defaultValue:"0",helpMessage:"隐藏后不会出现在菜单栏, 但仍然可以访问",colProps:{span:12},ifShow:({values:e})=>e.menuType!=="F",componentProps:{options:a(r.SHOW_HIDE)}},{field:"status",label:"菜单状态",component:"RadioButtonGroup",defaultValue:"0",helpMessage:"停用后不会出现在菜单栏, 也无法访问",colProps:{span:12},componentProps:{options:a(r.NORMAL_DISABLE)},ifShow:({values:e})=>e.menuType!=="F"},{field:"perms",label:"需要权限",component:"Input",defaultValue:"",helpMessage:'控制器中定义的权限字符, 如: @SaCheckPermission("system:user:import")',colProps:{span:12},ifShow:({values:e})=>e.menuType==="C"||e.menuType==="F"},{field:"query",label:"路由参数",component:"Input",defaultValue:"",helpMessage:"vue-router中的query属性, 如{name: 'xxx', age: '16'}",colProps:{span:12},ifShow:({values:e})=>e.menuType==="C",dynamicDisabled:({values:e})=>e.isFrame==="0"},{field:"isCache",label:"是否缓存",component:"RadioButtonGroup",helpMessage:"路由的keepAlive属性",defaultValue:"0",componentProps:{options:[{label:"是",value:"0"},{label:"否",value:"1"}]},colProps:{span:12},ifShow:({values:e})=>e.menuType==="C"}];export{v as f,R as m,M as t};
|