| | |
| | | import React from 'react' |
| | | import MkIcon from '@/components/mk-icon' |
| | | |
| | | /** |
| | | * @description Wrap表单配置信息 |
| | | */ |
| | | export default function (wrap) { |
| | | let menulist = sessionStorage.getItem('appMenus') |
| | | let searchable = true |
| | | let adapters = sessionStorage.getItem('adapter') |
| | | if (adapters) { |
| | | adapters = adapters.split(',') |
| | | } else { |
| | | adapters = [] |
| | | } |
| | | |
| | | window.GLOB.customMenu.components.forEach(item => { |
| | | if (item.type === 'search') { |
| | | searchable = false |
| | | } |
| | | }) |
| | | |
| | | if (menulist) { |
| | | try { |
| | |
| | | menulist = [] |
| | | } |
| | | |
| | | let funs = [] |
| | | |
| | | if (wrap.back === 'true') { |
| | | funs.push('back') |
| | | } |
| | | if (wrap.logout === 'true') { |
| | | funs.push('logout') |
| | | } |
| | | if (wrap.scan === 'true') { |
| | | funs.push('scan') |
| | | } |
| | | if (wrap.refresh === 'true') { |
| | | funs.push('refresh') |
| | | } |
| | | if (wrap.resetPwd === 'true') { |
| | | funs.push('resetPwd') |
| | | } |
| | | |
| | | const topbarWrapForm = [ |
| | | { |
| | | type: 'radio', |
| | |
| | | required: false, |
| | | options: [ |
| | | {value: 'navbar', label: '导航栏'}, |
| | | {value: 'search', label: '搜索框'}, |
| | | {value: 'searchIcon', label: '搜索标'}, |
| | | {value: 'search', label: '搜索框', disabled: !searchable}, |
| | | {value: 'searchIcon', label: '搜索标', disabled: !searchable}, |
| | | ], |
| | | }, |
| | | { |
| | |
| | | field: 'title', |
| | | label: '标题', |
| | | initval: wrap.title || '', |
| | | tooltip: '使用搜索框时,标题用于搜索条件隐藏时(当启用黑名单,登录用户无权限时)显示。', |
| | | // tooltip: '使用搜索框时,标题用于搜索条件隐藏时(当启用黑名单,登录用户无权限时)显示。注:@username代表用户名,@fullname代表姓名。', |
| | | tooltip: '注:@username代表用户名,@fullname代表姓名。', |
| | | required: false |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'back', |
| | | label: '返回', |
| | | initval: wrap.back || 'true', |
| | | type: 'checkbox', |
| | | field: 'funs', |
| | | label: '扩展功能', |
| | | tooltip: '1、返回上一页;2、绑定公众号后可分享当前页面;3、二维码以“login”开头时为扫码登录,二维码以“http”开头为页面跳转,二维码以“mkbid”开头为菜单跳转,且设置有关联菜单;4、当前页面刷新;5、退出系统,返回第一个页面。', |
| | | initval: funs, |
| | | required: false, |
| | | options: [ |
| | | {value: 'true', label: '显示'}, |
| | | {value: 'false', label: '隐藏'}, |
| | | {value: 'back', label: '返回'}, |
| | | {value: 'scan', label: '扫一扫'}, |
| | | {value: 'resetPwd', label: '修改密码'}, |
| | | {value: 'refresh', label: '刷新'}, |
| | | {value: 'logout', label: '退出'}, |
| | | ], |
| | | controlFields: [ |
| | | {field: 'reload', values: ['true']}, |
| | | {field: 'reload', values: ['back']}, |
| | | {field: 'linkmenu', values: ['scan']}, |
| | | {field: 'prefix', values: ['scan']}, |
| | | ], |
| | | span: 24 |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'mode', |
| | | label: '弹框背景', |
| | | initval: wrap.mode || 'dark', |
| | | tooltip: '当存在扩展功能或自定义菜单时,展示对应信息弹窗的背景颜色。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'light', label: '白色'}, |
| | | {value: 'dark', label: '黑色'}, |
| | | ] |
| | | }, |
| | | // { |
| | | // type: 'radio', |
| | | // field: 'search', |
| | | // label: '搜索', |
| | | // initval: wrap.search || 'false', |
| | | // field: 'back', |
| | | // label: '返回', |
| | | // initval: wrap.back || 'true', |
| | | // required: false, |
| | | // options: [ |
| | | // {value: 'true', label: '显示'}, |
| | | // {value: 'false', label: '隐藏'}, |
| | | // ], |
| | | // controlFields: [ |
| | | // {field: 'reload', values: ['true']}, |
| | | // ] |
| | | // }, |
| | | // { |
| | | // type: 'radio', |
| | | // field: 'logout', |
| | | // label: '退出', |
| | | // initval: wrap.logout || 'false', |
| | | // tooltip: '点击退出时,返回第一个页面。', |
| | | // required: false, |
| | | // options: [ |
| | | // {value: 'true', label: '显示'}, |
| | | // {value: 'false', label: '隐藏'}, |
| | | // ] |
| | | // }, |
| | | // { |
| | | // type: 'radio', |
| | | // field: 'scan', |
| | | // label: '扫一扫', |
| | | // initval: wrap.scan || 'false', |
| | | // tooltip: '系统功能:1、扫码登录,二维码以“login”开头,2、页面跳转,二维码以“http”开头,3、菜单跳转,二维码以“mkbid”开头,且设置关联菜单', |
| | | // required: false, |
| | | // options: [ |
| | | // {value: 'true', label: '显示'}, |
| | | // {value: 'false', label: '隐藏'}, |
| | | // ], |
| | | // controlFields: [ |
| | | // {field: 'linkmenu', values: ['true']}, |
| | | // ] |
| | | // }, |
| | | // { |
| | | // type: 'radio', |
| | | // field: 'refresh', |
| | | // label: '刷新', |
| | | // initval: wrap.refresh || 'false', |
| | | // required: false, |
| | | // options: [ |
| | | // {value: 'true', label: '显示'}, |
| | |
| | | // }, |
| | | { |
| | | type: 'radio', |
| | | field: 'logout', |
| | | label: '退出', |
| | | initval: wrap.logout || 'false', |
| | | tooltip: '点击退出时,返回第一个页面。', |
| | | field: 'reload', |
| | | label: '返回后', |
| | | initval: wrap.reload || 'false', |
| | | tooltip: '返回后是否刷新数据。注:在明科云APP中有效。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'true', label: '显示'}, |
| | | {value: 'false', label: '隐藏'}, |
| | | ] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'scan', |
| | | label: '扫一扫', |
| | | initval: wrap.scan || 'false', |
| | | tooltip: '系统功能:1、扫码登录,二维码以“login”开头,2、页面跳转,二维码以“http”开头,3、菜单跳转,二维码以“mkbid”开头,且设置关联菜单', |
| | | required: false, |
| | | options: [ |
| | | {value: 'true', label: '显示'}, |
| | | {value: 'false', label: '隐藏'}, |
| | | ], |
| | | controlFields: [ |
| | | {field: 'linkmenu', values: ['true']}, |
| | | ] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'refresh', |
| | | label: '刷新', |
| | | initval: wrap.refresh || 'false', |
| | | required: false, |
| | | options: [ |
| | | {value: 'true', label: '显示'}, |
| | | {value: 'false', label: '隐藏'}, |
| | | ] |
| | | options: [{ |
| | | value: 'false', |
| | | label: '不刷新' |
| | | }, { |
| | | value: 'true', |
| | | label: '刷新' |
| | | }] |
| | | }, |
| | | { |
| | | type: 'select', |
| | |
| | | options: menulist |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'reload', |
| | | label: '返回后', |
| | | initval: wrap.reload || 'false', |
| | | tooltip: '返回后是否刷新数据。注:在明科云app中(应用模式为app)有效。', |
| | | required: false, |
| | | options: [{ |
| | | value: 'false', |
| | | label: '不刷新' |
| | | }, { |
| | | value: 'true', |
| | | label: '刷新' |
| | | }] |
| | | type: 'text', |
| | | field: 'prefix', |
| | | label: '前缀', |
| | | initval: wrap.prefix || '', |
| | | tooltip: '扫码信息将与前缀拼接后执行。注:跳转菜单需以mkbid(:或,)开头,mkbid(:或,)跳转后将被去除。例如:mkbid:123456 跳转后页面BID为 123456。', |
| | | required: false |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'minishow', |
| | | label: '小程序中', |
| | | initval: wrap.minishow || 'false', |
| | | tooltip: '导航栏在小程序中是否显示。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'true', label: '显示'}, |
| | | {value: 'false', label: '隐藏'}, |
| | | ], |
| | | forbid: !adapters.includes('wxmini') |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'menuPosition', |
| | | label: '自定义菜单位置', |
| | | initval: wrap.menuPosition || 'right', |
| | | tooltip: '自定义菜单的位置。注:菜单位于左侧时会显示头像,且返回功能被禁用。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'left', label: '左侧'}, |
| | | {value: 'right', label: '右侧'}, |
| | | ] |
| | | }, |
| | | { |
| | | type: 'table', |
| | | field: 'menus', |
| | | label: '自定义菜单', |
| | | initval: wrap.menus || [], |
| | | required: false, |
| | | span: 24, |
| | | actions: ['edit', 'del', 'add', 'move', 'view'], |
| | | tip: <span style={{fontSize: '12px', color: '#959595', position: 'relative', top: '-8px'}}>当使用图标<MkIcon type="user"/>,且右侧只有一个菜单时,会显示用户头像。</span>, |
| | | columns: [ |
| | | { |
| | | title: '图标', |
| | | dataIndex: 'icon', |
| | | inputType: 'icon', |
| | | editable: true, |
| | | required: true, |
| | | render: (text, record) => <MkIcon type={text}/>, |
| | | width: '23%' |
| | | }, |
| | | { |
| | | title: '自定义名称', |
| | | dataIndex: 'name', |
| | | inputType: 'text', |
| | | editable: true, |
| | | required: false, |
| | | width: '23%' |
| | | }, |
| | | { |
| | | title: '菜单', |
| | | dataIndex: 'menu', |
| | | inputType: 'select', |
| | | editable: true, |
| | | required: true, |
| | | extends: [{key: 'label', value: 'label'}], |
| | | width: '23%', |
| | | render: (text, record) => record.label, |
| | | options: menulist |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | |
| | | return topbarWrapForm |