import { formItemWrapper, colWrapper } from './common/htmlWrapper'
// 创建“el-button”
function createButtonHtml(upload) {
let buttonHtml = ''
const config = upload.__config__
if (upload['list-type'] === 'picture-card') {
buttonHtml += '\n'
} else {
buttonHtml += `${config.buttonText}\n`
}
if (config.showTip) {
buttonHtml += `
只能上传不超过 ${config.fileSize}${config.sizeUnit} 的${upload.accept}文件
`
}
return buttonHtml
}
// 创建“el-upload”
function createUploadHtml(formJson, upload, parent) {
// const vModel = getVModelHtml(formJson, upload, parent)
const vModel = upload.__vModel__
const disabled = upload.disabled ? ':disabled=\'true\'' : ''
const action = upload.action ? `:action="${vModel}Action"` : ''
const multiple = upload.multiple ? 'multiple' : ''
const listType = upload['list-type'] !== 'text' ? `list-type="${upload['list-type']}"` : ''
const accept = upload.accept ? `accept="${upload.accept}"` : ''
const name = upload.name !== 'file' ? `name="${upload.name}"` : ''
const autoUpload = upload['auto-upload'] === false ? ':auto-upload="false"' : ''
const beforeUpload = `:before-upload="${vModel}BeforeUpload"`
const fileList = `:file-list="${vModel}fileList"`
const ref = `ref="${vModel}"`
// 创建“el-button”
const buttonHtml = createButtonHtml(upload)
return `${buttonHtml}`
}
/**
* 获取“上传”HTML
* @param formJson 表单结构
* @param upload “上传”组件
* @param parent 父组件(dialog, table...)
* @param isSomeSpanUnequal24 是否有的组件“span”不等于“24”
* @returns {string} “上传”HTML
*/
export default function getUploadHtml(formJson, upload, parent, isSomeSpanUnequal24) {
// 创建“el-upload”
const uploadHtml = createUploadHtml(formJson, upload, parent)
// 用“el-form-item”包裹“el-upload”
let formItemHtml = formItemWrapper(formJson, upload, uploadHtml)
// span不为24的用“el-col”包裹“el-form-item”
if (isSomeSpanUnequal24) {
formItemHtml = colWrapper(upload, formItemHtml)
}
return formItemHtml
}