vue动态配置模板 'component is'代码


Posted in Javascript onJuly 04, 2019

实现代码如下

<template>
 <div v-if='object.child'>
   <div v-for="(item,ix) in object.child" :key="ix">
    <component :is="item.xtype" v-if='item'
     :objectVlue="objectVlue"
     :object="item">
    </component>
   </div>
 </div>
</template>
<script>
export default {
 data() {
  return {
  };
 },
 props: {
  objectVlue:Object,
  object:Object,
 },
 created() {
  var itemType = require(`../units/unit-type.js`).default||{};//1.0
  this.object.child.forEach(item=>{
   if(item.fileName){
    item.objDefault = require(`@/scene/${this.$route.query.typeName}/config/${item.fileName}.js`);//2.0
   }   
  })

  this.object.child.forEach(item=>{//动态显示当前组件
   if(itemType[item.xtype])
   Vue.component(
    itemType[item.xtype].componentName,
    () => import(`@/components/info-collection/moudel/${itemType[item.xtype].fileName}`)
   )
  })
 }
};
</script>
//1.0=============unit-type.js所有模板配置文件 =======================
export default {
 tablePartMerge: {//表格合并模板xtype
   componentName: "tablePartMerge",//组件名称
   fileName: "table-partInfo-merge"//文件所在路径
 },
 tablePartInfo: {
   componentName: "tablePartInfo",
   fileName: "table-partInfo"
 },
 ueditorUnit: {
   componentName: "ueditorUnit",
   fileName: "unit-ueditor"
 },
 filesUnit: {
   componentName: "filesUnit",
   fileName: "unit-files"
 },
 approves: {  // 正文信息(审批记录)
   componentName: "approves",
   fileName: "approves-unit"
 },
 requiredDate:{ // 要求完成日期
  componentName: "requiredDate",
  fileName: "required-date"
 },
}
//2.0====== table-partInfo-merge.js =========
module.exports = {
 "columns":[{
  "id": "partNumber",
  "disabled": false,
  "name":"物料编码",
  "placeholder": "",
  "required": true,
  "selectDetail": [],
  "show": false,
  "span": 24,
  "width":"150",
  "xtype": "select"//组件内用的表格
 }]
}

//=============父级传过来的 object =======================
module.exports = [
  {
    title: '正文信息',
    name: '1',
    id:"",
    child:[
      {
        id:'partInfoData',//id
        show:'true',//是否显示
        fileName:'tablePartInfo',//文件路径名
        xtype:'tablePartMerge'//表格模块
      },
      {
        id:'mainAttachements',//文本编辑器
        show:'true',
        fileName:'',
        xtype:'filesUnit'
      },
      {
        id:'vivo_RequestCompletionTime',//时间选择模块
        show:'true',
        fileName:'',
        xtype:'requiredDate'
      },
      {
        id:'approves',
        show:'true',
        fileName:'approval',
        xtype:'approves'
      }
    ]
  }
];

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
AngularJS 过滤器(自带和自建)详解
Sep 19 Javascript
用原生js做单页应用
Jan 17 Javascript
vue的一个分页组件的示例代码
Dec 25 Javascript
vue axios登录请求拦截器
Apr 02 Javascript
JavaScript实现简单的文本逐字打印效果示例
Apr 12 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 Javascript
vue实现列表垂直无缝滚动
Apr 08 Vue.js
react 移动端实现列表左滑删除的示例代码
Jul 04 #Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 #jQuery
小程序中canvas的drawImage方法参数使用详解
Jul 04 #Javascript
vue如何限制只能输入正负数及小数
Jul 04 #Javascript
Vue项目中ESlint规范示例代码
Jul 04 #Javascript
你或许不知道的一些npm实用技巧
Jul 04 #Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 #Javascript
You might like
PHP生成带有雪花背景的验证码
2006/10/09 PHP
PHP的FTP学习(三)
2006/10/09 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python while 循环使用的简单实例
2016/06/08 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
python opencv之分水岭算法示例
2018/02/24 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
python logging日志模块原理及操作解析
2019/10/12 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
python模拟实现斗地主发牌
2020/01/07 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
全运会口号
2014/06/20 职场文书
课外活动总结范文
2014/07/09 职场文书
植物生产学专业求职信
2014/08/08 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
新闻人物通讯稿
2014/10/09 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
婚礼父母致辞
2015/07/28 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python