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 = ` ` } 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 }