king
2020-10-13 8f6b3d26bde4e22773cc53386dfbae669a7472ed
src/utils/utils.js
@@ -161,9 +161,9 @@
      let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig')
      value = value.replace(reg, item.value)
    })
    // 1、替换%符(数据库中解析后sql报错)
    // 替换%符(数据库中解析后sql报错)
    value = value.replace(/%/ig, ' mpercent ')
    // 1、encode编码(中文字符超出base64加密范围),2、base64加密
    // encode编码(中文字符超出base64加密范围)
    value = window.btoa(window.encodeURIComponent(value))
    // 插入字符
    let index = Math.floor(value.length / 2)
@@ -711,6 +711,9 @@
      fullName = sessionStorage.getItem('CloudFullName') || ''
    }
    let database = item.sheet.match(/(.*)\.(.*)\./ig) || ''
    let sheet = item.sheet.replace(/(.*)\.(.*)\./ig, '')
    let errors = []
    let _topline = btn.range || 0
    let upId = this.getuuid()
@@ -876,7 +879,7 @@
          _uniquesql += `
        /* 重复性验证 */
        Set @tbid=''
        Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${item.sheet} ) a group by ${unique.field} having sum(n)>1
        Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${sheet} ) a group by ${unique.field} having sum(n)>1
        
        If @tbid!=''
        Begin
@@ -885,7 +888,7 @@
        end
        
        Set @tbid=''
        Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${item.sheet} a Inner join ${item.sheet} b on ${_fields_}
        Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${sheet} a Inner join ${sheet} b on ${_fields_}
        
        If @tbid!=''
        Begin
@@ -916,20 +919,20 @@
      if (btn.default !== 'false') {
        _insert = `
        /* 默认sql */
        Insert into ${item.sheet} (${fields},createuserid,createuser,createstaff,bid)
        Select ${fields},@userid@,@username,@fullname,@BID@ From @${item.sheet}
        Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid)
        Select ${fields},@userid@,@username,@fullname,@BID@ From @${sheet}
        `
      }
      _sql = `
        /* 系统生成 */
        declare @${item.sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) )
        declare @${sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) )
        Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
        
        Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}'
        ${_initCustomScript}
        `
      _sqlInsert = `Insert into @${item.sheet} (${fields},jskey,BID)`
      _sqlInsert = `Insert into @${sheet} (${fields},jskey,BID)`
      _sqlBottom = `
        /* 默认sql */
        delete tmp_excel_in where upid=@upid@
@@ -939,7 +942,7 @@
        ${_prevCustomScript}
        ${_insert}
        ${_backCustomScript}
        Delete @${item.sheet}
        Delete @${sheet}
        
        aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
@@ -958,7 +961,7 @@
    } else { // s_sDataDictb_excelIn 云端密钥验证参数
      _sql = `
        /* 系统生成 */
        declare @${item.sheet} table (jskey nvarchar(50))
        declare @${sheet} table (jskey nvarchar(50))
        Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
        
        Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}'
@@ -1040,53 +1043,51 @@
    let _declarefields = []
    // 获取字段键值对
    if (formdata) {
      formdata.forEach(form => {
        if (form.type === 'text') { // 特殊字段替换
          form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey)
          form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid)
          form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID)
        }
    formdata && formdata.forEach(form => {
      if (form.type === 'text') { // 特殊字段替换
        form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey)
        form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid)
        form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID)
      }
        _formFieldValue[form.key] = form.value
        let _key = form.key.toLowerCase()
      _formFieldValue[form.key] = form.value
      let _key = form.key.toLowerCase()
        if (!_initvars.includes(_key)) {
          _initvars.push(_key)
      if (!_initvars.includes(_key)) {
        _initvars.push(_key)
          if (form.type === 'number') {
            let val = form.value
            if (typeof(val) !== 'number') {
              val = parseFloat(val)
              if (isNaN(val)) {
                val = 0
              }
        if (form.type === 'number') {
          let val = form.value
          if (typeof(val) !== 'number') {
            val = parseFloat(val)
            if (isNaN(val)) {
              val = 0
            }
            _initfields.push(`@${_key}=${val}`)
          } else {
            _initfields.push(`@${_key}='${form.value}'`)
          }
          _initfields.push(`@${_key}=${val}`)
        } else {
          _initfields.push(`@${_key}='${form.value}'`)
        }
        if (!_vars.includes(_key)) {
          _vars.push(_key)
      }
      if (!_vars.includes(_key)) {
        _vars.push(_key)
          if (form.fieldlen && form.fieldlen > 2048) {
            form.fieldlen = 'max'
          }
          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 (form.fieldlen && form.fieldlen > 2048) {
          form.fieldlen = 'max'
        }
      })
    }
        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 (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') {
@@ -1266,8 +1267,12 @@
    // 单号生成,使用上级id(BID)或列表数据,声明变量(检验)
    let _billcodesSql  = ''
    if (verify.billcodes && verify.billcodes.length > 0) {
    if (formdata && verify.billcodes && verify.billcodes.length > 0) {
      let keys = formdata.map(item => item.key.toLowerCase()) // 表单字段
      verify.billcodes.forEach(item => {
        if (!keys.includes(item.field.toLowerCase())) return // 表单中不含单号生成字段
        let _ModularDetailCode = ''
        let _lpline = ''
        if (item.TypeCharOne === 'Lp') {