From 86aab033b5129b00651b716ee70ce871cf670008 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 31 三月 2020 20:12:30 +0800 Subject: [PATCH] 2020-03-31 --- src/templates/zshare/createinterface/index.jsx | 856 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 809 insertions(+), 47 deletions(-) diff --git a/src/templates/zshare/createinterface/index.jsx b/src/templates/zshare/createinterface/index.jsx index aab31f6..5d0e55b 100644 --- a/src/templates/zshare/createinterface/index.jsx +++ b/src/templates/zshare/createinterface/index.jsx @@ -1,8 +1,9 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Button, notification } from 'antd' +import { Button, notification, Modal } from 'antd' import moment from 'moment' +import MutilForm from './mutilform' import Utils from '@/utils/utils.js' import Api from '@/api' import './index.scss' @@ -14,40 +15,23 @@ } state = { + type: '', + param: null, loading: false, + visible: false, + config: null, + btn: null } - exec = (menu, config) => { - let _grid = [] - let _fields = [] - let _index = 1 - - config.columns.forEach(item => { - if (!item.field || item.type === 'colspan') return - - let _type = `nvarchar(${item.fieldlength || 50})` - - if (item.type === 'number') { - _type = `decimal(18,${item.decimal ? item.decimal : 0})` - } else if (item.type === 'picture' || item.type === 'textarea') { - _type = `nvarchar(${item.fieldlength || 512})` - } - - _grid.push(item.field) - _fields.push(`select '${item.field}' as gridfield,'${_type}' as fieldtype,'${item.label}' as label,'${_index}' as Sort`) - _index++ - }) - + triggerOutInterface = (menu, config) => { let _search = [] - _index = 1 + let _index = 1 if (menu.type !== 'main') { if (config.setting.dataresource && /@BID@/ig.test(config.setting.dataresource)) { _search.push(`select 'BID' as searchfield,'BID' as label,'0' as Sort,'' as defaultvalue,'required' as DefaultType`) - _index++ } else { _search.push(`select 'BID' as searchfield,'BID' as label,'0' as Sort,'' as defaultvalue,'' as DefaultType`) - _index++ } } @@ -125,10 +109,9 @@ Menuid: menu.MenuID, Menuname: menu.menuName, Menuno: menu.menuNo, - Ltextgridparam: _fields.join(' union all '), + PageType: 'Y', Ltextsearchparam: _search.join(' union all '), AppendWhere: config.setting.queryType === 'query' ? searchText.join(' AND ') : '', - Ltextgrid: _grid.join(','), WhereType: config.setting.queryType === 'statistics' ? 'Statistics' : 'query', OrderCol: config.setting.order } @@ -136,20 +119,116 @@ param.Ltextsearchparam = Utils.formatOptions(param.Ltextsearchparam) param.AppendWhere = Utils.formatOptions(param.AppendWhere) + this.setState({ + type: 'out', + param: param, + config: config, + visible: true, + formlist: [{ + type: 'text', + key: 'Menuname', + label: '鎺ュ彛鍚嶇О', + initval: menu.menuName, + required: true + }, { + type: 'text', + key: 'Menuno', + label: '鎺ュ彛鍑芥暟', + initval: menu.menuNo, + required: true + }, { + type: 'radio', + key: 'PageType', + label: '鏄惁鍒嗛〉', + initval: 'Y', + required: true, + options: [{ + value: 'Y', + text: this.props.dict['header.form.true'] + }, { + value: 'N', + text: this.props.dict['header.form.false'] + }] + }, { + type: 'radio', + key: 'hidden', + label: '杩斿洖闅愯棌瀛楁', + initval: 'N', + required: true, + options: [{ + value: 'Y', + text: this.props.dict['header.form.true'] + }, { + value: 'N', + text: this.props.dict['header.form.false'] + }] + }] + }) + } + + confirmInterface = () => { + const { type, param, btn, config } = this.state + + if (type === 'out') { + this.FormRef.handleConfirm().then(res => { + + this.setState({ + type: '', + loading: true, + visible: false, + config: null, + param: null + }) + + this.createExecOutInterface({...param, ...res}, config) + }) + } else { + this.FormRef.handleConfirm().then(res => { + + this.setState({ + type: '', + btn: null, + config: null, + loading: true, + visible: false, + param: null + }) + + this.createBtnInterfaceExec({...param, ...res}, config, btn) + }) + } + } + + createExecOutInterface = (param, config) => { + let _grid = [] + let _fields = [] + let _index = 1 + + config.columns.forEach(item => { + if (!item.field || item.type === 'colspan') return + if (param.hidden !== 'Y' && item.Hide === 'true') return + + let _type = `nvarchar(${item.fieldlength || 50})` + + if (item.type === 'number') { + _type = `decimal(18,${item.decimal ? item.decimal : 0})` + } else if (item.type === 'picture' || item.type === 'textarea') { + _type = `nvarchar(${item.fieldlength || 512})` + } + + _grid.push(item.field) + _fields.push(`select '${item.field}' as gridfield,'${_type}' as fieldtype,'${item.label}' as label,'${_index}' as Sort`) + _index++ + }) + + param.Ltextgrid = _grid.join(',') + param.Ltextgridparam = _fields.join(' union all ') param.Ltextgridparam = Utils.formatOptions(param.Ltextgridparam) param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' param.secretkey = Utils.encrypt(param.Ltextgridparam, param.timestamp) - this.setState({ - loading: true - }) + delete param.hidden - return new Promise(resolve => { - this.createExec(resolve, param) - }) - } - - createExec = (_resolve, param) => { let _mainParam = JSON.parse(JSON.stringify(param)) new Promise(resolve => { @@ -190,15 +269,12 @@ } }).then(res => { // 缁撴灉澶勭悊 - if (res === false) { - _resolve('error') - } else { + if (res !== false) { notification.success({ top: 92, message: '鍒涘缓鎴愬姛', duration: 2 }) - _resolve('success') } this.setState({ @@ -207,16 +283,702 @@ }) } + triggerInInterface = (btn, config, menu) => { + let param = { + func: 's_get_para_for_in', + Menuid: btn.uuid, + KunName: menu.menuName + '-' + btn.label, + KunNo: menu.menuNo + '_' + btn.sqlType, + Ltextgridparam: '', + Ltexttableparam: '', + Ltext: '', + menuType: menu.type + } + + this.setState({ + type: 'inner', + param: param, + visible: true, + btn: JSON.parse(JSON.stringify(btn)), + config: JSON.parse(JSON.stringify(config)), + formlist: [{ + type: 'text', + key: 'KunName', + label: '鎺ュ彛鍚嶇О', + initval: param.KunName, + required: true + }, { + type: 'text', + key: 'KunNo', + label: '鎺ュ彛鍑芥暟', + initval: param.KunNo, + required: true + }, { + type: 'radio', + key: 'TryType', + label: '浜嬪姟', + initval: 'N', + required: true, + options: [{ + value: 'Y', + text: '闇�瑕�' + }, { + value: 'N', + text: '涓嶉渶瑕�' + }] + }, { + type: 'radio', + key: 'Return', + label: '鍥炴墽', + initval: 'N', + required: true, + options: [{ + value: 'Y', + text: '闇�瑕�' + }, { + value: 'N', + text: '涓嶉渶瑕�' + }] + }] + }) + } + + createBtnInterfaceExec = (param, config, btn) => { + let formlist = [] + let receipt = param.Return === 'Y' + let _mainParam = null + + delete param.Return + + new Promise(resolve => { + if (btn.OpenType === 'pop') { + Api.getSystemConfig({ + func: 'sPC_Get_LongParam', + MenuID: btn.uuid + }).then(result => { + if (result.status && result.LongParam) { + let _LongParam = '' + + // 瑙f瀽閰嶇疆锛屼慨鏀规ā鎬佹鏍囬鍚嶇О + if (result.LongParam) { + try { + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) + } catch (e) { + console.warn('Parse Failure') + _LongParam = '' + } + } + let fields = [] + + if (_LongParam && _LongParam.type === 'Modal') { + if (_LongParam.groups.length > 0) { + _LongParam.groups.forEach(group => { + fields = [...fields, ...group.sublist] + }) + } else { + fields = _LongParam.fields + } + } + + if (fields && fields.length > 0) { + formlist = fields.map(cell => { + let _fieldlen = cell.fieldlength || 50 + + if (cell.type === 'textarea' || cell.type === 'fileupload' || cell.type === 'multiselect') { + _fieldlen = cell.fieldlength || 512 + } else if (cell.type === 'number') { + _fieldlen = cell.decimal ? cell.decimal : 0 + } + + let _field = { + type: cell.type, + label: cell.label, + readonly: cell.readonly, + readin: cell.readin !== 'false', + fieldlen: _fieldlen, + key: cell.field, + required: cell.required === 'true' ? 'required' : '', + value: cell.initval || '' + } + + let _fieldtype = `nvarchar(${_fieldlen})` + + if (_field.type.match(/date/ig)) { + _fieldtype = 'datetime' + } else if (_field.type === 'number') { + _fieldtype = `decimal(18,${_fieldlen})` + } + + _field.fieldtype = _fieldtype + + if (cell.type === 'funcvar') { + _field.readin = false + _field.value = '' + } + + return _field + }) + } + resolve(true) + } else if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 10 + }) + resolve(false) + } else { + notification.warning({ + top: 92, + message: '璇峰畬鍠勮〃鍗曚俊鎭紒', + duration: 10 + }) + resolve(false) + } + }) + } + }).then(res => { + if (res === false) return res + + let _keys = [] + param.Ltexttableparam = formlist.map((item, index) => { + _keys.push(item.key.toLowerCase()) + + return `select '${item.key}' as searchfield,'${item.label}' as label,'${index + 2}' as Sort, '${item.fieldtype}' as fieldtype,'${item.required}' as requiredtype,'${item.value}' as defaultvalue` + }) + + if (param.menuType !== 'main' && !_keys.includes('bid')) { + param.Ltexttableparam.unshift(`select 'BID' as searchfield,'BID' as label,'0' as Sort,'nvarchar(50)' as fieldtype,'required' as requiredtype,'' as defaultvalue`) + } + + param.Ltexttableparam = param.Ltexttableparam.join(' union all ') + + if (receipt) { + let _keys = [] + + param.Ltextgridparam = formlist.map((item, index) => { + _keys.push(item.key.toLowerCase()) + + return `select '${item.key}' as gridfield, '${item.fieldtype}' as fieldtype,'${item.label}' as label,'${index + 2}' as Sort` + }) + + if (param.menuType !== 'main' && !_keys.includes('bid')) { + _keys.push('bid') + param.Ltextgridparam.unshift(`select 'BID' as gridfield,'nvarchar(50)' as fieldtype,'BID' as label,'0' as Sort`) + } + + if (!_keys.includes(config.setting.primaryKey.toLowerCase())) { + _keys.push(config.setting.primaryKey.toLowerCase()) + param.Ltextgridparam.unshift(`select '${config.setting.primaryKey}' as gridfield,'nvarchar(50)' as fieldtype,'${config.setting.primaryKey}' as label,'1' as Sort`) + } + + if (btn.verify && btn.verify.voucher && btn.verify.voucher.enabled && btn.Ot !== 'notRequired') { + if (!_keys.includes('bvoucher')) { + param.Ltextgridparam.unshift(`select 'bvoucher' as gridfield,'nvarchar(50)' as fieldtype,'bvoucher' as label,'30' as Sort`) + } + if (!_keys.includes('fibvoucherdate')) { + param.Ltextgridparam.unshift(`select 'fibvoucherdate' as gridfield,'nvarchar(50)' as fieldtype,'fibvoucherdate' as label,'31' as Sort`) + } + if (!_keys.includes('fiyear')) { + param.Ltextgridparam.unshift(`select 'fiyear' as gridfield,'nvarchar(50)' as fieldtype,'fiyear' as label,'32' as Sort`) + } + } + + param.Ltextgridparam = param.Ltextgridparam.join(' union all ') + } + + let BID = param.menuType !== 'main' ? '@BID@' : '' + + param.Ltextgridparam = Utils.formatOptions(param.Ltextgridparam) + param.Ltexttableparam = Utils.formatOptions(param.Ltexttableparam) + + param.Ltext = this.getSysDefaultSql(btn, config, formlist, receipt, BID) + param.Ltext = Utils.formatOptions(param.Ltext) + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + param.secretkey = Utils.encrypt(param.Ltext, param.timestamp) + + delete param.menuType + + _mainParam = JSON.parse(JSON.stringify(param)) + + return Api.getLocalConfig(param) + }).then(res => { + if (res === false) return res + + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 10 + }) + return false + } else { + return true + } + }).then(res => { + if (res === false) return res + + if (window.GLOB.mainSystemApi) { + _mainParam.rduri = window.GLOB.mainSystemApi + + return Api.getLocalConfig(_mainParam) + } + return 'success' + }).then(res => { + if (res === false || res === 'success') return res + + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 10 + }) + return false + } else { + return 'success' + } + }).then(res => { + + if (res === 'success') { + notification.success({ + top: 92, + message: '鍒涘缓鎴愬姛', + duration: 2 + }) + } + this.setState({ + loading: false + }) + }) + } + + getSysDefaultSql = (btn, config, formlist, receipt, BID) => { + let setting = config.setting + let primaryKey = setting.primaryKey || 'id' + let columns = config.columns.filter(col => !!col.field) + let verify = btn.verify || {} + // 闇�瑕佸0鏄庣殑鍙橀噺闆� + let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode'] + + // 绯荤粺鍙橀噺澹版槑涓庤缃垵濮嬪�� + let _sql = `Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@ModularDetailCode nvarchar(50) + ` + + let _initvars = [] // 宸茶祴鍊煎瓧娈甸泦 + let _initfields = [] + let _initcolumnfields = [] + let _declarefields = [] + + // 鑾峰彇瀛楁閿�煎 + formlist.forEach(form => { + let _key = form.key.toLowerCase() + + if (!_initvars.includes(_key)) { + _initvars.push(_key) + + _initfields.push(`@${_key}=@${_key}@`) + } + + if (!_vars.includes(_key)) { + _vars.push(_key) + + let _type = `nvarchar(${form.fieldlen})` + + if (form.type.match(/date/ig)) { + _type = 'datetime' + } else if (form.type === 'number') { + _type = `decimal(18,${form.fieldlen})` + } + + _declarefields.push(`@${_key} ${_type}`) + } + }) + + // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鏃惰烦杩�) + if (btn.Ot !== 'notRequired') { + columns.forEach(col => { + let _key = col.field.toLowerCase() + + if (!_initvars.includes(_key)) { + _initvars.push(_key) + + _initcolumnfields.push(`@${_key}=${_key}`) + } + + if (!_vars.includes(_key)) { + _vars.push(_key) + + let _type = `nvarchar(${col.fieldlength || 50})` + + if (col.type === 'number') { + let _length = col.decimal ? col.decimal : 0 + _type = `decimal(18,${_length})` + } else if (col.type === 'picture' || col.type === 'textarea') { + _type = `nvarchar(${col.fieldlength || 512})` + } + + _declarefields.push(`@${_key} ${_type}`) + } + }) + } + + // 鍙橀噺澹版槑 + _declarefields = _declarefields.join(',') + if (_declarefields) { + _sql += `,${_declarefields} + ` + } + + // 鍙橀噺璧嬪�� + if (_initfields.length > 0) { + _sql += `select ${_initfields.join(',')} + ` + } + + if (_initcolumnfields.length > 0) { + _sql += `select ${_initcolumnfields.join(',')} from ${setting.dataresource} where ${primaryKey}=@ID@ + ` + } + + // 鍘婚櫎绂佺敤鐨勯獙璇� + if (verify.contrasts) { + verify.contrasts = verify.contrasts.filter(item => item.status !== 'false') + } + if (verify.uniques) { + verify.uniques = verify.uniques.filter(item => item.status !== 'false') + } + if (verify.customverifys) { + verify.customverifys = verify.customverifys.filter(item => item.status !== 'false') + } + if (verify.billcodes) { + verify.billcodes = verify.billcodes.filter(item => item.status !== 'false') + } + if (verify.scripts) { + verify.scripts = verify.scripts.filter(item => item.status !== 'false') + } + + // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁 + _sql += `select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='' + ` + + // 鍚敤璐︽湡楠岃瘉 + if (verify.accountdate === 'true') { + _sql += `exec s_FIBVoucherDateCheck @ErrorCode=@ErrorCode OUTPUT,@retmsg=@retmsg OUTPUT + if @ErrorCode!='' + GOTO aaa + ` + } + + // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤 + if (btn.sqlType !== 'insert' && verify.invalid === 'true') { + let datasource = setting.dataresource + if (/\s/.test(datasource)) { // 鎷兼帴鍒悕 + datasource = '(' + datasource + ') tb' + } + + _sql += `select @tbid='', @ErrorCode='',@retmsg='' + select @tbid=${primaryKey} from ${datasource} where ${primaryKey} =@${primaryKey}@ + If @tbid='' + Begin + select @ErrorCode='E',@retmsg='鏁版嵁宸插け鏁�' + goto aaa + end + ` + } + + // 姣旇緝楠岃瘉 + if (verify.contrasts && verify.contrasts.length > 0) { + verify.contrasts.forEach(item => { + _sql += `If ${item.frontfield} ${item.operator} ${item.backfield} + Begin + select @ErrorCode='${item.errorCode}',@retmsg='${item.errmsg}' + goto aaa + end + ` + }) + } + + // 鍞竴鎬ч獙璇侊紝蹇呴』瀛樺湪琛ㄥ崟锛堣〃鍗曞瓨鍦ㄦ椂锛屼富閿潎涓哄崟鍊硷級,蹇呴』濉啓鏁版嵁婧� + if (formlist.length > 0 && verify.uniques && verify.uniques.length > 0) { + verify.uniques.forEach(item => { + let _fieldValue = [] // 琛ㄥ崟閿�煎field=value + let _value = [] // 琛ㄥ崟鍊硷紝鐢ㄤ簬閿欒鎻愮ず + let _labels = item.fieldlabel.split(',') // 琛ㄥ崟鎻愮ず鏂囧瓧 + + item.field.split(',').forEach((_field, index) => { + _fieldValue.push(`${_field}=@${_field}@`) + _value.push(`${_labels[index] || ''}锛�'+@${_field}@+'`) + }) + + let _verifyType = '' + if (item.verifyType === 'logic') { + _verifyType = ' and deleted=0' + } + + _sql += `select @tbid='', @ErrorCode='',@retmsg='' + select @tbid='X' from ${btn.sql} where ${_fieldValue.join(' and ')} and ${primaryKey} !=@${primaryKey}@${_verifyType} + If @tbid!='' + Begin + select @ErrorCode='${item.errorCode}',@retmsg='${_value.join(', ')} 宸插瓨鍦�' + goto aaa + end + ` + }) + } + + // 鑷畾涔夐獙璇� + if (verify.customverifys && verify.customverifys.length > 0) { + verify.customverifys.forEach(item => { + _sql += `select @tbid='', @ErrorCode='',@retmsg='' + select top 1 @tbid='X' from (${item.sql}) a + If @tbid ${item.result === 'true' ? '!=' : '='}'' + Begin + select @ErrorCode='${item.errorCode}',@retmsg='${item.errmsg}' + goto aaa + end + ` + }) + } + + // 鍗曞彿鐢熸垚锛屼娇鐢ㄤ笂绾d锛圔ID锛夋垨鍒楄〃鏁版嵁锛屽0鏄庡彉閲忥紙妫�楠岋級 + if (verify.billcodes && verify.billcodes.length > 0) { + verify.billcodes.forEach(item => { + let _ModularDetailCode = '' + let _lpline = '' + if (item.TypeCharOne === 'Lp') { + if (item.linkField === 'BID' && BID) { // 鏇挎崲bid + _lpline = `set @ModularDetailCode= 'Lp'+ right('${btn.uuid}'+@BID@,48)` + } else { + _lpline = `set @ModularDetailCode= 'Lp'+ right('${btn.uuid}'+@${item.linkField}@,48)` + } + _ModularDetailCode = '@ModularDetailCode' + } else if (item.TypeCharOne === 'BN') { + + _ModularDetailCode = `'${item.TypeCharOne + '@' + item.linkField}@'` + } else { + _ModularDetailCode = `'${item.ModularDetailCode}'` + } + + let _declare = '' + let _key = item.field.toLowerCase() + + if (!_vars.includes(_key)) { + _declare = `Declare @${_key} nvarchar(50)` + _vars.push(_key) + } + + _sql += `${_declare} + select @BillCode='', @${_key}='', @ModularDetailCode='' + ${_lpline} + exec s_get_BillCode + @ModularDetailCode=${_ModularDetailCode}, + @Type=${item.Type}, + @TypeCharOne='${item.TypeCharOne}', + @TypeCharTwo ='${item.TypeCharTwo}', + @BillCode =@BillCode output, + @ErrorCode =@ErrorCode output, + @retmsg=@retmsg output + if @ErrorCode!='' + goto aaa + set @${_key}=@BillCode + ` + }) + } + + let hasvoucher = false + + // 鍑瘉-鏄剧ず鍒椾腑閫夊彇,蹇呴』閫夎 + if (verify.voucher && verify.voucher.enabled && btn.Ot !== 'notRequired') { + let _voucher = verify.voucher + + hasvoucher = true + + _sql += `exec s_BVoucher_Create + @Bill =@${_voucher.linkField}@', + @BVoucherType ='${_voucher.BVoucherType}', + @VoucherTypeOne ='${_voucher.VoucherTypeOne}', + @VoucherTypeTwo ='${_voucher.VoucherTypeTwo}', + @Type =${_voucher.Type}, + @BVoucher =@BVoucher OUTPUT , + @FIBVoucherDate =@FIBVoucherDate OUTPUT , + @FiYear =@FiYear OUTPUT , + @ErrorCode =@ErrorCode OUTPUT, + @retmsg=@retmsg OUTPUT + if @ErrorCode!='' + GOTO aaa + ` + } + + let _actionType = null + let receiptKeys = [] // 鍥炴墽瀛楁 + + if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql + _actionType = btn.sqlType + } + + formlist.forEach(item => { + receiptKeys.push(item.key.toLowerCase()) + }) + + if (!receiptKeys.includes(primaryKey)) { + receiptKeys.push(primaryKey) + } + + if (!receiptKeys.includes('bid') && BID) { + receiptKeys.push('bid') + } + + // 鐢ㄤ簬鍙栫敤鎴蜂俊鎭� + let _user = `select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID@ + ` + + // 娣诲姞銆佷慨鏀广�侀�昏緫鍒犻櫎銆佺墿鐞嗗垹闄� + if (_actionType === 'insert') { + let keys = [] + let values = [] + + formlist.forEach(item => { + keys.push(item.key.toLowerCase()) + values.push('@' + item.key + '@') + }) + + if (!keys.includes(primaryKey)) { + keys.push(primaryKey) + values.push(`@${primaryKey}@`) + } + + if (!keys.includes('createuserid')) { + keys.push('createuserid') + values.push('@userid@') + } + if (!keys.includes('createuser')) { + keys.push('createuser') + values.push('@username') + } + if (!keys.includes('createstaff')) { + keys.push('createstaff') + values.push('@fullname') + } + if (!keys.includes('bid') && BID) { + keys.push('bid') + values.push('@BID@') + } + + keys = keys.join(',') + values = values.join(',') + _sql += _user + _sql += `insert into ${btn.sql} (${keys}) select ${values};` + } else if (_actionType === 'update') { + let _form = [] + let _arr = [] + + formlist.forEach(item => { + _arr.push(item.key.toLowerCase()) + + _form.push(item.key + `=@${item.key}@`) + }) + + if (!_arr.includes('modifydate')) { + _form.push('modifydate=getdate()') + } + if (!_arr.includes('modifyuserid')) { + _form.push('modifyuserid=@userid@') + } + if (hasvoucher) { + if (!_arr.includes('bvoucher')) { + _arr.push('bvoucher') + receiptKeys.push('bvoucher') + _form.push('BVoucher=@BVoucher') + } + if (!_arr.includes('fibvoucherdate')) { + _arr.push('fibvoucherdate') + receiptKeys.push('fibvoucherdate') + _form.push('FIBVoucherDate=@FIBVoucherDate') + } + if (!_arr.includes('fiyear')) { + _arr.push('fiyear') + receiptKeys.push('fiyear') + _form.push('FiYear=@FiYear') + } + } + + if (!_arr.includes(primaryKey)) { + _arr.push(primaryKey) + } + + _form = _form.join(',') + _sql += `update ${btn.sql} set ${_form} where ${primaryKey}=@${primaryKey}@;` + } else if (_actionType === 'LogicDelete') { // 閫昏緫鍒犻櫎 + _sql += `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid@ where ${primaryKey}=@${primaryKey}@;` + + } else if (_actionType === 'delete') { // 鐗╃悊鍒犻櫎 + let _msg = '' + if (columns.length > 0) { + let _index = 0 + columns.forEach(col => { + if (col.Hide !== 'true' && _index < 4) { + _msg += col.label + `=@${col.field}@,` + _index++ + } + }) + } + _sql += _user + _sql += `insert into snote (remark,createuserid,CreateUser,CreateStaff) select '鍒犻櫎琛�:${btn.sql} 鏁版嵁: ${_msg}${primaryKey}='+@${primaryKey}@,@userid@,@username,@fullname delete ${btn.sql} where ${primaryKey}=@${primaryKey}@;` + } + + // 鎷兼帴鑷畾涔夎剼鏈� + if (verify.scripts && verify.scripts.length > 0) { + let _scripts = '' + verify.scripts.forEach(item => { + _scripts += ` + ${item.sql}` + }) + _sql += `${_scripts}` + } + + let _ltext = '' + if (receipt) { + _ltext = `select obj_name='data',prm_field='${receiptKeys.join(',')}',str_field='', + arr_field='',tabid='',parid='',sub_name='',sub_field='' + select ${receiptKeys.map(key => `@${key}@ as ${key}`).join(',')} + ` + _ltext = Utils.formatOptions(_ltext) + } + + _sql += ` + aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,'${_ltext}' as Ltext` + console.log(_sql) + return _sql + } + render() { return ( - <Button - className="mk-btn mk-green" - onClick={this.props.trigger} - loading={this.state.loading} - > - {this.props.dict['header.menu.interface.create']} - </Button> + <div style={{display: 'inline-block', marginRight: '8px'}}> + <Button + className="mk-btn mk-green" + onClick={this.props.trigger} + loading={this.state.loading} + > + {this.props.dict['header.menu.interface.create']} + </Button> + {/* 鎺ュ彛閫夐」 */} + <Modal + title={this.props.dict['header.menu.interface.create']} + visible={this.state.visible} + width={500} + maskClosable={false} + onOk={this.confirmInterface} + onCancel={() => {this.setState({visible: false})}} + destroyOnClose + > + <MutilForm + dict={this.props.dict} + formlist={this.state.formlist} + wrappedComponentRef={(inst) => this.FormRef = inst} + /> + </Modal> + </div> ) } } -- Gitblit v1.8.0