king
2023-03-11 34e7681fd12b1c4e4994d3bea1a553870e10bc50
src/menu/datasource/verifycard/utils.jsx
@@ -14,13 +14,11 @@
    let _customScript = ''
    let arr_field = columns.map(item => item.field).join(',')
    if (scripts.length > 0) {
      scripts.forEach(item => {
        _customScript += `
          ${item.sql}
        `
      })
    }
    scripts.forEach(item => {
      _customScript += `
        ${item.sql}
      `
    })
    if (!arr_field) {
      arr_field = '*'
@@ -44,8 +42,8 @@
    //   error = '系统函数' + _customScript.match(/\$ex@.{1,50}@ex\$/g)[0].replace(/\$ex@|@ex\$/g, '') + '未定义'
    // }
    _dataresource = _dataresource.replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid)@/ig, `'${timestamp}'`)
    _customScript = _customScript.replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid)@/ig, `'${timestamp}'`)
    _dataresource = _dataresource.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid|typename)@/ig, `'${timestamp}'`)
    _customScript = _customScript.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid|typename)@/ig, `'${timestamp}'`)
    _dataresource = _dataresource.replace(/@\$|\$@/ig, '')
    _customScript = _customScript.replace(/@\$|\$@/ig, '')
@@ -218,12 +216,38 @@
    if (/@[0-9a-zA-Z_]+@/ig.test(sql)) {
      let arr = sql.match(/@[0-9a-zA-Z_]+@/ig)
      let getTrueSql = (sl) => {
        if (!/\/\*/.test(sl)) return sl
        let index = 0
        sl = sl.replace(/\s/ig, ' ')
        sl = sl.replace(/\*\//ig, 'm_k@')
        sl = sl.replace(/\/\*/ig, () => {
          index++
          return '@m_k' + index
        })
        for (let i = index; i > 0; i--) {
          let reg = new RegExp(`@m_k${i}.+m_k@`, 'ig')
          sl = sl.replace(reg, '')
        }
        return sl
      }
      let _scripts = []
      _dataresource = _dataresource.replace('/*system_query*/', '')
      _dataresource = getTrueSql(_dataresource)
      scripts.forEach(item => {
        _scripts.push({...item, sql: getTrueSql(item.sql)})
      })
      arr.forEach(item => {
        let reg = new RegExp(item, 'ig')
        if (reg.test(_dataresource)) {
          errors.push(`数据源中存在未替换值${item}`)
        }
        scripts && scripts.forEach(script => {
        _scripts.forEach(script => {
          if (reg.test(script.sql)) {
            errors.push(`自定义脚本(${script.$index || ''})存在未替换值${item}`)
          }