king
2023-05-18 e9e8b1c7b481415714fff9a0d83099fd5a7d6ff0
src/utils/utils-custom.js
@@ -517,73 +517,40 @@
          })
        }
      } else if (item.type === 'table' && item.cols) {
        let loopCol = (col) => {
          col.subcols = col.subcols.map(c => {
            c.uuid = md5(commonId + c.uuid)
            if (c.type === 'colspan' && c.subcols) {
              c = loopCol(c)
            } else if (c.type === 'custom' && c.elements) {
              c.elements = c.elements.map(cell => {
                cell.uuid = this.getuuid()
        let loopCol = (cols) => {
          return cols.map(col => {
            if (col.type === 'action') {
              col.type = 'custom'
            }
                return cell
              })
            } else if (c.type === 'action' && c.elements) {
              c.elements = c.elements.map(cell => {
            col.uuid = md5(commonId + col.uuid)
            if (col.type === 'colspan' && col.subcols) {
              col.subcols = loopCol(col.subcols)
            } else if (col.type === 'custom' && col.elements) {
              col.elements = col.elements.map(cell => {
                cell.uuid = md5(commonId + cell.uuid)
                if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
                  cell.pageTemplate = ''
                  cell.linkmenu = ''
                }
                if (cell.eleType === 'button') {
                  if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
                    cell.pageTemplate = ''
                    cell.linkmenu = ''
                  }
                this.resetBtn(cell, commonId)
                  this.resetBtn(cell, commonId)
                }
                return cell
              })
            }
            return c
          })
          return col
        }
        item.cols = item.cols.map(col => {
          col.uuid = md5(commonId + col.uuid)
          if (col.type === 'colspan' && col.subcols) {
            col = loopCol(col)
          } else if (col.type === 'custom' && col.elements) {
            col.elements = col.elements.map(cell => {
              cell.uuid = this.getuuid()
              return cell
            })
          } else if (col.type === 'action' && col.elements) {
            col.elements = col.elements.map(cell => {
              cell.uuid = md5(commonId + cell.uuid)
              this.resetBtn(cell, commonId)
              return cell
            })
          }
          return col
        })
        if (item.subtype === 'editable') {
          item.cols = item.cols.map(col => {
            if (col.editable === 'true' && col.enter) {
            } else if (col.editable === 'true' && col.enter) {
              col.enter = md5(commonId + col.enter)
            } else if (col.type === 'colspan' && col.subcols) {
              col.subcols = col.subcols.map(c => {
                if (c.editable === 'true' && c.enter) {
                  c.enter = md5(commonId + c.enter)
                }
                return c
              })
            }
            return col
          })
        }
        item.cols = loopCol(item.cols)
      } else if (item.type === 'form') {
        item.subcards = item.subcards.map(cell => {
          cell.uuid = this.getuuid()
@@ -831,63 +798,43 @@
        })
      }
    } else if (item.type === 'table' && item.cols) {
      let loopCol = (col) => {
        col.subcols = col.subcols.map(c => {
          c.uuid = this.getuuid()
      let loopCol = (cols) => {
        return cols.map(col => {
          if (col.type === 'action') {
            col.type = 'custom'
          }
          if (c.type === 'colspan' && c.subcols) {
            c = loopCol(c)
          } else if (c.type === 'custom' && c.elements) {
            c.elements = c.elements.map(cell => {
              cell.uuid = this.getuuid()
          col.uuid = md5(commonId + col.uuid)
          if (col.type === 'colspan' && col.subcols) {
            col.subcols = loopCol(col.subcols)
          } else if (col.type === 'custom' && col.elements) {
            if (sessionStorage.getItem('editMenuType') === 'popview') {
              col.elements = col.elements.filter(c => c.eleType !== 'button' || (c.OpenType !== 'popview' && c.OpenType !== 'funcbutton'))
            }
            col.elements = col.elements.map(cell => {
              cell.uuid = md5(commonId + cell.uuid)
              if (cell.eleType === 'button') {
                if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
                  if (cell.modal && cell.modal.fields.length > 0) {
                    cell.modal.fields = cell.modal.fields.map(m => {
                      m.uuid = this.getuuid()
                      return m
                    })
                  }
                }
              }
              return cell
            })
          }
          return c
        })
        return col
      }
      item.cols = item.cols.map(col => {
        col.uuid = md5(commonId + col.uuid)
        if (col.type === 'colspan' && col.subcols) {
          col = loopCol(col)
        } else if (col.type === 'custom' && col.elements) {
          col.elements = col.elements.map(cell => {
            cell.uuid = this.getuuid()
            return cell
          })
        } else if (col.type === 'action' && col.elements) {
          if (sessionStorage.getItem('editMenuType') === 'popview') {
            col.elements = col.elements.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton')
          }
          col.elements = col.elements.map(cell => {
            cell.uuid = md5(commonId + cell.uuid)
            if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
              if (cell.modal && cell.modal.fields.length > 0) {
                cell.modal.fields = cell.modal.fields.map(m => {
                  m.uuid = this.getuuid()
                  return m
                })
              }
            }
            return cell
          })
        }
        return col
      })
      if (item.subtype === 'editable') {
        item.cols = item.cols.map(col => {
          if (col.editable === 'true' && col.enter) {
          } else if (col.editable === 'true' && col.enter) { // 可编辑表
            col.enter = md5(commonId + col.enter)
          }
          return col
        })
      }
      item.cols = loopCol(item.cols)
    } else if (item.type === 'form') {
      item.subcards = item.subcards.map(cell => {
        cell.uuid = this.getuuid()
@@ -1094,23 +1041,31 @@
    })
  }
  config.cols && config.cols.forEach(col => {
    if (col.type === 'action') {
      col.elements.forEach(cell => {
        if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) {
          action.push(cell)
        } else if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) {
          action.push(cell)
        } else if (cell.OpenType === 'popview') {
          if (pops) {
            pops.push({...cell, parentId: config.uuid})
          } else if (cell.config && cell.config.$tables) {
            tables.push(...cell.config.$tables)
          }
  if (config.cols) {
    let loopCol = (cols) => {
      cols.forEach(col => {
        if (col.type === 'colspan') {
          loopCol(col.subcols)
        } else if (col.type === 'custom') {
          col.elements.forEach(cell => {
            if (cell.eleType !== 'button') return
            if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) {
              action.push(cell)
            } else if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) {
              action.push(cell)
            } else if (cell.OpenType === 'popview') {
              if (pops) {
                pops.push({...cell, parentId: config.uuid})
              } else if (cell.config && cell.config.$tables) {
                tables.push(...cell.config.$tables)
              }
            }
          })
        }
      })
    }
  })
    loopCol(config.cols)
  }
  config.elements && config.elements.forEach(cell => {
    if (cell.eleType !== 'button') return
@@ -1394,27 +1349,27 @@
  if (card.$c_cl) {
    card.cols.forEach(col => {
      if (col.type === 'action') {
      if (col.type === 'custom') {
        col.elements.forEach(cell => {
          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}”中表单尚未添加`})
          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}”中导出列未设置!`})
            }
          } 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}”中导出列未设置!`})
          }
          if (doubleClick === cell.uuid) {
            doubleClick = ''
          }
        })
      } else if (col.type === 'custom') {
        col.elements.forEach(cell => {
          if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) {
            errors.push({ level: 1, detail: `显示列“${col.label}”中动态字段“${cell.field}”无效`})
            if (doubleClick === cell.uuid) {
              doubleClick = ''
            }
          } else {
            if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) {
              errors.push({ level: 1, detail: `显示列“${col.label}”中动态字段“${cell.field}”无效`})
            }
          }
        })
      } else if (col.field && !columns.includes(col.field)) {