import { getVModelHtml, formItemWrapper, colWrapper } from './common/htmlWrapper' // 创建“el-option” function createOptionHtml(select) { let optionHtml = '' const slot = select.__slot__ if (slot && slot.options && slot.options.length) { // optionHtml = `` slot.options.forEach(option => { optionHtml += `\n` }) } return optionHtml } // 创建“el-option” function createOptionHtmlForTable(select) { const options = [] select.__slot__.options.forEach(option => { options.push(``) }) return options.join('\n') } // 创建“el-select” function createSelectHtml(formJson, select, parent) { const vModel = getVModelHtml(formJson, select, parent) const placeholder = select.placeholder ? `placeholder="${select.placeholder}"` : '' const width = select.style && select.style.width ? ':style="{width: \'100%\'}"' : '' const disabled = select.disabled ? ':disabled=\'true\'' : '' const filterable = select.filterable ? 'filterable' : '' const multiple = select.multiple ? 'multiple' : '' // 创建“el-option” let optionHtml = select.inTable ? createOptionHtmlForTable(select) : createOptionHtml(select) // 换行 if (optionHtml) optionHtml = `\n${optionHtml}\n` return `${optionHtml}` } /** * 获取下拉选择HTML * @param formJson 表单结构 * @param select 下拉选择组件 * @param parent 父组件(dialog, table...) * @param isSomeSpanUnequal24 是否有的组件“span”不等于“24” * @returns {string} 下拉选择HTML */ export default function getSelectHtml(formJson, select, parent, isSomeSpanUnequal24) { // 创建“el-select” const selectHtml = createSelectHtml(formJson, select, parent) // 用“el-form-item”包裹“el-select” let formItemHtml = formItemWrapper(formJson, select, selectHtml) // span不为24的用“el-col”包裹“el-form-item” if (isSomeSpanUnequal24) { formItemHtml = colWrapper(select, formItemHtml) } return formItemHtml }