From dbc911dbb044895f98a49ef69ef5a5800a4aba3e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 15 九月 2024 20:26:39 +0800 Subject: [PATCH] 2024-09-15 --- src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 270 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 240 insertions(+), 30 deletions(-) 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 9529a8e..6e3aeef 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -586,19 +586,34 @@ const { config } = this.props const { value, err } = this.state - return ( - <InputNumber - title={err} - className={err ? 'has-error' : ''} - ref={ref => this.node = ref} - precision={config.decimal || 0} - value={value} - onChange={(value) => this.onChange(value)} - onPressEnter={this.enterPress} - onFocus={this.onFocus} - onBlur={this.onBlur} - /> - ) + if (!config.decimal && config.decimal !== 0) { + return ( + <InputNumber + title={err} + className={err ? 'has-error' : ''} + ref={ref => this.node = ref} + value={value} + onChange={(value) => this.onChange(value)} + onPressEnter={this.enterPress} + onFocus={this.onFocus} + onBlur={this.onBlur} + /> + ) + } else { + return ( + <InputNumber + title={err} + className={err ? 'has-error' : ''} + ref={ref => this.node = ref} + precision={config.decimal} + value={value} + onChange={(value) => this.onChange(value)} + onPressEnter={this.enterPress} + onFocus={this.onFocus} + onBlur={this.onBlur} + /> + ) + } } } @@ -862,6 +877,9 @@ } if (col.format === 'percent') { content = content * 100 + if (!col.round) { + content = +content.toFixed(2) + } } else if (col.format === 'abs') { content = Math.abs(content) } @@ -956,7 +974,7 @@ // eslint-disable-next-line content = eval(content) } catch (e) { - console.info(content) + window.mkInfo(content) console.warn(e) content = '' } @@ -1275,7 +1293,7 @@ // eslint-disable-next-line content = eval(content) } catch (e) { - console.info(content) + window.mkInfo(content) console.warn(e) content = '' } @@ -1470,6 +1488,9 @@ } else { _item.datatype = item.datatype } + if (_item.type === 'number' && item.type === 'number') { + _item.decimal = item.decimal || 0 + } forms.push(_item) } else { @@ -1515,7 +1536,11 @@ deForms: hasBid ? deForms : null }, () => { if (deForms.length > 0 && (!hasBid || BID)) { - this.improveActionForm(deForms, BID) + if (window.backend && window.GLOB.CacheData.has('sql_' + deForms[0].uuid)) { + this.improveBackActionForm(deForms, BID) + } else { + this.improveActionForm(deForms, BID) + } } }) } @@ -1529,7 +1554,11 @@ const { deForms } = this.state if (deForms && nextProps.BID !== BID) { - this.improveActionForm(deForms, nextProps.BID) + if (window.backend && window.GLOB.CacheData.has('sql_' + deForms[0].uuid)) { + this.improveBackActionForm(deForms, nextProps.BID) + } else { + this.improveActionForm(deForms, nextProps.BID) + } } if (parCtrl && !is(fromJS(this.props.columns), fromJS(nextProps.columns))) { let getColumns = (cols, sk) => { @@ -1892,7 +1921,7 @@ sql = sql.replace(/@BID@/ig, `'${BID}'`) if (debug) { - console.info(sql) + window.mkInfo(sql) } sql = sql.replace(/%/ig, ' mpercent ') @@ -1905,7 +1934,7 @@ sql = sql.replace(/@BID@/ig, `'${BID}'`) if (debug) { - console.info(sql) + window.mkInfo(sql) } sql = sql.replace(/%/ig, ' mpercent ') @@ -1987,6 +2016,100 @@ }) ) } + + Promise.all(deffers).then(response => { + let result = {...response[0], ...(response[1] || {})} + + delete result.ErrCode + delete result.ErrMesg + delete result.message + delete result.status + + this.resetFormList(result) + }) + } + + improveBackActionForm = (deForms, BID) => { + let sysvals = { + mk_departmentcode: sessionStorage.getItem('departmentcode') || '', + mk_organization: sessionStorage.getItem('organization') || '', + mk_user_type: sessionStorage.getItem('mk_user_type') || '', + bid: BID || '', + datam: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', + datam_begin: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', + datam_end: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '' + } + if (window.GLOB.externalDatabase !== null) { + sysvals.db = window.GLOB.externalDatabase + } + + let deffers = [] + let mainItems = [] // 浜戠鎴栧崟鐐规暟鎹� + let localItems = [] // 鏈湴鏁版嵁 + + deForms.forEach(item => { + let ex = window.GLOB.CacheData.get('sql_' + item.uuid) + + if (!ex) return + + let exps = [] + ex.reps.forEach(n => { + let key = n.toLowerCase() + if (sysvals.hasOwnProperty(key)) { + exps.push({ + key: n, + value: sysvals[key] + }) + } + }) + + let cell = { + id: ex.id, + menuname: item.label + '锛堣〃鍗曪級', + exps: exps, + md5_id: '' + } + + if (item.database === 'sso' && window.GLOB.mainSystemApi) { + mainItems.push(cell) + } else { + localItems.push(cell) + } + }) + + if (localItems.length) { + deffers.push({ + $backend: true, + $type: 's_Get_SelectedList', + data: localItems + }) + } + + if (mainItems.length) { + deffers.push({ + $backend: true, + $type: 's_Get_SelectedList', + data: mainItems, + rduri: window.GLOB.mainSystemApi + }) + } + + if (!deffers.length) return + + deffers = deffers.map(item => { + return new Promise(resolve => { + Api.getSystemCacheConfig(item, false).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } + resolve(res) + }) + }) + }) Promise.all(deffers).then(response => { let result = {...response[0], ...(response[1] || {})} @@ -2377,22 +2500,32 @@ if (!data) return - let result = getEditTableSql(submit, data, forms) - - let param = { - excel_in: result.lines, - BID: BID || '' - } - this.setState({ loading: true }) - if (submit.intertype === 'system') { // 绯荤粺瀛樺偍杩囩▼ - param.func = 'sPC_TableData_InUpDe' - - delete param.excel_in + if (submit.intertype === 'system' && window.backend && window.GLOB.CacheData.has('sql_submit_' + submit.$menuId)) { + let ex = window.GLOB.CacheData.get('sql_submit_' + submit.$menuId) + let param = this.getExps(ex, submit, data, forms) + Api.genericInterface(param).then((res) => { + if (res.status) { + this.execSuccess(res, record) + } else { + this.execError(res, record) + } + }, (error) => { + if (error && error.ErrCode === 'LoginError') return + + this.execError({}) + }) + } else if (submit.intertype === 'system') { // 绯荤粺瀛樺偍杩囩▼ + let result = getEditTableSql(submit, data, forms) + let param = {} + + param.func = 'sPC_TableData_InUpDe' + param.BID = BID || '' + param.exec_type = window.GLOB.execType || 'y' param.LText = Utils.formatOptions(result.sql, param.exec_type) param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -2416,7 +2549,12 @@ this.execError({}) }) } else if (submit.intertype === 'inner' && submit.innerFunc) { // 鑷畾涔夊瓨鍌ㄨ繃绋� + let result = getEditTableSql(submit, data, forms) + let param = {} + param.func = submit.innerFunc + param.BID = BID || '' + param.excel_in = result.lines if (submit.recordUser === 'true') { param.username = sessionStorage.getItem('User_Name') || '' @@ -2437,6 +2575,78 @@ } } + getExps = (ex, btn, data, forms) => { + const { BID } = this.props + + let exps = [] + let values = { + time_id: Utils.getguid(), + roleid: sessionStorage.getItem('role_id') || '', + mk_departmentcode: sessionStorage.getItem('departmentcode') || '', + mk_organization: sessionStorage.getItem('organization') || '', + mk_user_type: sessionStorage.getItem('mk_user_type') || '', + mk_nation: sessionStorage.getItem('nation') || '', + mk_province: sessionStorage.getItem('province') || '', + mk_city: sessionStorage.getItem('city') || '', + mk_district: sessionStorage.getItem('district') || '', + mk_address: sessionStorage.getItem('address') || '', + bid: BID || '', + typename: 'admin', + datam: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', + datam_begin: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', + datam_end: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', + } + + if (window.GLOB.externalDatabase !== null) { + values.db = window.GLOB.externalDatabase + } + + let lines = data.map(item => { + let vals = [] + forms.forEach(col => { + vals.push(item[col.field]) + }) + + vals.push(item.$$uuid) + vals.push(item.$type || 'upt') + vals.push(BID) + + return vals + }) + + ex.reps.forEach(n => { + let key = n.toLowerCase() + if (values.hasOwnProperty(key)) { + exps.push({ + key: n, + value: values[key] + }) + } + }) + + exps.push({ + key: 'mk_excel_data', + value: lines + }) + + let md5_id = '' + if (window.GLOB.probation) { + md5_id = md5(ex.id + JSON.stringify(exps) + Math.floor(new Date().getTime() / 600000)) + md5_id = moment().format('YYYYMMDDHHmmss') + md5_id.slice(-18) + } + + return { + $backend: true, + $type: 's_TableData_InUpDe', + data: [{ + id: ex.id, + menuname: btn.logLabel || '', + exps: exps, + md5_id: md5_id + }] + } + } + execSuccess = (res, record) => { const { submit } = this.props const { edData, dict } = this.state -- Gitblit v1.8.0