From c8e680b315ce010905f6b0409d3156218abfe056 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 11 三月 2021 19:03:31 +0800 Subject: [PATCH] 2021-03-11 --- src/pc/components/navbar/normal-navbar/index.jsx | 7 src/pc/modulesource/option.jsx | 3 src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx | 40 ++ src/menu/components/carousel/prop-card/index.scss | 5 src/views/pcdesign/menuform/index.jsx | 4 src/utils/utils-custom.js | 16 + src/menu/components/card/cardcellcomponent/elementform/index.jsx | 4 src/pc/menushell/index.jsx | 2 src/assets/mobimg/carousel1.png | 0 src/menu/components/tabs/tabcomponents/index.jsx | 2 src/templates/menuconfig/editthdmenu/index.jsx | 2 src/views/pcdesign/index.scss | 10 src/tabviews/zshare/actionList/normalbutton/index.jsx | 108 ++++--- src/views/menudesign/index.jsx | 2 src/menu/modulesource/option.jsx | 3 src/index.js | 3 src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx | 40 ++ src/assets/mobimg/carousel.png | 0 src/menu/components/card/cardcellcomponent/index.jsx | 2 src/views/pcdesign/index.jsx | 257 +++++++++++++++-- src/templates/modalconfig/settingform/index.jsx | 7 src/menu/datasource/verifycard/settingform/index.jsx | 2 src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx | 12 src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx | 12 src/menu/components/share/actioncomponent/index.jsx | 2 src/tabviews/zshare/actionList/printbutton/index.jsx | 106 ++++--- src/menu/components/card/cardcellcomponent/formconfig.jsx | 120 ++++--- src/pc/components/navbar/normal-navbar/wrapsetting/settingform/index.jsx | 14 src/menu/menushell/index.jsx | 2 29 files changed, 541 insertions(+), 246 deletions(-) diff --git a/src/assets/mobimg/carousel.png b/src/assets/mobimg/carousel.png index 58750da..ec67284 100644 --- a/src/assets/mobimg/carousel.png +++ b/src/assets/mobimg/carousel.png Binary files differ diff --git a/src/assets/mobimg/carousel1.png b/src/assets/mobimg/carousel1.png new file mode 100644 index 0000000..09e1a4b --- /dev/null +++ b/src/assets/mobimg/carousel1.png Binary files differ diff --git a/src/index.js b/src/index.js index 4f87b72..d83cf4f 100644 --- a/src/index.js +++ b/src/index.js @@ -67,7 +67,7 @@ }) .then(config => { if (!config) return - + let GLOB = {} GLOB.appId = config.appId || '' GLOB.lineColor = config.lineColor || '' @@ -77,7 +77,6 @@ GLOB.externalDatabase = config.externalDatabase ? `[${config.externalDatabase}]..` : '' } else { GLOB.externalDatabase = null - } // 鍙湁涓氬姟绯荤粺鎵嶅彲浠ヨ缃负姝e紡绯荤粺 diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index c116d50..2f0f75c 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -104,9 +104,9 @@ if (link === 'dynamic' || link === 'static' || link === 'custom') { _options.push('linkurl', 'joint') } else if (link === 'page') { - _options.push('copyMenuId', 'joint') + _options.push('copyMenuId', 'joint', 'open') } else if (link === 'linkpage') { - _options.push('linkmenu', 'joint') + _options.push('linkmenu', 'joint', 'open') } } } else if (eleType === 'icon') { diff --git a/src/menu/components/card/cardcellcomponent/formconfig.jsx b/src/menu/components/card/cardcellcomponent/formconfig.jsx index 2552a71..0e1c9f3 100644 --- a/src/menu/components/card/cardcellcomponent/formconfig.jsx +++ b/src/menu/components/card/cardcellcomponent/formconfig.jsx @@ -150,60 +150,6 @@ ] }, { - type: 'radio', - key: 'link', - label: '閾炬帴', - initVal: card.link || '', - tooltip: '鍔ㄦ�佸湴鍧�涓虹粦瀹氬瓧娈靛�笺��', - required: false, - forbid: isApp, - options: [ - { value: '', text: '鏃�' }, - { value: 'dynamic', text: '鍔ㄦ��' }, - { value: 'static', text: '闈欐��' } - ] - }, - { - type: 'select', - key: 'link', - label: '閾炬帴', - initVal: card.link || '', - required: false, - forbid: !isApp, - options: [ - { value: '', text: '鏃�' }, - { value: 'page', text: '鑿滃崟' }, - { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, - { value: 'custom', text: '閾炬帴' } - ] - }, - { - type: 'select', - key: 'linkmenu', - label: '鍏宠仈鑿滃崟', - initVal: card.linkmenu || '', - required: true, - forbid: !isApp, - options: appMenus - }, - { - type: 'select', - key: 'copyMenuId', - label: '澶嶅埗鑿滃崟', - initVal: card.copyMenuId || '', - required: false, - forbid: !isApp, - options: appMenus - }, - { - type: 'select', - key: 'linkurl', - label: '閾炬帴鍦板潃', - initVal: card.linkurl || '', - required: true, - options: [] - }, - { type: 'select', key: 'format', label: '鏍煎紡鍖�', @@ -364,6 +310,64 @@ }, { type: 'radio', + key: 'link', + label: '閾炬帴', + initVal: card.link || '', + tooltip: '鍔ㄦ�佸湴鍧�涓虹粦瀹氬瓧娈靛�笺��', + required: false, + forbid: isApp, + options: [ + { value: '', text: '鏃�' }, + { value: 'dynamic', text: '鍔ㄦ��' }, + { value: 'static', text: '闈欐��' } + ] + }, + { + type: 'select', + key: 'link', + label: '閾炬帴', + initVal: card.link || '', + required: false, + forbid: !isApp, + options: [ + { value: '', text: '鏃�' }, + { value: 'page', text: '鑿滃崟' }, + { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, + { value: 'custom', text: '閾炬帴' } + ] + }, + { + type: 'select', + key: 'linkmenu', + label: '鍏宠仈鑿滃崟', + initVal: card.linkmenu || '', + required: true, + forbid: !isApp, + options: appMenus + }, + { + type: 'radio', + key: 'open', + label: '鎵撳紑鏂瑰紡', + initVal: card.open || 'blank', + required: false, + forbid: !isApp, + options: [ + { value: 'blank', text: '鏂伴〉闈�' }, + { value: 'self', text: '褰撳墠椤甸潰' } + ] + }, + { + type: 'select', + key: 'copyMenuId', + label: '澶嶅埗鑿滃崟', + initVal: card.copyMenuId || '', + required: false, + forbid: !isApp, + options: appMenus + }, + { + type: 'radio', key: 'joint', label: Formdict['model.form.paramJoint'], initVal: card.joint || 'true', @@ -376,6 +380,14 @@ text: Formdict['model.false'] }] }, + { + type: 'select', + key: 'linkurl', + label: '閾炬帴鍦板潃', + initVal: card.linkurl || '', + required: true, + options: [] + }, ] return forms diff --git a/src/menu/components/card/cardcellcomponent/index.jsx b/src/menu/components/card/cardcellcomponent/index.jsx index c37edfa..5be4d5e 100644 --- a/src/menu/components/card/cardcellcomponent/index.jsx +++ b/src/menu/components/card/cardcellcomponent/index.jsx @@ -11,7 +11,7 @@ import { getActionForm } from '@/menu/components/share/actioncomponent/formconfig' import MKEmitter from '@/utils/events.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import ElementForm from './elementform' import DragElement from './dragaction' import './index.scss' diff --git a/src/menu/components/carousel/prop-card/index.scss b/src/menu/components/carousel/prop-card/index.scss index a53e20c..c4bbe92 100644 --- a/src/menu/components/carousel/prop-card/index.scss +++ b/src/menu/components/carousel/prop-card/index.scss @@ -47,6 +47,11 @@ width: 5px; } } + .ant-carousel { + .slick-dots li button { + background: #1890ff; + } + } .card-item:hover { box-shadow: 0px 0px 2px #1890ff; diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx index 459e98e..29d0d30 100644 --- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx @@ -8,10 +8,25 @@ * @param {object} card // 鍥捐〃瀵硅薄 */ export function getBaseForm (card) { - let menulist = sessionStorage.getItem('fstMenuList') + let isApp = sessionStorage.getItem('appType') === 'pc' + let menulist = null + + if (isApp) { + menulist = sessionStorage.getItem('appMenus') + } else { + menulist = sessionStorage.getItem('fstMenuList') + } + if (menulist) { try { menulist = JSON.parse(menulist) + if (isApp) { + menulist = menulist.map(item => { + item.value = item.MenuID + item.text = item.MenuName + return item + }) + } } catch { menulist = [] } @@ -83,7 +98,30 @@ initVal: card.linkmenu || [], tooltip: '鍦ㄤ娇鐢ㄦ煴褰㈠浘涓旀湭鍚敤鑷畾涔夎缃椂鏈夋晥銆�', required: false, + forbid: isApp, options: menulist + }, + { + type: 'select', + key: 'linkmenu', + label: '鍏宠仈鑿滃崟', + initVal: card.linkmenu || '', + tooltip: '鍙屽嚮楗煎浘锛屼細鎵撳紑鍏宠仈鐨勮彍鍗曘��', + required: false, + forbid: !isApp, + options: menulist + }, + { + type: 'radio', + key: 'open', + label: '鎵撳紑鏂瑰紡', + initVal: card.open || 'blank', + required: false, + forbid: !isApp, + options: [ + { value: 'blank', text: '鏂扮獥鍙�' }, + { value: 'self', text: '褰撳墠绐楀彛' } + ] } ] } diff --git a/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx index d32684c..6c4e322 100644 --- a/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx @@ -8,10 +8,25 @@ * @param {object} card // 鍥捐〃瀵硅薄 */ export function getBaseForm (card) { - let menulist = sessionStorage.getItem('fstMenuList') + let isApp = sessionStorage.getItem('appType') === 'pc' + let menulist = null + + if (isApp) { + menulist = sessionStorage.getItem('appMenus') + } else { + menulist = sessionStorage.getItem('fstMenuList') + } + if (menulist) { try { menulist = JSON.parse(menulist) + if (isApp) { + menulist = menulist.map(item => { + item.value = item.MenuID + item.text = item.MenuName + return item + }) + } } catch { menulist = [] } @@ -83,7 +98,30 @@ initVal: card.linkmenu || [], tooltip: '鍙屽嚮楗煎浘锛屼細鎵撳紑鍏宠仈鐨勮彍鍗曘��', required: false, + forbid: isApp, options: menulist + }, + { + type: 'select', + key: 'linkmenu', + label: '鍏宠仈鑿滃崟', + initVal: card.linkmenu || '', + tooltip: '鍙屽嚮楗煎浘锛屼細鎵撳紑鍏宠仈鐨勮彍鍗曘��', + required: false, + forbid: !isApp, + options: menulist + }, + { + type: 'radio', + key: 'open', + label: '鎵撳紑鏂瑰紡', + initVal: card.open || 'blank', + required: false, + forbid: !isApp, + options: [ + { value: 'blank', text: '鏂扮獥鍙�' }, + { value: 'self', text: '褰撳墠绐楀彛' } + ] } ] } diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx index e42041d..e83c9bd 100644 --- a/src/menu/components/share/actioncomponent/index.jsx +++ b/src/menu/components/share/actioncomponent/index.jsx @@ -12,7 +12,7 @@ import MKEmitter from '@/utils/events.js' import ActionForm from './actionform' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import CreateFunc from '@/templates/zshare/createfunc' import DragElement from './dragaction' import './index.scss' diff --git a/src/menu/components/tabs/tabcomponents/index.jsx b/src/menu/components/tabs/tabcomponents/index.jsx index 60a625c..7a913bc 100644 --- a/src/menu/components/tabs/tabcomponents/index.jsx +++ b/src/menu/components/tabs/tabcomponents/index.jsx @@ -6,7 +6,7 @@ import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import Card from './card' import './index.scss' diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx index a000237..bc1d2b9 100644 --- a/src/menu/datasource/verifycard/settingform/index.jsx +++ b/src/menu/datasource/verifycard/settingform/index.jsx @@ -4,7 +4,7 @@ import { formRule } from '@/utils/option.js' import Utils from '@/utils/utils.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import CodeMirror from '@/templates/zshare/codemirror' import './index.scss' diff --git a/src/menu/menushell/index.jsx b/src/menu/menushell/index.jsx index fc5d648..5f65129 100644 --- a/src/menu/menushell/index.jsx +++ b/src/menu/menushell/index.jsx @@ -6,7 +6,7 @@ import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import Card from './card' import './index.scss' diff --git a/src/menu/modulesource/option.jsx b/src/menu/modulesource/option.jsx index 1996e96..112abf9 100644 --- a/src/menu/modulesource/option.jsx +++ b/src/menu/modulesource/option.jsx @@ -15,6 +15,7 @@ import Pie2 from '@/assets/mobimg/nightingale.png' import Mainsearch from '@/assets/mobimg/mainsearch.png' import Carousel from '@/assets/mobimg/carousel.png' +import Carousel1 from '@/assets/mobimg/carousel1.png' // 缁勪欢閰嶇疆淇℃伅 export const menuOptions = [ @@ -23,7 +24,7 @@ { type: 'menu', url: card1, component: 'card', subtype: 'datacard', title: '鏁版嵁鍗�', width: 24 }, { type: 'menu', url: card2, component: 'card', subtype: 'propcard', title: '灞炴�у崱', width: 24 }, { type: 'menu', url: Carousel, component: 'carousel', subtype: 'datacard', title: '杞挱-鍔ㄦ�佹暟鎹�', width: 24, forbid: ['billPrint'] }, - { type: 'menu', url: Carousel, component: 'carousel', subtype: 'propcard', title: '杞挱-闈欐�佹暟鎹�', width: 24, forbid: ['billPrint'] }, + { type: 'menu', url: Carousel1, component: 'carousel', subtype: 'propcard', title: '杞挱-闈欐�佹暟鎹�', width: 24, forbid: ['billPrint'] }, { type: 'menu', url: NormalTable, component: 'table', subtype: 'normaltable', title: '甯哥敤琛�', width: 24 }, { type: 'menu', url: TableCard, component: 'table', subtype: 'tablecard', title: '琛ㄦ牸', width: 12 }, { type: 'menu', url: line, component: 'line', subtype: 'line', title: '鎶樼嚎鍥�', width: 24 }, diff --git a/src/pc/components/navbar/normal-navbar/index.jsx b/src/pc/components/navbar/normal-navbar/index.jsx index f9522ac..a59fb4c 100644 --- a/src/pc/components/navbar/normal-navbar/index.jsx +++ b/src/pc/components/navbar/normal-navbar/index.jsx @@ -13,8 +13,6 @@ const WrapComponent = asyncIconComponent(() => import('./wrapsetting')) const MenuComponent = asyncIconComponent(() => import('./menusetting')) const LinkComponent = asyncIconComponent(() => import('./linksetting')) -const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent')) -const UserComponent = asyncIconComponent(() => import('@/menu/components/share/usercomponent')) const { SubMenu } = Menu @@ -141,8 +139,11 @@ changeMenu = (menu) => { MKEmitter.emit('changeEditMenu', { + fixed: menu.property === 'menu', MenuID: menu.property === 'linkmenu' ? menu.linkMenuId : menu.MenuID, copyMenuId: menu.property === 'menu' ? menu.copyMenuId : '', + MenuNo: menu.MenuNo, + MenuName: menu.name, }) } @@ -169,9 +170,7 @@ <MenuComponent config={card} updateConfig={this.updateComponent} /> <LinkComponent config={card} updateConfig={this.updateComponent} /> <WrapComponent config={card} updateConfig={this.updateComponent} /> - <CopyComponent type="normalnarbar" card={card}/> <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> - <UserComponent config={card}/> <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> </div> } trigger="hover"> diff --git a/src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx b/src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx index a07f0a8..7fc5a87 100644 --- a/src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx +++ b/src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx @@ -14,7 +14,6 @@ state = { property: this.props.menu.property || 'link', - linkIntId: this.props.menu.linkIntId || '', appMenus: [], } @@ -47,9 +46,6 @@ return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - if (values.linkmenuid) { - values.linkIntId = this.state.linkIntId || '' - } resolve(values) } else { reject(err) @@ -70,10 +66,6 @@ let val = e.target.value this.setState({property: val}) - } - - changeLinkMenu = (val, { props }) => { - this.setState({linkIntId: props.intid}) } render() { @@ -157,8 +149,8 @@ message: '璇烽�夋嫨鍏宠仈鑿滃崟!' }] })( - <Select onChange={this.changeLinkMenu}> - {appMenus.map(item => (<Select.Option key={item.MenuID} intid={item.menuid_int} value={item.MenuID}>{item.MenuName}</Select.Option>))} + <Select> + {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} </Select> )} </Form.Item> diff --git a/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx b/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx index aa849da..fad6b76 100644 --- a/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx +++ b/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx @@ -14,7 +14,6 @@ state = { property: this.props.menu.property || 'menu', - linkIntId: this.props.menu.linkIntId || '', appMenus: [], } @@ -47,9 +46,6 @@ return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - if (values.linkmenuid) { - values.linkIntId = this.state.linkIntId || '' - } resolve(values) } else { reject(err) @@ -70,10 +66,6 @@ let val = e.target.value this.setState({property: val}) - } - - changeLinkMenu = (val, { props }) => { - this.setState({linkIntId: props.intid}) } render() { @@ -184,8 +176,8 @@ message: '璇烽�夋嫨鍏宠仈鑿滃崟!' }] })( - <Select onChange={this.changeLinkMenu}> - {appMenus.map(item => (<Select.Option key={item.MenuID} intid={item.menuid_int} value={item.MenuID}>{item.MenuName}</Select.Option>))} + <Select> + {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} </Select> )} </Form.Item> diff --git a/src/pc/components/navbar/normal-navbar/wrapsetting/settingform/index.jsx b/src/pc/components/navbar/normal-navbar/wrapsetting/settingform/index.jsx index 9361e39..b5d097d 100644 --- a/src/pc/components/navbar/normal-navbar/wrapsetting/settingform/index.jsx +++ b/src/pc/components/navbar/normal-navbar/wrapsetting/settingform/index.jsx @@ -16,8 +16,7 @@ } state = { - appMenus: [], - logointid: this.props.wrap.linkIntId || '' + appMenus: [] } UNSAFE_componentWillMount () { @@ -36,17 +35,10 @@ } handleConfirm = () => { - const { logointid } = this.state // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - values.linkIntId = '' - - if (values.logolink && logointid) { - values.linkIntId = logointid - } - resolve(values) } else { reject(err) @@ -67,7 +59,6 @@ const { wrap } = this.props const { getFieldDecorator } = this.props.form const { appMenus } = this.state - const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -156,12 +147,11 @@ })( <Select showSearch - onChange={(val, { props }) => this.setState({logointid: props.intid})} filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} > <Select.Option key="empty" intid={''} value={''}>鏃�</Select.Option> {appMenus.map(option => - <Select.Option key={option.MenuID} intid={option.menuid_int} value={option.MenuID}>{option.MenuName}</Select.Option> + <Select.Option key={option.MenuID} value={option.MenuID}>{option.MenuName}</Select.Option> )} </Select> )} diff --git a/src/pc/menushell/index.jsx b/src/pc/menushell/index.jsx index f8e35be..7dac00b 100644 --- a/src/pc/menushell/index.jsx +++ b/src/pc/menushell/index.jsx @@ -6,7 +6,7 @@ import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import Card from './card' import './index.scss' diff --git a/src/pc/modulesource/option.jsx b/src/pc/modulesource/option.jsx index 2627a6c..c6b167e 100644 --- a/src/pc/modulesource/option.jsx +++ b/src/pc/modulesource/option.jsx @@ -16,6 +16,7 @@ import Mainsearch from '@/assets/mobimg/mainsearch.png' import Navbar from '@/assets/mobimg/navbar.png' import Carousel from '@/assets/mobimg/carousel.png' +import Carousel1 from '@/assets/mobimg/carousel1.png' // 缁勪欢閰嶇疆淇℃伅 export const menuOptions = [ @@ -25,7 +26,7 @@ { type: 'menu', url: card1, component: 'card', subtype: 'datacard', title: '鏁版嵁鍗�', width: 24 }, { type: 'menu', url: card2, component: 'card', subtype: 'propcard', title: '灞炴�у崱', width: 24 }, { type: 'menu', url: Carousel, component: 'carousel', subtype: 'datacard', title: '杞挱-鍔ㄦ�佹暟鎹�', width: 24 }, - { type: 'menu', url: Carousel, component: 'carousel', subtype: 'propcard', title: '杞挱-闈欐�佹暟鎹�', width: 24 }, + { type: 'menu', url: Carousel1, component: 'carousel', subtype: 'propcard', title: '杞挱-闈欐�佹暟鎹�', width: 24 }, { type: 'menu', url: NormalTable, component: 'table', subtype: 'normaltable', title: '甯哥敤琛�', width: 24 }, { type: 'menu', url: TableCard, component: 'table', subtype: 'tablecard', title: '琛ㄦ牸', width: 12 }, { type: 'menu', url: line, component: 'line', subtype: 'line', title: '鎶樼嚎鍥�', width: 24 }, diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 7c56bbe..fc44aa9 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -197,9 +197,14 @@ } else if (btn.OpenType === 'pop') { this.updateStatus('start') + let modal = this.state.btnconfig + if (!modal && btn.modal) { + modal = this.handleModelConfig(btn.modal) + } + this.setState({ tabledata: data, - btnconfig: btn.modal ? btn.modal : this.state.btnconfig + btnconfig: modal }, () => { this.improveAction() }) @@ -1397,6 +1402,57 @@ }) } + handleModelConfig = (config) => { + let roleId = sessionStorage.getItem('role_id') || '' // 瑙掕壊ID + if (config.groups.length > 0) { + config.groups.forEach(group => { + group.sublist = group.sublist.map(cell => { + // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛� 鏉冮檺榛戝悕鍗曞瓧娈佃缃负闅愯棌琛ㄥ崟 + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { + let _option = Utils.getSelectQueryOptions(cell) + + // 澶栬仈鏁版嵁搴撴浛鎹� + if (window.GLOB.externalDatabase !== null) { + _option.sql = _option.sql.replace(/@db@/ig, window.GLOB.externalDatabase) + } + + cell.data_sql = Utils.formatOptions(_option.sql) + cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) + cell.arr_field = _option.field + } + + // 瀛楁鏉冮檺榛戝悕鍗� + if (!cell.blacklist || cell.blacklist.length === 0) return cell + if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { + cell.hidden = 'true' + } + + return cell + }) + }) + } else { + config.fields = config.fields.map(cell => { + // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛屾潈闄愰粦鍚嶅崟瀛楁璁剧疆涓洪殣钘忚〃鍗� + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { + let _option = Utils.getSelectQueryOptions(cell) + + cell.data_sql = Utils.formatOptions(_option.sql) + cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) + cell.arr_field = _option.field + } + + // 瀛楁鏉冮檺榛戝悕鍗� + if (!cell.blacklist || cell.blacklist.length === 0) return cell + if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { + cell.hidden = 'true' + } + + return cell + }) + } + return config + } + /** * @description 鑾峰彇鎸夐挳閰嶇疆淇℃伅 */ @@ -1443,54 +1499,8 @@ }) this.updateStatus('over') } else { - let roleId = sessionStorage.getItem('role_id') || '' // 瑙掕壊ID - if (_LongParam.groups.length > 0) { - _LongParam.groups.forEach(group => { - group.sublist = group.sublist.map(cell => { - // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛� 鏉冮檺榛戝悕鍗曞瓧娈佃缃负闅愯棌琛ㄥ崟 - if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { - let _option = Utils.getSelectQueryOptions(cell) - - // 澶栬仈鏁版嵁搴撴浛鎹� - if (window.GLOB.externalDatabase !== null) { - _option.sql = _option.sql.replace(/@db@/ig, window.GLOB.externalDatabase) - } - - cell.data_sql = Utils.formatOptions(_option.sql) - cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) - cell.arr_field = _option.field - } - - // 瀛楁鏉冮檺榛戝悕鍗� - if (!cell.blacklist || cell.blacklist.length === 0) return cell - if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { - cell.hidden = 'true' - } - - return cell - }) - }) - } else { - _LongParam.fields = _LongParam.fields.map(cell => { - // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛屾潈闄愰粦鍚嶅崟瀛楁璁剧疆涓洪殣钘忚〃鍗� - if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { - let _option = Utils.getSelectQueryOptions(cell) - - cell.data_sql = Utils.formatOptions(_option.sql) - cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) - cell.arr_field = _option.field - } - - // 瀛楁鏉冮檺榛戝悕鍗� - if (!cell.blacklist || cell.blacklist.length === 0) return cell - if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { - cell.hidden = 'true' - } - - return cell - }) - } - + _LongParam = this.handleModelConfig(_LongParam) + this.setState({ btnconfig: _LongParam }, () => { diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx index a778431..33b5643 100644 --- a/src/tabviews/zshare/actionList/printbutton/index.jsx +++ b/src/tabviews/zshare/actionList/printbutton/index.jsx @@ -140,9 +140,14 @@ if (btn.execMode === 'pop') { this.updateStatus('start') + let modal = this.state.btnconfig + if (!modal && btn.modal) { + modal = this.handleModelConfig(btn.modal) + } + this.setState({ tabledata: data, - btnconfig: btn.modal ? btn.modal : this.state.btnconfig + btnconfig: modal }, () => { this.improveAction() }) @@ -1022,6 +1027,57 @@ }) } + handleModelConfig = (config) => { + let roleId = sessionStorage.getItem('role_id') || '' // 瑙掕壊ID + if (config.groups.length > 0) { + config.groups.forEach(group => { + group.sublist = group.sublist.map(cell => { + // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛� 鏉冮檺榛戝悕鍗曞瓧娈佃缃负闅愯棌琛ㄥ崟 + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { + let _option = Utils.getSelectQueryOptions(cell) + + // 澶栬仈鏁版嵁搴撴浛鎹� + if (window.GLOB.externalDatabase !== null) { + _option.sql = _option.sql.replace(/@db@/ig, window.GLOB.externalDatabase) + } + + cell.data_sql = Utils.formatOptions(_option.sql) + cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) + cell.arr_field = _option.field + } + + // 瀛楁鏉冮檺榛戝悕鍗� + if (!cell.blacklist || cell.blacklist.length === 0) return cell + if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { + cell.hidden = 'true' + } + + return cell + }) + }) + } else { + config.fields = config.fields.map(cell => { + // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛屾潈闄愰粦鍚嶅崟瀛楁璁剧疆涓洪殣钘忚〃鍗� + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { + let _option = Utils.getSelectQueryOptions(cell) + + cell.data_sql = Utils.formatOptions(_option.sql) + cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) + cell.arr_field = _option.field + } + + // 瀛楁鏉冮檺榛戝悕鍗� + if (!cell.blacklist || cell.blacklist.length === 0) return cell + if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { + cell.hidden = 'true' + } + + return cell + }) + } + return config + } + /** * @description 鑾峰彇鎸夐挳閰嶇疆淇℃伅 */ @@ -1068,53 +1124,7 @@ }) this.updateStatus('over') } else { - let roleId = sessionStorage.getItem('role_id') || '' // 瑙掕壊ID - if (_LongParam.groups.length > 0) { - _LongParam.groups.forEach(group => { - group.sublist = group.sublist.map(cell => { - // 鏁版嵁婧恠ql璇彞锛岄澶勭悊 - if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { - let _option = Utils.getSelectQueryOptions(cell) - - // 澶栬仈鏁版嵁搴撴浛鎹� - if (window.GLOB.externalDatabase !== null) { - _option.sql = _option.sql.replace(/@db@/ig, window.GLOB.externalDatabase) - } - - cell.data_sql = Utils.formatOptions(_option.sql) - cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) - cell.arr_field = _option.field - } - - // 瀛楁鏉冮檺榛戝悕鍗� - if (!cell.blacklist || cell.blacklist.length === 0) return cell - if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { - cell.hidden = 'true' - } - - return cell - }) - }) - } else { - _LongParam.fields = _LongParam.fields.map(cell => { - // 鏁版嵁婧恠ql璇彞锛岄澶勭悊 - if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(cell.type) && cell.resourceType === '1') { - let _option = Utils.getSelectQueryOptions(cell) - - cell.data_sql = Utils.formatOptions(_option.sql) - cell.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) - cell.arr_field = _option.field - } - - // 瀛楁鏉冮檺榛戝悕鍗� - if (!cell.blacklist || cell.blacklist.length === 0) return cell - if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { - cell.hidden = 'true' - } - - return cell - }) - } + _LongParam = this.handleModelConfig(_LongParam) this.setState({ btnconfig: _LongParam diff --git a/src/templates/menuconfig/editthdmenu/index.jsx b/src/templates/menuconfig/editthdmenu/index.jsx index 98f19d2..f73271f 100644 --- a/src/templates/menuconfig/editthdmenu/index.jsx +++ b/src/templates/menuconfig/editthdmenu/index.jsx @@ -21,7 +21,7 @@ import MenuForm from './menuform' import TransferForm from '@/templates/zshare/basetransferform' import Utils from '@/utils/utils.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import DragElement from '../menuelement' import asyncLoadComponent from '@/utils/asyncLoadComponent' import './index.scss' diff --git a/src/templates/modalconfig/settingform/index.jsx b/src/templates/modalconfig/settingform/index.jsx index e4c44a3..7183cad 100644 --- a/src/templates/modalconfig/settingform/index.jsx +++ b/src/templates/modalconfig/settingform/index.jsx @@ -13,7 +13,8 @@ } state = { - fields: null + fields: null, + appType: sessionStorage.getItem('appType') } UNSAFE_componentWillMount () { @@ -65,7 +66,7 @@ render() { const { config, dict } = this.props - const { fields } = this.state + const { fields, appType } = this.state const { getFieldDecorator } = this.props.form const formItemLayout = { @@ -161,7 +162,7 @@ )} </Form.Item> </Col> - {!this.props.isSubTab ? <Col span={12}> + {!this.props.isSubTab && appType !== 'pc' ? <Col span={12}> <Form.Item label="鎸傝浇瀵硅薄"> {getFieldDecorator('container', { initialValue: config.setting.container || 'tab' diff --git a/src/menu/utils/menuUtils.js b/src/utils/utils-custom.js similarity index 94% rename from src/menu/utils/menuUtils.js rename to src/utils/utils-custom.js index 0a705c7..e991da4 100644 --- a/src/menu/utils/menuUtils.js +++ b/src/utils/utils-custom.js @@ -183,7 +183,7 @@ getUuids(c) }) } else { - if (item.action && item.action.length) { + if (item.action && item.action.length > 0) { item.action.forEach(act => { if (!act.origin) { uuids.push(act.uuid) @@ -198,6 +198,14 @@ } }) _card.backElements && _card.backElements.forEach(cell => { + if (cell.eleType === 'button') { + uuids.push(cell.uuid) + } + }) + }) + } else if (item.type === 'carousel') { + item.subcards.forEach(_card => { + _card.elements && _card.elements.forEach(cell => { if (cell.eleType === 'button') { uuids.push(cell.uuid) } @@ -248,6 +256,10 @@ */ static resetConfig = (components) => { return components.map(item => { + if (item.type === 'navbar') { + return item + } + item.uuid = this.getuuid() if (item.type === 'tabs') { @@ -268,7 +280,7 @@ return cell }) item.components = this.resetConfig(item.components) - } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) { + } else if (item.type === 'card' || item.type === 'carousel' || (item.type === 'table' && item.subtype === 'tablecard')) { item.subcards.forEach(card => { card.uuid = this.getuuid() if (card.elements) { diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 07d3ad2..c71f7a2 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -15,7 +15,7 @@ import antdEnUS from 'antd/es/locale/en_US' import antdZhCN from 'antd/es/locale/zh_CN' import MKEmitter from '@/utils/events.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' import { modifyCustomMenu } from '@/store/action' diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 0f54908..515a08f 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -5,7 +5,7 @@ import { is, fromJS } from 'immutable' import moment from 'moment' import HTML5Backend from 'react-dnd-html5-backend' -import { ConfigProvider, notification, Modal, Collapse, Switch, Button, Icon } from 'antd' +import { ConfigProvider, notification, Modal, Collapse, Switch, Button, Icon, message, Spin } from 'antd' import Api from '@/api' import Utils from '@/utils/utils.js' @@ -14,7 +14,7 @@ import antdEnUS from 'antd/es/locale/en_US' import antdZhCN from 'antd/es/locale/zh_CN' import MKEmitter from '@/utils/events.js' -import MenuUtils from '@/menu/utils/menuUtils.js' +import MenuUtils from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' import { modifyCustomMenu } from '@/store/action' @@ -48,6 +48,7 @@ state = { localedict: sessionStorage.getItem('lang') !== 'en-US' ? antdZhCN : antdEnUS, dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, + loading: true, MenuId: '', MenuName: '', MenuNo: '', @@ -76,7 +77,7 @@ sessionStorage.setItem('link_type', param.link_type || 'true') sessionStorage.setItem('role_type', param.role_type || 'true') sessionStorage.setItem('login_types', param.login_types || 'true') - + this.setState({ localedict: sessionStorage.getItem('lang') !== 'en-US' ? antdZhCN : antdEnUS, dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS @@ -86,7 +87,7 @@ this.setState({ MenuId: param.MenuID }, () => { - this.getMenuParam() + this.getMenuParam(param) }) } } catch { @@ -141,16 +142,28 @@ changeEditMenu = (menu) => { const { oriConfig, config } = this.state - if (!is(fromJS(oriConfig), fromJS(config))) { + if (!oriConfig || !is(fromJS(oriConfig), fromJS(config))) { notification.warning({ top: 92, - message: '閰嶇疆宸蹭慨鏀癸紝璇蜂繚瀛橈紒', + message: '閰嶇疆淇℃伅鏈繚瀛橈紒', duration: 5 }) return } - this.props.history.push('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: menu.MenuID, copyMenuId: menu.copyMenuId || '', type: 'view'})))) + let param = { + MenuID: menu.MenuID, + copyMenuId: menu.copyMenuId || '', + type: 'view' + } + + if (menu.fixed && menu.MenuNo && menu.MenuName) { + param.fixed = true + param.MenuNo = menu.MenuNo + param.MenuName = menu.MenuName + } + + this.props.history.push('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify(param)))) } getAppMessage = () => { @@ -213,11 +226,13 @@ }) } else { sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) + sessionStorage.setItem('appHomeId', homeId) this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: homeId, type: 'view'})))) } }) } else { sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) + sessionStorage.setItem('appHomeId', homeId) this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: homeId, type: 'view'})))) } }) @@ -329,10 +344,10 @@ initPopview = (card, btn) => { const { oriConfig, config } = this.state - if (!is(fromJS(oriConfig), fromJS(config))) { + if (!oriConfig || !is(fromJS(oriConfig), fromJS(config))) { notification.warning({ top: 92, - message: '閰嶇疆宸蹭慨鏀癸紝璇蜂繚瀛橈紒', + message: '閰嶇疆淇℃伅鏈繚瀛橈紒', duration: 5 }) return @@ -354,9 +369,9 @@ return } - if (!is(fromJS(oriConfig), fromJS(config))) { + if (!oriConfig || !is(fromJS(oriConfig), fromJS(config))) { confirm({ - title: '閰嶇疆宸蹭慨鏀癸紝鏀惧純淇濆瓨鍚楋紵', + title: '閰嶇疆淇℃伅鏈繚瀛橈紝纭畾鍏抽棴鍚楋紵', content: '', onOk() { window.close() @@ -368,7 +383,7 @@ } } - getMenuParam = () => { + getMenuParam = (urlParam) => { const { MenuId } = this.state let param = { @@ -379,8 +394,19 @@ } Api.getSystemConfig(param).then(result => { - if (result.status) { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + this.setState({loading: false}) + return + } else if (!result.LongParam && urlParam.copyMenuId) { + this.getCopyParam(urlParam) + } else { let config = null + let isCreate = false try { config = result.LongParam ? JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) : null @@ -390,6 +416,7 @@ } if (!config) { + isCreate = true config = { version: 1.0, uuid: MenuId, @@ -411,6 +438,12 @@ config.MenuID = MenuId config.open_edition = result.open_edition || '' + if (urlParam.fixed) { + config.fixed = true + config.MenuName = urlParam.MenuName + config.MenuNo = urlParam.MenuNo + } + let indeComs = [] config.components.forEach(item => { if (item.type === 'navbar') { @@ -420,23 +453,21 @@ if (indeComs.length === 0) { this.setState({ - oriConfig: config, + oriConfig: isCreate ? null : config, config: fromJS(config).toJS(), + loading: false }) this.props.modifyCustomMenu(config) } else { - this.jointComponents(config, indeComs) + this.jointComponents(config, indeComs, isCreate) } - } else { - notification.warning({ - top: 92, - message: result.message, - duration: 5 - }) } }) + this.getAppMenus() + } + getAppMenus = () => { let _param = { func: 's_get_app_menus', TypeCharOne: sessionStorage.getItem('kei_no'), @@ -466,7 +497,90 @@ }) } - jointComponents = (config, indeComs) => { + getCopyParam = (urlParam) => { + const { MenuId } = this.state + + let param = { + func: 'sPC_Get_LongParam', + TypeCharOne: sessionStorage.getItem('kei_no'), + typename: 'pc', + MenuID: urlParam.copyMenuId + } + + Api.getSystemConfig(param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + this.setState({loading: false}) + return + } else if (!result.LongParam) { + notification.warning({ + top: 92, + message: '鏈煡璇㈠埌澶嶅埗鑿滃崟閰嶇疆淇℃伅锛�', + duration: 5 + }) + } + + let config = null + + try { + config = result.LongParam ? JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) : null + } catch (e) { + console.warn('Parse Failure') + config = null + } + + + if (!config) { + config = { + version: 1.0, + uuid: MenuId, + MenuID: MenuId, + Template: 'webPage', + enabled: false, + MenuName: '', + MenuNo: '', + tables: [], + components: [], + viewType: 'menu', + style: { + backgroundColor: '#ffffff', backgroundImage: '', paddingLeft: '20px', paddingRight: '20px' + } + } + } else { + config.components = MenuUtils.resetConfig(config.components) + message.success('澶嶅埗鎴愬姛锛屼繚瀛樺悗鐢熸晥銆�') + } + + config.uuid = MenuId + config.MenuID = MenuId + config.open_edition = '' + + let indeComs = [] + config.components.forEach(item => { + if (item.type === 'navbar') { + indeComs.push(fromJS(item).toJS()) + } + }) + + if (indeComs.length === 0) { + this.setState({ + oriConfig: null, + config: fromJS(config).toJS(), + loading: false + }) + + this.props.modifyCustomMenu(config) + } else { + this.jointComponents(config, indeComs, true) + } + }) + } + + jointComponents = (config, indeComs, isCreate) => { let deffers = indeComs.map(item => { return new Promise(resolve => { Api.getSystemConfig({ @@ -483,7 +597,6 @@ message: res.message, duration: 5 }) - return } resolve(res) @@ -531,8 +644,9 @@ } this.setState({ - oriConfig: fromJS(config).toJS(), - config: config + oriConfig: isCreate ? null : fromJS(config).toJS(), + config: config, + loading: false }) this.props.modifyCustomMenu(config) @@ -648,6 +762,11 @@ message: '璇峰畬鍠勮彍鍗曞熀鏈俊鎭紒', duration: 5 }) + sessionStorage.setItem('settingshow', 'true') + this.setState({ + settingshow: true, + activeKey: 'basedata' + }) return } @@ -750,7 +869,7 @@ LText: '', LTexttb: '' } - + _param.LongParam = window.btoa(window.encodeURIComponent(JSON.stringify(item))) _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') _param.secretkey = Utils.encrypt('', _param.timestamp) @@ -901,13 +1020,12 @@ if (!res) return if (delButtons.length === 0) { - return { - status: true - } + return { status: true, nonexec: true } } else { + let appHomeId = sessionStorage.getItem('appHomeId') let _param = { func: 'sPC_MainMenu_Del', - MenuID: delButtons.join(',') + MenuID: delButtons.filter(id => id !== appHomeId).join(',') } return Api.getSystemConfig(_param) } @@ -920,13 +1038,13 @@ duration: 5 }) return false + } else if (!res.nonexec) { // 鎵ц鍒犻櫎鍚庡埛鏂拌彍鍗曞垪琛� + this.getAppMenus() } let ids = thawButtons.filter(item => btnIds.indexOf(item) !== -1) if (ids.length === 0) { - return { - status: true - } + return { status: true } } else { return Api.getSystemConfig({ func: 'sPC_MainMenu_ReDel', @@ -1191,14 +1309,19 @@ refreshView = () => { const { oriConfig, config } = this.state - if (!is(fromJS(oriConfig), fromJS(config))) { + if (!oriConfig || !is(fromJS(oriConfig), fromJS(config))) { notification.warning({ top: 92, - message: '閰嶇疆宸蹭慨鏀癸紝璇蜂繚瀛橈紒', + message: '閰嶇疆淇℃伅鏈繚瀛橈紒', duration: 5 }) return } + + // Api.getSystemConfig({ + // func: 'sPC_MainMenu_Del', + // MenuID: '1614740497468ku800sbg853vupf65v4' + // }) sessionStorage.removeItem('sysRoles') sessionStorage.removeItem('permFuncField') @@ -1208,12 +1331,73 @@ window.location.reload() } + setHomeView = () => { + const { oriConfig, config } = this.state + + if (!oriConfig || !is(fromJS(oriConfig), fromJS(config))) { + notification.warning({ + top: 92, + message: '閰嶇疆淇℃伅鏈繚瀛橈紒', + duration: 5 + }) + return + } + + let param = { + func: 's_kei_link_keyids_addupt', + BID: sessionStorage.getItem('appId'), + exec_type: 'y', + LText: '' + } + + let appViewList = sessionStorage.getItem('appViewList') + appViewList = appViewList ? JSON.parse(appViewList) : [] + appViewList = appViewList.filter(item => item.keys_type !== 'index') + + appViewList.unshift({ + appkey: window.GLOB.appkey || '', + bid: sessionStorage.getItem('appId') || '', + kei_no: sessionStorage.getItem('kei_no') || '', + keys_id: config.MenuID, + keys_type: 'index', + remark: config.MenuName + }) + + 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.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt('', param.timestamp) + + confirm({ + title: '纭畾璁剧疆鏈〉闈负棣栭〉鍚楋紵', + content: '', + onOk() { + Api.getSystemConfig(param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } else { + sessionStorage.setItem('appHomeId', config.MenuID) + sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) + } + }) + }, + onCancel() {} + }) + } + render () { - const { localedict, activeKey, settingshow, controlshow, dict, MenuId, config, menuloading, customComponents } = this.state + const { localedict, loading, activeKey, settingshow, controlshow, dict, MenuId, config, menuloading, customComponents } = this.state return ( <ConfigProvider locale={localedict}> <div className={'mk-pc-view '} id="mk-menu-design-view"> + {loading ? <Spin className="view-spin" size="large" /> : null} <DndProvider backend={HTML5Backend}> <div className={'menu-setting ' + (!settingshow ? 'hidden' : '')}> <div className="draw"> @@ -1259,6 +1443,7 @@ <SysInterface config={config} updateConfig={this.updateConfig}/> <PictureController/> <Quotecomponent config={config} updateConfig={this.updateConfig}/> + <Button className="mk-border-green" icon="home" onClick={this.setHomeView}>璁句负棣栭〉</Button> <Button className="mk-border-danger" icon="redo" onClick={this.refreshView}>寮哄埗鍒锋柊</Button> <Button type="default" onClick={this.closeView}>{dict['mob.return']}</Button> </div> diff --git a/src/views/pcdesign/index.scss b/src/views/pcdesign/index.scss index e6c8091..01fc2a0 100644 --- a/src/views/pcdesign/index.scss +++ b/src/views/pcdesign/index.scss @@ -1,6 +1,16 @@ .mk-pc-view { background: #000; min-height: 100vh; + + >.view-spin { + position: absolute; + z-index: 3; + left: calc(50% - 16px); + top: calc(50vh - 70px); + } + .modal-form-board { + padding-top: 0; + } .menu-setting { position: fixed; left: 0; diff --git a/src/views/pcdesign/menuform/index.jsx b/src/views/pcdesign/menuform/index.jsx index cedb3a5..2335bcf 100644 --- a/src/views/pcdesign/menuform/index.jsx +++ b/src/views/pcdesign/menuform/index.jsx @@ -69,7 +69,7 @@ message: dict['mob.required.input'] + dict['mob.menu'] + dict['mob.name'] + '!' } ] - })(<Input placeholder="" autoComplete="off" onChange={this.changeName}/>)} + })(<Input placeholder="" disabled={!!(config.fixed && config.MenuName)} autoComplete="off" onChange={this.changeName}/>)} </Form.Item> </Col> <Col span={24}> @@ -82,7 +82,7 @@ message: dict['mob.required.input'] + dict['mob.menu'] + dict['mob.param'] + '!' } ] - })(<Input placeholder="" autoComplete="off" onChange={this.changeNo}/>)} + })(<Input placeholder="" disabled={!!(config.fixed && config.MenuName)} autoComplete="off" onChange={this.changeNo}/>)} </Form.Item> </Col> <Col span={24}> -- Gitblit v1.8.0