From c8804ceb1fe2dea76f9949c5ea04423876ee2c81 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 28 六月 2024 14:02:47 +0800 Subject: [PATCH] 2024-06-28 --- src/tabviews/zshare/actionList/funcbutton/index.jsx | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 215 insertions(+), 20 deletions(-) diff --git a/src/tabviews/zshare/actionList/funcbutton/index.jsx b/src/tabviews/zshare/actionList/funcbutton/index.jsx index cf887d2..995c55d 100644 --- a/src/tabviews/zshare/actionList/funcbutton/index.jsx +++ b/src/tabviews/zshare/actionList/funcbutton/index.jsx @@ -2,9 +2,11 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Button, notification, message, Modal } from 'antd' +import moment from 'moment' import md5 from 'md5' import Api from '@/api' +import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' import MkIcon from '@/components/mk-icon' @@ -23,6 +25,7 @@ loading: false, disabled: false, hidden: false, + dict: window.GLOB.dict } UNSAFE_componentWillMount () { @@ -102,7 +105,7 @@ */ actionTrigger = (triggerId, record, type, lid) => { const { btn, BID, selectedData, LID } = this.props - const { loading } = this.state + const { loading, dict } = this.state if (loading) return if (triggerId && btn.uuid !== triggerId) return @@ -112,14 +115,14 @@ let error = '' if (btn.funcType === 'shareLink' && window.GLOB.systemType === 'production' && !btn.shareProUrl) { - error = '灏氭湭璁剧疆姝e紡绯荤粺閾炬帴鍦板潃锛�' + error = dict['no_prod_link'] || '灏氭湭璁剧疆姝e紡绯荤粺閾炬帴鍦板潃锛�' } else if (btn.funcType === 'refund') { if (data.length === 0) { - error = '璇烽�夋嫨琛岋紒' + error = dict['select_row'] || '璇烽�夋嫨琛岋紒' } else if (data.length !== 1) { - error = '璇烽�夋嫨鍗曡鏁版嵁锛�' + error = dict['select_single_row'] || '璇烽�夋嫨鍗曡鏁版嵁锛�' } else if (!data[0].$$uuid) { - error = '鏈幏鍙栧埌璁㈠崟缂栧彿锛�' + error = dict['no_ordercode'] || '鏈幏鍙栧埌璁㈠崟缂栧彿锛�' } } @@ -160,23 +163,211 @@ const that = this confirm({ - title: btn.tipTitle || '纭畾瑕佹墽琛屽悧?', + title: btn.tipTitle || dict['exec_sure'] || '纭畾瑕佹墽琛屽悧?', + okText: dict['ok'] || '纭畾', + cancelText: dict['cancel'] || '鍙栨秷', onOk() { - that.execRefund(orderId) + that.execRefund(orderId, data[0]) }, onCancel() {} }) } } - execRefund = (orderId) => { - Api.setRefund(orderId).then(res => { - if (!res.status) { - this.execError({ErrCode: 'E', message: '鎵ц澶辫触锛�', ...res}) - } else { - this.execSuccess({ErrCode: 'S', ...res}) + execRefund = (orderId, data) => { + const { btn, BID } = this.props + + let param = null + if (btn.payMode === 'inner') { + param = { + func: btn.innerFunc || '', + BID: BID || '', + username: sessionStorage.getItem('User_Name') || '', + fullname: sessionStorage.getItem('Full_Name') || '', + dataM: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', + ID: orderId } + } else if (btn.payMode === 'system') { + let sql = this.getSysDeclareSql(orderId, data) + + param = { + func: 'sPC_TableData_InUpDe', + BID: BID || '', + exec_type: window.GLOB.execType || 'y', + timestamp: moment().format('YYYY-MM-DD HH:mm:ss') + } + + param.secretkey = Utils.encrypt('', param.timestamp) + param.LText = Utils.formatOptions(sql, param.exec_type) + + if (btn.output) { + param.key_back_type = 'Y' + } + + if (window.GLOB.mkHS) { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 + param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) + } + + param.menuname = btn.logLabel + + if (window.GLOB.probation) { + param.s_debug_type = 'Y' + } + } + + let appId = window.GLOB.WXAppID || window.GLOB.WXminiAppID || '' + + if (btn.wxApp && window.GLOB.WXApps && window.GLOB.WXApps.findIndex(item => item.appId === btn.wxApp) > -1) { + appId = btn.wxApp + } + + if (!appId) { + notification.warning({ + top: 10, + message: '鏈幏鍙栧埌搴旂敤ID锛�', + duration: 5 + }) + return + } + + this.setState({loading: true}) + + if (param) { + Api.genericInterface(param).then(res => { + if (res.status) { + let id = orderId + if (btn.output) { + id = res.mk_b_id || res[btn.output] || orderId + } + + Api.setRefund({out_biz_no: id, app_id: appId}).then(res => { + if (!res.status) { + this.execError({ErrCode: 'E', message: res.message || window.GLOB.dict['exc_fail'] || '鎵ц澶辫触锛�', ...res}) + } else { + this.execSuccess({ErrCode: 'S', ...res}) + } + }) + } else { + this.execError(res) + } + }) + } else { + Api.setRefund({out_biz_no: orderId, app_id: appId}).then(res => { + if (!res.status) { + this.execError({ErrCode: 'E', message: res.message || window.GLOB.dict['exc_fail'] || '鎵ц澶辫触锛�', ...res}) + } else { + this.execSuccess({ErrCode: 'S', ...res}) + } + }) + } + } + + getSysDeclareSql = (ID, data) => { + const { columns, btn, BID } = this.props + + // 绯荤粺鍙橀噺 + let _vars = ['tbid', 'errorcode', 'retmsg', 'username', 'fullname', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'bid'] + let _declare = [] + let _initVal = [] + + let _data = {} + Object.keys(data).forEach(key => { + _data[key.toLowerCase()] = data[key] }) + + columns.forEach(col => { + let _key = col.field.toLowerCase() + + if (_vars.includes(_key)) return + + _declare.push(`@${_key} ${col.datatype}`) + + let _val = _data.hasOwnProperty(_key) ? _data[_key] : '' + + if (/^date/ig.test(col.datatype) && !_val) { + _val = '1949-10-01' + } + + if (/'/.test(_val)) { + _val = _val.replace(/'/ig, '"') + } + + _initVal.push(`@${_key}='${_val}'`) + }) + + // 鍙橀噺澹版槑 + _declare = _declare.join(',') + if (_declare) { + _declare = ',' + _declare + } + + let _sql = `/* 绯荤粺鐢熸垚 */ + Declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@bid nvarchar(50),@tbid nvarchar(50)${_declare} + ` + + let userName = sessionStorage.getItem('User_Name') || '' + let fullName = sessionStorage.getItem('Full_Name') || '' + let RoleID = sessionStorage.getItem('role_id') || '' + let departmentcode = sessionStorage.getItem('departmentcode') || '' + let organization = sessionStorage.getItem('organization') || '' + let mk_user_type = sessionStorage.getItem('mk_user_type') || '' + let nation = sessionStorage.getItem('nation') || '' + let province = sessionStorage.getItem('province') || '' + let city = sessionStorage.getItem('city') || '' + let district = sessionStorage.getItem('district') || '' + let address = sessionStorage.getItem('address') || '' + + // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁 + _sql += ` + /* 鐢ㄦ埛淇℃伅鍒濆鍖栬祴鍊� */ + select @ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @bid='${BID}' + ` + _sql += ` + /* 鏄剧ず鍒楀彉閲忚祴鍊� */ + select ${_initVal.join(',')} + ` + + btn.verify.scripts.forEach(item => { + if (item.status === 'false') return + + _sql += ` + ${item.sql} + ` + }) + + if (btn.output) { + _sql += ` + aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,${btn.output} as mk_b_id` + } else { + _sql += ` + aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` + } + + _sql = _sql.replace(/@ID@/ig, `'${ID || ''}'`) + _sql = _sql.replace(/@BID@/ig, `'${BID || ''}'`) + _sql = _sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`) + _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 (window.GLOB.externalDatabase !== null) { + _sql = _sql.replace(/@db@/ig, window.GLOB.externalDatabase) + } + + if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 + _sql = _sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`) + } else { + _sql = _sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`) + } + + if (window.GLOB.debugger === true) { + console.info('%c' + btn.logLabel, 'color: blue') + console.info(_sql) + } + + return _sql } getShortUrl = (url) => { @@ -243,22 +434,24 @@ title: btn.shareTip }) } else { - message.success('宸插鍒跺埌鍓垏鏉裤��') + message.success(window.GLOB.dict['copied'] || '宸插鍒跺埌鍓垏鏉裤��') } } execSuccess = (res = {}) => { const { btn } = this.props + const { dict } = this.state if (res.ErrCode === 'S' || !res.ErrCode) { // 鎵ц鎴愬姛 notification.success({ top: 92, - message: res.message || '鎵ц鎴愬姛锛�', + message: res.message || dict['exc_success'] || '鎵ц鎴愬姛锛�', duration: btn.verify && btn.verify.stime ? btn.verify.stime : 2 }) } else if (res.ErrCode === 'Y') { // 鎵ц鎴愬姛 Modal.success({ - title: res.message || '鎵ц鎴愬姛锛�' + title: res.message || dict['exc_success'] || '鎵ц鎴愬姛锛�', + okText: dict['got_it'] || '鐭ラ亾浜�' }) } else if (res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず @@ -275,6 +468,7 @@ execError = (res) => { const { btn } = this.props + const { dict } = this.state if (!['LoginError', 'C', '-2', 'E', 'N', 'F', 'NM'].includes(res.ErrCode)) { res.ErrCode = 'E' @@ -282,23 +476,24 @@ if (res.ErrCode === 'E') { Modal.error({ - title: res.message || '鎵ц澶辫触锛�', + title: res.message || dict['exc_fail'] || '鎵ц澶辫触锛�', + okText: dict['got_it'] || '鐭ラ亾浜�' }) } else if (res.ErrCode === 'N') { notification.error({ top: 92, - message: res.message || '鎵ц澶辫触锛�', + message: res.message || dict['exc_fail'] || '鎵ц澶辫触锛�', duration: btn.verify && btn.verify.ntime ? btn.verify.ntime : 10 }) } else if (res.ErrCode === 'F') { notification.error({ className: 'notification-custom-error', top: 92, - message: res.message || '鎵ц澶辫触锛�', + message: res.message || dict['exc_fail'] || '鎵ц澶辫触锛�', duration: btn.verify && btn.verify.ftime ? btn.verify.ftime : 10 }) } else if (res.ErrCode === 'NM') { - message.error(res.message || '鎵ц澶辫触锛�') + message.error(res.message || dict['exc_fail'] || '鎵ц澶辫触锛�') } this.setState({ -- Gitblit v1.8.0