我想生成高度可定制的输入表单。从外部数据库中,我收到一个代表所需输入表单结构的对象。
我将提供两个示例
文档示例1:
文档示例2:
属性说明:
这里的事情真的很棘手。
什么需要传递给服务器?
仅仅需要每个表单组件的ID和值。每个前端应用程序可能会以不同的方式解决问题。
这里有一些动态输入形式的示例(语言是德语,但这没关系)。
实施:
每个数据对象代表一种输入形式。它创建一个遮罩组件,并传入 RESULT 属性
<template>
<form class="mask" @submit.prevent="saveMask">
<MaskItem v-for="maskItem in documentData" :key="maskItem.ID" :maskItemData="maskItem"/>
<button id="btnSave" type="submit">
Save
</button>
</form>
</template>
<script>
import MaskItem from "./maskItem.vue";
export default {
name: "mask",
components: {
MaskItem
},
props: {
documentData: Array /* The RESULT array from the document object */
},
methods: {
saveMask: function(){
// loop through all maskItems and get the ID and their value
}
}
};
</script>
掩码本身应该为每个数组项创建一个输入组件。
<template>
<div class="maskItem">
Item
</div>
</template>
<script>
export default {
name: "maskItem",
props: {
maskItemData: Object
}
};
</script>
因此,我知道我可以使用3000行(或更多)充满if语句的代码的JavaScript解决此问题。如果需要,是否可以通过提供的数据类型和设置依赖项来创建文本字段组件,数字字段,日期字段……?
正如我提到的那样,服务器只希望该组件具有ID和一个或多个值,因此可以有多种解决方案来解决这个问题。
请让我知道是否缺少某些信息!
答案 0 :(得分:2)
您的任务有很多挑战:
建议:
P.S。您可以搜索already done个或大部分
的库