国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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組件模板形式實現對象數組數據循環為樹形結構(實例代碼)

來源:懂視網 責編:小采 時間:2020-11-27 22:33:52
文檔

Vue組件模板形式實現對象數組數據循環為樹形結構(實例代碼)

Vue組件模板形式實現對象數組數據循環為樹形結構(實例代碼):數據結構為數組中包含對象--樹形結構,用Vue組件的寫法實現以下的效果: 樹形列表,縮進顯示層級,第5級數據加底色,數據樣式顯色,點擊展開折疊數據。本文為用Vue實現方式,另有一篇為用knockout.js的實現方法。 html代碼 <div id=tabl
推薦度:
導讀Vue組件模板形式實現對象數組數據循環為樹形結構(實例代碼):數據結構為數組中包含對象--樹形結構,用Vue組件的寫法實現以下的效果: 樹形列表,縮進顯示層級,第5級數據加底色,數據樣式顯色,點擊展開折疊數據。本文為用Vue實現方式,另有一篇為用knockout.js的實現方法。 html代碼 <div id=tabl

數據結構為數組中包含對象--樹形結構,用Vue組件的寫法實現以下的效果:

樹形列表,縮進顯示層級,第5級數據加底色,數據樣式顯色,點擊展開折疊數據。本文為用Vue實現方式,另有一篇為用knockout.js的實現方法。

html代碼

 <div id="table-component-div">
 <table-component v-for="item in data1" v-bind:list="item"></table-component>
 </div>

組件模板代碼

<script type="text/x-template" id="table-component-template">
 <div class="tem">
 <div class="tem-p">
 <div v-on:click="toggleClick"><i v-bind:style="{'visibility':list.number!=0?'visible':'hidden'}">{{list.number}}</i><span>{{list.name}}</span></div>
 <!--綁定數據-->
 <div><span>{{list.energyone}}</span></div>
 <div><span>{{list.energytwo}}</span></div>
 <div><span>{{list.energythree}}</span></div>
 <!--綁定class,使數值顯示出區分-->
 <div><span v-bind:class="{'isgreen':list.huanRatio<0,'isred':list.huanRatio>100}">{{list.huanRatio}}<em>%</em></span></div>
 <div><span v-bind:class="{'isgreen':list.tongRatio<0,'isred':list.tongRatio>100}">{{list.tongRatio}}<em>%</em></span></div>
 </div>
 <div class="tem-c">
 <!-- 子組件 -->
 <table-component v-for="itemc in list.child" :list="itemc"></table-component>
 </div>
 </div>
</script>

JavaScript代碼

/* 數據結構 */
 var ko_vue_data=[
 {
 name: "總能耗",
 number:"0",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: [
 {
 name: "租戶電耗",
 number:"1",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: []
 },
 {
 name: "公共用電",
 number:"2",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: [
 {
 name: "暖通空調",
 number:"2.1",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: [
 {
 name: "冷站",
 number:"2.1.1",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: [
 {
 name: "冷水機組",
 number:"2.1.1.1",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: []
 }
 ]
 },
 {
 name: "熱力站",
 number: "2.1.2",
 energyone: 14410,
 energytwo: 1230,
 energythree: 1230,
 huanRatio: -36.8,
 tongRatio: 148.5,
 child: []
 }
 ]
 }
 ]
 }
 ]
 }
 ];
 /* 注冊組件 */
 Vue.component('table-component', {
 template:"#table-component-template",//模板
 props:['list'],//傳遞數據
 computed:{//計算屬性
 isFolder: function () {//判斷數據有沒有子集,此效果中暫沒用到,有需要的可以看下具體使用方式
 return this.list.child && this.list.child.length > 0;
 }
 },
 methods:{
 /* 展開折疊操作 */
 toggleClick:function(event){
 event.stopPropagation();//阻止冒泡
 var _this = $(event.currentTarget);//點擊的對象
 if (_this.parent().next().is(":visible")) {
 _this.parent().next().slideUp();
 } else {
 _this.parent().next().slideDown();
 }
 }
 }
 });
 /* 創建實例 */
 new Vue({
 el:"#table-component-div",//掛載dom
 data:{
 data1:ko_vue_data//數據
 }
 })

