king
2024-04-30 f0524f158d89a91ac0dfb758405afa302149442a
src/utils/utils-datamanage.js
@@ -1,16 +1,13 @@
import md5 from 'md5'
import moment from 'moment'
import { notification, Modal } from 'antd'
import MKEmitter from '@/utils/events.js'
import Utils from './utils.js'
export default class DataUtils {
  /**
   * @description 数据源名称,用于统一查询
   * @param {Object}   setting      数据源设置
   * @param {Array}    search       搜索条件
   * @param {String}   orderBy      排序方式
   * @param {Number}   pageIndex    页码
   * @param {Number}   pageSize     每页数量
   * @param {String}   BID          上级ID
   * @description 数据源统一查询
   */
  static getQueryDataParams (setting, search = [], orderBy = '', pageIndex = 1, pageSize = 10, BID, id, year) {
    let param = null
@@ -51,6 +48,10 @@
      param.mk_year = year
    }
    if (setting.hasExtend) {
      param.mk_time = setting.extendTime
    }
    if (setting.interType === 'inner') {
      param.func = setting.innerFunc
@@ -68,6 +69,12 @@
          param.$token = setting.exProInterface || ''
        } else {
          param.$token = setting.exInterface || ''
        }
      } else if (setting.sysInterface === 'custom') {
        if (window.GLOB.systemType === 'production') {
          param.rduri = setting.proInterface
        } else {
          param.rduri = setting.interface
        }
      } else {
        if (window.GLOB.systemType === 'production' && setting.proInterface) {
@@ -96,7 +103,7 @@
    let param = {
      func: 'sPC_Get_TableData',
      obj_name: 'data',
      exec_type: 'y',
      exec_type: window.GLOB.execType || 'y',
      arr_field: setting.arr_field,
      default_sql: setting.execute ? 'true' : 'false'
    }
@@ -147,6 +154,9 @@
      { reg: /@typename@/ig, value: `'admin'`},
    )
    if (setting.hasExtend) {
      regoptions.push({ reg: /@mk_time@/ig, value: setting.extendTime })
    }
    if (setting.$re_year) {
      regoptions.push({ reg: /@mk_year@/ig, value: year })
    }
@@ -204,8 +214,14 @@
        } else {
          DateCount = `/*system_query*/select count(1) as total from ${_dataresource} ${_search}`
        }
      } else if (setting.$top) {
        if (orderBy) {
          LText = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search} order by ${orderBy} `
        } else {
          LText = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search}  `
        }
      } else if (orderBy) {
        LText = `/*system_query*/select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
        LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} order by ${orderBy} `
      } else {
        LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search}  `
      }
@@ -272,9 +288,9 @@
      param.menuname = setting.$name
    }
    param.custom_script = Utils.formatOptions(_customScript)
    param.LText = Utils.formatOptions(LText)
    param.DateCount = Utils.formatOptions(DateCount)
    param.custom_script = Utils.formatOptions(_customScript, param.exec_type)
    param.LText = Utils.formatOptions(LText, param.exec_type)
    param.DateCount = Utils.formatOptions(DateCount, param.exec_type)
    if (setting.sub_field) {
      param.sub_name = setting.subdata
@@ -283,9 +299,9 @@
      param.sub_field = setting.sub_field
    }
    // exec_type: 'y' 解码字段:LText、LText1、LText2、custom_script、DateCount
    // exec_type 解码字段:LText、LText1、LText2、custom_script、DateCount
    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss.SSS')
    param.secretkey = Utils.encrypt('', param.timestamp)
    param.username = userName
@@ -302,6 +318,8 @@
      if (setting.tableName === 's_custom_script' && window.GLOB.mainSystemApi) {
        param.rduri = window.GLOB.mainSystemApi
      }
    } else if (window.GLOB.forcedUpdate) {
      param.s_version_up = 'true'
    }
    return param
@@ -314,7 +332,7 @@
    let param = {
      func: 'sPC_Get_TableData',
      obj_name: 'data',
      exec_type: 'y',
      exec_type: window.GLOB.execType || 'y',
      arr_field: statFields.map(col => col.field).join(','),
      default_sql: setting.execute ? 'true' : 'false'
    }
@@ -403,8 +421,8 @@
      param.menuname = setting.$name
    }
    
    param.custom_script = Utils.formatOptions(_customScript)
    param.LText = Utils.formatOptions(LText)
    param.custom_script = Utils.formatOptions(_customScript, param.exec_type)
    param.LText = Utils.formatOptions(LText, param.exec_type)
    param.DateCount = ''
    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -427,6 +445,46 @@
    }
    return param
  }
  /**
   * @description 数据获取成功
   */
  static querySuccess (result) {
    if (!result.message) return
    if (result.ErrCode === 'Y') {
      Modal.success({
        title: result.message
      })
    } else if (result.ErrCode === 'S') {
      notification.success({
        top: 92,
        message: result.message,
        duration: 2
      })
    }
  }
  /**
   * @description 数据获取失败
   */
  static queryFail (result) {
    if (!result.message && result.ErrCode !== 'version_up') return
    if (result.ErrCode === 'N') {
      Modal.error({
        title: result.message,
      })
    } else if (result.ErrCode === 'version_up') {
      MKEmitter.emit('reloadTabs')
    } else if (result.ErrCode !== '-2') {
      notification.error({
        top: 92,
        message: result.message,
        duration: 10
      })
    }
  }
}
@@ -458,8 +516,14 @@
    _search = _search ? 'where ' + _search : ''
  }
  if (setting.order && _dataresource) {
    _dataresource = `select top 1000 ${setting.arr_field} from (select ${setting.arr_field} ,ROW_NUMBER() over(order by ${setting.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
  if (setting.$top) {
    if (setting.order && _dataresource) {
      _dataresource = `select top 1 ${setting.arr_field} from ${_dataresource} ${_search} order by ${setting.order} `
    } else if (_dataresource) {
      _dataresource = `select top 1 ${setting.arr_field} from ${_dataresource} ${_search} `
    }
  } else if (setting.order && _dataresource) {
    _dataresource = `select top 1000 ${setting.arr_field} from ${_dataresource} ${_search} order by ${setting.order} `
  } else if (_dataresource) {
    _dataresource = `select top 1000 ${setting.arr_field} from ${_dataresource} ${_search} `
  }
@@ -500,7 +564,6 @@
/**
 * @description 生成sPC_Get_structured_data请求参数
 * 1、把大接口sPC_Get_structured_data的ltext拆成三份,第一段:@LText1,第二段@LText,第三段@LText2
 */
export function getStructuredParams (params, config, BID) {
  let LText_field = []
@@ -548,23 +611,16 @@
  let param = {
    func: 'sPC_Get_structured_data',
    LText: _LText.join(' union all '),
    LText_field: LText_field.join(' union all '),
    BID: BID,
    username: sessionStorage.getItem('User_Name') || '',
    fullName: sessionStorage.getItem('Full_Name') || ''
  }
  if (config.MenuName) {
    param.menuname = config.MenuName
  }
  param.menuname = config.MenuName || config.$menuname || ''
  let { LText, LText1, LText2 } = Utils.sPCInUpDeFormatOptions(param.LText)
  param.LText1 = LText1
  param.LText = LText
  param.LText2 = LText2
  param.LText_field = Utils.formatOptions(param.LText_field)
  param.exec_type = window.GLOB.execType || 'y'
  param.LText = Utils.formatOptions(_LText.join(' union all '), param.exec_type)
  param.custom_script = Utils.formatOptions(LText_field.join(' union all '), param.exec_type)
  if (config.cacheUseful === 'true') {
    param.time_type = config.timeUnit
@@ -576,7 +632,7 @@
  }
  param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
  param.secretkey = Utils.encrypt(param.LText, param.timestamp)
  param.secretkey = Utils.encrypt('', param.timestamp)
  return param
}