| | |
| | | /** |
| | | * @description Setting表单配置信息 |
| | | */ |
| | | export default function (setting, hasPrimaryKey) { |
| | | export default function (setting, subtype, buttons = [], cardType, columns) { |
| | | let appType = sessionStorage.getItem('appType') |
| | | let hasMenus = subtype === 'datacard' && cardType !== 'extendCard' |
| | | |
| | | let menulist = [] |
| | | let appmenulist = [] |
| | |
| | | if (appmenulist) { |
| | | try { |
| | | appmenulist = JSON.parse(appmenulist) |
| | | } catch { |
| | | } catch (e) { |
| | | appmenulist = [] |
| | | } |
| | | } else { |
| | |
| | | if (menulist) { |
| | | try { |
| | | menulist = JSON.parse(menulist) |
| | | } catch { |
| | | } catch (e) { |
| | | menulist = [] |
| | | } |
| | | } else { |
| | | menulist = [] |
| | | } |
| | | } |
| | | |
| | | let ops = [] |
| | | if (hasMenus) { |
| | | ops = [{value: 'menus', label: '菜单组'}] |
| | | } |
| | | |
| | | const cardSettingForm = [ |
| | |
| | | field: 'primaryId', |
| | | label: '主键值', |
| | | initval: setting.primaryId || '', |
| | | tooltip: '卡片点击时,向其他组件传递的ID值。', |
| | | tooltip: '设置一个属性卡静态ID,向其他组件传递的指定静态ID值', |
| | | required: false, |
| | | forbid: !hasPrimaryKey |
| | | forbid: subtype !== 'propcard' |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | type: !hasMenus ? 'radio' : 'select', |
| | | field: 'click', |
| | | label: '点击事件', |
| | | initval: setting.click || '', |
| | | tooltip: '当选择触发按钮时,只有当卡片中只存在一个按钮时有效。', |
| | | tooltip: '当绑定点击事件时,卡片的切换功能将失效。', |
| | | required: false, |
| | | options: [ |
| | | {value: '', label: '无'}, |
| | | {value: 'menu', label: '菜单'}, |
| | | {value: 'link', label: '链接'}, |
| | | {value: 'button', label: '按钮'}, |
| | | ...ops |
| | | ], |
| | | controlFields: [ |
| | | {field: 'menu', values: ['menu']}, |
| | | {field: 'appmenu', values: ['menu']}, |
| | | {field: 'linkurl', values: ['link']}, |
| | | {field: 'open', values: ['menu', 'link']}, |
| | | {field: 'joint', values: ['menu', 'link']}, |
| | | {field: 'open', values: ['menu', 'link', 'menus']}, |
| | | {field: 'joint', values: ['menu', 'link', 'menus']}, |
| | | {field: 'linkbtn', values: ['button']}, |
| | | {field: 'menuType', values: ['menus']}, |
| | | ] |
| | | }, |
| | | { |
| | | type: 'cascader', |
| | | field: 'menu', |
| | | label: '菜单', |
| | | initval: setting.menu || [], |
| | | type: 'select', |
| | | field: 'menuType', |
| | | label: '菜单类型', |
| | | initval: setting.menuType || '', |
| | | required: true, |
| | | options: menulist, |
| | | forbid: !!appType |
| | | options: columns, |
| | | }, |
| | | { |
| | | type: 'select', |
| | | field: 'appmenu', |
| | | type: appType ? 'select' : 'cascader', |
| | | field: 'menu', |
| | | label: '关联菜单', |
| | | initval: setting.menu || '', |
| | | initval: setting.menu || (appType ? '' : []), |
| | | required: true, |
| | | options: appmenulist, |
| | | forbid: !appType |
| | | options: appType ? appmenulist : menulist, |
| | | }, |
| | | { |
| | | type: 'textarea', |
| | |
| | | {value: 'false', label: '否'}, |
| | | ], |
| | | }, |
| | | { |
| | | type: 'select', |
| | | field: 'linkbtn', |
| | | label: '关联按钮', |
| | | initval: setting.linkbtn || '', |
| | | required: true, |
| | | options: buttons |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'btnControl', |
| | | label: '按钮控制', |
| | | initval: setting.btnControl || 'show', |
| | | tooltip: '可设置按钮显示规则,一直显示或鼠标悬浮时显示。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'show', label: '正常显示'}, |
| | | {value: 'hover', label: '悬浮显示'}, |
| | | ], |
| | | forbid: appType === 'mob' |
| | | } |
| | | ] |
| | | |
| | | return cardSettingForm |