From 704f82b06befe96e5f739b2dce419f76f5683a6f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 15 八月 2022 09:27:54 +0800
Subject: [PATCH] Merge branch 'develop'

---
 src/views/menudesign/index.jsx |  222 ++++++++++++++++++++++++-------------------------------
 1 files changed, 96 insertions(+), 126 deletions(-)

diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx
index 0f24503..4d65fa0 100644
--- a/src/views/menudesign/index.jsx
+++ b/src/views/menudesign/index.jsx
@@ -1,5 +1,6 @@
 import React, { Component } from 'react'
 import { DndProvider } from 'react-dnd'
+import { withRouter } from 'react-router'
 import { is, fromJS } from 'immutable'
 import moment from 'moment'
 import HTML5Backend from 'react-dnd-html5-backend'
@@ -12,7 +13,7 @@
 import Utils, { setGLOBFuncs } from '@/utils/utils.js'
 import zhCN from '@/locales/zh-CN/mob.js'
 import enUS from '@/locales/en-US/mob.js'
-import antdEnUS from 'antd/es/locale/en_US'
+// 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 '@/utils/utils-custom.js'
@@ -23,7 +24,7 @@
 const { Panel } = Collapse
 const { confirm } = Modal
 const { Paragraph } = Typography
-const _locale = sessionStorage.getItem('lang') !== 'en-US' ? antdZhCN : antdEnUS
+const _locale = antdZhCN
 
 const MenuForm = asyncComponent(() => import('./menuform'))
 const HomeForm = asyncComponent(() => import('./homeform'))
@@ -31,10 +32,8 @@
 const MenuShell = asyncComponent(() => import('@/menu/menushell'))
 const PrintMenuForm = asyncComponent(() => import('./printmenuform'))
 const SourceWrap = asyncComponent(() => import('@/menu/modulesource'))
-const PopviewController = asyncComponent(() => import('@/menu/popview'))
-const BgController = asyncComponent(() => import('@/menu/bgcontroller'))
+const BgController = asyncComponent(() => import('@/pc/bgcontroller'))
 const PasteController = asyncComponent(() => import('@/menu/pastecontroller'))
-const PaddingController = asyncComponent(() => import('@/menu/padcontroller'))
 const StyleController = asyncComponent(() => import('@/menu/stylecontroller'))
 const ReplaceField = asyncComponent(() => import('@/menu/replaceField'))
 const Versions = asyncComponent(() => import('@/menu/versions'))
@@ -47,13 +46,8 @@
 const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent'))
 
 sessionStorage.setItem('isEditState', 'true')
-sessionStorage.setItem('editMenuType', 'menu') // 缂栬緫鑿滃崟绫诲瀷
 sessionStorage.setItem('appType', '')          // 搴旂敤绫诲瀷
 document.body.className = ''
-window.GLOB.UserComponentMap = new Map() // 缂撳瓨鐢ㄦ埛鑷畾涔夌粍浠�
-window.GLOB.TabsMap = new Map()          // 缂撳瓨鐢ㄦ埛鎿嶄綔鐨勬爣绛鹃〉
-window.GLOB.urlFields = []               // url鍙橀噺
-window.GLOB.customMenu = null            // 淇濆瓨鑿滃崟淇℃伅
 
 class MenuDesign extends Component {
   state = {
@@ -65,13 +59,10 @@
     MenuNo: '',
     delButtons: [],
     copyButtons: [],
-    thawButtons: [],
     activeKey: 'basedata',
     menuloading: false,
     oriConfig: null,
     config: null,
-    popBtn: null,             // 寮圭獥鏍囩椤�
-    visible: false,
     customComponents: [],
     comloading: false,
     settingshow: true,
@@ -80,6 +71,13 @@
   }
 
   UNSAFE_componentWillMount() {
+    sessionStorage.setItem('editMenuType', 'menu') // 缂栬緫鑿滃崟绫诲瀷
+
+    window.GLOB.UserComponentMap = new Map() // 缂撳瓨鐢ㄦ埛鑷畾涔夌粍浠�
+    window.GLOB.TabsMap = new Map()          // 缂撳瓨鐢ㄦ埛鎿嶄綔鐨勬爣绛鹃〉
+    window.GLOB.urlFields = []               // url鍙橀噺
+    window.GLOB.customMenu = null            // 淇濆瓨鑿滃崟淇℃伅
+
     try {
       let param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param)))
 
