king
2020-02-10 b70376bd370f83e0087e629b664243f3a4bf191c
src/utils/utils.js
@@ -451,7 +451,8 @@
    let verify = btn.verify || {}
    let _formFieldValue = {}
    // 需要声明的变量集
    let _vars = ['tbid', 'ErrorCode', 'retmsg', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'UserName', 'FullName', 'ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey']
    // let _vars = ['tbid', 'ErrorCode', 'retmsg', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'UserName', 'FullName', 'ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey']
    let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'id', 'bid', 'loginuid', 'sessionuid', 'userid', 'appkey']
    // 主键字段
    let primaryKey = setting.primaryKey || 'id'
@@ -460,7 +461,8 @@
    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)
      `
    let _initvars = ['ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey'] // 已赋值字段集
    // let _initvars = ['ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey'] // 已赋值字段集
    let _initvars = ['id', 'bid', 'loginuid', 'sessionuid', 'userid', 'appkey'] // 已赋值字段集
    let _initfields = []
    let _declarefields = []
@@ -468,14 +470,15 @@
    if (formdata) {
      formdata.forEach(form => {
        _formFieldValue[form.key] = form.value
        let _key = form.key.toLowerCase()
        if (!_initvars.includes(form.key)) {
          _initvars.push(form.key)
          _initfields.push(`@${form.key}='${form.value}'`)
        if (!_initvars.includes(_key)) {
          _initvars.push(_key)
          _initfields.push(`@${_key}='${form.value}'`)
        }
        
        if (!_vars.includes(form.key)) {
          _vars.push(form.key)
        if (!_vars.includes(_key)) {
          _vars.push(_key)
          let _type = `nvarchar(${form.fieldlen})`
@@ -485,7 +488,7 @@
            _type = `decimal(18,${form.fieldlen})`
          }
          _declarefields.push(`@${form.key} ${_type}`)
          _declarefields.push(`@${_key} ${_type}`)
        }
      })
    }
@@ -496,15 +499,17 @@
      if (logcolumns && logcolumns.length > 0) {
        logcolumns.forEach(col => {
          if (!_initvars.includes(col.field)) {
            _initvars.push(col.field)
          let _key = col.field.toLowerCase()
          if (!_initvars.includes(_key)) {
            _initvars.push(_key)
            let _val = data.hasOwnProperty(col.field) ? data[col.field] : ''
            _initfields.push(`@${col.field}='${_val}'`)
            _initfields.push(`@${_key}='${_val}'`)
          }
          
          if (!_vars.includes(col.field)) {
            _vars.push(col.field)
          if (!_vars.includes(_key)) {
            _vars.push(_key)
  
            let _type = `nvarchar(${col.fieldlength || 50})`
@@ -515,7 +520,7 @@
              _type = `nvarchar(${col.fieldlength || 512})`
            }
  
            _declarefields.push(`@${col.field} ${_type}`)
            _declarefields.push(`@${_key} ${_type}`)
          }
        })
      }
@@ -657,13 +662,15 @@
        }
        let _declare = ''
        if (!_vars.includes(item.field)) {
          _declare = `Declare @${item.field} nvarchar(50)`
        let _key = item.field.toLowerCase()
        if (!_vars.includes(_key)) {
          _declare = `Declare @${_key} nvarchar(50)`
          _vars.push(_key)
        }
        _vars.push(item.field)
        _sql += `${_declare}
          select @BillCode='', @${item.field}=''
          select @BillCode='', @${_key}=''
          exec s_get_BillCode
            @ModularDetailCode='${_ModularDetailCode}',
            @Type=${item.Type},
@@ -674,7 +681,7 @@
            @retmsg=@retmsg output
          if @ErrorCode!=''
            goto aaa
          set @${item.field}=@BillCode
          set @${_key}=@BillCode
          `
      })
    }
@@ -704,8 +711,10 @@
    }
    // 用于取用户信息
    let _user = `select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID
    let _user = `select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID@
      `
    let primaryKeyName = ['id', 'bid', 'loginuid', 'sessionuid', 'userid', 'appkey'].includes(primaryKey.toLowerCase()) ? primaryKey + '@' : primaryKey
    // 添加、修改、逻辑删除、物理删除
    if (btn.OpenType === 'pop' && btn.sqlType === 'insert' && verify.default !== 'false') {
@@ -727,7 +736,7 @@
      keys = keys.join(',')
      values = values.join(',')
      _sql += _user
      _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@userid,@username,@fullname,@BID;`
      _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@userid@,@username,@fullname,@BID@;`
    } else if (btn.OpenType === 'pop' && btn.sqlType === 'update' && verify.default !== 'false') {
      let _form = []
      formdata.forEach(item => {
@@ -740,9 +749,9 @@
        }
      })
      _form = _form.join(',')
      _sql += `update ${btn.sql} set ${_form},modifydate=getdate(),modifyuserid=@userid${_updateconfig} where ${primaryKey}=@${primaryKey};`
      _sql += `update ${btn.sql} set ${_form},modifydate=getdate(),modifyuserid=@userid@${_updateconfig} where ${primaryKey}=@${primaryKeyName};`
    } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'LogicDelete' && verify.default !== 'false') { // 逻辑删除
      _sql += `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid where ${primaryKey}=@${primaryKey};`
      _sql += `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid@ where ${primaryKey}=@${primaryKeyName};`
    } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'delete' && verify.default !== 'false') {      // 物理删除
      let _msg = ''
      if (data && logcolumns && logcolumns.length > 0) {
@@ -755,7 +764,7 @@
        })
      }
      _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};`
      _sql += `insert into snote (remark,createuserid,CreateUser,CreateStaff) select '删除表:${btn.sql} 数据: ${_msg}${primaryKey}='+@${primaryKeyName},@userid@,@username,@fullname delete ${btn.sql} where ${primaryKey}=@${primaryKeyName};`
    }
    // 拼接自定义脚本