king
2024-08-03 c18f79e01a2705d34d5ac2923a26913dba07ea14
src/menu/datasource/verifycard/index.jsx
@@ -4,7 +4,6 @@
import { Form, Tabs, Popconfirm, notification, Modal, Typography, Spin, message, Button, Input } from 'antd'
import { StopOutlined, CheckCircleOutlined, TableOutlined, EditOutlined, SwapOutlined, DeleteOutlined, CopyOutlined, BorderOutlined, SnippetsOutlined } from '@ant-design/icons'
import moment from 'moment'
import md5 from 'md5'
import Api from '@/api'
import Utils from '@/utils/utils.js'
@@ -216,9 +215,11 @@
    let columns = config.columns ? fromJS(config.columns).toJS() : []
    let subColumns = config.subColumns ? fromJS(config.subColumns).toJS() : []
    columns.reverse()
    if (!config.fixedCol) {
      columns.reverse()
    }
    subColumns.reverse()
    columns.forEach(col => {
      if (!col.datatype) return
      if (/^nvarchar/.test(col.datatype)) {
@@ -679,10 +680,8 @@
        _columns = [...columns, ...subColumns]
      }
      let r = SettingUtils.getDebugSql(setting, _scripts, _columns, searches, config.subtype)
      let r = SettingUtils.getDebugSql(setting, _scripts, _columns, searches, config.subtype, config.hasExtend)
      let _debugId = md5(r.sql)
      if (r.custompage && setting.laypage === 'true' && _columns.findIndex(col => col.field === 'mk_total') === -1) {
        if (config.subtype !== 'basetable') {
          Modal.warning({
@@ -702,7 +701,7 @@
        }
      }
      if (debugId === _debugId) {
      if (debugId === r.debugId) {
        resolve()
        return
      }
@@ -717,7 +716,7 @@
      Api.sDebug(r.sql).then(result => {
        if (result.status || result.ErrCode === '-2') {
          this.setState({debugId: _debugId}, () => {
          this.setState({debugId: r.debugId}, () => {
            resolve()
          })
        } else {
@@ -959,13 +958,19 @@
  }
  copyColumns = () => {
    const { columns, setting } = this.state
    const { config } = this.props
    const { columns, subColumns, setting } = this.state
    let _columns = columns
    let m = []
    let n = []
    let s = []
    columns.forEach(col => {
    if (subColumns && subColumns.length) {
      _columns = [...columns, ...subColumns]
    }
    _columns.forEach(col => {
      m.unshift(`${col.field} ${col.datatype}`)
      n.unshift(col.field)
      if (/decimal|int/ig.test(col.datatype)) {
@@ -980,7 +985,34 @@
    })
    if (window.debugger) {
      console.info('select ' + s.join(', '))
      window.mkInfo('select ' + s.join(', '))
    }
    let extend = ''
    if (config.hasExtend) {
      extend = []
      let mapCol = (cols) => {
        cols.forEach(col => {
          if (col.type === 'extend') {
            let datatype = 'Nvarchar(50)'
            _columns.forEach(c => {
              if (c.field === col.field) {
                datatype = c.datatype
              }
            })
            for (let i = 1; i < col.quota; i++) {
              extend.push(`${col.field}${i} ${datatype}`)
            }
          } else if (col.type === 'colspan' && col.subcols) {
            mapCol(col.subcols)
          }
        })
      }
      mapCol(config.cols)
      extend = `
      /* 扩展列字段 */
      /* ${extend.join(',')} */
      `
    }
    let oInput = document.createElement('input')
@@ -989,7 +1021,7 @@
    insert into #${setting.tableName || 'tb'}
    (${n.join(',')})
    select ${n.join(',')}
    from ${setting.dataresource ? `(${setting.dataresource}) tb` : setting.tableName || 'tb'}
    from ${setting.dataresource ? `(${setting.dataresource.replace(/\n/g, ' ')}) tb` : setting.tableName || 'tb'}
    order by @orderBy@
    
    declare @mk_total int
@@ -1003,7 +1035,9 @@
        delete #${setting.tableName || 'tb'} where sort_id > @pageIndex@*@pageSize@ 
      
      if @pageIndex_top > 0
        delete #${setting.tableName || 'tb'} where sort_id <= @pageIndex_top`
        delete #${setting.tableName || 'tb'} where sort_id <= @pageIndex_top
    drop table #${setting.tableName || 'tb'}${extend}`
    document.body.appendChild(oInput)
    oInput.select()
@@ -1037,8 +1071,6 @@
  addProcess = () => {
    const { config } = this.props
    const { columns } = this.state
    if (config.subtype === 'dualdatacard') return
    let fields = []
    let cols = []
@@ -1215,6 +1247,7 @@
            }}/> : null}
            <CustomScriptsForm
              type={config.type}
              hasExtend={config.hasExtend}
              setting={setting}
              searches={searches}
              defaultsql={defaultsql}