From 5d734ea5d934f0bfc48cf785efc8bcf953dd81ed Mon Sep 17 00:00:00 2001 From: sunhao Date: Thu, 30 Nov 2023 11:46:38 +0800 Subject: [PATCH] * zin: refactor. --- www/js/zui3/zin.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/www/js/zui3/zin.js b/www/js/zui3/zin.js index 4fc8f756ac..dba2f87f89 100644 --- a/www/js/zui3/zin.js +++ b/www/js/zui3/zin.js @@ -691,13 +691,15 @@ target = urlInfo.moduleName ? `table-${urlInfo.moduleName}-${urlInfo.methodName}` : ($('.dtable').attr('id') || 'dtable'); } if(target[0] !== '#' && target[0] !== '.') target = `#${target}`; - const selectors = [`dtable/${target}`]; - if(!$(target).closest('.modal').length) + let selector = `dtable/${target}:component`; + if(options.selector && options.selector !== 'dtable') selector = options.selector; + if(!$(target).closest('.modal').length && !options.selector) { - selectors.push('#featureBar>*'); - if($('#moduleMenu').length) selectors.push('#moduleMenu'); + selector += ',#featureBar>*'; + if($('#moduleMenu').length) selector += ',#moduleMenu'; } - return loadComponent(target, $.extend({component: 'dtable', url: url, selector: selectors.join(',')}, options)); + delete options.selector; + return loadComponent(target, $.extend({component: 'dtable', url: url, selector: selector}, options)); } /** @@ -882,6 +884,7 @@ if(DEBUG) console.log('[APP] open url', url, options); + if(options.app === 'current') options.app = currentCode; if(options.confirm) { return zui.Modal.confirm(options.confirm).then(confirmed => @@ -1155,12 +1158,7 @@ layoutNanavbar(); } - $.extend(window, {registerRender: registerRender, fetchContent: fetchContent, loadTable: loadTable, loadPage: loadPage, postAndLoadPage: postAndLoadPage, loadCurrentPage: loadCurrentPage, parseSelector: parseSelector, toggleLoading: toggleLoading, openUrl: openUrl, openPage: openPage, goBack: goBack, registerTimer: registerTimer, loadModal: loadModal, loadTarget: loadTarget, loadComponent: loadComponent, loadPartial: loadPartial, reloadPage: reloadPage, selectLang: selectLang, selectTheme: selectTheme, selectVision: selectVision, changeAppLang, changeAppTheme: changeAppTheme, uploadFileByChunk: uploadFileByChunk, waitDom: waitDom, setImageSize: setImageSize, showMoreImage: showMoreImage}); - $.extend($.apps, {openUrl: openUrl}); - $.extend($, {ajaxSendScore: ajaxSendScore, selectLang: selectLang}); - - /* Transfer click event to parent */ - $(document).on('click', (e) => + function handleGlobalClick(e) { if(e.defaultPrevented) return; if(isInAppTab) window.parent.$('body').trigger('click'); @@ -1204,7 +1202,14 @@ openUrl(url, options, e); e.preventDefault(); - }).on('locate.zt', (_e, data) => + } + + $.extend(window, {registerRender: registerRender, fetchContent: fetchContent, loadTable: loadTable, loadPage: loadPage, postAndLoadPage: postAndLoadPage, loadCurrentPage: loadCurrentPage, parseSelector: parseSelector, toggleLoading: toggleLoading, openUrl: openUrl, openPage: openPage, goBack: goBack, registerTimer: registerTimer, loadModal: loadModal, loadTarget: loadTarget, loadComponent: loadComponent, loadPartial: loadPartial, reloadPage: reloadPage, selectLang: selectLang, selectTheme: selectTheme, selectVision: selectVision, changeAppLang, changeAppTheme: changeAppTheme, uploadFileByChunk: uploadFileByChunk, waitDom: waitDom, setImageSize: setImageSize, showMoreImage: showMoreImage}); + $.extend($.apps, {openUrl: openUrl}); + $.extend($, {ajaxSendScore: ajaxSendScore, selectLang: selectLang}); + + /* Transfer click event to parent */ + $(document).on('click', handleGlobalClick).on('locate.zt', (_e, data) => { if(!data) return; if(data === true) return loadCurrentPage();