From ee5d275e5b5a495c253c863c503e44ec8fb0abec Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 25 三月 2025 13:28:23 +0800 Subject: [PATCH] 2025-03-25 --- src/views/transystem/index.jsx | 132 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 109 insertions(+), 23 deletions(-) diff --git a/src/views/transystem/index.jsx b/src/views/transystem/index.jsx index 9cb08e9..a524446 100644 --- a/src/views/transystem/index.jsx +++ b/src/views/transystem/index.jsx @@ -1,6 +1,7 @@ import React, { Component } from 'react' import { Input, Button, message } from 'antd' +import sqlFormatter from '@/utils/sqlFormatter.js' import Utils from '@/utils/utils.js' import './index.scss' @@ -82,11 +83,15 @@ cell.dataSource = `select * from @db@${cell.dataSource}` if (item.WhereField) { - cell.dataSource += ' where ' + item.WhereField.replace(/^\s*\(|\)\s*$/g, '') + if (/\(/.test(item.WhereField) && item.WhereField.match(/\(/g).length === 1) { + cell.dataSource += ' where ' + item.WhereField.replace(/^\s*\(|\)\s*$/g, '') + } else { + cell.dataSource += ' where ' + item.WhereField + } } } - cell.dataSource = cell.dataSource.replace(/@userid[^0-9a-z_@]/ig, (w) => w.replace(/@UserID/i, '@UserID@')) + cell.dataSource = this.sqltrans(cell.dataSource) if (item.multiple === 'true') { cell.type = 'multiselect' @@ -218,16 +223,14 @@ tb = 'select * from @db@' + data.QueryFrom } if (tb && data.AppendWhere) { - tb += ` where ${data.AppendWhere.replace(/^\s*\(|\)\s*$/g, '')}` + if (/\(/.test(data.AppendWhere) && data.AppendWhere.match(/\(/g).length === 1) { + tb += ` where ${data.AppendWhere.replace(/^\s*\(|\)\s*$/g, '')}` + } else { + tb += ` where ${data.AppendWhere}` + } } - tb = tb.replace(/@ID[^0-9a-z_@]/ig, (w) => w.replace(/@ID/i, '@ID@')) - tb = tb.replace(/@BID[^0-9a-z_@]/ig, (w) => w.replace(/@BID/i, '@BID@')) - tb = tb.replace(/@userid[^0-9a-z_@]/ig, (w) => w.replace(/@UserID/i, '@UserID@')) - - tb = tb.replace(/@ID@\s+nvarchar\(/ig, '@ID nvarchar(') - tb = tb.replace(/@BID@\s+nvarchar\(/ig, '@BID nvarchar(') - tb = tb.replace(/@userid@\s+nvarchar\(/ig, '@UserID nvarchar(') + tb = this.sqltrans(tb) result = { tableName: '@db@' + data.TableName, @@ -274,6 +277,8 @@ } else if (['remark', 'address'].includes(cell.field)) { cell.datatype = 'Nvarchar(256)' } + } else if (item.Type === 'image') { + cell.datatype = 'Nvarchar(256)' } else if (item.Type === 'number') { cell.datatype = 'Int' } @@ -320,6 +325,13 @@ if (item.Type === 'text') { cell.textFormat = 'none' + } else if (item.Type === 'image') { + cell.type = 'picture' + cell.span = 24 + cell.lenWidRadio = '1:1' + cell.backgroundSize = 'cover' + cell.scale = 'true' + cell.lostTip = 'true' } else if (item.Type === 'number') { cell.type = 'number' cell.Width = 80 @@ -371,7 +383,7 @@ uuid: Utils.getuuid(), label: item.Label, field: item.FieldName.toLowerCase(), - initval: item.DefaultVal || '', + initval: item.InitVal || '', type: 'text', span: 12, labelwidth: 33.3, @@ -396,18 +408,41 @@ cell.readonly = 'true' } + if (item.Validate && /required:\s?true/.test(item.Validate)) { + cell.required = 'true' + } else { + cell.required = 'false' + } + if (item.InputType === 'text') { - if (item.Validate && /required:\s?true/.test(item.Validate)) { - cell.required = 'true' - } else { - cell.required = 'false' - } + + } else if (item.InputType === 'textarea') { + cell.type = 'textarea' + cell.fieldlength = 8000 + cell.maxRows = 6 + cell.span = 24 + cell.labelwidth = 16.2 + } else if (item.InputType === 'date') { + cell.type = 'date' + cell.initval = '' + cell.precision = 'day' + cell.declareType = 'datetime' + } else if (item.InputType === 'hidden') { + cell.type = 'text' + cell.hidden = 'true' + } else if (item.InputType === 'image') { + cell.type = 'fileupload' + cell.fieldlength = 512 + cell.fileType = 'text' + cell.compress = 'false' + } else if (item.InputType === 'spinner') { + cell.type = 'number' + cell.required = 'true' + cell.initval = cell.initval ? +cell.initval : '' + cell.decimal = 0 + cell.min = item.MinValue ? +item.MinValue : '' + cell.max = item.MAXValue ? +item.MAXValue : '' } else if (item.InputType === 'select') { - if (item.Validate && /required:\s?true/.test(item.Validate)) { - cell.required = 'true' - } else { - cell.required = 'false' - } cell.type = 'select' cell.resourceType = '1' cell.valueField = item.IdField @@ -421,11 +456,15 @@ cell.dataSource = `select * from @db@${cell.dataSource}` if (item.WhereField) { - cell.dataSource += ' where ' + item.WhereField.replace(/^\s*\(|\)\s*$/g, '') + if (/\(/.test(item.WhereField) && item.WhereField.match(/\(/g).length === 1) { + cell.dataSource += ' where ' + item.WhereField.replace(/^\s*\(|\)\s*$/g, '') + } else { + cell.dataSource += ' where ' + item.WhereField + } } } - cell.dataSource = cell.dataSource.replace(/@userid[^0-9a-z_@]/ig, (w) => w.replace(/@UserID/i, '@UserID@')) + cell.dataSource = this.sqltrans(cell.dataSource) if (item.Multi === 'true') { cell.type = 'multiselect' @@ -459,11 +498,58 @@ result = result.replace(/@ID@\s+nvarchar\(/ig, '@ID nvarchar(') result = result.replace(/@BID@\s+nvarchar\(/ig, '@BID nvarchar(') result = result.replace(/@userid@\s+nvarchar\(/ig, '@UserID nvarchar(') + + result = this.handleFormat(result) } this.setState({value: result}) } + sqltrans = (sql) => { + sql = sql.replace(/@ID[^0-9a-z_@]/ig, (w) => w.replace(/@ID/i, '@ID@')) + sql = sql.replace(/@BID[^0-9a-z_@]/ig, (w) => w.replace(/@BID/i, '@BID@')) + sql = sql.replace(/@userid[^0-9a-z_@]/ig, (w) => w.replace(/@UserID/i, '@UserID@')) + + sql = sql.replace(/@ID@\s+nvarchar\(/ig, '@ID nvarchar(') + sql = sql.replace(/@BID@\s+nvarchar\(/ig, '@BID nvarchar(') + sql = sql.replace(/@userid@\s+nvarchar\(/ig, '@UserID nvarchar(') + + // 绯荤粺琛� + let tables = ['sPermission', 'V_DealerType', "areas","BDCRMChannel","BDCRMChannelProduct","BDCRMCustomer","BDCRMCustomerAccount","BDCRMCustomerAccountFI","BDCRMCustomerChannel","BDCRMCustomerCoupon","BDCRMCustomerPerson","BDCRMCustomerpricediffCoupon","BDCRMCustomersMateriel","BDCRMCustomersMateriel_Log","BDCRMCustomersOrg","BDCRMCustomersOrgCredit","BDCRMCustomersSales","BDCRMCustomersSO","BDDMSAllocation","BDDMSAreas","BDDMSDealerMateriel","BDDMSDealerMaterielBatch","BDDMSDealers","BDDMSIntegral","BDDMSLogistics","BDEShopIndexGroup","BDFactory","BDFactoryPerson","BDFCCPayCondition","BDFCCVoucher","BDMESTechDeviceAffairUser","BDQCCheckPlanProduct","BDSRMSupplier","BDWMSClassify","BDWMSMateriel","BDWMSMaterielClassify","BDWMSMaterielFactory","BDWMSMaterielFactoryKeepFit","BDWMSMaterielImages","BDWMSMaterielPacking","BDWMSMaterielStockType","BDWMSMaterielUnit","BDWMSWareHouse","CRMCouponBlacklist","CRMCouponWhitelist","CRMMarketingActiChannel","CRMMarketingActiChannel_Log","CRMMarketingActiCustomer","CRMMarketingActiCustomer_Log","CRMMarketingActivities","CRMMarketingActivities_Log","CRMMarketingActivitiesUnitPrice","CRMMarketingActivitiesUnitPrice_Log","CRMSaleOrder","CRMSaleOrderDetail","CRMSaleOrderDetailForSale","CRMSaleOrderDiscount","CRMSaleOrderForSale","CRMSalesForecast","CRMZdmsBillList","CRMZdmsBillList_log","DMSFlGoodsOrderBarCode","DMSIntegralOrdeDetail","DMSIntegralOrder","DMSScrapOrderBarCode","DMSStatistics","DOCFramework","DOCFramParagraph","DOCLanguagePacks","DOCMenus","DOCTitle","EShopOrderSendExpress","EShopShopping","EShopShopping_Log","EShopShopping_Order","EShopShopping_Order_Log","FCCAccountStatement","FCCAccountStatementDetail","FCCInvoiceDN","FCCInvoiceDNDetail","FCCInvoiceNoteOrder_ZMKP","FCCInvoiceNoteOrder_ZMKP_Log","FCCInvoiceNoteOrderDetail_ZMKP","FCCInvoiceNoteOrderDetailForPDF_ZMKP","FCCInvoiceOrder","FCCInvoiceOrderSP","FCCMonthlyBills","FCCMonthlyBillsBalance","FCCMonthlyBillsPayment","FCCMonthlyBillsRecev","FCCRecePayVoucher","INV_IHEAD","INV_NOTY_SMS","INV_ZBAPI_DMS_SAP_JIANDN","INV_ZdmsBillList","KUNOsMain","KUNOsMain_PARAMS","KUNOsMain_TABLES","MESOrder","MESOrderDetail","MSNList","MSNListRecv","OMSDeliverNotice","OMSDeliverNoticeBarCode","OMSDeliverNoticeDetail","OMSDeliverNoticeExpress","QCBarcode","QCBarCode","QCExpirationDateSet","QCFlow","QCRecallConfirmBarcode","QCRecallConfirmDetail","QCRecallConfirmOrder","QCRecallList","QCRecallListDetail","QCRecallSendBarcode","QCRecallSendDetail","QCRecallSendOrder","sBDA_Color","sBDA_Color_Affair","sBDA_Statistics","sBDA_Where","sDataDictionary","sdebug","sDurgs","sExProcTime","sExRate","sGridMyReport","sIOT","sMap","sOrganization","sOrganizationAccount","spage_gather","spage_gather_detail","sRightsForFields","SRMPurchaseOrder","SRMPurchaseOrderDetail","SRoles","sSystemParameters","Susers","sVersion","sWorkflow","sWorkflowDetail","sWorkflowDetailButton","sWorkflowDetailFour","sWorkflowDetailRoles","sWorkflowDetailTree","sWorkflowKeyWords","sWorkflowKeyWordsULog","sWorkflowlog","sWorkflowMSNlog","sWorkflowRpermission","sWorkflowStatus","Tmp_DMSIntegralOrder","TMP_IT_LIPS","TMP_IT_LIPS_WareSpaceCode","TMP_TAB_DN_log","Tmp_WMSSalesOut","Tmp_WMSSalesOutBarCodeForScan","Tmp_WMSSalesOutBarCodeForScanFct","Tmp_WMSSalesOutBarCodeForScanOne","Tmp_WMSSalesOutBarCodeForScanThird","Tmp_WMSSalesOutBarCodeForScanTwo","Tmp_WMSSalesOutDetail","WMSAllocated","WMSAllocatedBarCode","WMSAllocatedDetail","WMSAllocatedNewBNLog","WMSAllocatedTotalLog","WMSInventoryOrder","WMSInventoryOrderBarCode","WMSInventoryOrderDetail","WMSRGIN","WMSRGINBarCode","WMSRGINDetail","WMSRGINNewBNLog","WMSRGINTotalLog","WMSSalesOut","WMSSalesOutBarCode","WMSSalesOutBarCodeForScanFct","WMSSalesOutBarCodeOne","WMSSalesOutBarCodeSalesEnd","WMSSalesOutBarCodeSalesEndRecv","WMSSalesOutBarCodeTwo","WMSSalesOutBarCodeTwoRecv","WMSSalesOutDetail","WMSSalesOutDetailOne","WMSSalesOutDetailSalesEnd","WMSSalesOutDetailTwo","WMSSalesOutInvoice","WMSSalesOutNewBNLog","WMSSalesOutNewBNLogOne","WMSSalesOutNewBNLogTwo","WMSSalesOutNewBNLogTwoRecv","WMSSalesOutOne","WMSSalesOutSalesEnd","WMSSalesOutST","WMSSalesOutSTBarCode","WMSSalesOutSTBarCodeRecv","WMSSalesOutSTDetail","WMSSalesOutSTNewBNLog","WMSSalesOutSTNewBNLogRecv","WMSSalesOutSTTotalLog","WMSSalesOutSTTotalLogRecv","WMSSalesOutTotalLog","WMSSalesOutTotalLogOne","WMSSalesOutTotalLogTwo","WMSSalesOutTotalLogTwoRecv","WMSSalesOutTwo","WMSStock","WMSStockBarCode","WMSStockBarCodeFrozenLog","WMSStockBarCodeOne","WMSStockBarCodeSalesEnd","WMSStockBarCodeST","WMSStockBarCodeTwo","WMSStockBatch","WMSStockBatchOne","WMSStockBatchST","WMSStockBatchTwo","WMSStockTotal","WMSStockTotalForSap","WMSStockTotalOne","WMSStockTotalST","WMSStockTotalTwo","WMSStockUnOrFreezLog","WMSTransWareSpace","ZBAPI_DMS_SAP_JIANBILLING_DATE"] + + tables.forEach(tb => { + sql = sql.replace(new RegExp(`[^0-9a-z_]from\\s+${tb}[^0-9a-z_]`, 'ig'), (w) => w.replace(/from\s+/i, 'from @db@')) + }) + + sql = this.handleFormat(sql) + + return sql + } + + handleFormat = (_sql) => { + let arr = [] + _sql = _sql.replace(/@[0-9a-zA-Z_]+@/g, (word) => { + let uuid = Utils.getuuid() + arr.push({id: uuid, value: word}) + return uuid + }) + + _sql = sqlFormatter.format(_sql.replace(/\s{2,}/g, ' ')) + + _sql = _sql.replace(/\$\s\*\s\//g, '$*/').replace(/\*\s\//g, '*/') + + arr.forEach(item => { + _sql = _sql.replace(item.id, item.value) + }) + + _sql = _sql.replace(/,\n\s*/g, ',') + _sql = _sql.replace(/@db@\s+[a-zA-Z]/g, (w) => { + return w.replace(/\s+/g, '') + }) + + return _sql + } + copy = () => { const { type, value } = this.state -- Gitblit v1.8.0