From 2404d8a1bed5509432652f11aba6a1efa04aa160 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 18 九月 2020 19:24:26 +0800 Subject: [PATCH] 2020-09-18 --- src/tabviews/subtable/index.jsx | 135 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 106 insertions(+), 29 deletions(-) diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx index 982e15b..5f57a90 100644 --- a/src/tabviews/subtable/index.jsx +++ b/src/tabviews/subtable/index.jsx @@ -64,7 +64,9 @@ search: [], // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞� pickup: false, // 瀛愯〃鏁版嵁闅愯棌鏄剧ず鍒囨崲 triggerBtn: null, // 鎸夐挳瑙﹀彂 - chartId: '' // 灞曞紑鍥捐〃ID + chartId: '', // 灞曞紑鍥捐〃ID + statFields: [], // 鍚堣瀛楁 + statFValue: [] // 鍚堣鍊� } /** @@ -79,6 +81,7 @@ }, () => { if (this.state.setting) { this.loadmaindata(nextProps.BID, 'refresh') + this.getStatFieldsValue(nextProps.BID, 'refresh') } }) } else if (this.state.config && nextProps.refreshtabs && nextProps.refreshtabs.includes(this.props.Tab.uuid)) { @@ -95,6 +98,7 @@ if (this.state.setting) { this.setState({}, () => { this.loadmaindata() + this.getStatFieldsValue() }) } } @@ -145,6 +149,7 @@ let _logcolumns = [] // 鏃ュ織鏄剧ず鍒� let _hideCol = [] // 闅愯棌鍙婂悎骞跺垪涓瓧娈电殑uuid闆� let colMap = new Map() + let statFields = [] // 鍚堣瀛楁淇℃伅 // 鐗堟湰鍏煎 config = UtilsUpdate.updateSubTable(config) @@ -241,6 +246,9 @@ _logcolumns.push(col) col.nameField && _arrField.push(col.nameField) // 閾炬帴鍚嶅瓧娈� + if (col.Hide !== 'true' && col.type === 'number' && col.sum === 'true') { + statFields.push(col) + } } if (col.type === 'colspan' && col.sublist) { // 绛涢�夐殣钘忓垪 _hideCol = _hideCol.concat(col.sublist) @@ -324,40 +332,43 @@ config.setting.execute = config.setting.default !== 'false' // 榛樿sql鏄惁鎵ц锛岃浆涓篵oolean 缁熶竴鏍煎紡 config.setting.customScript = '' // 鑷畾涔夎剼鏈� - if (config.setting.scripts && config.setting.scripts.length > 0) { - let _customScript = '' - config.setting.scripts.forEach(item => { - if (item.status === 'false') return - _customScript += ` - ${item.sql} - ` - }) - config.setting.customScript = _customScript - } - - if (!config.setting.execute) { // 榛樿sql 涓嶆墽琛屾椂 缃┖ - config.setting.dataresource = '' - } else { - config.setting.dataresource = config.setting.dataresource || '' - } - if (/\s/.test(config.setting.dataresource)) { - config.setting.dataresource = '(' + config.setting.dataresource + ') tb' - } - - if (this.props.dataManager) { // 鏁版嵁鏉冮檺 - config.setting.dataresource = config.setting.dataresource.replace(/\$@/ig, '/*') - config.setting.dataresource = config.setting.dataresource.replace(/@\$/ig, '*/') - config.setting.customScript = config.setting.customScript.replace(/\$@/ig, '/*') - config.setting.customScript = config.setting.customScript.replace(/@\$/ig, '*/') - } else { - config.setting.dataresource = config.setting.dataresource.replace(/@\$|\$@/ig, '') - config.setting.customScript = config.setting.customScript.replace(/@\$|\$@/ig, '') + if (config.setting.interType === 'system') { + if (config.setting.scripts && config.setting.scripts.length > 0) { + let _customScript = '' + config.setting.scripts.forEach(item => { + if (item.status === 'false') return + _customScript += ` + ${item.sql} + ` + }) + config.setting.customScript = _customScript + } + + if (!config.setting.execute) { // 榛樿sql 涓嶆墽琛屾椂 缃┖ + config.setting.dataresource = '' + } else { + config.setting.dataresource = config.setting.dataresource || '' + } + if (/\s/.test(config.setting.dataresource)) { + config.setting.dataresource = '(' + config.setting.dataresource + ') tb' + } + + if (this.props.dataManager) { // 鏁版嵁鏉冮檺 + config.setting.dataresource = config.setting.dataresource.replace(/\$@/ig, '/*') + config.setting.dataresource = config.setting.dataresource.replace(/@\$/ig, '*/') + config.setting.customScript = config.setting.customScript.replace(/\$@/ig, '/*') + config.setting.customScript = config.setting.customScript.replace(/@\$/ig, '*/') + } else { + config.setting.dataresource = config.setting.dataresource.replace(/@\$|\$@/ig, '') + config.setting.customScript = config.setting.customScript.replace(/@\$|\$@/ig, '') + } } this.setState({ loadingview: false, chartId: chartId, config: config, + statFields: statFields, setting: config.setting, searchlist: config.search, actions: _actions, @@ -368,6 +379,7 @@ }, () => { if (config.setting.onload !== 'false' && (!Tab.supMenu || BID || Tab.isTreeNode) && valid) { // 鍒濆鍖栧彲鍔犺浇 this.loadmaindata() + this.getStatFieldsValue() } }) } else { @@ -458,6 +470,68 @@ } /** + * @description 鑾峰彇鍚堣瀛楁鍊� + */ + getStatFieldsValue = (bid, type) => { + const { mainSearch } = this.props + const { setting, search, orderBy, statFields } = this.state + + let _BID = this.props.BID + let searches = fromJS(search).toJS() + if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢 + searches = [...mainSearch, ...searches] + } + + if (statFields.length === 0 || setting.interType !== 'system' || !setting.dataresource) return + + let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0)) + if (requireFields.length > 0) { + return + } + + if (type === 'refresh') { + if (!bid) { // 涓昏〃ID涓嶅瓨鍦ㄦ椂锛屼笉鏌ヨ瀛愯〃鍚堣鍊� + this.setState({ + statFValue: [] + }) + return + } else { + _BID = bid + } + } + + let _orderBy = orderBy || setting.order + let param = UtilsDM.getStatQueryDataParams(setting, statFields, searches, _orderBy, _BID, this.props.menuType, this.props.dataManager) + + Api.genericInterface(param).then(res => { + if (res.status) { + let _data = res.data[0] + let values = [] + + if (_data) { + statFields.forEach(item => { + if (_data[item.field] || _data[item.field] === 0) { + values.push({label: item.label, value: _data[item.field]}) + } + }) + } + this.setState({ + statFValue: values + }) + } else { + this.setState({ + statFValue: [] + }) + notification.error({ + top: 92, + message: res.message, + duration: 10 + }) + } + }) + } + + /** * @description 鎼滅储鏉′欢鏀瑰彉鏃讹紝閲嶇疆琛ㄦ牸鏁版嵁 * 鍚湁鍒濆涓嶅姞杞界殑椤甸潰锛屼慨鏀硅缃� */ @@ -469,6 +543,7 @@ selectedData: [], }, () => { this.loadmaindata() + this.getStatFieldsValue() }) } @@ -504,6 +579,7 @@ resetTable: !this.state.resetTable }, () => { this.loadmaindata() + this.getStatFieldsValue() }) } @@ -689,6 +765,7 @@ total={this.state.total} MenuID={this.props.MenuID} loading={this.state.loading} + statFValue={this.state.statFValue} refreshdata={this.refreshbytable} buttonTrigger={this.buttonTrigger} handleTableId={this.handleTableId} -- Gitblit v1.8.0