king
2023-03-02 d1f19b794216b37417e114b71c1cd7a2ac3d7748
src/utils/utils.js
@@ -59,17 +59,22 @@
  }
  /**
   * @description 数据源名称,用于统一查询
   * @return {String}  name
   * @description 获取图表高度
   */
  static getdataName () {
    let name = []
    let _options = 'abcdefghigklmnopqrstuvwxyz'
    for (let i = 0; i < 6; i++) {
      name.push(_options.substr(Math.floor(Math.random() * 26), 1))
  static getHeight (val) {
    if (typeof(val) === 'string') {
      if (val.indexOf('px') > -1) {
        val = parseFloat(val)
      } else if (val.indexOf('vw') > -1) {
        val = parseFloat(val)
        val = document.body.clientWidth * val / 100
      } else if (val.indexOf('vh') > -1) {
        val = parseFloat(val)
        val = document.body.clientHeight * val / 100
      }
    }
    name.splice(3, 0, new Date().getTime())
    return name.join('')
    return parseInt(val || 400) - 30
  }
  /**
@@ -200,6 +205,35 @@
    return value
  }
  // /**
  //  * @description sql解密
  //  * @return {String}   value
  //  */
  // static unFormatOptions (value) {
  //   if (!value) return ''
  //   value = window.atob(value)
  //   value = value.replace('minKe', '')
  //   value = window.decodeURIComponent(window.atob(value))
  //   // 外联数据库替换
  //   if (window.GLOB.externalDatabase !== null && window.GLOB.externalDatabase) {
  //     value = value.replace(window.GLOB.externalDatabase, '@db@')
  //   }
  //   value = value.replace(/ mpercent /ig, '%')
  //   // 替换关键字
  //   formatKeys.forEach(item => {
  //     let reg = new RegExp('(\\s)?' + item.value.replace(/\s/g, '') + '(\\s)?', 'ig')
  //     value = value.replace(reg, ' ' + item.key + ' ')
  //   })
  //   // value = value.replace(/\n/ig, ' \n ')
  //   return value
  // }
  /**
   * @description sPC_TableData_InUpDe sql加密
@@ -764,6 +798,8 @@
      arrfield.push(item.cardValField)
      if (item.urlField) {
        arrfield.push(item.urlField)
      } else if (item.colorField) {
        arrfield.push(item.colorField)
      }
    }
@@ -789,10 +825,8 @@
    arrfield = arrfield.join(',')
    if (item.orderBy) {
      // sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} ) a order by orderfield ${item.orderType}`
      sql = `select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} order by orderfield ${item.orderType}`
    } else {
      // sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield} from ${_datasource}) a`
      sql = `select distinct ${arrfield} from ${_datasource}`
    }
@@ -811,10 +845,6 @@
    sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
    sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
      console.info(sql)
    }
    return {
      sql: sql,
      field: arrfield
@@ -829,7 +859,7 @@
 * @return {Object} dict   字典项
 * @return {String} BID    上级Id
 */
export function getExcelInSql (item, data, dict, BID) {
export function getExcelInSql (item, data, dict, BID, primaryId) {
  let btn = item.verify
  let keys = ['delete', 'drop', 'insert', 'truncate', 'update']
  let userName = sessionStorage.getItem('User_Name') || ''
@@ -882,20 +912,30 @@
    btn.scripts.forEach(script => {
      if (script.status === 'false') return
      let _sql = script.sql
      _sql = _sql.replace(/@ID@/ig, `'${primaryId || ''}'`)
      _sql = _sql.replace(/@BID@/ig, `'${BID}'`)
      _sql = _sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
      _sql = _sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
      _sql = _sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
      _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
      _sql = _sql.replace(/@typename@/ig, `'admin'`)
      if (script.position === 'init') {
        _initCustomScript += `
      /* 自定义脚本 */
      ${script.sql}
      ${_sql}
      `
      } else if (script.position === 'front') {
        _prevCustomScript += `
      /* 自定义脚本 */
      ${script.sql}
      ${_sql}
      `
      } else {
        _backCustomScript += `
      /* 自定义脚本 */
      ${script.sql}
      ${_sql}
      `
      }
    })
@@ -1472,7 +1512,7 @@
  }
  // 添加数据中字段,表单值优先(按钮不选行或多行拼接时跳过)
  if (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce' && columns && columns.length > 0) {
  if (data && btn.Ot !== 'notRequired' && columns && columns.length > 0) {
    datavars = {...data, ...datavars}
    const setField = (col) => {
@@ -2027,17 +2067,16 @@
    _sql += `
      /* 默认sql */
      update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifyuserid=@userid@ where ${primaryKey}${_ID};`
      update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}${_ID};`
  
  } else if (_actionType === 'delete') {      // 物理删除
    let _msg = ''
    if (data && columns && columns.length > 0) {
    if (data && columns && columns.length > 0 && btn.Ot !== 'notRequired') {
      let _index = 0
      columns.forEach(col => {
        if (col.Hide !== 'true' && col.type !== 'colspan' && col.type !== 'old_colspan' && _index < 4) {
          _msg += col.label + '=' + data[col.field] + ','
          _index++
        }
        if (!col.field || col.Hide === 'true' || _index >= 4) return
        _msg += col.label + '=' + data[col.field] + ','
        _index++
      })
    }
@@ -2117,6 +2156,7 @@
    _callbacksql = _callbacksql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
    _callbacksql = _callbacksql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
    _callbacksql = _callbacksql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
    _callbacksql = _callbacksql.replace(/@typename@/ig, `'admin'`)
    
    return {
      sql: _sql,
@@ -2134,6 +2174,7 @@
  let icon = null
  let innerStyle = null
  let position = null
  let signType = ''
  style = JSON.parse(JSON.stringify(style))
  marks.some(mark => {
@@ -2171,8 +2212,9 @@
    if (type === 'font') {
      style.color = mark.color
      innerStyle = {color: mark.color}
      signType = ' sign-font'
    } else if (type === 'background') {
      style.background = mark.color
      style.backgroundColor = mark.color
      if (mark.fontColor) {
        style.color = mark.fontColor
        innerStyle = {color: mark.fontColor}
@@ -2202,7 +2244,8 @@
    style,
    icon,
    innerStyle,
    position
    position,
    signType
  }
}
@@ -2261,7 +2304,7 @@
   * @description 创建页面存储过程
   * @return {String}
   */
  static getTableFunc (param, menu, config) {
  static getTableFunc (func = 'func', menu, config) {
    let form = ''
    let formParam = ''
    let _vars = ['bid', 'pageindex', 'pagesize', 'ordercol', 'ordertype', 'exceltype', 'septmenuno', 'lang', 'debug', 'loginuid', 'sessionuid', 'userid', 'errorcode', 'retmsg']
@@ -2316,7 +2359,7 @@
      `
    }
    let Ltext = `create proc ${param.innerFunc}
    let Ltext = `create proc ${func}
    ( /*${menu.MenuName}*/
    @appkey nvarchar(50)='',
    @BID nvarchar(50)='',${formParam}
@@ -2331,6 +2374,7 @@
    @LoginUID nvarchar(50)='',
    @SessionUid nvarchar(50)='',
    @UserID nvarchar(50),
    @dataM nvarchar(50),
    @ErrorCode nvarchar(50) out,
    @retmsg nvarchar(4000) out
    )
@@ -2552,9 +2596,9 @@
        @ErrorSeverity=ERROR_SEVERITY(),
        @ErrorState=ERROR_STATE();
        
      RAISERROR(@ErrorMessage, /*-- Message text.*/
        @ErrorSeverity, /*-- Severity.*/
        @ErrorState  /*-- State.*/
      RAISERROR(@ErrorMessage, /* Message text.*/
        @ErrorSeverity, /* Severity.*/
        @ErrorState  /* State.*/
      );
    END CATCH
    
@@ -2693,9 +2737,9 @@
        @ErrorSeverity=ERROR_SEVERITY(),
        @ErrorState=ERROR_STATE();
        
      RAISERROR(@ErrorMessage, /*-- Message text.*/
        @ErrorSeverity, /*-- Severity.*/
        @ErrorState  /*-- State.*/
      RAISERROR(@ErrorMessage, /* Message text.*/
        @ErrorSeverity, /* Severity.*/
        @ErrorState  /* State.*/
      );
    END CATCH