最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:54:08
文档

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

vue动态配置模板 'component is'代码:实现代码如下 <template> <div v-if='object.child'> <div v-for=(item,ix) in object.child :key=ix> <component :is=item.xtype v-if='item' :objectVlue=objectVl
推荐度:
导读vue动态配置模板 'component is'代码:实现代码如下 <template> <div v-if='object.child'> <div v-for=(item,ix) in object.child :key=ix> <component :is=item.xtype v-if='item' :objectVlue=objectVl


实现代码如下

<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'
 }
 ]
 }
];

文档

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

vue动态配置模板 'component is'代码:实现代码如下 <template> <div v-if='object.child'> <div v-for=(item,ix) in object.child :key=ix> <component :is=item.xtype v-if='item' :objectVlue=objectVl
推荐度:
标签: VUE 动态 代码
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top