king
2023-11-03 eb0482b3fc2e91a626baa6ac73e75e0b0038f552
src/utils/utils-custom.js
@@ -558,6 +558,13 @@
        }
        item.cols = loopCol(item.cols)
        if (item.colsCtrls) {
          item.colsCtrls = item.colsCtrls.map(col => {
            col.cols = col.cols.map(f => md5(commonId + f))
            return col
          })
        }
      } else if (item.type === 'form') {
        item.subcards = item.subcards.map(cell => {
          cell.uuid = this.getuuid()
@@ -851,6 +858,13 @@
      }
      item.cols = loopCol(item.cols)
      if (item.colsCtrls) {
        item.colsCtrls = item.colsCtrls.map(col => {
          col.cols = col.cols.map(f => md5(commonId + f))
          return col
        })
      }
    } else if (item.type === 'form') {
      item.subcards = item.subcards.map(cell => {
        cell.uuid = this.getuuid()
@@ -919,6 +933,13 @@
    if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') {
      item.setting.supModule = ''
    }
    if (item.wrap && item.wrap.supType === 'multi') {
      item.wrap.supType = 'single'
      delete item.supNodes
    }
    if (item.wrap && item.wrap.supModule) {
      item.wrap.supModule = ''
    }
@@ -1034,7 +1055,7 @@
    }
  })
  return searchText.join(' AND ')
  return searchText.length > 0 ? 'where ' + searchText.join(' AND ') : ''
}
/**
@@ -1546,6 +1567,11 @@
    } else if (card.type !== 'balcony' && !card.setting.supModule) {  // 悬浮框上级组件需单独设置
      errors.push({ level: 0, detail: '未设置上级组件!'})
    }
    if (card.subtype === 'dualdatacard' && card.subColumns) {
      card.subColumns.forEach(col => {
        columns.push(col.field)
      })
    }
  } else if ((card.type === 'balcony' || card.type === 'card') && card.wrap.datatype === 'public') {
    columns = card.columns.map(c => c.field)
  }
@@ -1553,6 +1579,31 @@
  let doubleClick = ''
  if (card.type === 'table') {
    doubleClick = card.wrap.doubleClick || ''
  }
  let checkBtn = (cell) => {
    if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
      if (!cell.modal || cell.modal.fields.length === 0) {
        errors.push({ level: 0, detail: `按钮“${cell.label}”中表单尚未添加`})
      }
    } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
      errors.push({ level: 0, detail: `按钮“${cell.label}”中导入列未设置!`})
    } else if (cell.OpenType === 'excelOut') {
      if (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0) {
        errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列未设置!`})
      } else if (cell.intertype === 'system' && cell.verify.dataType !== 'custom' && card.$c_ds && columns.length > 0) {
        let cols = []
        cell.verify.columns.forEach(col => {
          if (col.output === 'false' || col.Column === '$Index') return
          if (!columns.includes(col.Column)) {
            cols.push(col.Column)
          }
        })
        if (cols.length) {
          errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列(${cols.join('、')})在字段集中不存在!`})
        }
      }
    }
  }
  if (card.$c_ac) {
@@ -1565,15 +1616,7 @@
      //     errors.push({ level: 0, detail: `按钮“${cell.label}”中弹窗标签未启用`})
      //   }
      // }
      if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
        if (!cell.modal || cell.modal.fields.length === 0) {
          errors.push({ level: 0, detail: `按钮“${cell.label}”中表单尚未添加`})
        }
      } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
        errors.push({ level: 0, detail: `按钮“${cell.label}”中导入列未设置!`})
      } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
        errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列未设置!`})
      }
      checkBtn(cell)
      if (doubleClick === cell.uuid) {
        doubleClick = ''
      }
@@ -1586,15 +1629,7 @@
      item.elements.forEach(cell => {
        if (cell.eleType === 'button') {
          if (cell.hidden === 'true') return
          if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
            if (!cell.modal || cell.modal.fields.length === 0) {
              errors.push({ level: 0, detail: `按钮“${cell.label}”中表单尚未添加`})
            }
          } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
            errors.push({ level: 0, detail: `按钮“${cell.label}”中导入列未设置!`})
          } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
            errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列未设置!`})
          }
          checkBtn(cell)
          if (linkbtn && linkbtn === cell.uuid) {
            linkbtn = ''
          }
@@ -1607,15 +1642,7 @@
        item.backElements.forEach(cell => {
          if (cell.eleType === 'button') {
            if (cell.hidden === 'true') return
            if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
              if (!cell.modal || cell.modal.fields.length === 0) {
                errors.push({ level: 0, detail: `按钮“${cell.label}”中表单尚未添加`})
              }
            } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
              errors.push({ level: 0, detail: `按钮“${cell.label}”中导入列未设置!`})
            } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
              errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列未设置!`})
            }
            checkBtn(cell)
            if (linkbtn && linkbtn === cell.uuid) {
              linkbtn = ''
            }
@@ -1639,15 +1666,7 @@
    card.elements.forEach(cell => {
      if (cell.eleType === 'button') {
        if (cell.hidden === 'true') return
        if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
          if (!cell.modal || cell.modal.fields.length === 0) {
            errors.push({ level: 0, detail: `按钮“${cell.label}”中表单尚未添加`})
          }
        } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
          errors.push({ level: 0, detail: `按钮“${cell.label}”中导入列未设置!`})
        } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
          errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列未设置!`})
        }
        checkBtn(cell)
      } else if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) {
        errors.push({ level: 1, detail: `卡片中动态字段“${cell.field}”无效`})
      }
@@ -1660,15 +1679,8 @@
        col.elements.forEach(cell => {
          if (cell.eleType === 'button') {
            if (cell.hidden === 'true') return
            if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
              if (!cell.modal || cell.modal.fields.length === 0) {
                errors.push({ level: 0, detail: `按钮“${cell.label}”中表单尚未添加`})
              }
            } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
              errors.push({ level: 0, detail: `按钮“${cell.label}”中导入列未设置!`})
            } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
              errors.push({ level: 0, detail: `按钮“${cell.label}”中导出列未设置!`})
            }
            checkBtn(cell)
            if (doubleClick === cell.uuid) {
              doubleClick = ''