king
2024-09-10 4d6b9f8a2d7b316633e43b489eae9ada949c07b5
src/tabviews/custom/components/table/edit-table/normalTable/mkPopSelect/index.jsx
@@ -41,61 +41,127 @@
      loading: true
    })
    let param = {
      func: 'sPC_Get_TableData',
      obj_name: 'data',
      exec_type: window.GLOB.execType || 'y',
      arr_field: config.arr_field,
      default_sql: 'true',
      custom_script: '',
      menuname: config.label
    }
    let param = null
    if (window.backend && window.GLOB.CacheData.has('sql_' + config.uuid)) {
      let ex = window.GLOB.CacheData.get('sql_' + config.uuid)
      let sysvals = {
        time_id: Utils.getguid(),
        mk_departmentcode: sessionStorage.getItem('departmentcode') || '',
        mk_organization: sessionStorage.getItem('organization') || '',
        mk_user_type: sessionStorage.getItem('mk_user_type') || '',
        id: ID || '',
        bid: BID || '',
        datam: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
        datam_begin: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
        datam_end: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
        orderby: orderBy || config.order || '',
        pagesize: config.laypage === 'true' ? pageSize : '9999',
        pageindex: pageIndex
      }
      if (window.GLOB.externalDatabase !== null) {
        sysvals.db = window.GLOB.externalDatabase
      }
    let sql = ''
    let DateCount = ''
    let _search = ''
    let _orderBy = orderBy || config.order || ''
    let _datasource = config.dataSource
      let exps = []
    if (config.searchKey && searchKey) {
      let fields = config.searchKey.split(',').map(field => field + ` like '%${searchKey}%'`)
      _search = 'where ' + fields.join(' OR ')
    }
      if (config.searchKey) {
        if (!searchKey) {
          exps.push({
            key: 'mk_search',
            value: []
          })
        } else {
          exps.push({
            key: 'mk_search',
            value: [{
              key: config.searchKey,
              match: '01',
              type: /,/.test(config.searchKey) ? 'text_or' : 'text',
              value: searchKey
            }]
          })
        }
        config.searchKey.split(',').forEach(key => {
          sysvals[key.toLowerCase()] = searchKey || ''
        })
      }
    _datasource = _datasource.replace(/@BID@/ig, `'${BID || ''}'`)
    _datasource = _datasource.replace(/@ID@/ig, `'${ID || ''}'`)
    if (config.laypage === 'true') {
      sql = `/*system_query*/select top ${pageSize} ${config.arr_field} from (select ${config.arr_field} ,ROW_NUMBER() over(order by ${_orderBy}) as rows from ${_datasource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows `
      DateCount = `/*system_query*/select count(1) as total from ${_datasource} ${_search}`
    } else if (_orderBy) {
      sql = `/*system_query*/select ${config.arr_field} from (select ${config.arr_field} ,ROW_NUMBER() over(order by ${_orderBy}) as rows from ${_datasource} ${_search}) tmptable order by tmptable.rows `
    } else {
      sql = `/*system_query*/select ${config.arr_field} from ${_datasource} ${_search}  `
    }
    let departmentcode = sessionStorage.getItem('departmentcode') || ''
    let organization = sessionStorage.getItem('organization') || ''
    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
      ex.reps.forEach(n => {
        let key = n.toLowerCase()
        if (sysvals.hasOwnProperty(key)) {
          exps.push({
            key: n,
            value: sysvals[key]
          })
        }
      })
    
    sql = `declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20)
      Select @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}'
      ${sql}`
    // 测试系统打印查询语句
    if (window.GLOB.debugger === true) {
      window.mkInfo(`/*${config.label} 数据源*/\n` + sql.replace(/\n\s{6}/ig, '\n'))
      DateCount && window.mkInfo(`/*${config.label} 总数查询*/\n` + DateCount.replace(/\n\s{6}/ig, '\n'))
      param = {
        $backend: true,
        data: [{
          id: ex.id,
          exps: exps,
          menuname: '',
          md5_id: ''
        }]
      }
    } else {
      param = {
        func: 'sPC_Get_TableData',
        obj_name: 'data',
        exec_type: window.GLOB.execType || 'y',
        arr_field: config.arr_field,
        default_sql: 'true',
        custom_script: '',
        menuname: config.label
      }
      let sql = ''
      let DateCount = ''
      let _search = ''
      let _orderBy = orderBy || config.order || ''
      let _datasource = config.dataSource
      if (config.searchKey && searchKey) {
        let fields = config.searchKey.split(',').map(field => field + ` like '%${searchKey}%'`)
        _search = 'where ' + fields.join(' OR ')
      }
      _datasource = _datasource.replace(/@BID@/ig, `'${BID || ''}'`)
      _datasource = _datasource.replace(/@ID@/ig, `'${ID || ''}'`)
      if (config.laypage === 'true') {
        sql = `/*system_query*/select top ${pageSize} ${config.arr_field} from (select ${config.arr_field} ,ROW_NUMBER() over(order by ${_orderBy}) as rows from ${_datasource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows `
        DateCount = `/*system_query*/select count(1) as total from ${_datasource} ${_search}`
      } else if (_orderBy) {
        sql = `/*system_query*/select ${config.arr_field} from (select ${config.arr_field} ,ROW_NUMBER() over(order by ${_orderBy}) as rows from ${_datasource} ${_search}) tmptable order by tmptable.rows `
      } else {
        sql = `/*system_query*/select ${config.arr_field} from ${_datasource} ${_search}  `
      }
      let departmentcode = sessionStorage.getItem('departmentcode') || ''
      let organization = sessionStorage.getItem('organization') || ''
      let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
      sql = `declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20)
        Select @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}'
        ${sql}`
      // 测试系统打印查询语句
      if (window.GLOB.debugger === true) {
        window.mkInfo(`/*${config.label} 数据源*/\n` + sql.replace(/\n\s{6}/ig, '\n'))
        DateCount && window.mkInfo(`/*${config.label} 总数查询*/\n` + DateCount.replace(/\n\s{6}/ig, '\n'))
      }
      param.LText = Utils.formatOptions(sql, param.exec_type)
      param.DateCount = Utils.formatOptions(DateCount, param.exec_type)
      param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
      param.secretkey = Utils.encrypt('', param.timestamp)
      param.username = sessionStorage.getItem('User_Name') || ''
      param.fullname = sessionStorage.getItem('Full_Name') || ''
    }
    param.LText = Utils.formatOptions(sql, param.exec_type)
    param.DateCount = Utils.formatOptions(DateCount, param.exec_type)
    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
    param.secretkey = Utils.encrypt('', param.timestamp)
    param.username = sessionStorage.getItem('User_Name') || ''
    param.fullname = sessionStorage.getItem('Full_Name') || ''
    Api.getSystemCacheConfig(param, config.cache === 'true').then(result => {
      if (result.status) {