@@ -108,16 +106,24 @@
   componentDidMount () {
     MKEmitter.addListener('delButtons', this.delButtons)
     MKEmitter.addListener('modalStatus', this.modalStatus)
-    MKEmitter.addListener('thawButtons', this.thawButtons)
+    // MKEmitter.addListener('thawButtons', this.thawButtons)
     MKEmitter.addListener('copyButtons', this.copyButtons)
     MKEmitter.addListener('changePopview', this.initPopview)
     MKEmitter.addListener('triggerMenuSave', this.triggerMenuSave)
     MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle)
     MKEmitter.addListener('updateCustomComponent', this.updateCustomComponent)
     setTimeout(() => {
-      this.updateCustomComponent()
+      if (sessionStorage.getItem('app_custom_components')) {
+        let list = sessionStorage.getItem('app_custom_components')
+        list = JSON.parse(list)
+
+        this.setCustomComponent(list)
+      } else {
+        this.updateCustomComponent()
+      }
       this.getAppPictures()
       this.getPrintTemp()
+      this.getRoleFields()
       setGLOBFuncs()
     }, 1000)
 
@@ -151,9 +157,6 @@
 
         let node = document.getElementById('save-modal-config')
         if (!node) {
-          node = document.getElementById('save-pop-config')
-        }
-        if (!node) {
           node = document.getElementById('save-config')
         }
 
@@ -174,7 +177,7 @@
     }
     MKEmitter.removeListener('delButtons', this.delButtons)
     MKEmitter.removeListener('modalStatus', this.modalStatus)
-    MKEmitter.removeListener('thawButtons', this.thawButtons)
+    // MKEmitter.removeListener('thawButtons', this.thawButtons)
     MKEmitter.removeListener('copyButtons', this.copyButtons)
     MKEmitter.removeListener('changePopview', this.initPopview)
     MKEmitter.removeListener('triggerMenuSave', this.triggerMenuSave)
@@ -187,8 +190,6 @@
   }
 
   triggerMenuSave = () => {
-    if (this.state.visible) return
-
     this.submitConfig()
   }
 
@@ -281,36 +282,46 @@
       typename: '',
       typecharone: ''
     }).then(res => {
-      let coms = []
-      if (res.cus_list && res.cus_list.length > 0) {
-        res.cus_list.forEach(item => {
-          let config = ''
-
-          try {
-            config = JSON.parse(window.decodeURIComponent(window.atob(item.long_param)))
-          } catch (e) {
-            console.warn('Parse Failure')
-            config = ''
-          }
-
-          if (!config || !item.c_name) return
-
-          window.GLOB.UserComponentMap.set(item.c_id, item.c_name)
-          coms.push({
-            uuid: item.c_id,
-            type: 'menu',
-            title: item.c_name,
-            url: item.images,
-            component: config.type,
-            subtype: config.subtype,
-            width: config.width || 24,
-            config
-          })
+      if (!res.status) {
+        notification.warning({
+          top: 92,
+          message: res.message,
+          duration: 5
         })
+      } else if (res.cus_list) {
+        sessionStorage.setItem('app_custom_components', JSON.stringify(res.cus_list))
+        this.setCustomComponent(res.cus_list)
       }
-      this.setState({customComponents: coms})
-      this.getRoleFields()
     })
+  }
+
+  setCustomComponent = (cus_list) => {
+    let coms = []
+
+    cus_list.forEach(item => {
+      let config = ''
+
+      try {
+        config = JSON.parse(window.decodeURIComponent(window.atob(item.long_param)))
+      } catch (e) {
+        console.warn('Parse Failure')
+        config = ''
+      }
+
+      if (!config || !item.c_name) return
+
+      window.GLOB.UserComponentMap.set(item.c_id, item.c_name)
+      coms.push({
+        uuid: item.c_id,
+        type: 'menu',
+        title: item.c_name,
+        url: item.images,
+        component: config.type,
+        subtype: config.subtype,
+        config
+      })
+    })
+    this.setState({customComponents: coms})
   }
 
   updateComponentStyle = (parentId, keys, style) => {
@@ -343,9 +354,9 @@
     this.setState({copyButtons: [...this.state.copyButtons, ...items]})
   }
   
-  thawButtons = (item) => {
-    this.setState({thawButtons: [...this.state.thawButtons, item]})
-  }
+  // thawButtons = (item) => {
+  //   this.setState({thawButtons: [...this.state.thawButtons, item]})
+  // }
 
   initPopview = (card, btn) => {
     const { oriConfig, config } = this.state
@@ -359,20 +370,11 @@
       return
     }
 
-    btn.config = fromJS(config).toJS()
-    btn.component = card
+    let _btn = fromJS(btn).toJS()
+    _btn.MenuName = config.MenuName + '-' + card.name + '-' + btn.label
+    _btn.ParentMenuID = config.uuid
 
-    sessionStorage.setItem('editMenuType', 'popview') // 缂栬緫寮圭獥鏍囩
-
-    this.setState({popBtn: btn, visible: true})
-  }
-
-  handleBack = () => {
-    this.setState({popBtn: null, delButtons: [], copyButtons: []}, () => {
-      sessionStorage.setItem('editMenuType', 'menu')
-      window.GLOB.customMenu = this.state.config
-      this.setState({visible: false})
-    })
+    this.props.history.push('/popdesign/' + window.btoa(window.encodeURIComponent((JSON.stringify(_btn)))))
   }
 
   closeView = () => {
@@ -498,7 +500,6 @@
               delButtons.push(btn.uuid)
               return
             }
-            this.checkBtn(btn)
             buttons.push(`select '${btn.uuid}' as menuid, '${item.name + '-' + btn.label}' as menuname, '${_sort * 10}' as Sort`)
             _sort++
           })
