You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.8 KiB
JavaScript

import {
addVariables
} from './script.js';
import {
addCode
} from './template.js';
import {
getInputCode
} from './input.js';
const elementEnum = {
'hw-input': getInputCode
};
const getFormCode = (data) => {
let code = ``;
let variablesCode = ``;
let functionCode = ``;
let isForm = data.isForm || false;
let formData = data.elementData || {};
let tier = data.tier || [];
let parentData = data.formData || {};
addVariables(tier, formData.options.key || ('form-' + formData.options.uuid), {});
if (isForm) {
// code += `<el-form-item label="${formData.options.name || ''}" required="${formData.options.required}">`;
addCode(`<el-form-item label="${formData.options.name || ''}" required="${formData.options.required}">`);
} else {
console.log(123123);
// code += `<div> `;
addCode(`<div> `);
}
tier.push(formData.options.key || ('form-' + formData.options.uuid));
// code += `<el-form :model="pageForm['${formData.options.key || ('form-' + formData.options.uuid)}']" label-width="${formData.options.labelWidth}" >`;
addCode(`<el-form :model="pageForm['${formData.options.key || ('form-' + formData.options.uuid)}']" label-width="${formData.options.labelWidth}" >`);
formData.tasks.forEach(task => {
console.log(task);
if (task.type === 'hw-form') {
getFormCode({
isForm: true, formData: formData, elementData: task, tier
});
} else {
elementEnum[task.type]({
isForm: true, formData: formData, elementData: task, tier
});
}
});
// code += `</el-form>`;
addCode(`</el-form>`);
if (isForm) {
// code += `</el-form-item>`;
addCode(`</el-form-item>`);
} else {
// code += `</div>`;
addCode(`</div>`);
}
addCode(code);
};
export {
getFormCode
};