From 04c038af25f79ac7fc80e93054856a614f22b63b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 12 六月 2024 16:43:39 +0800 Subject: [PATCH] 2024-06-12 --- src/tabviews/zshare/actionList/normalbutton/index.jsx | 334 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 250 insertions(+), 84 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index e2bcad1..c9547e1 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -3,7 +3,7 @@ import moment from 'moment' import qs from 'qs' import { is, fromJS } from 'immutable' -import { Button, Modal, notification, message, Drawer, Switch, Checkbox, Progress } from 'antd' +import { Button, Modal, notification, message, Popover, Drawer, Switch, Checkbox, Progress } from 'antd' import md5 from 'md5' import Api from '@/api' @@ -28,6 +28,7 @@ columns: PropTypes.any, // 瀛楁鍒� setting: PropTypes.any, // 椤甸潰閫氱敤璁剧疆 disabled: PropTypes.any, // 琛屾寜閽鐢� + name: PropTypes.any } state = { @@ -203,8 +204,8 @@ /** * @description 瑙﹀彂鎸夐挳鎿嶄綔 */ - actionTrigger = (triggerId, record, type, callback) => { - const { btn, selectedData } = this.props + actionTrigger = (triggerId, record, type, lid, callback) => { + const { btn, selectedData, LID } = this.props const { loading, disabled } = this.state if (type === 'preButton') { @@ -218,7 +219,7 @@ if (loading || disabled) return if (triggerId && btn.uuid !== triggerId) return - if (type === 'linkbtn' && !btn.$toolbtn && !is(fromJS(selectedData || []), fromJS(record))) return + if (type === 'linkbtn' && !btn.$toolbtn && LID !== lid) return if (btn.OpenType === 'form' && btn.formType === 'count_line') return this.setState({autoMatic: type === 'autoMatic'}) @@ -497,7 +498,7 @@ } } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -508,7 +509,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else if (btn.OpenType === 'pop' || btn.OpenType === 'formSubmit' || btn.OpenType === 'form') { // 琛ㄥ崟 if (btn.sqlType === 'insert') { // 绯荤粺鍑芥暟娣诲姞鏃讹紝鐢熸垚uuid primaryId = '' @@ -533,7 +534,7 @@ } } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -544,7 +545,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else { param.ID = primaryId @@ -559,7 +560,7 @@ } } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -570,7 +571,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } } @@ -590,7 +591,7 @@ if (param.$unCheckParam) { param.$unCheckParam.LText = param.$unCheckParam.LText.replace(/\$check@/ig, '/*').replace(/@check\$/ig, '*/') - param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText) + param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText, param.exec_type) param.$unCheckParam.menuname = btn.logLabel if (window.GLOB.probation) { @@ -625,7 +626,7 @@ } } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -636,7 +637,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else if (btn.OpenType === 'pop') { // 琛ㄥ崟 if (index !== 0) { let _cell = {} @@ -665,7 +666,7 @@ } } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -676,7 +677,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else { param.ID = primaryId @@ -691,7 +692,7 @@ } } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -702,7 +703,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } } @@ -721,7 +722,7 @@ if (param.$unCheckParam) { param.$unCheckParam.LText = param.$unCheckParam.LText.replace(/\$check@/ig, '/*').replace(/@check\$/ig, '*/') - param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText) + param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText, param.exec_type) param.$unCheckParam.menuname = btn.logLabel if (window.GLOB.probation) { @@ -754,6 +755,9 @@ if (btn.recordUser === 'true') { param.username = sessionStorage.getItem('User_Name') || '' param.fullname = sessionStorage.getItem('Full_Name') || '' + } + if (btn.dataM === 'true') { + param.dataM = sessionStorage.getItem('dataM') === 'true' ? 'Y' : '' } let primaryId = '' @@ -796,6 +800,9 @@ if (btn.recordUser === 'true') { param.username = sessionStorage.getItem('User_Name') || '' param.fullname = sessionStorage.getItem('Full_Name') || '' + } + if (btn.dataM === 'true') { + param.dataM = sessionStorage.getItem('dataM') === 'true' ? 'Y' : '' } let primaryId = setting.primaryKey ? cell[setting.primaryKey] || '' : '' @@ -1086,7 +1093,7 @@ let node = document.getElementById('button' + btnId) if (node) { - MKEmitter.emit('triggerBtnId', btnId, null, 'preButton', (res) => { + MKEmitter.emit('triggerBtnId', btnId, null, 'preButton', null, (res) => { if (!res) { this.setState({loading: false}) resolve() @@ -1124,6 +1131,20 @@ if (btn.intertype === 'system') { params = this.getSystemParam(data, formdata) + if (btn.returnValue === 'true') { + params = params.map(item => { + item.script_type = 'Y' + return item + }) + } + if (btn.database === 'sso') { + if ((window.GLOB.mkHS || window.GLOB.systemType === 'production') && window.GLOB.mainSystemApi) { + params = params.map(item => { + item.rduri = window.GLOB.mainSystemApi + return item + }) + } + } } else { params = this.getInnerParam(data, formdata) } @@ -1295,7 +1316,7 @@ return } - Api.genericInterface(param).then(res => { + Api.genericInterface(param, btn.$innerScript, 'inner').then(res => { record.mk_api_key = res.mk_api_key || '' if (res.status) { @@ -1535,7 +1556,7 @@ param.menuname = param.menuname + '(鍥炶皟)' } - Api.genericInterface(param).then(res => { + Api.genericInterface(param, btn.$callbackScript, 'callback').then(res => { if (res.status) { this.triggerNote(res, param.ID) // 娑堟伅 @@ -1625,11 +1646,12 @@ }) keys = keys.join(',') + vals = vals.join(',') lines.push({ table: md5(tb + keys), - insert: `Insert into ${tbName} (${keys},[mk_level],[mk_id],[mk_bid])`, - select: `Select ${vals.join(',')},'${level}','${id}','${bid}'` + insert: `Insert into ${tbName} (${keys ? keys + ',' : ''}[mk_level],[mk_id],[mk_bid])`, + select: `Select ${keys ? vals + ',' : ''}'${level}','${id}','${bid}'` }) subObjs.forEach(item => { @@ -1712,12 +1734,13 @@ sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`) sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`) sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`) + sql = sql.replace(/@lang@/ig, `'${sessionStorage.getItem('lang')}'`) sql = sql.replace(/@typename@/ig, `'admin'`) if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - sql = sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') + sql = sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`) } else { - sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') + sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`) } if (window.GLOB.debugger === true) { @@ -1726,10 +1749,10 @@ } param.LText = sql - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) param.menuname = btn.logLabel if (window.GLOB.probation) { @@ -1892,7 +1915,7 @@ return } - Api.genericInterface(param).then(res => { + Api.genericInterface(param, btn.$innerScript, 'inner').then(res => { if (res.status) { if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length === 0) { this.execSuccess(res) @@ -1990,7 +2013,7 @@ } } - Api.genericInterface(result).then(res => { + Api.genericInterface(result, btn.$outerScript, 'outer').then(res => { if (!res) return // LoginError鏃朵腑鏂姹� if (ver_token && res.ErrCode === 'token_error') { res.ErrCode = 'E' @@ -2053,11 +2076,14 @@ func: btn.callbackFunc } - // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 - if (window.GLOB.mkHS && param.func === 's_sDataDictb_TBBack' && param.LTextOut) { - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - param.secretkey = Utils.encrypt(param.LTextOut, param.timestamp) - param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) + if (window.GLOB.mkHS) { + if (btn.callbackFunc === 's_sVersion_Local_add' && window.GLOB.forcedUpdate) { // special 浼犺緭鍙锋坊鍔犲洖璋冨鐞� + param.local_userid = sessionStorage.getItem('LocalUserID') || '' + } else if (btn.callbackFunc === 's_sDataDictb_TBBack' && param.LTextOut) { // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt(param.LTextOut, param.timestamp) + param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) + } } } else { if (result.status) { @@ -2079,7 +2105,7 @@ param.menuname = param.menuname + '(鍥炶皟)' } - Api.genericInterface(param).then(res => { + Api.genericInterface(param, btn.$callbackScript, 'callback').then(res => { if (res.status) { this.triggerNote(res, param.ID) // 娑堟伅 @@ -2223,7 +2249,19 @@ const { autoMatic } = this.state if (btn.resetForms) { - MKEmitter.emit('resetForms', btn.uuid) + let data = {} + + Object.keys(res).forEach(key => { + data[key.toLowerCase()] = res[key] + }) + + delete data.errcode + delete data.errmesg + delete data.message + delete data.status + + MKEmitter.emit('resetForms', btn.uuid, data) + MKEmitter.emit('refreshByButtonResult', btn.$menuId, 'resetData', btn, null, null, data) } if (this.preCallback) { @@ -2243,6 +2281,17 @@ } let sign = '' + let focusField = '' + + if (/@focus:[a-z0-9_]+@/i.test(res.message)) { + let val = res.message.match(/@focus:[a-z0-9_]+@/i) + res.message = res.message.replace(/@focus:[a-z0-9_]+@/i, '') + focusField = val ? val[0].replace(/@focus:|@/ig, '') : '' + + if (!res.message) { + res.ErrCode = '-1' + } + } if (/^@speak@/i.test(res.message)) { res.message = res.message.replace(/^@speak@/i, '') let val = res.message.match(/<<.*>>/) @@ -2258,7 +2307,8 @@ if (!res.message) { res.ErrCode = '-1' } - } else if (/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i.test(res.message)) { + } + if (/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i.test(res.message)) { sign = res.message.match(/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i)[0].toLowerCase() res.message = res.message.replace(/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i, '') } @@ -2291,7 +2341,7 @@ Modal.success({ title: msg, onOk: () => { - this.successContinue(sign, id) + this.successContinue(sign, id, res, focusField) } }) return @@ -2299,12 +2349,16 @@ } - this.successContinue(sign, id) + this.successContinue(sign, id, res, focusField) } - successContinue = (sign, id) => { + successContinue = (sign, id, res, focusField) => { const { btn } = this.props const { btnconfig } = this.state + + if (focusField) { + MKEmitter.emit('resetFocus', btn.uuid, focusField) + } this.setState({ loadingNumber: '', @@ -2322,6 +2376,10 @@ if (btn.refreshTab && btn.refreshTab.length > 0) { tabId = btn.refreshTab[btn.refreshTab.length - 1] } + + // if (btn.formCache === 'clear') { // 娓呴櫎琛ㄥ崟缂撳瓨 + // window.GLOB.CacheMap = new Map() + // } if (tabId && btn.$MenuID === tabId) { // 鍒锋柊褰撳墠鑿滃崟鏃讹紝鍋滄鍏朵粬鎿嶄綔 MKEmitter.emit('reloadMenuView', tabId, 'table') @@ -2354,7 +2412,14 @@ } else if (/\$focus/.test(btn.syncComponentId)) { MKEmitter.emit('reloadData', btn.syncComponentId.split('$')[0], btn.syncComponentId.split('$')[1]) } else { - MKEmitter.emit('reloadData', btn.syncComponentId) + if (btn.syncDelay) { + this.delayTimer && clearTimeout(this.delayTimer) + this.delayTimer = setTimeout(() => { + MKEmitter.emit('reloadData', btn.syncComponentId) + }, btn.syncDelay) + } else { + MKEmitter.emit('reloadData', btn.syncComponentId) + } } } @@ -2395,6 +2460,34 @@ if (btn.execSuccess === 'popclose' && btn.$tabId) { // 鏍囩鍏抽棴鍒锋柊 MKEmitter.emit('refreshPopButton', btn.$tabId) + } + + if (btn.verify && btn.verify.linkEnable === 'true') { + let url = '' + if (window.GLOB.systemType === 'production') { + url = btn.verify.linkProUrl + if (!url) { + notification.warning({ + top: 92, + message: '灏氭湭娣诲姞姝e紡绯荤粺閾炬帴鍦板潃锛�', + duration: 5 + }) + return + } + } else { + url = btn.verify.linkUrl + } + + if (/@/.test(url)) { + Object.keys(res).forEach(key => { + url = url.replace(new RegExp('@' + key + '@', 'ig'), res[key]) + }) + } + if (!/^http/.test(url)) { + url = window.location.origin + url + } + + window.open(url) } } @@ -2442,9 +2535,38 @@ if (!id) return - setTimeout(() => { - window.open('#/billprint/' + window.btoa(window.encodeURIComponent(JSON.stringify({ id: id, tempId: btn.verify.printTempId, pageId: btn.$MenuID || '', dataM: sessionStorage.getItem('dataM') })))) - }, 500) + if (btn.verify.preHandle === 'true' && btn.verify.pre_func && /#position-print/.test(btn.verify.pre_func)) { + MKEmitter.emit('queryModuleParam', btn.$menuId, (res) => { + let searches = {} + res.search && res.search.forEach(item => { + searches[item.key] = item.value + }) + let _param = { id: id || '', tempId: btn.verify.printTempId, pageId: btn.$MenuID || '', dataM: sessionStorage.getItem('dataM')} + + try { + // eslint-disable-next-line + let func = new Function('btn', 'searches', 'param', 'systemType', btn.verify.pre_func) + _param = func(btn, searches, _param, window.GLOB.systemType) + } catch (e) { + console.warn(e) + } + + if (!_param || _param.error) { + notification.warning({ + top: 92, + message: _param ? _param.error : '鏈幏鍙栧埌鎵撳嵃鍙傛暟锛岃嚜瀹氫箟鑴氭湰閿欒锛�', + duration: 5 + }) + return + } + + window.open('#/billprint/' + window.btoa(window.encodeURIComponent(JSON.stringify(_param)))) + }) + } else { + setTimeout(() => { + window.open('#/billprint/' + window.btoa(window.encodeURIComponent(JSON.stringify({ id: id, tempId: btn.verify.printTempId, pageId: btn.$MenuID || '', dataM: sessionStorage.getItem('dataM') })))) + }, 200) + } } sendWxMessage = (verify, id) => { @@ -2462,7 +2584,7 @@ upid: id } - param.LText = Utils.formatOptions(Utils.getuuid()) + param.LText = Utils.getuuid() param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) @@ -2499,9 +2621,9 @@ if (verify.wxNoteLink === 'url' && verify.wxNoteLinkUrl) { _param.url = verify.wxNoteLinkUrl - } else if (verify.wxNoteLink === 'miniProgram' && window.GLOB.WXminiAppID) { + } else if (verify.wxNoteLink === 'miniProgram' && (window.GLOB.WXminiAppID || verify.wxNoteMiniId)) { _param.miniprogram = { - appid: window.GLOB.WXminiAppID, + appid: verify.wxNoteMiniId || window.GLOB.WXminiAppID, pagepath: '/pages/index/index' } @@ -2556,7 +2678,7 @@ msg_result: msg } - _p.LText = Utils.formatOptions(Utils.getuuid()) + _p.LText = Utils.getuuid() _p.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') _p.secretkey = Utils.encrypt(_p.LText, _p.timestamp) @@ -2604,7 +2726,7 @@ upid: id } - param.LText = Utils.formatOptions(Utils.getuuid()) + param.LText = Utils.getuuid() param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) @@ -2735,7 +2857,7 @@ upid: id } - param.LText = Utils.formatOptions(Utils.getuuid()) + param.LText = Utils.getuuid() param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) @@ -2981,8 +3103,47 @@ } else if (btn.execError === 'closepoptab' || sign === '@close_popup@') { MKEmitter.emit('popclose') } else if (btn.execError !== 'never') { + let tabId = '' + if (btn.refreshTab && btn.refreshTab.length > 0) { + tabId = btn.refreshTab[btn.refreshTab.length - 1] + } + if (tabId && btn.$MenuID === tabId) { // 鍒锋柊褰撳墠鑿滃崟鏃讹紝鍋滄鍏朵粬鎿嶄綔 + MKEmitter.emit('reloadMenuView', tabId, 'table') + return + } + MKEmitter.emit('refreshByButtonResult', btn.$menuId, btn.execError, btn, '', this.state.selines) + + if (btn.syncComponentId) { + if (btn.syncComponentId === 'multiComponent') { + btn.syncComponentIds.forEach((id, i) => { + setTimeout(() => { + if (/\$focus/.test(id)) { + MKEmitter.emit('reloadData', id.split('$')[0], id.split('$')[1]) + } else { + MKEmitter.emit('reloadData', id) + } + }, 20 * i) + }) + } else if (/\$focus/.test(btn.syncComponentId)) { + MKEmitter.emit('reloadData', btn.syncComponentId.split('$')[0], btn.syncComponentId.split('$')[1]) + } else { + if (btn.syncDelay) { + this.delayTimer && clearTimeout(this.delayTimer) + this.delayTimer = setTimeout(() => { + MKEmitter.emit('reloadData', btn.syncComponentId) + }, btn.syncDelay) + } else { + MKEmitter.emit('reloadData', btn.syncComponentId) + } + } + } + + if (tabId) { + MKEmitter.emit('reloadMenuView', tabId, 'table') + } } + if (btn.OpenType === 'form') { let data = this.props.selectedData && this.props.selectedData[0] ? this.props.selectedData[0] : null @@ -3137,7 +3298,7 @@ } modelconfirm = () => { - const { btn, BID } = this.props + const { BID } = this.props const { btnconfig, selines } = this.state let _this = this @@ -3222,6 +3383,20 @@ console.warn(e) _item.value = '' } + } else if (item.interception === 'charTure') { + let str = _item.value.replace(/(^\s*|\s*$)/g, '') + let result = '' + for (let i = 0 ; i < str.length; i++) { + let code = str.charCodeAt(i) + if (code >= 65281 && code <= 65373) { + result += String.fromCharCode(str.charCodeAt(i) - 65248) + } else if (code === 12288) { + result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32) + } else { + result += str.charAt(i) + } + } + _item.value = result } else { _item.value = _item.value.replace(/(^\s*|\s*$)/g, '') } @@ -3268,7 +3443,7 @@ this.execSubmit(selines, () => {}, result) } else { confirm({ - title: btn.tipTitle || '纭畾瑕佹墽琛屽悧?', + title: btnconfig.setting.tipTitle || '纭畾瑕佹墽琛屽悧?', onOk() { return new Promise(resolve => { _this.execSubmit(selines, resolve, result) @@ -3448,7 +3623,7 @@ } render() { - const { btn } = this.props + const { btn, name } = this.props const { loadingNumber, loadingTotal, loading, disabled, hidden, check, count } = this.state if (hidden) return null @@ -3467,45 +3642,36 @@ } let label = '' - let icon = '' - let type = 'link' - let className = '' - if (btn.show === 'button') { - label = btn.label - icon = btn.icon || '' - } else if (btn.show === 'link') { - label = <span>{btn.label}{btn.icon ? <MkIcon style={{marginLeft: '8px'}} type={btn.icon}/> : ''}</span> - icon = '' + if (btn.show === 'link') { + label = <span>{name || btn.label}{btn.icon ? <MkIcon style={{marginLeft: '8px'}} type={btn.icon} /> : ''}</span> } else if (btn.show === 'icon') { - icon = btn.icon || '' - } else if (!btn.$toolbtn) { - icon = btn.icon || '' - label = btn.label - className = 'mk-btn mk-' + (btn.class || 'unset') + label = !loading ? <MkIcon type={btn.icon} /> : null + } else if (btn.$toolbtn) { + label = <span>{!loading && btn.icon ? <MkIcon style={{marginRight: '8px'}} type={btn.icon} /> : ''}{loadingNumber && !loadingTotal ? `(${loadingNumber})` : ''}{btn.label}</span> } else { - type = '' - icon = btn.icon || '' - label = btn.label - className = 'mk-btn mk-' + (btn.class || 'unset') + label = <span>{!loading && btn.icon ? <MkIcon style={{marginRight: '8px'}} type={btn.icon} /> : ''}{name || btn.label}</span> } - if (loadingNumber && btn.progress !== 'progressbar' && btn.$toolbtn && (!btn.show || btn.show === 'button')) { - label = (loadingNumber ? `(${loadingNumber})` : '') + btn.label + let BTN = <Button + type="link" + id={'button' + btn.uuid} + title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')} + loading={loading} + disabled={disabled} + style={btn.style} + className={btn.hover || ''} + onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} + >{label}</Button> + + if (btn.hoverTitle) { + BTN = <Popover mouseLeaveDelay={0.3} mouseEnterDelay={0.3} content={btn.hoverTitle} trigger="hover"> + {BTN} + </Popover> } return <> - <Button - type={type} - icon={icon} - id={'button' + btn.uuid} - title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')} - loading={loading} - disabled={disabled} - style={btn.style} - className={className} - onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} - >{label}</Button> + {BTN} <span onClick={(e) => {e.stopPropagation()}}>{this.getModels()}</span> {loadingTotal ? <Progress className="mk-button-progress" percent={(loadingTotal - loadingNumber) / loadingTotal * 100} size="small" showInfo={false} /> : null} </> -- Gitblit v1.8.0