@@ -509,7 +510,6 @@
                 delButtons.push(cell.uuid)
                 return
               }
-              this.checkBtn(cell)
               buttons.push(`select '${cell.uuid}' as menuid, '${item.name + '-' + cell.label}' as menuname, '${_sort * 10}' as Sort`)
               _sort++
             })
@@ -519,7 +519,6 @@
                 delButtons.push(cell.uuid)
                 return
               }
-              this.checkBtn(cell)
               buttons.push(`select '${cell.uuid}' as menuid, '${item.name + '-' + cell.label}' as menuname, '${_sort * 10}' as Sort`)
               _sort++
             })
@@ -532,7 +531,6 @@
                 delButtons.push(cell.uuid)
                 return
               }
-              this.checkBtn(cell)
               buttons.push(`select '${cell.uuid}' as menuid, '${item.name + '-' + cell.label}' as menuname, '${_sort * 10}' as Sort`)
               _sort++
             })
@@ -544,7 +542,6 @@
               delButtons.push(cell.uuid)
               return
             }
-            this.checkBtn(cell)
             buttons.push(`select '${cell.uuid}' as menuid, '${item.name + '-' + cell.label}' as menuname, '${_sort * 10}' as Sort`)
             _sort++
           })
@@ -554,7 +551,6 @@
               delButtons.push(btn.uuid)
               return
             }
-            this.checkBtn(btn)
             buttons.push(`select '${btn.uuid}' as menuid, '${item.name + '-' + btn.label}' as menuname, '${_sort * 10}' as Sort`)
             _sort++
           })
@@ -564,7 +560,6 @@
               delButtons.push(btn.uuid)
               return
             }
-            this.checkBtn(btn)
             buttons.push(`select '${btn.uuid}' as menuid, '${item.name + '-' + btn.label}' as menuname, '${_sort * 10}' as Sort`)
             _sort++
           })
@@ -575,7 +570,6 @@
                 delButtons.push(btn.uuid)
                 return
               }
-              this.checkBtn(btn)
               buttons.push(`select '${btn.uuid}' as menuid, '${item.name + '-' + btn.label}' as menuname, '${_sort * 10}' as Sort`)
               _sort++
             })
@@ -589,28 +583,8 @@
     return buttons
   }
 
-  checkBtn = (btn) => {
-    if (['prompt', 'exec', 'pop'].includes(btn.OpenType) && btn.Ot === 'required' && btn.verify && btn.verify.scripts && btn.verify.scripts.length > 0) {
-      let hascheck = false
-      btn.verify.scripts.forEach(item => {
-        if (item.status === 'false') return
-  
-        if (/\$check@|@check\$/ig.test(item.sql)) {
-          hascheck = true
-        }
-      })
-      if (hascheck) {
-        notification.warning({
-          top: 92,
-          message: `鍙�夋嫨澶氳鐨勬寜閽��${btn.label}銆嬩腑 $check@ 鎴� @check$ 灏嗕笉浼氱敓鏁堬紒`,
-          duration: 5
-        })
-      }
-    }
-  }
-
   submitConfig = () => {
-    const { MenuType, copyButtons, thawButtons } = this.state
+    const { MenuType, copyButtons } = this.state
     let config = fromJS(this.state.config).toJS()
 
     if (MenuType === 'billPrint' && config.printPage === 'page' && !config.everyPCount) {
@@ -752,28 +726,28 @@
           }
           return Api.getSystemConfig(_param)
         }
-      }).then(res => { // 鎸夐挳瑙i櫎鍐荤粨
-        if (!res) return
-        if (!res.status) {
-          notification.warning({
-            top: 92,
-            message: res.message,
-            duration: 5
-          })
-          return false
-        }
+      // }).then(res => { // 鎸夐挳瑙i櫎鍐荤粨
+      //   if (!res) return
+      //   if (!res.status) {
+      //     notification.warning({
+      //       top: 92,
+      //       message: res.message,
+      //       duration: 5
+      //     })
+      //     return false
+      //   }
 
-        let ids = thawButtons.filter(item => btnIds.indexOf(item) !== -1)
-        if (ids.length === 0) {
-          return {
-            status: true
-          }
-        } else {
-          return Api.getSystemConfig({
-            func: 'sPC_MainMenu_ReDel',
-            MenuID: ids.join(',')
-          })
-        }
+      //   let ids = thawButtons.filter(item => btnIds.indexOf(item) !== -1)
+      //   if (ids.length === 0) {
+      //     return {
+      //       status: true
+      //     }
+      //   } else {
+      //     return Api.getSystemConfig({
+      //       func: 'sPC_MainMenu_ReDel',
+      //       MenuID: ids.join(',')
+      //     })
+      //   }
       }).then(res => { // 椤甸潰淇濆瓨
         if (!res) return
 
@@ -917,7 +891,6 @@
           this.setState({
             delButtons: [],
             copyButtons: [],
-            thawButtons: [],
             menuloading: false
           })
           notification.success({
@@ -936,6 +909,7 @@
   }
 
   getRoleFields = () => {
+    if (sessionStorage.getItem('sysRoles') || sessionStorage.getItem('permFuncField')) return
     Api.getSystemConfig({func: 'sPC_Get_Roles_sModular'}).then(res => {
       if (res.status) {
         let _permFuncField = []
@@ -1095,13 +1069,13 @@
   }
 
   render () {
-    const { activeKey, comloading, MenuType, popBtn, visible, dict, MenuId, config, settingshow, ParentId, menuloading, customComponents, eyeopen } = this.state
+    const { activeKey, comloading, MenuType, dict, MenuId, config, settingshow, ParentId, menuloading, customComponents, eyeopen } = this.state
 
     return (
       <ConfigProvider locale={_locale}>
         <div className={'pc-menu-view ' + (MenuType || '')} id="mk-menu-design-view">
           <Header />
-          {!popBtn && !visible ? <DndProvider backend={HTML5Backend}>
+          <DndProvider backend={HTML5Backend}>
             <div className="menu-body">
               <div className={'menu-setting ' + (!settingshow ? 'hidden' : '')}>
                 <div className="draw">
@@ -1109,7 +1083,7 @@
                 </div>
                 <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}>
                   {/* 鍩烘湰淇℃伅 */}
-                  <Panel header={dict['mob.basemsg']} key="basedata">
+                  <Panel header="鍩烘湰淇℃伅" key="basedata">
                     {/* 鑿滃崟淇℃伅 */}
                     {config && MenuType === 'custom' ? <MenuForm
                       dict={dict}
@@ -1139,17 +1113,14 @@
                     {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null}
                   </Panel>
                   {/* 缁勪欢娣诲姞 */}
-                  <Panel header={dict['mob.component']} key="component">
+                  <Panel header="缁勪欢" key="component">
                     <SourceWrap MenuType={MenuType} />
                   </Panel>
                   {customComponents && customComponents.length ? <Panel header="鑷畾涔夌粍浠�" key="cuscomponent">
                     <SourceWrap components={customComponents} MenuType={MenuType} />
                   </Panel> : null}
-                  <Panel header={'椤甸潰鑳屾櫙'} key="background">
+                  <Panel header="椤甸潰鏍峰紡" key="background">
                     {config ? <BgController config={config} updateConfig={this.updateConfig} /> : null}
-                  </Panel>
-                  <Panel header={'椤甸潰鍐呰竟璺�'} key="padding">
-                    {config ? <PaddingController config={config} updateConfig={this.updateConfig} /> : null}
                   </Panel>
                 </Collapse>
               </div>
@@ -1174,8 +1145,7 @@
                 </Card>
               </div>
             </div>
-          </DndProvider> : null}
-          {popBtn && visible ? <PopviewController btn={popBtn} handleBack={this.handleBack}/> : null}
+          </DndProvider>
           <StyleController />
           <StyleCombController />
           <ModalController />
@@ -1185,4 +1155,4 @@
   }
 }
 
-export default MenuDesign
\ No newline at end of file
+export default withRouter(MenuDesign)
\ No newline at end of file

--
Gitblit v1.8.0