From c8804ceb1fe2dea76f9949c5ea04423876ee2c81 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 28 六月 2024 14:02:47 +0800 Subject: [PATCH] 2024-06-28 --- src/views/pcdesign/index.jsx | 405 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 237 insertions(+), 168 deletions(-) diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 1f071f1..d998c92 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -3,15 +3,14 @@ import { withRouter } from 'react-router' import { is, fromJS } from 'immutable' import HTML5Backend from 'react-dnd-html5-backend' -import { ConfigProvider, notification, Modal, Collapse, Switch, Button, message, Spin, Typography } from 'antd' -import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined, ArrowLeftOutlined, EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons' +import { notification, Modal, Collapse, Switch, Button, message, Spin, Typography } from 'antd' +import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, ArrowLeftOutlined, EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons' import moment from 'moment' import md5 from 'md5' import Api from '@/api' import Utils, { setGLOBFuncs } from '@/utils/utils.js' -import { getTables } from '@/utils/utils-custom.js' -import antdZhCN from 'antd/es/locale/zh_CN' +import { getTables, getFuncsAndInters, getLangTrans } from '@/utils/utils-custom.js' import MKEmitter from '@/utils/events.js' import MenuUtils from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' @@ -24,6 +23,7 @@ const { Paragraph } = Typography const MenuForm = asyncComponent(() => import('./menuform')) +const Debug = asyncComponent(() => import('@/menu/debug')) const Header = asyncComponent(() => import('@/menu/header')) const PopView = asyncComponent(() => import('@/views/menudesign/popview')) const Transfer = asyncComponent(() => import('@/pc/transfer')) @@ -48,13 +48,9 @@ const StyleCombControlButton = asyncComponent(() => import('@/menu/stylecombcontrolbutton')) const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) -sessionStorage.setItem('isEditState', 'true') - sessionStorage.setItem('appType', 'pc') // 搴旂敤绫诲瀷 sessionStorage.setItem('typename', 'pc') document.body.className = '' - -const memberLevel = Utils.getMemberLevel() class MenuDesign extends Component { state = { @@ -76,24 +72,52 @@ } UNSAFE_componentWillMount() { - if (memberLevel < 30) return + if (sessionStorage.getItem('devError') === 'true') { + sessionStorage.clear() + window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') + window.location.reload() + return + } + + if (!sessionStorage.getItem('UserID')) { + sessionStorage.removeItem('appType') + this.props.history.replace('/login') + return + } + + if (window.GLOB.memberLevel < 30) return sessionStorage.setItem('editMenuType', 'menu') // 缂栬緫鑿滃崟绫诲瀷 + window.GLOB.curDate = moment().format('YYYY-MM-DD') window.GLOB.TabsMap = new Map() // 缂撳瓨鐢ㄦ埛鎿嶄綔鐨勬爣绛鹃〉 window.GLOB.CacheIndependent = new Map() window.GLOB.urlFields = [] // url鍙橀噺 window.GLOB.customMenu = null // 淇濆瓨鑿滃崟淇℃伅 + window.GLOB.developing = true try { let param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param))) + if (param.lang) { + sessionStorage.setItem('lang', param.lang) + } + if (param.type === 'app') { sessionStorage.setItem('appId', param.ID || '') sessionStorage.setItem('appName', param.remark || '') - sessionStorage.setItem('lang', param.lang || 'zh-CN') sessionStorage.setItem('kei_no', param.kei_no || '') sessionStorage.setItem('sysBgColor', param.sysBgColor || '#ffffff') + + if (param.applangList) { + sessionStorage.setItem('applangList', param.applangList) + } else { + sessionStorage.removeItem('applangList') + } + + if (param.wxAppId) { + sessionStorage.setItem('wxAppId', param.wxAppId) + } this.getAppMessage(param.MenuID) } else if (param.type === 'view') { @@ -123,7 +147,8 @@ } componentDidMount () { - if (memberLevel < 30) { + if (!sessionStorage.getItem('UserID')) return + if (window.GLOB.memberLevel < 30) { document.getElementById('mk-pc-design-view').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh; height: 100vh; background: #fff;">鏈簲鐢ㄦ病鏈塒C绔〉闈㈢殑缂栬緫鏉冮檺锛岃鑱旂郴绠$悊鍛橈紒</div>' return } @@ -131,8 +156,11 @@ MKEmitter.addListener('changeEditMenu', this.changeEditMenu) MKEmitter.addListener('triggerMenuSave', this.triggerMenuSave) + if (sessionStorage.getItem('wxAppId')) { + window.GLOB.WXAppID = sessionStorage.getItem('wxAppId') + } + setTimeout(() => { - this.getAppPictures() this.getRoleFields() setGLOBFuncs() }, 1000) @@ -228,7 +256,8 @@ MenuID: menu.MenuID, copyMenuId: menu.copyMenuId || '', clearMenu: menu.clearMenu !== 'false', - type: 'view' + type: 'view', + lang: sessionStorage.getItem('lang') } // param.MenuNo = menu.MenuNo || '' @@ -245,7 +274,7 @@ } getAppMessage = (MenuID) => { - Api.getSystemConfig({ + Api.getCloudConfig({ func: 's_get_keyids', bid: sessionStorage.getItem('appId') }).then(res => { @@ -275,7 +304,7 @@ let param = { func: 's_kei_link_keyids_addupt', BID: sessionStorage.getItem('appId'), - exec_type: 'y', + exec_type: 'x', LText: '' } @@ -290,12 +319,12 @@ param.LText = appViewList.map(item => `select '${item.keys_id}','${item.keys_type}','${item.kei_no}','${item.appkey}','${item.bid}','${sessionStorage.getItem('CloudUserID')}','${item.remark}'`) param.LText = param.LText.join(' union all ') - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, 'x') param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) - Api.getSystemConfig(param).then(result => { + Api.getCloudConfig(param).then(result => { if (!result.status) { notification.warning({ top: 92, @@ -304,50 +333,13 @@ }) } else { sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) - this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: homeId, type: 'view'})))) + this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: homeId, type: 'view', lang: sessionStorage.getItem('lang')})))) } }) } else { sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) - this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: MenuID || homeId, type: 'view'})))) + this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: MenuID || homeId, type: 'view', lang: sessionStorage.getItem('lang')})))) } - }) - } - - getAppPictures = () => { - if (sessionStorage.getItem('app_pictures')) return - - let deffers = [] - let param = { - func: 's_url_db_adduptdel', - PageIndex: 0, // 0 浠h〃鍏ㄩ儴 - PageSize: 0, // 0 浠h〃鍏ㄩ儴 - type: 'search' - } - deffers = [new Promise(resolve => { - setTimeout(() => { - Api.getSystemConfig({...param, typecharone: 'image'}).then(res => { - resolve(res.data) - }) - }, 500) - }), new Promise(resolve => { - setTimeout(() => { - Api.getSystemConfig({...param, typecharone: 'video'}).then(res => { - resolve(res.data) - }) - }, 1000) - }), new Promise(resolve => { - setTimeout(() => { - Api.getSystemConfig({...param, typecharone: 'color'}).then(res => { - resolve(res.data) - }) - }, 1500) - })] - - Promise.all(deffers).then(response => { - sessionStorage.setItem('app_pictures', JSON.stringify(response[0] || [])) - sessionStorage.setItem('app_videos', JSON.stringify(response[1] || [])) - sessionStorage.setItem('app_colors', JSON.stringify(response[2] || [])) }) } @@ -365,6 +357,8 @@ _btn.config.MenuID = _btn.uuid _btn.config.ParentId = card.uuid _btn.config.MenuName = _btn.label + + _btn.config.components = this.updateComponents(_btn.config.components || []) } else { _btn.config = { uuid: _btn.uuid, @@ -420,15 +414,23 @@ }) }) - config.cols && config.cols.forEach(col => { - if (col.type === 'action') { - col.elements.forEach(cell => { - if (cell.OpenType === 'popview' && popbtns[cell.uuid]) { - cell.config = popbtns[cell.uuid] + if (config.cols) { + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType !== 'button') return + if (cell.OpenType === 'popview' && popbtns[cell.uuid]) { + cell.config = popbtns[cell.uuid] + } + }) } }) } - }) + loopCol(config.cols) + } config.elements && config.elements.forEach(cell => { if (cell.eleType !== 'button') return @@ -505,7 +507,7 @@ MenuID: MenuId } - Api.getSystemConfig(param).then(result => { + Api.getCloudConfig(param).then(result => { if (!result.status) { notification.warning({ top: 92, @@ -546,6 +548,7 @@ config.uuid = MenuId config.MenuID = MenuId + config.Template = 'webPage' config.open_edition = result.open_edition || '' window.GLOB.urlFields = config.urlFields || [] @@ -556,6 +559,8 @@ this.setState({ needUpdate: true }) + } else { + config.components = this.updateComponents(config.components) } let navItem = null @@ -581,6 +586,27 @@ this.getAppMenus() } + updateComponents = (components) => { // 鍏煎鎬у崌绾� table + return components.map(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.components = this.updateComponents(tab.components) + }) + } else if (item.type === 'group') { + item.components = this.updateComponents(item.components) + } else if (item.type === 'table') { + item.cols = item.cols.map(col => { + if (col.type === 'action') { + col.type = 'custom' + } + return col + }) + } + + return item + }) + } + collectTB = (components) => { return components.map(item => { if (item.type === 'tabs') { @@ -599,6 +625,13 @@ if (item.subtype === 'tablecard') { // 鍏煎 item.type = 'card' + } else if (item.type === 'table') { + item.cols = item.cols.map(col => { + if (col.type === 'action') { + col.type = 'custom' + } + return col + }) } delete item.tabId @@ -622,7 +655,7 @@ _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) - Api.getSystemConfig(_param).then(res => { + Api.getCloudConfig(_param).then(res => { if (!res.status) { notification.warning({ top: 92, @@ -661,7 +694,7 @@ MenuID: urlParam.copyMenuId } - Api.getSystemConfig(param).then(result => { + Api.getCloudConfig(param).then(result => { if (!result.status) { notification.warning({ top: 92, @@ -722,6 +755,7 @@ config.uuid = MenuId config.MenuID = MenuId + config.Template = 'webPage' config.open_edition = '' config.MenuName = urlParam.MenuName || '' config.MenuNo = '' @@ -747,7 +781,7 @@ } jointComponents = (config, navItem) => { - Api.getSystemConfig({ + Api.getCloudConfig({ func: 'sPC_Get_LongParam', TypeCharOne: sessionStorage.getItem('kei_no'), typename: 'pc', @@ -860,7 +894,7 @@ return } else if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { item.action && item.action.forEach(btn => { - if (btn.hidden === 'true') return + if (btn.hidden === 'true' || btn.permission === 'false') return m.children.push({ key: btn.uuid, @@ -869,7 +903,7 @@ }) item.subcards.forEach(card => { card.elements && card.elements.forEach(cell => { - if (cell.eleType !== 'button' || cell.hidden === 'true') return + if (cell.eleType !== 'button' || cell.hidden === 'true' || cell.permission === 'false') return m.children.push({ key: cell.uuid, @@ -878,7 +912,7 @@ }) card.backElements && card.backElements.forEach(cell => { - if (cell.eleType !== 'button' || cell.hidden === 'true') return + if (cell.eleType !== 'button' || cell.hidden === 'true' || cell.permission === 'false') return m.children.push({ key: cell.uuid, @@ -888,7 +922,7 @@ }) } else if (item.type === 'balcony') { item.elements && item.elements.forEach(cell => { - if (cell.eleType !== 'button' || cell.hidden === 'true') return + if (cell.eleType !== 'button' || cell.hidden === 'true' || cell.permission === 'false') return m.children.push({ key: cell.uuid, @@ -906,24 +940,29 @@ } } else if (item.type === 'table') { item.action.forEach(btn => { - if (btn.hidden === 'true') return + if (btn.hidden === 'true' || btn.permission === 'false') return m.children.push({ key: btn.uuid, title: btn.label, }) }) - item.cols.forEach(col => { - if (col.type !== 'action') return - col.elements.forEach(btn => { - if (btn.hidden === 'true') return - - m.children.push({ - key: btn.uuid, - title: btn.label, - }) + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType !== 'button' || cell.hidden === 'true' || cell.permission === 'false') return + m.children.push({ + key: cell.uuid, + title: cell.label, + }) + }) + } }) - }) + } + loopCol(item.cols) } list.push(m) @@ -996,8 +1035,6 @@ }) } card.elements && card.elements.forEach(cell => { - if (cell.eleType !== 'button') return - if (cell.linkmenu && menuObj[cell.linkmenu]) { menus.push(menuObj[cell.linkmenu]) } else if (cell.openmenu && menuObj[cell.openmenu]) { @@ -1006,8 +1043,6 @@ }) card.backElements && card.backElements.forEach(cell => { - if (cell.eleType !== 'button') return - if (cell.linkmenu && menuObj[cell.linkmenu]) { menus.push(menuObj[cell.linkmenu]) } else if (cell.openmenu && menuObj[cell.openmenu]) { @@ -1017,8 +1052,6 @@ }) } else if (item.type === 'balcony') { item.elements && item.elements.forEach(cell => { - if (cell.eleType !== 'button') return - if (cell.linkmenu && menuObj[cell.linkmenu]) { menus.push(menuObj[cell.linkmenu]) } else if (cell.openmenu && menuObj[cell.openmenu]) { @@ -1039,16 +1072,22 @@ menus.push(menuObj[btn.openmenu]) } }) - item.cols && item.cols.forEach(col => { - if (col.type !== 'action') return - col.elements.forEach(btn => { - if (btn.linkmenu && menuObj[btn.linkmenu]) { - menus.push(menuObj[btn.linkmenu]) - } else if (btn.openmenu && menuObj[btn.openmenu]) { - menus.push(menuObj[btn.openmenu]) + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.linkmenu && menuObj[cell.linkmenu]) { + menus.push(menuObj[cell.linkmenu]) + } else if (cell.openmenu && menuObj[cell.openmenu]) { + menus.push(menuObj[cell.openmenu]) + } + }) } }) - }) + } + loopCol(item.cols) } }) } @@ -1118,6 +1157,18 @@ if (!this.checkBase()) { return + } else if (this.checklog()) { + if (sessionStorage.getItem('applangList') && !config.trans) { + + } else { + notification.success({ + top: 92, + message: '褰撳墠閰嶇疆鏈慨鏀癸紝鏃犻渶淇濆瓨銆�', + duration: 5 + }) + MKEmitter.emit('completeSave') + return + } } this.setState({ @@ -1125,8 +1176,14 @@ }) setTimeout(() => { - if (config.enabled && this.verifyConfig()) { + let _pass = this.verifyConfig(config) + + if (config.enabled && !_pass) { config.enabled = false + config.force = true + } else if (!config.enabled && config.force && _pass) { + config.enabled = true + delete config.force } if (config.cacheUseful !== 'true') { @@ -1178,6 +1235,10 @@ config.tbkey = key } + let interfaces = getFuncsAndInters(config) + roleParam.interfaces = interfaces + let langSql = getLangTrans(config) + let param = { func: 'sPC_TrdMenu_AddUpt', FstID: 'mk_app', @@ -1190,15 +1251,19 @@ TypeCharOne: sessionStorage.getItem('kei_no'), Typename: 'pc', MenuName: config.MenuName || '', - PageParam: JSON.stringify({Template: 'webPage'}), + PageParam: JSON.stringify({Template: 'webPage', interfaces}), menus_rolelist: window.btoa(window.encodeURIComponent(JSON.stringify(roleParam))), open_edition: config.open_edition, - LText: '', - LTexttb: '', + // LText: '', + // LTexttb: '', menus_used_list, debug_md5: key, debug_url: url, debug_list: window.btoa(tbs) + } + + if (langSql) { + param.lang_translation = window.btoa(window.encodeURIComponent(langSql)) } param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -1279,15 +1344,15 @@ PageParam: JSON.stringify({Template: NavBar.type}), menus_rolelist: window.btoa(window.encodeURIComponent(JSON.stringify(roles))), open_edition: NavBar.open_edition, - LText: '', - LTexttb: '' + // LText: '', + // LTexttb: '' } _param.LongParam = window.btoa(window.encodeURIComponent(JSON.stringify(NavBar))) _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') _param.secretkey = Utils.encrypt('', _param.timestamp) - Api.getSystemConfig(_param).then(res => { + Api.getCloudConfig(_param).then(res => { if (res.status) { NavBar.open_edition = res.open_edition || '' window.GLOB.CacheIndependent.set(NavBar.uuid, fromJS(NavBar).toJS()) @@ -1321,18 +1386,18 @@ let kparam = { func: 's_kei_link_keyids_addupt', BID: sessionStorage.getItem('appId'), - exec_type: 'y', + exec_type: 'x', LText: '' } kparam.LText = _appViewList.map(item => `select '${item.keys_id}','${item.keys_type}','${item.kei_no}','${item.appkey}','${item.bid}','${sessionStorage.getItem('CloudUserID')}','${item.remark}'`) kparam.LText = kparam.LText.join(' union all ') - kparam.LText = Utils.formatOptions(kparam.LText) + kparam.LText = Utils.formatOptions(kparam.LText, 'x') kparam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') kparam.secretkey = Utils.encrypt('', kparam.timestamp) - Api.getSystemConfig(kparam).then(result => { + Api.getCloudConfig(kparam).then(result => { if (result.status) { sessionStorage.setItem('appViewList', viewList) } @@ -1351,7 +1416,7 @@ }).then(res => { // 椤甸潰淇濆瓨 if (!res || !res.status) return res - return Api.getSystemConfig(param) + return Api.getCloudConfig(param) }).then(res => { this.setState({ menuloading: false @@ -1375,14 +1440,14 @@ message: '淇濆瓨鎴愬姛', duration: 2 }) - MKEmitter.emit('completeSave') } else { - notification.warning({ - top: 92, - message: res.message, - duration: 5 + Modal.warning({ + width: 400, + title: res.message, + okText: '鐭ラ亾浜�' }) } + MKEmitter.emit('completeSave') }, this.netError) }, 300 + (+sessionStorage.getItem('mkDelay'))) } @@ -1391,6 +1456,7 @@ this.setState({ menuloading: false }) + if (!error) { notification.warning({ top: 92, @@ -1398,11 +1464,12 @@ duration: 5 }) } + MKEmitter.emit('completeSave') } getRoleFields = () => { if (sessionStorage.getItem('sysRoles') || sessionStorage.getItem('permFuncField')) return - Api.getSystemConfig({func: 'sPC_Get_Roles_sModular'}).then(res => { + Api.getCloudConfig({func: 'sPC_Get_Roles_sModular'}).then(res => { if (res.status) { let _permFuncField = [] let _sysRoles = [] @@ -1435,17 +1502,22 @@ onEnabledChange = () => { const { config } = this.state - if (!config || (!config.enabled && this.verifyConfig(true))) { - return - } + let _config = {...config, enabled: !config.enabled} - this.setState({ - config: {...config, enabled: !config.enabled} - }) + delete _config.force + + if (!_config.enabled) { + this.setState({ + config: _config + }) + } else if (this.verifyConfig(_config)) { + this.setState({ + config: _config + }) + } } - verifyConfig = (show) => { - const { config } = this.state + verifyConfig = (config) => { let error = '' let check = (components) => { @@ -1472,7 +1544,7 @@ check(config.components) - if (show && error) { + if (config.enabled && error) { notification.warning({ top: 92, message: error, @@ -1480,7 +1552,7 @@ }) } - return error + return error === '' } // 鏇存柊閰嶇疆淇℃伅 @@ -1512,30 +1584,6 @@ this.setState({config}) window.GLOB.customMenu = config - - notification.success({ - top: 92, - message: '绮樿创鎴愬姛锛�', - duration: 2 - }) - } - - refreshView = () => { - if (!is(fromJS(this.state.oriConfig || {}), fromJS(this.state.config || {}))) { - notification.warning({ - top: 92, - message: '閰嶇疆淇℃伅鏈繚瀛橈紒', - duration: 5 - }) - return - } - - sessionStorage.removeItem('sysRoles') - sessionStorage.removeItem('permFuncField') - sessionStorage.removeItem('app_videos') - sessionStorage.removeItem('app_pictures') - - window.location.reload() } setHomeView = () => { @@ -1553,7 +1601,7 @@ let param = { func: 's_kei_link_keyids_addupt', BID: sessionStorage.getItem('appId'), - exec_type: 'y', + exec_type: 'x', LText: '' } @@ -1572,7 +1620,7 @@ param.LText = appViewList.map(item => `select '${item.keys_id}','${item.keys_type}','${item.kei_no}','${item.appkey}','${item.bid}','${sessionStorage.getItem('CloudUserID')}','${item.remark}'`) param.LText = param.LText.join(' union all ') - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, 'x') param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -1581,7 +1629,7 @@ title: '纭畾璁剧疆鏈〉闈负棣栭〉鍚楋紵', content: '', onOk() { - Api.getSystemConfig(param).then(result => { + Api.getCloudConfig(param).then(result => { if (!result.status) { notification.warning({ top: 92, @@ -1612,7 +1660,7 @@ let param = { func: 's_kei_link_keyids_addupt', BID: sessionStorage.getItem('appId'), - exec_type: 'y', + exec_type: 'x', LText: '' } @@ -1631,7 +1679,7 @@ param.LText = appViewList.map(item => `select '${item.keys_id}','${item.keys_type}','${item.kei_no}','${item.appkey}','${item.bid}','${sessionStorage.getItem('CloudUserID')}','${item.remark}'`) param.LText = param.LText.join(' union all ') - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, 'x') param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -1642,7 +1690,7 @@ title: '纭畾璁剧疆鏈〉闈负鐧诲綍椤靛悧锛�', content: hasLogin ? '' : '褰撳墠椤甸潰灏氭湭娣诲姞鐧诲綍缁勪欢銆�', onOk() { - Api.getSystemConfig(param).then(result => { + Api.getCloudConfig(param).then(result => { if (!result.status) { notification.warning({ top: 92, @@ -1658,11 +1706,31 @@ }) } + checklog = () => { + const { oriConfig, config } = this.state + + return is(fromJS(oriConfig), fromJS(config)) + } + + updateLogConfig = (config) => { + config.open_edition = this.state.config.open_edition || '' + + this.setState({ + config: null + }, () => { + this.setState({ + config: config + }) + }) + + window.GLOB.customMenu = config + } + render () { const { view, loading, comloading, activeKey, settingshow, controlshow, MenuId, config, menuloading, eyeopen, needUpdate } = this.state return ( - <ConfigProvider locale={antdZhCN}> + <> <DndProvider backend={HTML5Backend}> {view !== 'popview' ? <div className={'mk-pc-view '} id="mk-pc-design-view"> {loading ? <Spin className="view-spin" size="large" /> : null} @@ -1675,17 +1743,18 @@ <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}> {/* 鍩烘湰淇℃伅 */} <Panel header="鍩烘湰淇℃伅" key="basedata"> - {/* 鑿滃崟淇℃伅 */} - {config ? <MenuForm - config={config} - MenuId={MenuId} - updateConfig={this.updateConfig} - /> : null} - {config ? <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> : null} - {/* 琛ㄥ悕娣诲姞 */} - {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null} - {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null} - {config ? <NormalCss config={config} updateConfig={this.updateConfig}/> : null} + {config ? <> + <MenuForm + config={config} + MenuId={MenuId} + updateConfig={this.updateConfig} + /> + <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> + {/* 琛ㄥ悕娣诲姞 */} + <TableComponent config={config} updatetable={this.updateConfig}/> + <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> + <NormalCss config={config} updateConfig={this.updateConfig}/> + </> : null} </Panel> {/* 缁勪欢娣诲姞 */} <Panel header="缁勪欢" key="component"> @@ -1707,8 +1776,9 @@ </div> <div className="wrap"> <Button type="primary" className={needUpdate ? 'update-tip' : ''} id="save-config" onClick={this.submitConfig} loading={menuloading}>淇濆瓨</Button> - <Switch className="big" checkedChildren="鍚�" unCheckedChildren="鍋�" checked={config && config.enabled} onChange={this.onEnabledChange} /> + {config ? <Switch className="big" checkedChildren="鍚�" unCheckedChildren="鍋�" checked={config.enabled} onChange={this.onEnabledChange} /> : null} <ArrowLeftOutlined title="鍚庨��" className="back-view" onClick={this.backView}/> + {config ? <Debug config={config}/> : null} <Button className="mk-border-purple" onClick={() => this.setState({eyeopen: !eyeopen})}>{!eyeopen ? <EyeOutlined /> : <EyeInvisibleOutlined />} 缁勪欢鍚�</Button> <CreateView resetmenu={this.getAppMenus} /> <PasteController insert={this.insert} /> @@ -1722,8 +1792,7 @@ <Button className="mk-border-purple" onClick={this.setLoginView}><LoginOutlined/> 璁句负鐧诲綍椤�</Button> <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/> <Transfer MenuID={MenuId} /> - <Versions MenuId={MenuId} open_edition={config ? config.open_edition : ''}/> - <Button className="mk-border-danger" onClick={this.refreshView}><RedoOutlined /> 寮哄埗鍒锋柊</Button> + {config ? <Versions MenuId={MenuId} Template="webPage" checklog={this.checklog} updateConfig={this.updateLogConfig}/> : null} <Button type="default" onClick={this.closeView}>鍏抽棴</Button> </div> </div> @@ -1738,7 +1807,7 @@ <StyleController /> <StyleCombController /> <ModalController /> - </ConfigProvider> + </> ) } } -- Gitblit v1.8.0