From 8e003c1a94d26cc4d477e7aa03593ccb4d7e6c61 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 11 十月 2024 17:47:40 +0800 Subject: [PATCH] 2024-10-11 --- src/views/billprint/index.jsx | 219 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 146 insertions(+), 73 deletions(-) diff --git a/src/views/billprint/index.jsx b/src/views/billprint/index.jsx index 9346380..25fbfea 100644 --- a/src/views/billprint/index.jsx +++ b/src/views/billprint/index.jsx @@ -2,6 +2,7 @@ import { is, fromJS } from 'immutable' import { Col, Row, Spin, notification, Button, Modal } from 'antd' import moment from 'moment' +import md5 from 'md5' import Api from '@/api' import Utils from '@/utils/utils.js' @@ -65,6 +66,7 @@ let param = JSON.parse(window.decodeURIComponent(window.atob(params.param))) sessionStorage.setItem('dataM', param.dataM || '') + this.setState({ BID: param.id || '', tempId: param.tempId, @@ -90,7 +92,7 @@ } componentDidMount() { - const _this = this + const that = this if (window.GLOB.sysType !== 'cloud') { Object.defineProperty(window, 'debugger', { @@ -118,7 +120,7 @@ window.GLOB.breakpoint = value + '' sessionStorage.setItem('breakpoint', value) } - _this.debugChange() + that.debugChange() } }) } @@ -144,7 +146,7 @@ window.GLOB.breakpoint = false sessionStorage.removeItem('breakpoint') - _this.debugChange() + that.debugChange() } } } @@ -302,6 +304,22 @@ let _pars = [] config.components = config.components.filter(item => !['tabs', 'search'].includes(item.type)) + + if (window.backend && config.allSqls) { + let urlparam = urlParam || {} + let keys = Object.keys(urlparam) + config.allSqls.forEach(item => { + item.id = md5(window.GLOB.appkey + item.v_id) + if (item.type === 'datasource' || item.type === 'excelOut') { + item.urlkeys = keys + item.urlparam = urlparam + if (config.flow_code) { + item.works_flow_code = config.flow_code + } + } + window.GLOB.CacheData.set('sql_' + item.uuid, item) + }) + } let userName = sessionStorage.getItem('User_Name') || '' let fullName = sessionStorage.getItem('Full_Name') || '' @@ -487,6 +505,8 @@ component.setting.sync = 'false' return component } + + component.setting.uuid = component.uuid let _customScript = '' let _tailScript = '' @@ -532,11 +552,17 @@ component.setting.customScript = _customScript // 鏁寸悊鍚庤嚜瀹氫箟鑴氭湰 component.setting.tailScript = _tailScript // 鍚庣疆鑷畾涔夎剼鏈� + + if (window.backend && config.allSqls) { + component.setting.sync = 'false' + } else if (_tailScript) { + component.setting.sync = 'false' + } + component.dataName = 'mk' + component.uuid.slice(-18) // floor 缁勪欢鐨勫眰绾� // pageable 鏄惁鍒嗛〉锛岀粍浠跺睘鎬э紝涓嶅垎椤电殑缁勪欢鎵嶅彲浠ョ粺涓�鏌ヨ if (component.setting.sync === 'true') { - component.dataName = 'mk' + component.uuid.slice(-18) let param = this.getDefaultParam(component) _pars.push(param) } else if (component.subtype !== 'dualdatacard') { @@ -554,8 +580,29 @@ _pars = this.getFormatParam(_pars, config.MenuName) if (_pars) { - _pars.componentId = 'union' + _pars.componentId = '' params.unshift(_pars) + } else if (window.backend && config.allSqls && params.length > 0) { + let data = [] + params = params.filter(item => { + if (!item.$backend || item.public) return true + + item.data[0].exps.forEach(cell => { + if (cell.key === 'mk_obj_name') { + cell.value = 'mk' + item.componentId.slice(-18) + } + }) + data.push(item.data[0]) + return false + }) + if (data.length > 0) { + params.push({ + $backend: true, + $type: 's_Get_TableData', + componentId: '', + data + }) + } } if (config.everyPCount && !config.printPage) { // 鍏煎 @@ -682,6 +729,8 @@ } return } + + inter.setting.uuid = inter.uuid let _customScript = '' let _tailScript = '' @@ -838,8 +887,8 @@ // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 if (window.GLOB.debugger === true) { - _script && console.info(`${_sql ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_script}`) - _sql && console.info(_sql) + _script && window.mkInfo(`${_sql ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_script}`) + _sql && window.mkInfo(_sql) } item.columns.forEach(cell => { @@ -876,11 +925,13 @@ return new Promise(resolve => { Api.genericInterface(item).then(res => { if (!res.status) { - notification.warning({ - top: 92, - message: res.message, - duration: 5 - }) + if (res.ErrCode !== '-2') { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } resolve() } else { let _data = { $$empty: true } @@ -911,7 +962,6 @@ let deffers = params.map(item => { let componentId = item.componentId - let ispublic = item.public delete item.componentId delete item.public return new Promise(resolve => { @@ -922,7 +972,7 @@ } if (res.ErrCode === 'version_up') { this.reloadTabs() - } else { + } else if (res.ErrCode !== '-2') { notification.warning({ top: 92, message: res.message, @@ -933,13 +983,12 @@ } else { res.componentId = componentId - if (ispublic) { - let _data = { $$empty: true } - if (res.data && res.data[0]) { - _data = res.data[0] - } - window.GLOB.CacheData.set(componentId, _data) + let _data = { $$empty: true } + if (res.data && res.data[0]) { + _data = res.data[0] } + window.GLOB.CacheData.set(componentId, _data) + resolve(res) } }) @@ -962,7 +1011,7 @@ _results.forEach(res => { if ((res.componentId === item.uuid || res.componentId === item.componentId) && res.data) { item.dataArray = fromJS(res.data).toJS() - } else if (res.componentId === 'union' && res[item.dataName]) { + } else if (res[item.dataName]) { let data = res[item.dataName] if (!Array.isArray(data)) { data = [data] @@ -994,63 +1043,79 @@ } } - while (!over) { - let page = [] - let count = 0 - let _pageover = false - - comps.forEach(comp => { - let item = fromJS(comp).toJS() - - if (item.wrap.printType === 'headerOrfooter') { // 椤电湁椤佃剼 - item.data = item.dataArray || null - setData(item) - page.push(item) - comp.added = true - } - - if (_pageover) return - - if (item.$page && comp.dataArray.length > 0) { - item.data = [] - - while (count + 1 <= limit && comp.dataArray.length > 0) { - item.data.push(comp.dataArray.shift()) - count++ - } - - if (count >= limit || comp.dataArray.length > 0) { - _pageover = true - } - - if (comp.dataArray.length === 0) { + if (this.state.config.printPage === 'custom' && this.state.config.printScripts) { + try { + // eslint-disable-next-line + let func = new Function('components', 'pages', 'notification', this.state.config.printScripts) + func(comps, pages, notification) + } catch (e) { + console.warn(e) + + notification.warning({ + top: 92, + message: '鑷畾涔夎剼鏈墽琛岄敊璇紒', + duration: 5 + }) + } + } else { + while (!over) { + let page = [] + let count = 0 + let _pageover = false + + comps.forEach(comp => { + let item = fromJS(comp).toJS() + + if (item.wrap.printType === 'headerOrfooter') { // 椤电湁椤佃剼 + item.data = item.dataArray || null + setData(item) + page.push(item) comp.added = true } - - setData(item) - page.push(item) - } else if (!comp.added) { - if (item.wrap.printHeight) { - count += item.wrap.printHeight - if (count >= limit) { - _pageover = true - return + + if (_pageover) return + + if (item.$page && comp.dataArray.length > 0) { + item.data = [] + + while (count + 1 <= limit && comp.dataArray.length > 0) { + item.data.push(comp.dataArray.shift()) + count++ } + + if (count >= limit || comp.dataArray.length > 0) { + _pageover = true + } + + if (comp.dataArray.length === 0) { + comp.added = true + } + + setData(item) + page.push(item) + } else if (!comp.added) { + if (item.wrap.printHeight) { + count += item.wrap.printHeight + if (count >= limit) { + _pageover = true + return + } + } + + item.data = item.dataArray || null + + setData(item) + page.push(item) + comp.added = true } - - item.data = item.dataArray || null - - setData(item) - page.push(item) - comp.added = true + }) + + pages.push(page) + pageIndex++ + + if (pageIndex >= 2000 || comps.findIndex(comp => !comp.added) === -1) { + over = true } - }) - - pages.push(page) - pageIndex++ - - if (pageIndex >= 2000 || comps.findIndex(comp => !comp.added) === -1) { - over = true } } @@ -1091,6 +1156,14 @@ reloadTabs = () => { if (this.reloading) return + let time = new Date().getTime() + + let oldTime = sessionStorage.getItem('mk_reloadTabs') + + if (oldTime && time - oldTime < 180000) return + + sessionStorage.setItem('mk_reloadTabs', time) + this.reloading = true Api.getAppVersion(true).then(() => { -- Gitblit v1.8.0