king
7 天以前 a1e9b18a4dbfd21e1bf4d5cb60974ac2f0115efd
src/tabviews/zshare/mutilform/mkPopSelect/index.jsx
@@ -61,6 +61,7 @@
    })
    let placeholder = ''
    let searchKey = ''
    if (!config.searchKey) {
      config.onload = 'true'
    } else {
@@ -74,6 +75,11 @@
      })
      placeholder = placeholder ? placeholder.join('、') : ''
      if (value && !config.showValue) {
        searchKey = value
        config.onload = 'true'
      }
    }
    this.state = {
@@ -84,7 +90,7 @@
      showValue: config.showValue,
      placeholder,
      arr_field: arrfield.join(','),
      searchKey: '',
      searchKey: searchKey,
      pageIndex: 1,
      pageSize: 10,
      orderBy: '',
@@ -121,61 +127,128 @@
      loading: true
    })
    let param = {
      func: 'sPC_Get_TableData',
      obj_name: 'data',
      exec_type: window.GLOB.execType || 'y',
      arr_field: arr_field,
      default_sql: 'true',
      custom_script: '',
      menuname: config.label
    }
    let param = null
    if (window.backend && window.GLOB.CacheData.has('sql_' + config.formSqlId)) {
      let ex = window.GLOB.CacheData.get('sql_' + config.formSqlId)
      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} ${arr_field} from (select ${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 ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${_orderBy}) as rows from ${_datasource} ${_search}) tmptable order by tmptable.rows `
    } else {
      sql = `/*system_query*/select ${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,
        $type: 's_Get_TableData',
        data: [{
          id: ex.id,
          menuname: config.label || '',
          exps: exps,
          md5_id: ''
        }]
      }
    } else {
      param = {
        func: 'sPC_Get_TableData',
        obj_name: 'data',
        exec_type: window.GLOB.execType || 'y',
        arr_field: 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} ${arr_field} from (select ${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 ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${_orderBy}) as rows from ${_datasource} ${_search}) tmptable order by tmptable.rows `
      } else {
        sql = `/*system_query*/select ${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.genericInterface(param).then(result => {
      if (result.status) {
@@ -287,10 +360,10 @@
        config.tabUuid && MKEmitter.emit('mkFC', 'focus', config.tabUuid)
        if (config.subFields) {
          setTimeout(() => {
            this.props.onSubmit(config.tabUuid)
            this.props.onSubmit(config.tabUuid, config.errTabUuid)
          }, 1000)
        } else {
          this.props.onSubmit(config.tabUuid)
          this.props.onSubmit(config.tabUuid, config.errTabUuid)
        }
      }
    })