數據顯示完畢,接下來是樣式效果,縮進顯示層級及底色顯示。

css代碼

.tem-p{
 clear: both;
 border-bottom: 1px solid #dddddd;
 height: 30px;
 line-height: 30px;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
 }
 .tem-p>div{
 float: left;
 width:100px;
 box-sizing: border-box;
 -ms-text-overflow: ellipsis;
 text-overflow: ellipsis;
 white-space:nowrap;
 overflow: hidden;
 text-align: center;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
 height: 100%;
 border-right: 1px solid #dddddd;
 }
 .tem-p>div:first-of-type{
 width: 298px;
 text-align: left;
 }
 .tem>.tem-c .tem-p>div:first-of-type{
 padding-left: 30px;
 }
 .tem>.tem-c .tem-c .tem-p>div:first-of-type{
 padding-left: 60px;
 }
 .tem>.tem-c .tem-c .tem-c .tem-p>div:first-of-type{
 padding-left: 90px;
 }
 .tem>.tem-c .tem-c .tem-c .tem-c .tem-p>div:first-of-type{
 padding-left: 120px;
 }
 .tem>.tem-c .tem-c .tem-c .tem-c .tem-p{
 background-color: #f8f8f8;
 }
 .tem>.tem-c .tem-c .tem-c .tem-c .tem-c .tem-p>div:first-of-type{
 padding-left: 150px;
 }
 .lastChild{
 background: #f8f8f8;
 }
 .isred{
 color: red;
 }
 .isgreen{
 color: green;
 }

總結

以上所述是小編給大家介紹的Vue組件模板形式實現對象數組數據循環為樹形結構,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

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

文檔

Vue組件模板形式實現對象數組數據循環為樹形結構(實例代碼)

Vue組件模板形式實現對象數組數據循環為樹形結構(實例代碼):數據結構為數組中包含對象--樹形結構,用Vue組件的寫法實現以下的效果: 樹形列表,縮進顯示層級,第5級數據加底色,數據樣式顯色,點擊展開折疊數據。本文為用Vue實現方式,另有一篇為用knockout.js的實現方法。 html代碼 <div id=tabl
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 天堂精品高清1区2区3区 | 一区二区三区中文字幕 | 欧美国产中文 | 国产中文字幕视频 | 91精品国产色综合久久 | 久久精品欧美日韩精品 | 老司机精品视频一区二区 | 中文国产成人精品少久久 | 欧美久久天天综合香蕉伊 | 日本孕妇与黑人xxxxxx | 久久99精品一久久久久久 | 九九啪啪 | 亚洲国产精品免费观看 | 久久99精品一久久久久久 | 国产一级理论免费版 | 欧美日韩国产色 | 日韩一区二区三区在线播放 | 欧美国产中文 | 久久精品一级 | 亚洲伊人电影 | 日韩有码在线播放 | 国产一级做a爰片在线看 | 91精品一区二区 | 欧美 日韩 国产 在线 | 一区二区三区久久 | 国产高清美女一级a毛片久久 | 2020精品极品国产色在线观看 | 精品一区二区三区在线成人 | 亚洲永久精品一区二区三区 | 国产不卡在线观看 | 亚欧色 | 国产欧美日韩中文字幕 | 成人精品一区二区www | 欧美视频精品一区二区三区 | 99久久综合 | 国产精品成人久久久久久久 | 亚洲欧美日本在线观看 | 九九精品视频一区二区三区 | 性欧美大战久久久久久久野外黑人 | 欧美一区二区三区视频 | 小说区 亚洲 自拍 另类 |