[Form Generator][一期替代方案]调用接口数据到opitions

该博客介绍了如何在Form Generator中利用接口数据填充el-cascader组件的选项。通过在组件config.js中设置私有属性(private_: {assField: ''}),并新增控制层代码,实现在RightPanel.vue中的接口调用。控制层UI设计和点击操作后的流程也进行了说明,作为接口替代方案的临时解决方案。

el-cascader的数据调用

设置新增私有属性 (private_: {assField: ‘’},) 需要每个组件里面都添加(位置组件config.js)

// 选择型组件 【左面板】
export const selectComponents = [
  {
    __config__: {
      private_: {assField: ''},

新增控制层的代码

  • 代码位置RightPanel.vue(可以使用全局搜索RightPanel找位置)
<el-form-item
   v-if="activeData.__config__.label!==undefined&&activeData.__config__.tag ==='el-cascader'"
   label="字段类型">
   <el-select
     v-model="activeData.__config__.private_.assField"
     placeholder="请选择字段类型"
     :style="{width: '100%'}"
     @change="assFieldChange"
   >
     <el-option
       v-for="item in config_.assField"
       :key="item.label"
       :label="item.label"
       :value="item.value"
     >
     </el-option>
   </el-select>
 </el-form-item>
 // js代码 this.static.config下的对应配置数组是提前放置的
assFieldChange (val) {
  console.log('val', val, this.a
要将 form generator 集成到 Vue 项目中,可从核心技术、项目结构适配、代码引用与组件注册、配置与数据绑定等方面着手。 form-generator 中一个非常重要的是 render 渲染函数,它不仅在这个项目里,在整个 Vue.js 框架中也是核心,和 template 模板开发类似,但更接近底层。若对 render 不了解,建议多学习和实践,这对后续普通开发和组件封装有帮助 [^4]。 从项目结构上,要根据项目需求对 form generator 进行适配。如果需要引用自定义表格到项目,要对相关文件进行修改。模板部分,在正则校验后新增编辑表格属性的标签,在末尾新增 `<ColumnEdit ref="columnEditRef" :active-column="activeColumn" />`;导入部分,从 config.js 中引入 columnSchema 方法,导入并注册 ColumnEdit 组件,新增一个响应数据 activeColumn;methods 中新增一系列方法;css 中新增 `.edit-btn` 样式 [^5]。 在代码引用方面,可参考 Vue 表单生成器的使用方式,在组件中使用 `<vue-form-generator :schema="schema" :model="model" :options="formOptions"></vue-form-generator>`,通过这种方式将表单生成器集成到项目组件中 [^2]。 还需进行配置与数据绑定,根据 form generator 的功能,将生成的代码直接运行在基于 Element 的 Vue 项目中;也可导出 JSON 表单,使用配套的解析器将 JSON 解析成真实的表单,同时确保表单的 schema、model 和 options 等数据正确绑定到组件上 [^3]。 ### 示例代码 ```vue <template> <div> <vue-form-generator :schema="schema" :model="model" :options="formOptions"></vue-form-generator> <!-- 若有自定义表格相关 --> <ColumnEdit ref="columnEditRef" :active-column="activeColumn" /> </div> </template> <script> import { columnSchema } from './config.js'; import ColumnEdit from './ColumnEdit.vue'; export default { components: { ColumnEdit }, data() { return { schema: {}, // 表单配置 model: {}, // 表单数据 formOptions: {}, // 表单选项 activeColumn: {} // 自定义表格相关响应数据 }; }, methods: { // 新增的一系列方法 } }; </script> <style scoped> .edit-btn { /* 新增的样式 */ } </style> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值