import { ITEM_TYPE } from '@/components/BaseForm'; export const webMode = { single: 'single', integration: 'integration', }; const typeContent = hasIntegerate => { if (hasIntegerate) { return []; } return [ { value: webMode.integration, children: '集成网站', }, ]; }; export const integrateStyleData = { platform: '工作台', webgis: 'WEBGIS', ios: 'IOS', catalog: 'Catalog', virtualcity: 'VirtualCity', }; export const singleStyleData = { platform: '工作台', webgis: 'WEBGIS', }; export const menuStyle = { 'banner-left': '经典', // banner: '标题栏', // 'banner-big': '标题栏-大', // table: '左侧', // dock: '底部', // 'banner-left-noShrink': '标题栏-左-不收', }; export const MDILabel = { MDI: '多标签模式', SDI: '单标签模式', }; export const notificationTypes = { // notify: '轮询通知', MQTT: 'MQTT消息', }; const isIntegerate = (mode, hasIntegerate) => { if (typeof mode !== 'undefined') { return mode === 'single'; } return hasIntegerate; }; export const defaultWebConfigObj = { title: '', subtitle: '', mode: webMode.single, shortcutIcon: '', logo: '', client: '', bannerLogo: '', homePage: '', menu: 'banner-left', mdi: 'MDI', theme: '', style: '', hideMap: false, waterMark: true, mapPlan: '', qrcode: '', loginTemplate: 'Default.html', }; export const getDefaultGetWebconfig = ({ initialValues = {}, hasIntegerate, webThemes, onGetThemes, loginPages, onGetLoginPages, mapConfigs, onGetMapConfig, isEdit, }) => { const config = { title: { label: '标题', formType: ITEM_TYPE.INPUT, allowClear: true, placeholder: '请输入标题', rules: [ { required: true, message: '标题为必填项', }, ], }, subtitle: { label: '副标题', formType: ITEM_TYPE.INPUT, allowClear: true, }, mode: { label: '网站类型', formType: ITEM_TYPE.SINGLE_RADIO, initialValue: webMode.single, disabled: isEdit, options: [ { value: webMode.single, children: '一般网站', }, ], // .concat(typeContent(hasIntegerate)), }, shortcutIcon: { label: '系统icon', formType: ITEM_TYPE.IMGSHOP, rules: [ { required: true, message: '请选择图标icon', }, ], }, logo: { label: '登录logo', formType: ITEM_TYPE.IMGSHOP, rules: [ { required: true, message: '请选择登录logo', }, ], }, bannerLogo: { label: '标题logo', formType: ITEM_TYPE.IMGSHOP, rules: [ { required: true, message: '请选择标题logo', }, ], }, client: { label: '虚拟目录', formType: ITEM_TYPE.INPUT, disabled: isEdit, allowClear: true, size: 'small', rules: [ { required: true, message: '虚拟目录不能为空', }, ], }, homePage: { label: '主页', formType: ITEM_TYPE.INPUT, allowClear: true, }, loginTemplate: { label: '登录模板', formType: ITEM_TYPE.SELECT, placeholder: '请选择登录模板', options: loginPages.map(t => ({ value: t.value, children: t.text, key: t.value, })), onDropdownVisibleChange: onGetLoginPages, showSearch: true, filterOption: (input, option) => option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0, rules: [ { required: true, message: '登录模板必填', }, ], }, theme: { label: '系统皮肤', formType: ITEM_TYPE.SELECT, initialValue: '', showSearch: true, filterOption: (input, option) => option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0, options: webThemes.map(t => ({ value: t.value, children: t.text, key: t.value, })) || [], onDropdownVisibleChange: onGetThemes, }, style: { label: '系统风格', formType: ITEM_TYPE.SELECT, initialValue: '', options: Object.keys( isIntegerate(initialValues.mode, hasIntegerate) ? integrateStyleData : singleStyleData, ).map(k => ({ value: k, key: k, children: integrateStyleData[k] || singleStyleData[k], })), }, menu: { label: '菜单类型', formType: ITEM_TYPE.SINGLE_RADIO, options: Object.keys(menuStyle).map(k => ({ value: k, key: k, children: menuStyle[k], })), }, mdi: { label: '功能标签', formType: ITEM_TYPE.SINGLE_RADIO, options: Object.keys(MDILabel).map(k => ({ value: k, key: k, children: MDILabel[k], })), }, qrcode: { label: '二维码地址', formType: ITEM_TYPE.INPUT, allowClear: true, }, alarmWays: { label: '通知方式', formType: ITEM_TYPE.CHECK_BOX, options: Object.keys(notificationTypes).map(k => ({ value: k, key: k, children: notificationTypes[k], })), }, mapPlan: { label: '地图方案', formType: ITEM_TYPE.SELECT, options: mapConfigs.map(m => ({ value: m.value, children: m.text, key: m.value, })), onDropdownVisibleChange: onGetMapConfig, }, hideMap: { label: '按需加载地图', formType: ITEM_TYPE.SINGLE_RADIO, optionType: 'button', options: [ { value: true, key: '1', children: '是', }, { value: false, key: '2', children: '否', }, ], }, waterMark: { label: '地图水印', formType: ITEM_TYPE.SINGLE_RADIO, options: [ { value: true, key: '1', children: '显示', }, { value: false, key: '2', children: '不显示', }, ], }, }; if (initialValues) { Object.keys(config).forEach(k => { config[k].initialValue = typeof initialValues[k] !== 'undefined' ? initialValues[k] : ''; if (k === 'alarmWays') { config[k].initialValue = config[k].initialValue.split(','); } // if (k === 'mode' && initialValues.mode) { // config[k].options = [ // { // value: webMode.single, // children: '一般网站', // }, // // { // // value: webMode.integration, // // children: '集成网站', // // }, // ]; // config[k].initialValue = webMode.single; // initialValues.mode; // } }); } return config; };