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 语言的递归编程
May 18 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 Javascript
javascript笛卡尔积算法实现方法
Apr 08 Javascript
4种JavaScript实现简单tab选项卡切换的方法
Jan 06 Javascript
js+css实现select的美化效果
Mar 24 Javascript
JS 对象(Object)和字符串(String)互转方法
May 20 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
Dec 28 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
Dec 06 Javascript
如何制作一个Node命令行图像识别工具
Dec 12 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
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
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
Python 处理文件的几种方式
2019/08/23 Python
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
临床护士自荐信
2014/01/31 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
GPU服务器的多用户配置方法
2022/07/07 Servers