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 相关文章推荐
使用Firebug对js进行断点调试的图文方法
Apr 02 Javascript
jQuery的Ajax的自动完成功能控件简要说明
Feb 22 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
Apr 18 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
jQuery中:first选择器用法实例
Dec 30 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
Node.js复制文件的方法示例
Dec 29 Javascript
js模块加载方式浅析
Aug 12 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 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
两个开源的Php输出Excel文件类
2010/02/08 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
使用jquery实现简单的ajax
2013/07/08 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
详解Vue之计算属性
2020/06/20 Javascript
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
pycharm设置注释颜色的方法
2018/05/23 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
二年级体育教学反思
2014/01/15 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
青年文明号事迹材料
2014/01/18 职场文书
赡养老人协议书
2014/04/21 职场文书
《秋游》教学反思
2014/04/24 职场文书
ktv筹备计划书
2014/05/03 职场文书
大学生创业计划书
2014/08/14 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
2015年校长新年寄语
2014/12/08 职场文书
参观邀请函范文
2015/02/02 职场文书
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL