From 602ed54eaad8bcff9b360584a5e0f50e50ded380 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 31 十月 2024 17:02:45 +0800 Subject: [PATCH] 2024-10-31 --- src/components/tabview/index.jsx | 13 + src/index.js | 1 src/components/header/index.scss | 34 +++++ src/components/header/sysmessage.jsx | 32 +++++ src/views/interface/workspace/request/index.jsx | 2 src/components/header/index.jsx | 6 src/templates/comtableconfig/index.jsx | 79 ------------ src/views/menudesign/homeform/index.jsx | 4 src/templates/treepageconfig/index.jsx | 1 src/views/menudesign/menuform/index.jsx | 4 public/options.json | 1 src/components/breadview/index.jsx | 3 src/views/tabledesign/menuform/index.jsx | 4 src/tabviews/sysmessage/index.scss | 12 ++ public/README.txt | 1 src/utils/option.js | 22 --- src/views/design/sidemenu/thdmenuplus/index.jsx | 4 src/tabviews/sysmessage/index.jsx | 78 +++++++++++++ 18 files changed, 183 insertions(+), 118 deletions(-) diff --git a/public/README.txt b/public/README.txt index d1ff2b5..50a4e1b 100644 --- a/public/README.txt +++ b/public/README.txt @@ -22,5 +22,6 @@ transfer -- 鏄惁浣跨敤杞帴鍙o紝浣跨敤杞帴鍙f椂璇疯缃负 true, 浣跨敤杞帴鍙f椂锛屽閮ㄦ帴鍙h皟鐢ㄥ墠涓嶄細鍋氱櫥褰曢獙璇� keepPwd -- 璁颁綇瀵嗙爜锛岄粯璁ゅ紑鍚紝褰撳�间负 false 鏃剁鐢紝褰撳�间负 invisible 鏃惰浣忓瘑鐮佷絾瀵嗙爜涓嶅彲鏌ョ湅 execType -- 鑴氭湰浼犺緭鏂瑰紡锛屽�间负x鏃讹紝鍚敤AES鍔犲瘑 +SysNotice -- 鏄惁寮�鍚郴缁熸秷鎭� updateStatus -- 鏄惁鏇存柊寮�鍙戠姸鎬侊紝榛樿寮�鍚紝褰撳�间负 false 鏃剁鐢� forcedUpdate -- 浼犺緭鍙峰崌绾ф椂锛屾槸鍚﹁嚜鍔ㄩ��鍑猴紝鏍煎紡涓猴紙YYYY-MM-DD锛夛紝鐢ㄤ簬鍗囩骇鍚庡埛鏂扮敤鎴锋湰鍦伴厤缃� \ No newline at end of file diff --git a/public/options.json b/public/options.json index 18f6550..5535fcb 100644 --- a/public/options.json +++ b/public/options.json @@ -20,6 +20,7 @@ "transfer": "false", "keepPwd": "true", "execType": "x", + "SysNotice": "false", "host": "http://qingqiumarket.cn", "service": "MKWMS/" } \ No newline at end of file diff --git a/src/components/breadview/index.jsx b/src/components/breadview/index.jsx index 340b188..a71c288 100644 --- a/src/components/breadview/index.jsx +++ b/src/components/breadview/index.jsx @@ -17,6 +17,7 @@ const TreePage = asyncComponent(() => import('@/tabviews/treepage')) const Iframe = asyncComponent(() => import('@/tabviews/iframe')) const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage')) +const SysMessage = asyncComponent(() => import('@/tabviews/sysmessage')) if (sessionStorage.getItem('lang') === 'zh-CN') { moment.locale('zh-cn') @@ -124,6 +125,8 @@ return (<Home MenuID={view.MenuID} MenuName={view.MenuName}/>) } else if (view.type === 'RolePermission') { return (<RoleManage MenuID={view.MenuID}/>) + } else if (view.type === 'SysMessage') { + return (<SysMessage />) } else if (view.type === 'CommonTable') { return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} param={view.param} changeTemp={this.changeTemp}/>) } else if (view.type === 'TreePage') { diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index 3602f41..7f216a9 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -18,6 +18,7 @@ const Resetpwd = asyncComponent(() => import('@/components/resetPassword')) const QrCode = asyncComponent(() => import('@/components/qrcode')) const LoginForm = asyncSpinComponent(() => import('./loginform')) +const SysMessage = asyncComponent(() => import('./sysmessage')) class Header extends Component { state = { @@ -331,7 +332,7 @@ ParentNames: [fst.MenuName, snd.MenuName], MenuNo: trd.MenuNo, EasyCode: trd.EasyCode, - type: 'CommonTable', + type: 'CustomPage', OpenType: 'newtab', hidden: 'false' } @@ -340,7 +341,7 @@ try { let PageParam = JSON.parse(trd.PageParam) - trdItem.type = PageParam.Template || 'CommonTable' + trdItem.type = PageParam.Template || 'CustomPage' trdItem.OpenType = PageParam.OpenType || 'newtab' trdItem.hidden = PageParam.hidden || 'false' trdItem.menuColor = PageParam.menuColor || '' @@ -787,6 +788,7 @@ <SearchOutlined className="search-menu" /> </Dropdown> : null } + {window.GLOB.SysNotice ? <SysMessage /> : null} {/* 澶村儚銆佺敤鎴峰悕 */} <Dropdown className="header-setting" overlay={menu}> <div> diff --git a/src/components/header/index.scss b/src/components/header/index.scss index 7ba7cf0..471f2e5 100644 --- a/src/components/header/index.scss +++ b/src/components/header/index.scss @@ -309,4 +309,38 @@ margin-top: 15px; } } +} +.mk-msg-icon { + font-size: 16px; + margin-top: 17px; + margin-right: 20px; + margin-left: 0px; + color: #1CD66C; + cursor: pointer; +} +.mk-msg-icon[data-title] { + position: relative; + + &::before { + content: " "; + position: absolute; + top: 6px; + left: 2px; + z-index: -1; + width: 12px; + height: 3px; + display: block; + background: #fff; + } + &::after { + position: absolute; + top: -10px; + left: 15px; + color: #f5222d; + font-size: 12px; + line-height: 16px; + white-space: nowrap; + font-weight: 600; + content: attr(data-title); + } } \ No newline at end of file diff --git a/src/components/header/sysmessage.jsx b/src/components/header/sysmessage.jsx new file mode 100644 index 0000000..339debe --- /dev/null +++ b/src/components/header/sysmessage.jsx @@ -0,0 +1,32 @@ +import React, { Component } from 'react' +import { MessageFilled } from '@ant-design/icons' + +import MKEmitter from '@/utils/events.js' + +class SysMessage extends Component { + state = { + + } + + UNSAFE_componentWillMount () { + + } + + open = () => { + let menu = { + MenuID: 'message_page_id', + MenuName: '绯荤粺娑堟伅', + type: 'SysMessage' + } + + MKEmitter.emit('modifyTabs', menu) + } + + render() { + return ( + <MessageFilled className="mk-msg-icon" data-title="23" onClick={this.open} /> + ) + } +} + +export default SysMessage \ No newline at end of file diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx index dc50560..6660c1f 100644 --- a/src/components/tabview/index.jsx +++ b/src/components/tabview/index.jsx @@ -18,6 +18,7 @@ const TreePage = asyncComponent(() => import('@/tabviews/treepage')) const Iframe = asyncComponent(() => import('@/tabviews/iframe')) const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage')) +const SysMessage = asyncComponent(() => import('@/tabviews/sysmessage')) if (sessionStorage.getItem('lang') === 'zh-CN') { moment.locale('zh-cn') @@ -276,18 +277,20 @@ selectcomponent = (view) => { // 鏍规嵁tab椤典腑鑿滃崟淇℃伅锛岄�夋嫨鎵�闇�鐨勭粍浠� - if (view.type === 'Home') { - return (<Home MenuID={view.MenuID} MenuName={view.MenuName}/>) - } else if (view.type === 'BaseTable') { + if (view.type === 'BaseTable') { return (<BaseTable MenuID={view.MenuID} MenuName={view.MenuName} param={view.param} changeTemp={this.changeTemp}/>) } else if (view.type === 'CustomPage') { return (<CustomPage MenuID={view.MenuID} MenuName={view.MenuName} param={view.param} changeTemp={this.changeTemp}/>) + } else if (view.type === 'Home') { + return (<Home MenuID={view.MenuID} MenuName={view.MenuName}/>) + } else if (view.type === 'RolePermission') { + return (<RoleManage MenuID={view.MenuID}/>) + } else if (view.type === 'SysMessage') { + return (<SysMessage />) } else if (view.type === 'CommonTable') { return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} param={view.param} changeTemp={this.changeTemp}/>) } else if (view.type === 'TreePage') { return (<TreePage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} param={view.param}/>) - } else if (view.type === 'RolePermission') { - return (<RoleManage MenuID={view.MenuID}/>) } else if (view.type === 'iframe') { return (<Iframe MenuID={view.MenuID} title={view.MenuName} url={view.src}/>) } else { diff --git a/src/index.js b/src/index.js index 89c1f87..ee2706d 100644 --- a/src/index.js +++ b/src/index.js @@ -52,6 +52,7 @@ GLOB.WXminiAppID = config.WXminiAppID || '' GLOB.WXMerchID = config.WXMerchID || '' GLOB.WXNotice = config.WXNotice + '' === 'true' + GLOB.SysNotice = config.SysNotice + '' === 'true' GLOB.execType = config.execType === 'x' ? 'x' : '' GLOB.mkHS = false GLOB.debugger = false diff --git a/src/tabviews/sysmessage/index.jsx b/src/tabviews/sysmessage/index.jsx new file mode 100644 index 0000000..b3124cc --- /dev/null +++ b/src/tabviews/sysmessage/index.jsx @@ -0,0 +1,78 @@ +import React, { Component } from 'react' +// import { is, fromJS } from 'immutable' +import { notification, Spin } from 'antd' +// import { BankOutlined } from '@ant-design/icons' + +import Api from '@/api' +import MKEmitter from '@/utils/events.js' +import './index.scss' + +export default class SysMessage extends Component { + state = { + loading: true + } + + getAppList = () => { + let param = { + func: 's_get_kei' + } + + Api.getSystemConfig(param).then(result => { + if (result.status) { + let applist = result.data.map(item => { + item.sublist = item.data_detail || [] + item.sublist = item.sublist.map(cell => { + cell.ID = cell.d_id + return cell + }) + + return item + }) + let selectApp = applist[0] || null + + this.setState({ applist, selectApp }) + } else { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }) + } + + + reloadMenuView = (menuId) => { + if (menuId !== 'message_page_id') return + + this.getAppList() + } + + UNSAFE_componentWillMount () { + + } + + componentDidMount () { + MKEmitter.addListener('reloadMenuView', this.reloadMenuView) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('reloadMenuView', this.reloadMenuView) + } + + render() { + const { loading, } = this.state + + return ( + <div className="mk-sys-message"> + {loading && <Spin />} + </div> + ) + } +} \ No newline at end of file diff --git a/src/tabviews/sysmessage/index.scss b/src/tabviews/sysmessage/index.scss new file mode 100644 index 0000000..faa3779 --- /dev/null +++ b/src/tabviews/sysmessage/index.scss @@ -0,0 +1,12 @@ +.mk-sys-message { + min-height: calc(100vh - 94px); + height: 100%; + position: relative; + padding: 15px; + + .ant-spin { + position: absolute; + top: calc(50vh - 100px); + left: calc(50vw - 12px); + } +} \ No newline at end of file diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx index 4768e78..97f340e 100644 --- a/src/templates/comtableconfig/index.jsx +++ b/src/templates/comtableconfig/index.jsx @@ -3,8 +3,8 @@ import { is, fromJS } from 'immutable' import { DndProvider } from 'react-dnd' import HTML5Backend from 'react-dnd-html5-backend' -import { Button, Card, Collapse, notification, Spin, Tooltip, Col } from 'antd' -import { QuestionCircleOutlined, RedoOutlined } from '@ant-design/icons' +import { Button, Card, Collapse, notification, Spin, Col } from 'antd' +import { RedoOutlined } from '@ant-design/icons' import Api from '@/api' import Utils from '@/utils/utils.js' @@ -16,21 +16,16 @@ import ColumnComponent from '@/templates/sharecomponent/columncomponent' import MenuForm from './menuform' -import SourceElement from '@/templates/zshare/dragsource' import Source from './source' import './index.scss' const { Panel } = Collapse -// const Versions = asyncComponent(() => import('@/menu/versions')) const UrlFieldComponent = asyncComponent(() => import('@/menu/urlfieldcomponent')) -// const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) const UpdateTable = asyncComponent(() => import('./updatetable')) const Unattended = asyncComponent(() => import('@/templates/zshare/unattended')) -// const EditComponent = asyncComponent(() => import('@/templates/zshare/editcomponent')) const SettingComponent = asyncComponent(() => import('@/templates/sharecomponent/settingcomponent')) const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) -const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) const ChartGroupComponent = asyncComponent(() => import('@/templates/sharecomponent/chartgroupcomponent')) const ChartComponent = asyncComponent(() => import('@/templates/sharecomponent/chartcomponent')) const CardComponent = asyncComponent(() => import('@/templates/sharecomponent/cardcomponent')) @@ -1076,8 +1071,6 @@ if (!config) return null - const confActions = config.action.filter(_action => !_action.origin && (['pop', 'popview'].includes(_action.OpenType) || (_action.OpenType === 'tab' && _action.tabTemplate === 'FormTab') || (_action.OpenType === 'funcbutton' && _action.execMode === 'pop'))) - let configTabs = [] config.tabgroups.forEach(group => { configTabs.push(...group.sublist) @@ -1107,74 +1100,6 @@ containerId="main-basedata" updatetable={this.updateconfig} /> - </Panel> - {/* 鎼滅储鏉′欢娣诲姞 */} - <Panel header="鎼滅储" key="1"> - <div className="search-element"> - {Source.searchItems.map((item, index) => (<SourceElement key={index} content={item}/>))} - </div> - <FieldsComponent config={config} type="search" /> - </Panel> - {/* 鎸夐挳娣诲姞 */} - <Panel header="鎸夐挳" key="2"> - <div className="search-element"> - {Source.actionItems.map((item, index) => (<SourceElement key={index} content={item}/>))} - </div> - <div className="config-btn"> - {confActions.length > 0 ? - <p className="config-btn-title"> - <Tooltip placement="topLeft" title="鐐瑰嚮鎸夐挳锛屽彲瀹屾垚鎴栨煡鐪嬫寜閽厤缃俊鎭��"> - <QuestionCircleOutlined className="mk-form-tip"/> - </Tooltip> - 鎸夐挳閰嶇疆 - </p> : null - } - </div> - {confActions.map((item, index) => { - return ( - <div key={index}> - <Button - icon={item.icon} - style={{marginBottom: '10px'}} - className={'config-button mk-btn mk-' + item.class} - onClick={() => this.setSubConfig(item, 'button')} - >{item.label}</Button> - </div> - ) - })} - </Panel> - {/* 娣诲姞鏄剧ず鍒� */} - <Panel header="鏄剧ず鍒�" key="3"> - <div className="search-element"> - {Source.columnItems.map((item, index) => (<SourceElement key={index} content={item}/>))} - </div> - <FieldsComponent config={config} type="columns"/> - </Panel> - {/* 娣诲姞鏍囩 */} - <Panel header="鏍囩椤�" key="4"> - <div className="search-element"> - {Source.tabItems.map((item, index) => (<SourceElement key={index} content={item}/>))} - </div> - {configTabs.length > 0 ? - <p className="config-btn-title"> - <Tooltip placement="topLeft" title="鐐瑰嚮鎸夐挳锛屽彲瀹屾垚鎴栨煡鐪嬫爣绛鹃厤缃俊鎭��"> - <QuestionCircleOutlined className="mk-form-tip"/> - </Tooltip> - 鏍囩閰嶇疆 - </p> : null - } - {configTabs.map((item, index) => { - return ( - <div key={index}> - <Button - className="config-button" - icon={item.icon} - style={{marginBottom: '10px'}} - onClick={() => this.setSubConfig(item, 'tab')} - >{item.label}</Button> - </div> - ) - })} </Panel> </Collapse> </div> diff --git a/src/templates/treepageconfig/index.jsx b/src/templates/treepageconfig/index.jsx index f6df00d..84da278 100644 --- a/src/templates/treepageconfig/index.jsx +++ b/src/templates/treepageconfig/index.jsx @@ -72,7 +72,6 @@ _config.MenuID = menu.MenuID || '' // 閰嶇疆榛樿鍊硷紝鍏煎 - // _config.Template = 'TreePage' _config.easyCode = _config.easyCode || '' if (_config.type === 'user') { diff --git a/src/utils/option.js b/src/utils/option.js index 54180b1..c0016f4 100644 --- a/src/utils/option.js +++ b/src/utils/option.js @@ -42,13 +42,6 @@ // 绯荤粺妯℃澘 export const sysTemps = [ - // { - // title: '鍩虹琛ㄦ牸', - // type: 'CommonTable', - // url: nortable, - // baseconfig: '', - // isSystem: true - // }, { title: '鍩虹琛ㄦ牸', type: 'BaseTable', @@ -56,14 +49,6 @@ baseconfig: '', isSystem: true }, - // { - // title: '涓诲瓙琛ㄨ〃鏍�', - // type: 'CommonTable', - // url: mainsubtable, - // baseconfig: '', - // isSystem: true, - // isSubtable: true - // }, { title: '鑷畾涔�', type: 'CustomPage', @@ -71,13 +56,6 @@ baseconfig: '', isSystem: true }, - // { - // title: '鏍戝舰椤甸潰', - // type: 'TreePage', - // url: treepage, - // baseconfig: '', - // isSystem: true - // }, { title: '澶栭儴椤甸潰', type: 'NewPage', diff --git a/src/views/design/sidemenu/thdmenuplus/index.jsx b/src/views/design/sidemenu/thdmenuplus/index.jsx index e657796..2e6a887 100644 --- a/src/views/design/sidemenu/thdmenuplus/index.jsx +++ b/src/views/design/sidemenu/thdmenuplus/index.jsx @@ -14,8 +14,6 @@ import asyncComponent from '@/utils/asyncComponent' import mainsubtable from '@/assets/img/mainsubtable.jpg' -import treepage from '@/assets/img/treepage.jpg' -import calendar from '@/assets/img/calendar.jpg' import customImg from '@/assets/img/custom.jpg' import './index.scss' @@ -52,8 +50,6 @@ const illust = { // 妯℃澘鍥剧墖锛岀敤浜庡凡浣跨敤妯℃澘 BaseTable: mainsubtable, - TreePage: treepage, - CalendarPage: calendar, CustomPage: customImg } diff --git a/src/views/interface/workspace/request/index.jsx b/src/views/interface/workspace/request/index.jsx index a73885e..edce864 100644 --- a/src/views/interface/workspace/request/index.jsx +++ b/src/views/interface/workspace/request/index.jsx @@ -155,7 +155,7 @@ }, (err) => { this.handleResponse(err) }) - } else if (/dostars/ig.test(url)) { + } else if (/dostars|exstars/ig.test(url)) { if (n) { n = JSON.parse(n) diff --git a/src/views/menudesign/homeform/index.jsx b/src/views/menudesign/homeform/index.jsx index 354951b..433e83a 100644 --- a/src/views/menudesign/homeform/index.jsx +++ b/src/views/menudesign/homeform/index.jsx @@ -58,14 +58,14 @@ EasyCode: trd.EasyCode, value: trd.MenuID, label: trd.MenuName, - type: 'CommonTable', + type: 'CustomPage', disabled: false } if (trd.PageParam) { try { trd.PageParam = JSON.parse(trd.PageParam) - trdItem.type = trd.PageParam.Template || 'CommonTable' + trdItem.type = trd.PageParam.Template || 'CustomPage' } catch (e) { } diff --git a/src/views/menudesign/menuform/index.jsx b/src/views/menudesign/menuform/index.jsx index ab5ec39..d8b2366 100644 --- a/src/views/menudesign/menuform/index.jsx +++ b/src/views/menudesign/menuform/index.jsx @@ -125,14 +125,14 @@ EasyCode: trd.EasyCode, value: trd.MenuID, label: trd.MenuName, - type: 'CommonTable', + type: 'CustomPage', disabled: false } if (trd.PageParam) { try { trd.PageParam = JSON.parse(trd.PageParam) - trdItem.type = trd.PageParam.Template || 'CommonTable' + trdItem.type = trd.PageParam.Template || 'CustomPage' } catch (e) { } diff --git a/src/views/tabledesign/menuform/index.jsx b/src/views/tabledesign/menuform/index.jsx index 4efb09d..e5959cc 100644 --- a/src/views/tabledesign/menuform/index.jsx +++ b/src/views/tabledesign/menuform/index.jsx @@ -120,14 +120,14 @@ EasyCode: trd.EasyCode, value: trd.MenuID, label: trd.MenuName, - type: 'CommonTable', + type: 'CustomPage', disabled: false } if (trd.PageParam) { try { trd.PageParam = JSON.parse(trd.PageParam) - trdItem.type = trd.PageParam.Template || 'CommonTable' + trdItem.type = trd.PageParam.Template || 'CustomPage' } catch (e) { } -- Gitblit v1.8.0