import getSimpleComponentHtml from './common/simpleComponentHtmlFactory'
// 创建“el-table-column”
function createTableColumnHtmls(dialog) {
  return dialog.__config__.children.map(child => {
    let tableColumnHtml = ''
    if (child.FComponentType === 'oneText' || child.FComponentType === 'datePicker') { // 单行文本、日期选择
      tableColumnHtml = ``
    } else if (child.FComponentType === 'select') { // 下拉选择
      let spanHtmls = ''
      child.__slot__.options.forEach((option, index) => {
        if (index === 0) {
          spanHtmls += `${option.label}\n`
        } else {
          spanHtmls += `${option.label}\n`
        }
      })
      tableColumnHtml = `
          
            
              ${spanHtmls}
            
          
        `
    }
    return tableColumnHtml
  })
}
// 创建“el-table”
function createTableHtml(dialog) {
  // 创建“el-button”
  const buttonHtml = `新增`
  // 创建“el-table-column”
  const tableColumnHtmls = createTableColumnHtmls(dialog)
  // 创建“el-table”
  const tableHtml = `
      
        ${tableColumnHtmls.join('\n')}
        
          
            编辑
            删除
          
        
      
    `
  return buttonHtml + tableHtml
}
// 创建“el-form”
function createFormHtml(formJson, dialog) {
  const formItemHtmls = dialog.__config__.children.map(
    child => getSimpleComponentHtml(formJson, child, dialog, false)
  )
  return `
    
      ${formItemHtmls.join('\n')}
    
    `
}
// 创建“el-dialog”
function createDialogHtml(dialog, formHtml) {
  return `
      
        ${formHtml}
        
      
    `
}
/**
 * 获取弹框HTML
 * @param formJson 表单结构
 * @param dialog  弹框组件
 * @returns {string} 弹框HTML
 */
export default function getDialogHtml(formJson, dialog) {
  // 创建“el-table”
  const tableHtml = createTableHtml(dialog)
  // 创建“el-form”
  const formHtml = createFormHtml(formJson, dialog)
  // 创建“el-dialog”
  const dialogHtml = createDialogHtml(dialog, formHtml)
  return tableHtml + dialogHtml
}