From 74b579ec300b2316c6ec0a744ea3c0ad9f8b54d3 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 20 一月 2025 15:30:54 +0800 Subject: [PATCH] 2025-01-20 --- src/utils/utils-custom.js | 445 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 285 insertions(+), 160 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index e34c81f..59eee91 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -451,11 +451,7 @@ card.elements = card.elements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) - if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { - cell.pageTemplate = '' - cell.linkmenu = '' - } - this.resetBtn(cell, commonId) + this.resetBtn(cell, commonId, clear) } else { cell.uuid = this.getuuid() } @@ -467,11 +463,7 @@ card.backElements = card.backElements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) - if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { - cell.pageTemplate = '' - cell.linkmenu = '' - } - this.resetBtn(cell, commonId) + this.resetBtn(cell, commonId, clear) } else { cell.uuid = this.getuuid() } @@ -491,11 +483,7 @@ item.elements = item.elements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) - if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { - cell.pageTemplate = '' - cell.linkmenu = '' - } - this.resetBtn(cell, commonId) + this.resetBtn(cell, commonId, clear) } else { cell.uuid = this.getuuid() } @@ -528,12 +516,7 @@ cell.uuid = md5(commonId + cell.uuid) if (cell.eleType === 'button') { - if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { - cell.pageTemplate = '' - cell.linkmenu = '' - } - - this.resetBtn(cell, commonId) + this.resetBtn(cell, commonId, clear) } return cell @@ -572,11 +555,15 @@ }) if (cell.subButton) { - this.resetBtn(cell.subButton, commonId) + this.resetBtn(cell.subButton, commonId, clear) } return cell }) + } else if (item.type === 'login') { + if (clear) { + item.wrap.linkmenu = '' + } } if (item.btnlog) { @@ -587,12 +574,7 @@ item.action = item.action.map(cell => { cell.uuid = md5(commonId + cell.uuid) - if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { - cell.pageTemplate = '' - cell.linkmenu = '' - } - - this.resetBtn(cell, commonId) + this.resetBtn(cell, commonId, clear) return cell }) @@ -650,15 +632,25 @@ /** * @description 鎸夐挳閲嶇疆 */ - static resetBtn (btn, commonId) { + static resetBtn (btn, commonId, clear = false) { if (btn.OpenType === 'pop' || (btn.OpenType === 'funcbutton' && btn.execMode === 'pop')) { - if (btn.modal && btn.modal.fields.length > 0) { + if (btn.modal && btn.modal.fields && btn.modal.fields.length > 0) { btn.modal.fields = btn.modal.fields.map(m => { m.uuid = this.getuuid() return m }) } } + + if (clear) { + if (btn.pageTemplate === 'linkpage') { + btn.pageTemplate = '' + } + delete btn.linkmenu + delete btn.openmenu + delete btn.refreshTab + } + if (btn.switchTab && btn.switchTab.length > 0) { btn.switchTab = btn.switchTab.map(m => md5(commonId + m)) } @@ -666,6 +658,15 @@ btn.anchors = btn.anchors.map(m => md5(commonId + m)) } if (btn.syncComponent && btn.syncComponent[0] === 'multiComponent' && btn.syncComponents) { + if (btn.syncComponents[0] && Array.isArray(btn.syncComponents[0])) { + btn.syncComponents = btn.syncComponents.map((item, i) => { + return { + syncComId: item, + label: '', + uuid: 'fixed' + i + } + }) + } btn.syncComponents = btn.syncComponents.map(m => { m.syncComId = m.syncComId.map(n => { if (/\$focus/.test(n)) { @@ -684,6 +685,10 @@ return md5(commonId + m) }) + } + + if (btn.OpenType === 'popview' && btn.config && btn.config.components) { + btn.config.components = this.resetConfig(btn.config.components, commonId) } } @@ -771,14 +776,7 @@ if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) - if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { - if (cell.modal && cell.modal.fields.length > 0) { - cell.modal.fields = cell.modal.fields.map(m => { - m.uuid = this.getuuid() - return m - }) - } - } + this.resetBtn(cell, commonId) } else { cell.uuid = this.getuuid() } @@ -792,14 +790,8 @@ card.backElements = card.backElements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) - if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { - if (cell.modal && cell.modal.fields.length > 0) { - cell.modal.fields = cell.modal.fields.map(m => { - m.uuid = this.getuuid() - return m - }) - } - } + + this.resetBtn(cell, commonId) } else { cell.uuid = this.getuuid() } @@ -818,14 +810,8 @@ item.elements = item.elements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) - if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { - if (cell.modal && cell.modal.fields.length > 0) { - cell.modal.fields = cell.modal.fields.map(m => { - m.uuid = this.getuuid() - return m - }) - } - } + + this.resetBtn(cell, commonId) } else { cell.uuid = this.getuuid() } @@ -850,14 +836,7 @@ col.elements = col.elements.map(cell => { cell.uuid = md5(commonId + cell.uuid) if (cell.eleType === 'button') { - if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { - if (cell.modal && cell.modal.fields.length > 0) { - cell.modal.fields = cell.modal.fields.map(m => { - m.uuid = this.getuuid() - return m - }) - } - } + this.resetBtn(cell, commonId) } return cell }) @@ -902,14 +881,7 @@ } item.action = item.action.map(cell => { cell.uuid = md5(commonId + cell.uuid) - if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { - if (cell.modal && cell.modal.fields.length > 0) { - cell.modal.fields = cell.modal.fields.map(m => { - m.uuid = this.getuuid() - return m - }) - } - } + this.resetBtn(cell, commonId) return cell }) @@ -1733,6 +1705,7 @@ if (config.interfaces) { config.interfaces.forEach(item => { + if (item.status !== 'true') return if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') { inters = 'true' } @@ -1962,6 +1935,10 @@ }) } let emptys = [] + if (cell.Ot !== 'notRequired') { + forms.push(...columns) + } + cell.verify.uniques.forEach(m => { if (m.status === 'false') return @@ -1973,21 +1950,25 @@ }) if (emptys.length) { - errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濆敮涓�鎬ч獙璇佸瓧娈�${emptys.join('銆�')}锛屽湪琛ㄥ崟涓笉瀛樺湪锛乣}) + if (cell.Ot === 'notRequired') { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濆敮涓�鎬ч獙璇佸瓧娈�${emptys.join('銆�')}锛屽湪琛ㄥ崟涓笉瀛樺湪锛乣}) + } else { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濆敮涓�鎬ч獙璇佸瓧娈�${emptys.join('銆�')}锛屽湪琛ㄥ崟涓庡瓧娈甸泦涓笉瀛樺湪锛乣}) + } } } if (cell.OpenType === 'form' && cell.formType === 'count_line') return if (cell.intertype === 'system') { - if (cell.Ot === 'notRequired' && cell.verify && cell.verify.voucher && cell.verify.voucher.enabled) { - errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅娇鐢ㄤ簡鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒`}) - } + // if (cell.Ot === 'notRequired' && cell.verify && cell.verify.voucher && cell.verify.voucher.enabled) { + // errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅娇鐢ㄤ簡鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒`}) + // } } else if (cell.intertype === 'custom' || cell.intertype === 'outer') { if (cell.callbackType === 'script' && (!cell.verify || !cell.verify.cbScripts || cell.verify.cbScripts.filter(item => item.status !== 'false').length === 0)) { errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅娇鐢ㄤ簡鑷畾涔夎剼鏈洖璋冿紝鍥炶皟鑴氭湰涓嶅彲涓虹┖锛乣}) - } else if (cell.procMode === 'system' && cell.Ot === 'notRequired' && cell.verify && cell.verify.voucher && cell.verify.voucher.enabled) { - errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅娇鐢ㄤ簡鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒`}) + // } else if (cell.procMode === 'system' && cell.Ot === 'notRequired' && cell.verify && cell.verify.voucher && cell.verify.voucher.enabled) { + // errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅娇鐢ㄤ簡鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒`}) } } } else if (cell.OpenType === 'funcbutton') { @@ -2193,6 +2174,40 @@ notification.warning({ top: 92, message: label + `${lines}锛屼笉鍙嚭鐜拌繛缁殑鑻辨枃閫楀彿,,`, + duration: 5 + }) + return false + } else if (/,\./ig.test(sql)) { + let lines = [] + sql.split(/\n/).forEach((s, i) => { + if (/,\./ig.test(s)) { + lines.push(i + 1) + } + }) + + lines = lines.join('銆�') + lines = lines ? '(绗�' + lines + '琛�)' : '' + + notification.warning({ + top: 92, + message: label + `${lines}锛屼笉鍙嚭鐜拌嫳鏂囬�楀彿,.`, + duration: 5 + }) + return false + } else if (/\.,/ig.test(sql)) { + let lines = [] + sql.split(/\n/).forEach((s, i) => { + if (/\.,/ig.test(s)) { + lines.push(i + 1) + } + }) + + lines = lines.join('銆�') + lines = lines ? '(绗�' + lines + '琛�)' : '' + + notification.warning({ + top: 92, + message: label + `${lines}锛屼笉鍙嚭鐜拌嫳鏂囬�楀彿.,`, duration: 5 }) return false @@ -3049,11 +3064,18 @@ GOTO_RETURN: ROLLBACK TRAN` - let filterComponent = (components, mainSearch, label = '') => { + let filterComponent = (components, mainSearch, label = '', ispop) => { components.forEach(item => { item.$menuname = (config.MenuName || '') + label + '-' + (item.name || '') if (item.type === 'tabs') { + if (config.Template === 'BaseTable') { + item.subtabs.forEach(tab => { + if (tab.permission !== 'true' && tab.components[0] && tab.components[0].wrap) { + tab.components[0].wrap.permission = 'false' + } + }) + } item.subtabs.forEach(tab => { let _mainSearch = mainSearch || [] @@ -3064,10 +3086,11 @@ _mainSearch = com.search || [] }) } - filterComponent(tab.components, _mainSearch, label) + + filterComponent(tab.components, _mainSearch, label, ispop) }) } else if (item.type === 'group') { - filterComponent(item.components, mainSearch, label) + filterComponent(item.components, mainSearch, label, ispop) } else { if (item.wrap && item.setting) { if (item.wrap.datatype === 'public' || item.wrap.datatype === 'static') { @@ -3105,6 +3128,8 @@ roleId = '' } else if (item.setting.database === 'sso') { roleId = '' + } else if (ispop) { + roleId = '' } sqls.push({uuid: item.uuid, roleId: roleId, type: 'datasource', ...msg}) @@ -3119,7 +3144,7 @@ item.action && item.action.forEach(cell => { if (cell.hidden === 'true') return false - resetButton(item, cell) + resetButton(item, cell, false, ispop) }) if (item.type === 'table') { @@ -3134,7 +3159,7 @@ col.elements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - resetButton(item, cell) + resetButton(item, cell, false, ispop) }) } else if (item.subtype === 'editable' && col.editable === 'true') { if (col.editType === 'select' && col.resourceType === '1') { @@ -3171,7 +3196,7 @@ card.elements && card.elements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - resetButton(item, cell) + resetButton(item, cell, false, ispop) }) if (!card.backElements || card.backElements.length === 0) return @@ -3179,14 +3204,14 @@ card.backElements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - resetButton(item, cell, true) + resetButton(item, cell, true, ispop) }) }) } else if (item.type === 'balcony') { item.elements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - resetButton(item, cell) + resetButton(item, cell, false, ispop) }) } else if (item.type === 'form') { item.subcards.forEach(group => { @@ -3199,7 +3224,7 @@ fields: group.fields } - resetButton(item, group.subButton) + resetButton(item, group.subButton, false, ispop) }) } else if (item.type === 'module' && item.subtype === 'invoice') { if (item.buyer.setting && item.buyer.setting.interType === 'system') { @@ -3230,7 +3255,7 @@ }) } - let resetButton = (item, cell, isback) => { + let resetButton = (item, cell, isback, ispop) => { cell.logLabel = item.$menuname + '-' + cell.label let roleId = cell.uuid if (item.wrap && item.wrap.permission === 'false') { @@ -3238,6 +3263,8 @@ } else if (cell.hidden === 'true' || cell.permission === 'false') { roleId = '' } else if (cell.database === 'sso') { + roleId = '' + } else if (ispop) { roleId = '' } @@ -3284,7 +3311,7 @@ } else if (form.type === 'popSelect') { let msg = getPopSelectSql(form) - sqls.push({uuid: form.uuid, type: 'popSource', ...msg}) + sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'popSource', ...msg}) } }) } @@ -3327,7 +3354,7 @@ } else if (form.type === 'popSelect') { let msg = getPopSelectSql(form) - sqls.push({uuid: form.uuid, type: 'popSource', ...msg}) + sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'popSource', ...msg}) } }) } @@ -3343,7 +3370,7 @@ sqls.push({uuid: cell.uuid, roleId: roleId, type: 'pay', ...msg}) } } else if (cell.OpenType === 'popview') { - if (cell.config && cell.config.components) { + if (cell.config && cell.config.components && cell.config.enabled) { let _mainSearch = [] if (appType === 'mob') { @@ -3367,7 +3394,9 @@ }) } - filterComponent(cell.config.components, _mainSearch, '-' + cell.label) + let label = (item.name ? '-' + item.name : '') + '-' + cell.label + + filterComponent(cell.config.components, _mainSearch, label, true) } } } @@ -3504,6 +3533,11 @@ isconst: item.constant === 'true' } + if (item.type === 'linkMain' && item.verifyVal === 'true') { + _item.$verify = true + _item.label = item.label + } + if (_item.type === 'datemonth') { _item.type = 'text' } else if (_item.type === 'number' || _item.type === 'rate') { @@ -3542,8 +3576,19 @@ formdata.push(item) } + let verifyValSql = '' // 鑾峰彇瀛楁閿�煎 formdata && formdata.forEach(form => { + if (form.$verify) { + verifyValSql += ` + if @${form.key}=${form.type === 'number' ? 0 : `''`} + begin + select @errorcode='E',@retmsg='${form.label}锛屽叧鑱斾富琛ㄥけ鏁�' + goto aaa + end + ` + } + let _key = form.key.toLowerCase() if (!formkeys.includes(_key)) { @@ -3718,22 +3763,21 @@ if (formdata && verify.billcodes && verify.billcodes.length > 0) { verify.billcodes.forEach(item => { let _key = item.field.toLowerCase() - let _linkKey = item.linkField ? item.linkField.toLowerCase() : '' if (!formkeys.includes(_key)) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈� let _lpline = '' if (item.TypeCharOne === 'Lp') { - if (_linkKey === 'bid' && BID) { // 鏇挎崲bid + if (/^BID$/ig.test(item.linkField)) { _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@BID@,48)` } else { - _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${_linkKey},48)` + _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${item.linkField},48)` } } else if (item.TypeCharOne === 'BN') { - if (_linkKey === 'bid' && BID) { // 鏇挎崲bid + if (/^BID$/ig.test(item.linkField)) { _lpline = `set @ModularDetailCode= 'BN'+ right(@BID@,48)` } else { - _lpline = `set @ModularDetailCode= 'BN'+ right(@${_linkKey},48)` + _lpline = `set @ModularDetailCode= 'BN'+ right(@${item.linkField},48)` } } else { _lpline = `set @ModularDetailCode= right('${item.ModularDetailCode}',50)` @@ -3776,24 +3820,26 @@ let _val2 = '' arr.push(_key) - if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 + if (_key === 'bid') { _val = BID } else { - _val = `'@mk_${_key}_mk@'` + // _val = `'@mk_${_key}_mk@'` + _val = `@${_field}` } _fieldValue.push(`${_key}=${_val}`) - if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 + if (_key === 'bid') { _val2 = `' + ${BID} + '` } else { - _val2 = `@mk_${_key}_mk@` + // _val2 = `@mk_${_key}_mk@` + _val2 = `' + @${_field} + '` } _value.push(`${_labels[index] || ''}锛�${_val2}`) }) - if (!arr.includes(primaryKey.toLowerCase())) { + if (!arr.includes(primaryKey.toLowerCase()) && btn.Ot !== 'notRequired') { _fieldValue.push(`${primaryKey} !=${primaryId}`) } @@ -3844,15 +3890,20 @@ let hasvoucher = false // 鍑瘉-鏄剧ず鍒椾腑閫夊彇,蹇呴』閫夎 - if (verify.voucher && verify.voucher.enabled && btn.Ot !== 'requiredOnce') { + if (verify.voucher && verify.voucher.enabled) { let _voucher = verify.voucher + let linkField = `@${_voucher.linkField}` + + if (/^BID$/ig.test(_voucher.linkField)) { + linkField = BID + } hasvoucher = true _sql += ` /* 鍒涘缓鍑瘉 */ exec s_BVoucher_Create - @Bill ='0', + @Bill = ${linkField}, @BVoucherType ='${_voucher.BVoucherType}', @VoucherTypeOne ='${_voucher.VoucherTypeOne}', @VoucherTypeTwo ='${_voucher.VoucherTypeTwo}', @@ -4047,7 +4098,9 @@ _sql += ` /* 宸ヤ綔娴佸紓甯竤ql */ if @works_flow_error@ != '' - select @ErrorCode='E',@retmsg=@works_flow_error@ goto aaa + begin + select @ErrorCode='E',@retmsg=@works_flow_error@ goto aaa + end /* 宸ヤ綔娴侀粯璁ql */ insert into s_my_works_flow (works_flow_id,works_flow_code,works_flow_name,works_flow_param,status,statusname,work_group,works_flow_detail_id,work_grade,bid,createuserid,CreateUser,CreateStaff,upid) @@ -4066,7 +4119,9 @@ _sql += ` /* 宸ヤ綔娴佸紓甯竤ql */ if @works_flow_error@ != '' - select @ErrorCode='E',@retmsg=@works_flow_error@ goto aaa + begin + select @ErrorCode='E',@retmsg=@works_flow_error@ goto aaa + end if @works_flow_countersign@ = 'Y' begin @@ -4242,6 +4297,10 @@ _sql += _backCustomScript } + if (verifyValSql) { + _sql += verifyValSql + } + if (verify.workFlow === 'true' && process) { if (verify.flowType === 'start') { _sql = _sql.replace(/@start_type@/ig, `'寮�濮�'`) @@ -4358,6 +4417,12 @@ } }) + if (new RegExp('@mk_submit_type[^0-9a-z_]', 'ig').test(_sql)) { + decSql.push(`@mk_submit_type nvarchar(50)`) + secSql.push(`@mk_submit_type=@mk_submit_type@`) + reps.push('mk_submit_type') + } + decSql = [...decSql, ..._declares] // INSERT INTO s_paas_api_log (appkey,api_name,api_count,menuname,createuserid,createuser,createstaff,cdefine1,cdefine2) @@ -4392,12 +4457,8 @@ return true }) - reps.forEach(n => { - _sql = _sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) - if (/\$@/ig.test(_sql)) { - _sql = _sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + _sql = _sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } if (btn.procMode === 'system') { @@ -4406,10 +4467,15 @@ } } else { if (/\$check@|@check\$/ig.test(_sql)) { - _sql = _sql.replace(/\$check@/ig, '@mk_check_begin@').replace(/@check\$/ig, '@mk_check_end@') + _sql = _sql.replace(/\$check@/ig, ' @mk_check_begin@ ').replace(/@check\$/ig, ' @mk_check_end@ ') reps.push('mk_check_begin', 'mk_check_end') } } + reps.forEach(n => { + if (['datam_begin', 'datam_end', 'mk_check_begin', 'mk_check_end'].includes(n)) return + + _sql = _sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) if (/@db@/ig.test(_sql)) { reps.push('db') } @@ -4653,7 +4719,7 @@ } else if (['mk_address'].includes(s)) { decSql.push(`@mk_address nvarchar(100)`) } else if (['mk_deleted'].includes(s)) { - secSql.push(`@mk_deleted int`) + decSql.push(`@mk_deleted int`) } else { decSql.push(`@${s} nvarchar(50)`) } @@ -4669,6 +4735,12 @@ } } }) + + if (new RegExp('@mk_submit_type[^0-9a-z_]', 'ig').test(_sql)) { + decSql.push(`@mk_submit_type nvarchar(50)`) + secSql.push(`@mk_submit_type=@mk_submit_type@`) + reps.push('mk_submit_type') + } decSql = [...decSql, ..._declares] @@ -4702,14 +4774,15 @@ return true }) - reps.forEach(n => { - _sql = _sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) - if (/\$@/ig.test(_sql)) { - _sql = _sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + _sql = _sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } + reps.forEach(n => { + if (['datam_begin', 'datam_end'].includes(n)) return + + _sql = _sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) if (/@db@/ig.test(_sql)) { reps.push('db') } @@ -4841,7 +4914,7 @@ let DateCount = '' if (_dataresource) { /*system_query*/ - if (/@pageSize@|@orderBy@|@mk_total/i.test(testSql)) { + if (/@pageSize@|@orderBy@|@mk_total/i.test(testSql) || (item.wrap && item.wrap.tree === 'true')) { LText = `select ${arr_field} from ${_dataresource} ${_search} ` } else if (item.setting.laypage === 'true' && item.setting.order) { LText = `select top @pageSize@ ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by @orderBy@) as rows from ${_dataresource} ${_search}) tmptable where rows > @pageSize@ * (@pageIndex@ - 1) order by tmptable.rows ` @@ -4976,16 +5049,16 @@ return true }) - + + if (/\$@/ig.test(sql)) { + sql = sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') + reps.push('datam_begin', 'datam_end') + } reps.forEach(n => { - if (['orderBy', 'pageSize', 'pageIndex'].includes(n)) return + if (['orderBy', 'pageSize', 'pageIndex', 'datam_begin', 'datam_end'].includes(n)) return sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) }) - if (/\$@/ig.test(sql)) { - sql = sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') - reps.push('datam_begin', 'datam_end') - } if (/@db@/ig.test(sql)) { reps.push('db') } @@ -5184,7 +5257,9 @@ sql += ` /* 宸ヤ綔娴佸紓甯竤ql */ if @works_flow_error@ != '' - select @ErrorCode='E',@retmsg=@works_flow_error@ goto aaa + begin + select @ErrorCode='E',@retmsg=@works_flow_error@ goto aaa + end /* 宸ヤ綔娴侀粯璁ql */ insert into s_my_works_flow (works_flow_id,works_flow_code,works_flow_name,works_flow_param,status,statusname,work_group,works_flow_detail_id,work_grade,bid,createuserid,CreateUser,CreateStaff,upid) @@ -5280,18 +5355,20 @@ return true }) - reps.forEach(n => { - sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) - if (/\$@/ig.test(sql)) { - sql = sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + sql = sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } if (/\$check@|@check\$/ig.test(sql)) { - sql = sql.replace(/\$check@/ig, '@mk_check_begin@').replace(/@check\$/ig, '@mk_check_end@') + sql = sql.replace(/\$check@/ig, ' @mk_check_begin@ ').replace(/@check\$/ig, ' @mk_check_end@ ') reps.push('mk_check_begin', 'mk_check_end') } + reps.forEach(n => { + if (['datam_begin', 'datam_end', 'mk_check_begin', 'mk_check_end'].includes(n)) return + + sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) + if (/@db@/ig.test(sql)) { reps.push('db') } @@ -5411,6 +5488,7 @@ let _fields = unique.field.split(',') let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`) _fields_ = _fields_.join(' and ') + _fields_ += ` and a.jskey != b.${setting.primaryKey || 'id'}` let _where = [] _fields.forEach(f => { @@ -5467,6 +5545,7 @@ let declarefields = [] let fields = [] + let upFields = [] forms.forEach(col => { let key = col.field.toLowerCase() @@ -5474,15 +5553,27 @@ declarefields.push(`${col.field} ${col.datatype}`) fields.push(col.field) + upFields.push(`${col.field}=t.${col.field}`) }) fields = fields.join(',') + upFields = upFields.join(',') let _insert = '' if (btn.default !== 'false') { _insert = ` /* 榛樿sql */ - Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid) + update a set ${upFields},modifydate=getdate(),modifyuserid=@UserID@,modifyuser=@username,modifystaff=@fullname,deleted=0 + from (select * from #${sheet} where data_type='upt') t + inner join ${database}${sheet} a on t.jskey=a.${setting.primaryKey || 'id'} + + update a set deleted=1,modifydate=getdate(),modifyuserid=@UserID@,modifyuser=@username,modifystaff=@fullname + from (select * from #${sheet} where data_type='del') t + inner join ${database}${sheet} a on t.jskey=a.${setting.primaryKey || 'id'} + + delete t from #${sheet} t inner join ${database}${sheet} a on t.jskey=a.${setting.primaryKey || 'id'} + + Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid) Select ${fields},@UserID@,@username,@fullname,@BID@ From #${sheet} ` } @@ -5556,14 +5647,15 @@ return true }) - reps.forEach(n => { - sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) - if (/\$@/ig.test(sql)) { - sql = sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + sql = sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } + reps.forEach(n => { + if (['datam_begin', 'datam_end'].includes(n)) return + + sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) if (/@db@/ig.test(sql)) { reps.push('db') } @@ -5840,14 +5932,15 @@ return true }) - reps.forEach(n => { - _sql = _sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) - if (/\$@/ig.test(_sql)) { - _sql = _sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + _sql = _sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } + reps.forEach(n => { + if (['datam_begin', 'datam_end'].includes(n)) return + + _sql = _sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) if (/@db@/ig.test(_sql)) { reps.push('db') } @@ -5953,14 +6046,15 @@ reps.push(...sysVars) - reps.forEach(n => { - sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) - if (/\$@/ig.test(sql)) { - sql = sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + sql = sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } + reps.forEach(n => { + if (['datam_begin', 'datam_end'].includes(n)) return + + sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) if (/@db@/ig.test(sql)) { reps.push('db') } @@ -6078,15 +6172,15 @@ return true }) + if (/\$@/ig.test(sql)) { + sql = sql.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') + reps.push('datam_begin', 'datam_end') + } reps.forEach(n => { - if (['orderBy', 'pageSize', 'pageIndex'].includes(n)) return + if (['orderBy', 'pageSize', 'pageIndex', 'datam_begin', 'datam_end'].includes(n)) return sql = sql.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) }) - if (/\$@/ig.test(sql)) { - sql = sql.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') - reps.push('datam_begin', 'datam_end') - } if (/@db@/ig.test(sql)) { reps.push('db') } @@ -6125,13 +6219,15 @@ } }) - reps.forEach(n => { - _script = _script.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) - }) if (/\$@/ig.test(_script)) { - _script = _script.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') + _script = _script.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') reps.push('datam_begin', 'datam_end') } + reps.forEach(n => { + if (['datam_begin', 'datam_end'].includes(n)) return + + _script = _script.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) + }) if (/@db@/ig.test(_script)) { reps.push('db') } @@ -6247,15 +6343,17 @@ } }) + if (/\$@/ig.test(testSql)) { + _prev = _prev.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') + _back = _back.replace(/\$@/ig, ' @datam_begin@ ').replace(/@\$/ig, ' @datam_end@ ') + reps.push('datam_begin', 'datam_end') + } reps.forEach(n => { + if (['datam_begin', 'datam_end'].includes(n)) return + _prev = _prev.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) _back = _back.replace(new RegExp('@' + n + '@', 'ig'), `'@${n}@'`) }) - if (/\$@/ig.test(testSql)) { - _prev = _prev.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') - _back = _back.replace(/\$@/ig, '@datam_begin@').replace(/@\$/ig, '@datam_end@') - reps.push('datam_begin', 'datam_end') - } if (/@db@/ig.test(testSql)) { reps.push('db') } @@ -6380,5 +6478,32 @@ filterComponent(config.components, _mainSearch) + let keys = sqls.map(item => item.uuid) + if (keys.length > Array.from(new Set(keys)).length) { + if (window.backend) { + let m = new Map() + let n = new Map() + sqls.forEach(item => { + if (m.has(item.uuid)) { + if (!n.has(item.uuid)) { + window.mkInfo(m.get(item.uuid)) + n.set(item.uuid, true) + } + window.mkInfo(item) + } else { + m.set(item.uuid, item) + } + }) + + notification.warning({ + top: 92, + message: '瀛樺湪閲嶅鐨勫悗绔剼鏈琁D锛�', + duration: 5 + }) + } + + return [] + } + return sqls } \ No newline at end of file -- Gitblit v1.8.0