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
}