king
2022-11-21 f6626b05f1275cc2f8ca77f773d4f6a6af1b0a89
src/menu/sysinterface/index.jsx
@@ -160,8 +160,44 @@
  changeScripts = (interfaces) => {
    const { config } = this.props
    interfaces = interfaces.map(item => {
      item.$tables = this.getTables(item)
      return item
    })
    this.setState({ interfaces })
    this.props.updateConfig({...config, interfaces})
  }
  getTables = (record) => {
    let tables = []
    let cuts = []
    let cutreg = /(from|update|insert\s+into)\s+(@db@)?[a-z_]+/ig
    let trimreg = /(from|update|insert\s+into)\s+(@db@)?/ig
    if (record.setting.interType === 'system') {
      if (record.setting.execute !== 'false') {
        let tbs = record.setting.dataresource.match(cutreg)
        tbs && cuts.push(...tbs)
      }
      record.scripts && record.scripts.forEach(script => {
        if (script.status === 'false') return
        let tbs = script.sql.match(cutreg)
        tbs && cuts.push(...tbs)
      })
    } else {
      let tb = record.setting.tableName.replace(/@db@|\s+/ig, '')
      if (/[a-z_]+/ig.test(tb)) {
        tables.push(tb)
      }
    }
    cuts = cuts.map(item => item.replace(trimreg, ''))
    tables.push(...cuts)
    tables = tables.filter(Boolean)
    tables = Array.from(new Set(tables))
    return tables
  }
  update = (record) => {
@@ -173,6 +209,7 @@
      record.status = 'false'
    }
    record.name = record.setting.name
    record.$tables = this.getTables(record)
    let interfaces = this.state.interfaces.map(item => {
      if (item.uuid !== record.uuid) {