最新文章專題視頻專題問答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
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

vue動態(tài)配置模板 'component is'代碼

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 21:54:08
文檔

vue動態(tài)配置模板 'component is'代碼

vue動態(tài)配置模板 'component is'代碼:實現(xiàn)代碼如下 <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動態(tài)配置模板 'component is'代碼:實現(xiàn)代碼如下 <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

實現(xiàn)代碼如下

<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=>{//動態(tài)顯示當前組件
 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"http://文件所在路徑
 },
 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"http://組件內用的表格
 }]
}

//=============父級傳過來的 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'
 }
 ]
 }
];

聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vue動態(tài)配置模板 'component is'代碼

vue動態(tài)配置模板 'component is'代碼:實現(xiàn)代碼如下 <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 動態(tài) 代碼
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top