From d823c59ba0b5f73e06c90d8bcae4dd25f5dfab64 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 07 九月 2023 17:18:02 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/menu/components/table/normal-table/options.jsx | 13 + src/tabviews/zshare/topSearch/index.jsx | 15 + src/utils/utils-custom.js | 119 +++++++++ src/views/rolemanage/index.jsx | 8 src/views/design/sidemenu/index.scss | 8 src/views/tabledesign/index.jsx | 6 src/menu/components/table/edit-table/options.jsx | 15 + src/views/systemfunc/index.jsx | 6 src/menu/tablenodes/index.jsx | 295 ++++++++++++++++++++++++ src/views/design/sidemenu/index.jsx | 4 src/views/mobdesign/index.jsx | 7 src/menu/components/table/edit-table/index.jsx | 2 src/views/menudesign/index.jsx | 6 src/utils/utils.js | 8 src/index.js | 24 +- src/menu/components/card/double-data-card/options.jsx | 13 + src/menu/components/card/data-card/options.jsx | 13 + src/views/pcdesign/index.jsx | 7 src/menu/components/table/base-table/options.jsx | 14 + src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 56 +++ src/tabviews/custom/components/table/edit-table/normalTable/index.scss | 3 src/menu/components/card/prop-card/index.jsx | 2 src/menu/components/search/main-search/options.jsx | 13 + src/menu/components/calendar/options.jsx | 13 + src/views/login/index.jsx | 26 +- 25 files changed, 640 insertions(+), 56 deletions(-) diff --git a/src/index.js b/src/index.js index 53cadc4..120b285 100644 --- a/src/index.js +++ b/src/index.js @@ -110,18 +110,6 @@ GLOB.mainSystemApi = '' } - if (/#\/hs$/.test(window.location.href)) { // hs涓嬩笉鎵撳嵃鑴氭湰 - GLOB.debugger = false - - if (GLOB.mainSystemApi) { - GLOB.localSystemApi = GLOB.mainSystemApi - GLOB.mainSystemApi = '' - } - if (GLOB.cloudServiceApi) { - GLOB.mainSystemApi = GLOB.cloudServiceApi - } - } - if (GLOB.sysType !== 'cloud') { if (config.appkey === options.cakey) { document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">涓嶅彲浣跨敤浜戠appkey锛岃鑱旂郴绠$悊鍛橈紒</div>' @@ -153,6 +141,18 @@ } } + if (/#\/hs$/.test(window.location.href)) { // hs涓嬩笉鎵撳嵃鑴氭湰 + GLOB.debugger = false + + if (GLOB.mainSystemApi) { + GLOB.localSystemApi = GLOB.mainSystemApi + GLOB.mainSystemApi = '' + } + if (GLOB.cloudServiceApi) { + GLOB.mainSystemApi = GLOB.cloudServiceApi + } + } + let _href = window.location.href.split('#')[0] let _systemMsg = localStorage.getItem(_href + 'system') let className = 'mk-blue-black' diff --git a/src/menu/components/calendar/options.jsx b/src/menu/components/calendar/options.jsx index 3ab3730..f7ae8e9 100644 --- a/src/menu/components/calendar/options.jsx +++ b/src/menu/components/calendar/options.jsx @@ -131,6 +131,19 @@ }, { type: 'radio', + field: 'cacheSearch', + label: '鎼滅储缂撳瓨', + initval: wrap.cacheSearch || 'false', + tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !!appType || isprint + }, + { + type: 'radio', field: 'click', label: '鐐瑰嚮浜嬩欢', initval: wrap.click || '', diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx index 519af8e..adc2931 100644 --- a/src/menu/components/card/data-card/options.jsx +++ b/src/menu/components/card/data-card/options.jsx @@ -564,6 +564,19 @@ forbid: ispop || isprint }, { + type: 'radio', + field: 'cacheSearch', + label: '鎼滅储缂撳瓨', + initval: wrap.cacheSearch || 'false', + tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !!appType || isprint + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/card/double-data-card/options.jsx b/src/menu/components/card/double-data-card/options.jsx index 82a6258..dac4c9e 100644 --- a/src/menu/components/card/double-data-card/options.jsx +++ b/src/menu/components/card/double-data-card/options.jsx @@ -240,6 +240,19 @@ forbid: ispop || isprint }, { + type: 'radio', + field: 'cacheSearch', + label: '鎼滅储缂撳瓨', + initval: wrap.cacheSearch || 'false', + tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !!appType || isprint + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx index 880a042..551e955 100644 --- a/src/menu/components/card/prop-card/index.jsx +++ b/src/menu/components/card/prop-card/index.jsx @@ -399,7 +399,7 @@ <div className={`${card.wrap.layout || 'grid'}-layout float-${card.wrap.cardFloat || 'left'} select-${card.wrap.selStyle || ''}`}> {card.subcards.map(subcard => (<CardComponent key={subcard.uuid} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} </div> - {card.wrap.display === 'hidden' ? <HeatMapOutlined className="prop-hidden"/> : null} + {card.wrap.display === 'hidden' ? <HeatMapOutlined title="缁勪欢闅愯棌" className="prop-hidden"/> : null} <div className="component-name"> <div className="center"> <div className="title" onDoubleClick={() => { diff --git a/src/menu/components/search/main-search/options.jsx b/src/menu/components/search/main-search/options.jsx index c1cd29d..8228b2b 100644 --- a/src/menu/components/search/main-search/options.jsx +++ b/src/menu/components/search/main-search/options.jsx @@ -155,6 +155,19 @@ forbid: !appType || sessionStorage.getItem('editMenuType') === 'popview' }, { + type: 'radio', + field: 'cacheSearch', + label: '鎼滅储缂撳瓨', + initval: wrap.cacheSearch || 'false', + tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !!appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/table/base-table/options.jsx b/src/menu/components/table/base-table/options.jsx index 3db5e1e..775a39c 100644 --- a/src/menu/components/table/base-table/options.jsx +++ b/src/menu/components/table/base-table/options.jsx @@ -199,7 +199,19 @@ initval: wrap.controlVal || '', tooltip: '褰撳瓧娈靛�间笌绂佺敤鍊肩浉绛夋椂锛岃鏁版嵁浼氱鐢紝澶氫釜鍊肩敤閫楀彿鍒嗛殧銆�', required: false - } + }, + { + type: 'radio', + field: 'cacheSearch', + label: '鎼滅储缂撳瓨', + initval: wrap.cacheSearch || 'false', + tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, ] return wrapForm diff --git a/src/menu/components/table/edit-table/index.jsx b/src/menu/components/table/edit-table/index.jsx index 9aed6ca..f211286 100644 --- a/src/menu/components/table/edit-table/index.jsx +++ b/src/menu/components/table/edit-table/index.jsx @@ -323,7 +323,7 @@ <PlusOutlined className="plus" title="娣诲姞鍒�" onClick={this.addColumns}/> {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch}/> : null} <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton}/> - <NormalForm title="琛ㄦ牸璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}> + <NormalForm title="琛ㄦ牸璁剧疆" width={900} update={this.updateWrap} getForms={this.getWrapForms}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="editable" card={card}/> diff --git a/src/menu/components/table/edit-table/options.jsx b/src/menu/components/table/edit-table/options.jsx index 9fd58b0..18fc7a4 100644 --- a/src/menu/components/table/edit-table/options.jsx +++ b/src/menu/components/table/edit-table/options.jsx @@ -111,6 +111,9 @@ {value: 'all', label: '鍏ㄩ儴'}, {value: 'change', label: '淇敼椤�'}, {value: 'simple', label: '鍗曢」'}, + ], + controlFields: [ + {field: 'standard', values: ['change', 'simple']}, ] }, // { @@ -139,6 +142,18 @@ }, { type: 'radio', + field: 'standard', + label: '淇敼鏍囧噯', + initval: wrap.standard || 'init', + tooltip: '濡備綍鍒ゆ柇琛屼俊鎭槸鍚﹀簲璇ユ彁浜ゃ��', + required: false, + options: [ + {value: 'init', label: '涓庡垵濮嬪�间笉鍚�'}, + {value: 'change', label: '瀛樺湪缂栬緫鐥曡抗'}, + ] + }, + { + type: 'radio', field: 'cache', label: '缂撳瓨', initval: wrap.cache || 'true', diff --git a/src/menu/components/table/normal-table/options.jsx b/src/menu/components/table/normal-table/options.jsx index 8ab9460..8b1eae1 100644 --- a/src/menu/components/table/normal-table/options.jsx +++ b/src/menu/components/table/normal-table/options.jsx @@ -293,6 +293,19 @@ forbid: ispop || isprint }, { + type: 'radio', + field: 'cacheSearch', + label: '鎼滅储缂撳瓨', + initval: wrap.cacheSearch || 'false', + tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !!appType || isprint + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/tablenodes/index.jsx b/src/menu/tablenodes/index.jsx index 26fb797..7fe455e 100644 --- a/src/menu/tablenodes/index.jsx +++ b/src/menu/tablenodes/index.jsx @@ -109,6 +109,293 @@ return {tbs, ptbs} } + getFuncAndInterface = (config) => { + let ptbs = [] + + let filterBtn = (cell, tbs) => { + if (cell.intertype === 'inner') { + tbs.push({ + label: cell.innerFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } else if (cell.intertype === 'outer' || cell.intertype === 'custom') { + if (cell.innerFunc) { + tbs.push({ + label: cell.innerFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.outerFunc) { + tbs.push({ + label: cell.outerFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.interface && cell.sysInterface !== 'true') { + tbs.push({ + label: cell.interface + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.proInterface) { + tbs.push({ + label: cell.proInterface + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.exInterface) { + let url = '' + + try { + url = JSON.parse(cell.exInterface).url + } catch(e) { + url = '' + } + + if (url) { + tbs.push({ + label: url + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + if (cell.exProInterface) { + let url = '' + + try { + url = JSON.parse(cell.exProInterface).url + } catch(e) { + url = '' + } + + if (url) { + tbs.push({ + label: url + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + if (cell.callbackFunc) { + tbs.push({ + label: cell.callbackFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + } + + let filterSetting = (item, tbs) => { + if (!item.setting) return + if (item.setting.interType === 'inner') { + tbs.push({ + label: item.setting.innerFunc + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } else if (item.setting.interType === 'outer') { + if (item.setting.outerFunc) { + tbs.push({ + label: item.setting.outerFunc + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (item.setting.interface && item.setting.sysInterface !== 'true') { + tbs.push({ + label: item.setting.interface + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (item.setting.proInterface) { + tbs.push({ + label: item.setting.proInterface + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (item.setting.exInterface) { + let url = '' + + try { + url = JSON.parse(item.setting.exInterface).url + } catch(e) { + url = '' + } + + if (url) { + tbs.push({ + label: url + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + if (item.setting.exProInterface) { + let url = '' + + try { + url = JSON.parse(item.setting.exProInterface).url + } catch(e) { + url = '' + } + + if (url) { + tbs.push({ + label: url + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + } + } + + let traversal = (components, extra) => { + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + traversal(tab.components, extra) + }) + } else if (item.type === 'group') { + traversal(item.components, extra) + } else { + let tbs = [] + + filterSetting(item, tbs) + + if (item.action) { + item.action.forEach(cell => { + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + } + + if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + item.subcards.forEach(card => { + card.elements && card.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + card.backElements && card.backElements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + } else if (item.type === 'table') { + 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') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + } + }) + } + loopCol(item.cols) + } else if (item.type === 'form') { + item.subcards.forEach(group => { + filterBtn(group.subButton, tbs) + }) + } + + if (tbs.length) { + ptbs.push({ + label: item.name + extra, + id: Utils.getuuid(), + direction: 'left', + color: 'orange', + children: tbs + }) + } + } + }) + } + + if (config.interfaces) { + config.interfaces.forEach(item => { + let tbs = [] + filterSetting(item, tbs) + if (tbs.length) { + ptbs.push({ + label: item.name, + id: Utils.getuuid(), + direction: 'left', + color: 'orange', + children: tbs + }) + } + }) + } + + traversal(config.components, '') + + return ptbs + } + trigger = () => { const { config } = this.props @@ -170,6 +457,12 @@ data.children.push(cell) }) + } + + let funcs = this.getFuncAndInterface(config) + + if (funcs.length) { + data.children.push(...funcs) } if (result.tb_list) { @@ -528,7 +821,7 @@ </div> <div className="footer"> <Button key="cancel" onClick={() => { this.setState({ visible: false })}}>鍏抽棴</Button> - <span className="tip">娉細鐐瑰嚮琛ㄥ悕鍙睍寮�/鏀惰捣鑿滃崟</span> + <span className="tip">娉細鐐瑰嚮琛ㄥ悕锛堝彸渚э級鍙睍寮�/鏀惰捣鑿滃崟锛屽乏渚ф鑹叉爣娉ㄤ负鎺ュ彛鎴栧嚱鏁板悕銆�</span> </div> </Modal> </div> diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx index 71db29c..4ce4d1b 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -4,6 +4,7 @@ import { Table, Typography, Modal, Input, InputNumber, Button, notification, message, Select } from 'antd' import { EditOutlined, QuestionCircleOutlined } from '@ant-design/icons' import moment from 'moment' +import md5 from 'md5' import Api from '@/api' import asyncComponent from '@/utils/asyncComponent' @@ -947,6 +948,7 @@ pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 columns: null, // 鏄剧ず鍒� forms: [], + signForms: [], orderfields: {}, // 鎺掑簭id涓巉ield杞崲 loading: false, pageOptions: [], @@ -963,6 +965,7 @@ let deForms = [] let _forms = {} let hasBid = false + let signForms = [] let getColumns = (cols) => { return cols.map(item => { @@ -974,6 +977,8 @@ } else { if (item.editable === 'true') { _forms[item.field] = item + + signForms.push(item.field) if (item.ctrlField) { item.ctrlValue = item.ctrlValue.split(',') @@ -1046,6 +1051,7 @@ this.setState({ forms, + signForms, pageSize: setting.pageSize || 10, pageOptions, columns: _columns, @@ -1108,10 +1114,28 @@ } transferData = (menuid, data, type) => { - const { MenuID } = this.props - const { edData } = this.state + const { MenuID, setting } = this.props + const { edData, signForms } = this.state if (menuid !== MenuID) return + + if (setting.commit !== 'all' && setting.standard !== 'change') { + if (type !== 'line') { + data.forEach(item => { + let value = '' + signForms.forEach(field => { + value += item[field] + }) + item.$sign = md5(value) + }) + } else { + let value = '' + signForms.forEach(field => { + value += data[field] + }) + data.$sign = md5(value) + } + } if (type !== 'line') { let index = edData.findIndex(item => !item.$origin && !item.$forbid) @@ -1461,19 +1485,31 @@ changeRecord = (id, record) => { const { setting } = this.props - const { tableId } = this.state + const { tableId, signForms } = this.state if (id !== tableId) return - let lock = record.$lock + if (!record.$sign) { + record.$origin = false + record.$lock = true + delete record.$forbid + } else { + let value = '' + signForms.forEach(field => { + value += record[field] + }) + + if (record.$sign !== md5(value)) { + record.$origin = false + record.$lock = true + } else { + record.$origin = true + record.$lock = false + } + } let _data = this.state.edData.map(item => { if (item.$$uuid === record.$$uuid) { - record.$origin = false - record.$lock = true - - delete record.$forbid - return record } else { return item @@ -1481,7 +1517,7 @@ }) this.setState({edData: _data}, () => { - if (setting.tableType && setting.hasAction && !lock && this.state.selectedRowKeys.includes(record.$$uuid)) { + if (setting.tableType && setting.hasAction && this.state.selectedRowKeys.includes(record.$$uuid)) { this.selectdata(this.state.selectedRowKeys) } }) diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss index 9fcaf63..873f7e7 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss @@ -254,6 +254,9 @@ border-color: var(--mk-table-border-color)!important; } table tr { + th .ant-table-column-title { + position: unset!important; + } th .ant-table-column-title, th .ant-table-column-title span:not(.anticon) { font-size: var(--mk-table-font-size)!important; font-weight: var(--mk-table-font-weight)!important; diff --git a/src/tabviews/zshare/topSearch/index.jsx b/src/tabviews/zshare/topSearch/index.jsx index 6666d61..7b3a720 100644 --- a/src/tabviews/zshare/topSearch/index.jsx +++ b/src/tabviews/zshare/topSearch/index.jsx @@ -669,6 +669,8 @@ } handleSubmit = () => { + const { config } = this.props + this.setState({}, () => { this.props.form.validateFields((err, values) => { if (err) return @@ -706,11 +708,20 @@ this.sign = '' }, 2000) + if (config.wrap && config.wrap.cacheSearch === 'true') { + let _values = {} + searches.forEach(item => { + _values[item.key] = item.value + }) + + window.GLOB.SearchBox.set(config.$searchId + 'cache', _values) + } + if (this.props.refreshdata) { this.props.refreshdata(searches) } else { - window.GLOB.SearchBox.set(this.props.config.$searchId, searches) - MKEmitter.emit('searchRefresh', this.props.config.$searchId) + window.GLOB.SearchBox.set(config.$searchId, searches) + MKEmitter.emit('searchRefresh', config.$searchId) } }) }) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 5871f20..e6dd77b 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -1224,6 +1224,125 @@ } /** + * @description 鑾峰彇鎺ュ彛鍙婂嚱鏁� + */ +export function getFuncsAndInters (config) { + let inters = 'false' + + let filterBtn = (cell) => { + if ((cell.intertype === 'outer' && cell.sysInterface !== 'true') || cell.intertype === 'custom') { + inters = 'true' + } + } + + let traversal = (components) => { + if (!components || inters === 'true') return + + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + traversal(tab.components) + }) + } else if (item.type === 'group') { + traversal(item.components) + } else { + if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') { + inters = 'true' + } + + if (item.action) { + item.action.forEach(cell => { + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } + + if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + item.subcards.forEach(card => { + card.elements && card.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + card.backElements && card.backElements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } else if (item.type === 'table') { + 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') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } + }) + } + loopCol(item.cols) + } else if (item.type === 'form') { + item.subcards.forEach(group => { + filterBtn(group.subButton) + }) + } + } + }) + } + + if (config.interfaces) { + config.interfaces.forEach(item => { + if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') { + inters = 'true' + } + }) + } + + traversal(config.components) + + return inters +} + +/** * @description 妫�娴嬬粍浠跺唴瀹� */ export function checkComponent (card) { diff --git a/src/utils/utils.js b/src/utils/utils.js index 44c6a54..247f4b3 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -275,6 +275,10 @@ let roleId = sessionStorage.getItem('role_id') || '' let required = false let keys = [] + let values = null + if (config.wrap && config.wrap.cacheSearch === 'true') { + values = window.GLOB.SearchBox.get(config.$searchId + 'cache') + } config.search = config.search.map(item => { item.hidden = item.Hide === 'true' @@ -387,6 +391,10 @@ item.oriInitval = item.initval + if (values) { + item.initval = values[item.field] || '' + } + if (item.blacklist && item.blacklist.length > 0 && !item.hidden) { if (item.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { item.hidden = true diff --git a/src/views/design/sidemenu/index.jsx b/src/views/design/sidemenu/index.jsx index 3e07e00..959ed2d 100644 --- a/src/views/design/sidemenu/index.jsx +++ b/src/views/design/sidemenu/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import { is, fromJS } from 'immutable' import { Menu, Popover, Modal, notification } from 'antd' -import { EditOutlined, PlusOutlined, SettingOutlined } from '@ant-design/icons' +import { EditOutlined, PlusOutlined, SettingOutlined, ApiOutlined } from '@ant-design/icons' import moment from 'moment' import asyncComponent from '@/utils/asyncComponent' @@ -326,7 +326,7 @@ {item.children.map(cell => { return ( <Menu.Item key={cell.MenuID}> - <span className="editable-menu-item" onDoubleClick={() => this.editmenu(cell)}>{cell.MenuName}</span> + <span className="editable-menu-item" onDoubleClick={() => this.editmenu(cell)}>{cell.PageParam && cell.PageParam.interfaces === 'true' ? <ApiOutlined title="鑿滃崟涓娇鐢ㄤ簡澶栭儴鎺ュ彛" /> : null}{cell.MenuName}</span> </Menu.Item> ) })} diff --git a/src/views/design/sidemenu/index.scss b/src/views/design/sidemenu/index.scss index bc55c66..bf1a210 100644 --- a/src/views/design/sidemenu/index.scss +++ b/src/views/design/sidemenu/index.scss @@ -12,9 +12,17 @@ padding-left: 48px; } .editable-menu-item { + position: relative; display: block; padding-left: 48px; cursor: pointer; + + .anticon-api { + position: absolute; + left: 25px; + top: 11px; + color: orange; + } } } .ant-menu-sub.ant-menu-inline { diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 19e4aec..3135c50 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -547,20 +547,20 @@ Api.getTouristMsg().then(result => { if (result.status) { - if (result.website && process.env.NODE_ENV === 'production') { - let website = result.website.replace(/http(s)?:\/\/|\/$/ig, '').toLowerCase() - let current = window.GLOB.baseurl.replace(/http(s)?:\/\/|\/$/ig, '').toLowerCase() + // if (result.website && process.env.NODE_ENV === 'production') { + // let website = result.website.replace(/http(s)?:\/\/|\/$/ig, '').toLowerCase() + // let current = window.GLOB.baseurl.replace(/http(s)?:\/\/|\/$/ig, '').toLowerCase() - if (website !== current) { - try { - window.history.replaceState(null, null, result.website.replace(/\/$/ig, '') + '/admin/index.html#/login') - window.location.reload() - } catch(e) { - window.location.href = result.website.replace(/\/$/ig, '') + '/admin/index.html#/login' - } - return - } - } + // if (website !== current) { + // try { + // window.history.replaceState(null, null, result.website.replace(/\/$/ig, '') + '/admin/index.html#/login') + // window.location.reload() + // } catch(e) { + // window.location.href = result.website.replace(/\/$/ig, '') + '/admin/index.html#/login' + // } + // return + // } + // } sessionStorage.setItem('visitorUserID', result.UserID || '') sessionStorage.setItem('visitorLoginUID', result.LoginUID || '') diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 189034b..9ec20db 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -13,7 +13,7 @@ import Utils, { setGLOBFuncs } from '@/utils/utils.js' import antdZhCN from 'antd/es/locale/zh_CN' import MKEmitter from '@/utils/events.js' -import { getTables } from '@/utils/utils-custom.js' +import { getTables, getFuncsAndInters } from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' import '@/assets/css/design.scss' @@ -778,6 +778,8 @@ config.tbkey = key } + let interfaces = getFuncsAndInters(config) + let param = { func: 'sPC_TrdMenu_AddUpt', FstID: config.fstMenuId || '', @@ -788,7 +790,7 @@ EasyCode: config.easyCode || '', Template: 'CustomPage', MenuName: config.MenuName || '', - PageParam: JSON.stringify({Template: 'CustomPage', OpenType: config.OpenType || 'newtab', hidden: config.hidden || 'false'}), + PageParam: JSON.stringify({Template: 'CustomPage', OpenType: config.OpenType || 'newtab', hidden: config.hidden || 'false', interfaces}), open_edition: config.open_edition, LText: '', LTexttb: '', diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx index c2092d2..072814b 100644 --- a/src/views/mobdesign/index.jsx +++ b/src/views/mobdesign/index.jsx @@ -12,7 +12,7 @@ import Utils, { setGLOBFuncs } from '@/utils/utils.js' import antdZhCN from 'antd/es/locale/zh_CN' import MKEmitter from '@/utils/events.js' -import MenuUtils, { getTables } from '@/utils/utils-custom.js' +import MenuUtils, { getTables, getFuncsAndInters } from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' import '@/assets/css/design.scss' @@ -1503,6 +1503,9 @@ let menus_used_list = subMenus.map(m => `'${config.uuid}','${config.MenuName || ''}','${config.MenuNo || ''}','${m.MenuID}','${m.MenuName}'`).join(';') menus_used_list = window.btoa(window.encodeURIComponent(menus_used_list || 'del')) + let interfaces = getFuncsAndInters(config) + roleParam.interfaces = interfaces + let param = { func: 'sPC_TrdMenu_AddUpt', FstID: 'mk_app', @@ -1515,7 +1518,7 @@ TypeCharOne: sessionStorage.getItem('kei_no'), Typename: sessionStorage.getItem('typename'), MenuName: config.MenuName || '', - PageParam: JSON.stringify({Template: 'webPage'}), + PageParam: JSON.stringify({Template: 'webPage', interfaces}), open_edition: config.open_edition, menus_rolelist: window.btoa(window.encodeURIComponent(JSON.stringify(roleParam))), LText: '', diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 9a139f7..e4239db 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -10,7 +10,7 @@ import Api from '@/api' import Utils, { setGLOBFuncs } from '@/utils/utils.js' -import { getTables } from '@/utils/utils-custom.js' +import { getTables, getFuncsAndInters } from '@/utils/utils-custom.js' import antdZhCN from 'antd/es/locale/zh_CN' import MKEmitter from '@/utils/events.js' import MenuUtils from '@/utils/utils-custom.js' @@ -1203,6 +1203,9 @@ config.tbkey = key } + let interfaces = getFuncsAndInters(config) + roleParam.interfaces = interfaces + let param = { func: 'sPC_TrdMenu_AddUpt', FstID: 'mk_app', @@ -1215,7 +1218,7 @@ 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: '', diff --git a/src/views/rolemanage/index.jsx b/src/views/rolemanage/index.jsx index ce7203b..e246e2b 100644 --- a/src/views/rolemanage/index.jsx +++ b/src/views/rolemanage/index.jsx @@ -3,8 +3,8 @@ import { Spin, notification, Button, Table, Modal, ConfigProvider, Tree, Input, Empty } from 'antd' import moment from 'moment' import md5 from 'md5' -import enUS from 'antd/es/locale/en_US' import zhCN from 'antd/es/locale/zh_CN' +import { ApiOutlined } from '@ant-design/icons' import Api from '@/api' import Utils from '@/utils/utils.js' @@ -15,7 +15,6 @@ const { TreeNode } = Tree const { Search } = Input -const _locale = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS const Header = asyncComponent(() => import('./header')) const TransferForm = asyncComponent(() => import('@/templates/zshare/basetransferform')) @@ -29,6 +28,8 @@ title: '鑿滃崟鍚嶇О', dataIndex: 'MenuName', key: 'MenuName', align: 'center', render: (text, record) => { if (record.extra) { return <span style={{color: '#1890ff'}}>{text}</span> + } else if (record.interfaces === 'true') { + return <span><ApiOutlined style={{color: 'orange', marginRight: '5px'}} title="鑿滃崟涓娇鐢ㄤ簡澶栭儴鎺ュ彛" />{text}</span> } return text } @@ -140,6 +141,7 @@ try { let pageParam = JSON.parse(window.decodeURIComponent(window.atob(item.menus_rolelist))) item.nodes = pageParam + item.interfaces = pageParam.interfaces || 'false' if (pageParam.type) { item.type = pageParam.type @@ -886,7 +888,7 @@ return ( <div className="mk-role-manage"> - <ConfigProvider locale={_locale}> + <ConfigProvider locale={zhCN}> <Header app={app} /> {loading ? <div className="loading-mask"> diff --git a/src/views/systemfunc/index.jsx b/src/views/systemfunc/index.jsx index 109d291..63bee5f 100644 --- a/src/views/systemfunc/index.jsx +++ b/src/views/systemfunc/index.jsx @@ -17,8 +17,10 @@ if (!sessionStorage.getItem('UserID')) { this.props.history.replace('/login') } else { - sessionStorage.setItem('LocalUserID', sessionStorage.getItem('UserID')) - sessionStorage.setItem('LocalLoginUID', sessionStorage.getItem('LoginUID')) + if (!sessionStorage.getItem('LocalUserID')) { + sessionStorage.setItem('LocalUserID', sessionStorage.getItem('UserID')) + sessionStorage.setItem('LocalLoginUID', sessionStorage.getItem('LoginUID')) + } sessionStorage.setItem('role_id', sessionStorage.getItem('cloudRole_id')) sessionStorage.setItem('dataM', sessionStorage.getItem('cloudDataM')) sessionStorage.setItem('User_Name', sessionStorage.getItem('CloudUserName')) diff --git a/src/views/tabledesign/index.jsx b/src/views/tabledesign/index.jsx index 3954522..ab31a4f 100644 --- a/src/views/tabledesign/index.jsx +++ b/src/views/tabledesign/index.jsx @@ -12,7 +12,7 @@ import Utils, { setGLOBFuncs } from '@/utils/utils.js' import antdZhCN from 'antd/es/locale/zh_CN' import MKEmitter from '@/utils/events.js' -import { getTables } from '@/utils/utils-custom.js' +import { getTables, getFuncsAndInters } from '@/utils/utils-custom.js' import SourceElement from '@/templates/zshare/dragsource' import asyncComponent from '@/utils/asyncComponent' import Source from './source' @@ -579,6 +579,8 @@ config.tbkey = key } + let interfaces = getFuncsAndInters(config) + let param = { func: 'sPC_TrdMenu_AddUpt', FstID: config.fstMenuId || '', @@ -589,7 +591,7 @@ EasyCode: config.easyCode || '', Template: 'BaseTable', MenuName: config.MenuName || '', - PageParam: JSON.stringify({Template: 'BaseTable', OpenType: config.OpenType || 'newtab', hidden: config.hidden || 'false'}), + PageParam: JSON.stringify({Template: 'BaseTable', OpenType: config.OpenType || 'newtab', hidden: config.hidden || 'false', interfaces}), open_edition: config.open_edition, LText: '', LTexttb: '', -- Gitblit v1.8.0