From 171558c783772979546d5c0285809165c273fc0e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 04 二月 2021 14:36:10 +0800
Subject: [PATCH] 添加giant tree 组件. 基于ztree
---
src/pages/shuohuangMonitorAnalyze/components/guideIndex.vue | 475 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 445 insertions(+), 30 deletions(-)
diff --git a/src/pages/shuohuangMonitorAnalyze/components/guideIndex.vue b/src/pages/shuohuangMonitorAnalyze/components/guideIndex.vue
index 8092860..f018f93 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/guideIndex.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/guideIndex.vue
@@ -39,8 +39,10 @@
<i class="el-icon-warning-outline"></i>
</span>
</div>
- <div class="val">8846</div>
- <div class="trend"></div>
+ <div class="val">{{$numberFormat(8846)}}</div>
+ <div class="trend">
+ <line-chart :options="optionsOfWeekAnalyze" style="height:50px"></line-chart>
+ </div>
<div class="devide"></div>
<div class="detail">
<div class="name">鏃ュ潎鍒嗘瀽閲�</div>
@@ -95,7 +97,7 @@
<div class="rt">
<time-shortcut @actPickerChange="timeShortChange"></time-shortcut>
<el-date-picker
- v-model="searchTime"
+ v-model="searchHidDanderTime"
type="datetimerange"
size="small"
range-separator="鑷�"
@@ -122,10 +124,13 @@
</el-select>
</div>
<div class="rank-list">
- <div class="rank-item">
- <span class="rank-index">1</span>
- <span class="name">鏈鸿締鍒嗗叕鍙�</span>
- <span class="val">323,234</span>
+ <div class="rank-item" v-for="(rankItem,index) in rankList" :key="rankItem.id">
+ <span
+ class="rank-index"
+ :class="{'first':index==0,'second':index==1,'third':index==2}"
+ >{{index+1}}</span>
+ <span class="name">{{rankItem.name}}</span>
+ <span class="val">{{rankItem.val}}</span>
</div>
</div>
</div>
@@ -145,18 +150,17 @@
<span class="val">8846</span>
<span class="ratio">17.1%</span>
</div>
- <line-chart :options="optionsOfIrregularSum" :defineW="300" :defineH="160"></line-chart>
+ <line-chart :options="optionsOfIrregularSum" style="height:70px"></line-chart>
</div>
<div class="gt">
<div class="chart-theme">浜哄潎杩濊娆℃暟</div>
<div class="sum">
<span class="val">8846</span>
</div>
- <!-- <line-chart :options="optionsOfIrregularPer"></line-chart> -->
- <line-chart :options="optionsOfIrregularPer" :defineW="300" :defineH="160"></line-chart>
+ <line-chart :options="optionsOfIrregularPer" style="height:70px"></line-chart>
</div>
</div>
- <el-table :data="irregularTableData">
+ <el-table class="thbg" :data="irregularTableData">
<el-table-column label="鎺掑悕"></el-table-column>
<el-table-column label="濮撳悕"></el-table-column>
<el-table-column label="杩濊娆℃暟"></el-table-column>
@@ -181,7 +185,11 @@
<time-shortcut @actPickerChange="irregularEventStatistic"></time-shortcut>
</div>
<div class="statics-content">
- <el-radio-group v-model="irregularEventType" size="small">
+ <el-radio-group
+ v-model="irregularEventType"
+ @change="checkIrregularEventType"
+ size="small"
+ >
<el-radio-button label="fhdd">闃叉姢鍦版</el-radio-button>
<el-radio-button label="jcz">杩涘嚭绔�</el-radio-button>
<el-radio-button label="gfx">杩囧垎鐩�</el-radio-button>
@@ -189,14 +197,14 @@
<el-radio-button label="lsmx">涓存椂鎱㈡��</el-radio-button>
</el-radio-group>
<!-- <Pie :options="optionsOfIrregularEventPie"></Pie> -->
- <Pie :options="optionsOfHidDangerPie"></Pie>
+ <Pie :options="optionsOfHidDangerPie" style="padding-top:20px;"></Pie>
</div>
</div>
</div>
</div>
<div class="part">
<div class="tab-swiper">
- <swipe-tabs></swipe-tabs>
+ <swipe-tabs @checkTab="checkTabInSwipe"></swipe-tabs>
</div>
<div class="tab-detail">
<dataset-chart style="width:100%"></dataset-chart>
@@ -205,7 +213,127 @@
</div>
</div>
<div class="tab-content" v-if="actCardTab=='taskStatistic'">
-
+ <div class="general-view">
+ <div class="indicator">
+ <div class="icon">
+ <i class="iconfont iconrenwuzhipai" style="color:#3399ff"></i>
+ </div>
+ <div class="content">
+ <div class="indicator-title">鏈懆浠诲姟鎸囨淳閲�</div>
+ <div class="indicator-val">8000</div>
+ </div>
+ </div>
+ <div class="indicator">
+ <div class="icon">
+ <i class="iconfont iconfenxi" style="color:#4c76ff"></i>
+ </div>
+ <div class="content">
+ <div class="indicator-title">鍒嗘瀽閲�</div>
+ <div class="indicator-val">8000</div>
+ </div>
+ </div>
+ <div class="indicator lastOne">
+ <div class="icon">
+ <i class="iconfont iconweigui" style="color:#fdd476"></i>
+ </div>
+ <div class="content">
+ <div class="indicator-title">杩濊閲�</div>
+ <div class="indicator-val">8000</div>
+ </div>
+ </div>
+ </div>
+ <div class="part">
+ <div class="statics flex-box">
+ <div class="lt">
+ <div class="statics-part">
+ <div class="statics-header">
+ <span class="title">浠诲姟鎸囨淳缁熻</span>
+ </div>
+ <div class="statics-content">
+ <div class="flex-end">
+ <time-shortcut @actPickerChange="taskAssignStatics"></time-shortcut>
+ <el-date-picker
+ v-model="searchTaskAssignTime"
+ type="datetimerange"
+ size="small"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ align="right"
+ ></el-date-picker>
+ </div>
+ <line-chart :options="optionsOfTaskAssign" style="height: 300px;"></line-chart>
+ </div>
+ </div>
+ </div>
+ <div class="rt">
+ <div class="statics-part">
+ <div class="statics-header">
+ <span class="title">閮ㄩ棬鎸囨淳浠诲姟鍗犳瘮</span>
+ <time-shortcut @actPickerChange="partAssignstatics"></time-shortcut>
+ </div>
+ <div class="statics-content">
+ <Pie :options="optionsOfHidDangerPie"></Pie>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="statics">
+ <div class="statics-part">
+ <div class="statics-header">
+ <span class="title">浠诲姟鍒嗘瀽缁熻</span>
+ </div>
+ <div class="statics-content">
+ <div class="flex-end">
+ <time-shortcut @actPickerChange="taskAnalyzeStatics"></time-shortcut>
+ <el-date-picker
+ v-model="searchTaskAnalyzeTime"
+ type="datetimerange"
+ size="small"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ align="right"
+ ></el-date-picker>
+ </div>
+ <Bar :options="optionsOfTaskAnalyzeBar" style="height: 300px;"></Bar>
+ </div>
+ </div>
+ </div>
+ <div class="statics">
+ <div class="statics-part">
+ <div class="statics-header">
+ <span class="title">浠诲姟鍒嗘瀽鎯呭喌</span>
+ <time-shortcut @actPickerChange="taskAnalyzeCase"></time-shortcut>
+ </div>
+ <div class="statics-content">
+ <div class="table-area">
+ <el-table class="thbg" :data="taskAnalyzeCaseTableData">
+ <el-table-column type="index" label="搴忓彿"></el-table-column>
+ <el-table-column prop="name" label="濮撳悕"></el-table-column>
+ <el-table-column prop="rwl" label="浠诲姟閲�"></el-table-column>
+ <el-table-column prop="fxl" label="鍒嗘瀽閲�"></el-table-column>
+ <el-table-column prop="pdwgl" label="鍒ゅ畾杩濊閲�"></el-table-column>
+ <el-table-column prop="wgl" label="鍒ゅ畾杩濊鐜�"></el-table-column>
+ <el-table-column prop="wcl" label="瀹屾垚鐜�"></el-table-column>
+ </el-table>
+ </div>
+
+ <div class="flex-end">
+ <el-pagination
+ @size-change="handleTableSizeChange"
+ @current-change="renderIrregularMenTable"
+ :current-page.sync="PageIndex"
+ :page-size="PageSize"
+ :page-sizes="pageSizes"
+ layout="total,sizes, prev, pager, next"
+ :total="tableTotal"
+ ></el-pagination>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
</div>
</template>
@@ -219,11 +347,86 @@
import DatasetChart from './charts/dataset';
export default {
components: { timeShortcut, Bar, Pie, LineChart, SwipeTabs, DatasetChart },
+ mounted () {
+ let tempArr = [{
+ "text": "Same but with checkboxes",
+ "children": [
+ {
+ "text": "initially selected",
+ "selected": true
+ }
+ ]
+ }];
+ for (var i = 0; i < 20; i++) {
+ tempArr[0].children.push({
+ "text": "initially open",
+ "icon": "fa fa-folder icon-state-default",
+ "opened": true,
+ "children": [
+ {
+ "text": "Another node"
+ }
+ ]
+ })
+ }
+ tempArr.forEach(node=>{
+ //if(node.children.length)
+
+ })
+ this.jsTreeNodes = tempArr
+ },
data () {
return {
- actCardTab: 'dataStatistic',
+ //actCardTab: 'dataStatistic',
+ actCardTab: 'taskStatistic',
hidDangerTab: 'hidDanderStatistic',
- searchTime: [],
+ optionsOfWeekAnalyze: {
+ animation: false,
+ grid: {
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 10,
+ //containLabel: true
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ backgroundColor: '#6a7985'
+ }
+ }
+ },
+ xAxis: {
+ show: false,
+ type: 'category',
+ boundaryGap: false,
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+ label: {
+ show: false
+ }
+ },
+ yAxis: {
+ type: 'value',
+ show: false,
+ label: {
+ show: false
+ }
+ },
+ series: [
+ {
+ data: [820, 932, 901, 934, 1290, 1330, 1320],
+ type: 'line',
+ smooth: true,
+ areaStyle: {
+ opacity: 0.7
+ },
+ color: '#975fe3'
+ }
+ ]
+ },
+ searchHidDanderTime: [],
actHidDanderChart: 'bar',
optionsOfHidDangerBar: {
color: ['#9ed2f5'],
@@ -257,7 +460,7 @@
}
],
yAxis: [
- {
+ {
type: 'value',
axisLine: {
show: false
@@ -276,7 +479,7 @@
optionsOfHidDangerPie: {
tooltip: {
trigger: 'item',
- formatter: '{a}<br/>{b}:{c} ({d}%)'
+ formatter: '{a}<br>{b}:{c} ({d}%)'
},
legend: {
orient: 'vertical',
@@ -294,7 +497,8 @@
avoidLabelOverlap: false,
label: {
show: false,
- position: 'center'
+ position: 'center',
+ formatter: '{b}\n{c} '
},
emphasis: {
label: {
@@ -317,11 +521,30 @@
}
]
},
+ rankList: [{
+ id: 'jl',
+ name: '鏈鸿締鍒嗗叕鍙�',
+ val: 324456
+ }, {
+ id: 'jg',
+ name: '浜珮閾佽矾',
+ val: 328356
+ }, {
+ id: 'ztyj',
+ name: '涓搧涓�灞�',
+ val: 4563356
+ }, {
+ id: 'ztsj',
+ name: '涓搧涓夊眬',
+ val: 4563856
+ }],
optionsOfIrregularSum: {
animation: false,
grid: {
top: 0,
- left: 0
+ left: 0,
+ bottom: 10,
+ containLabel: true
},
tooltip: {
trigger: 'axis',
@@ -365,7 +588,9 @@
animation: false,
grid: {
top: 0,
- left: 0
+ left: 0,
+ bottom: 10,
+ containLabel: true
},
tooltip: {
trigger: 'axis',
@@ -412,10 +637,147 @@
irregularEventType: 'fhdd',
optionsOfIrregularEventPie: {
- }
+ },
+ searchTaskAssignTime: [],
+ optionsOfTaskAssign: {
+ grid: {
+ top: 40,
+ left: 10,
+ right: 10,
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ backgroundColor: '#6a7985'
+ }
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+ label: {
+ show: false
+ }
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ show: false
+ },
+ label: {
+ show: false
+ }
+ },
+ series: [
+ {
+ data: [820, 932, 901, 934, 1290, 1330, 1320],
+ type: 'line',
+ smooth: true,
+ areaStyle: {
+ opacity: 0.3
+ },
+ color: '#5dbafd'
+ }
+ ]
+ },
+ searchTaskAnalyzeTime: [],
+ optionsOfTaskAnalyzeBar: {
+ color: ['#fbd438', '#4fcb74'],
+ dataset: {
+ source: [
+ ['mon', 70, 30],
+ ['tue', 30, 50],
+ ['wed', 30, 60],
+ ['thu', 40, 50],
+ ['fri', 20, 30],
+ ['sat', 30, 20],
+ ['sun', 20, 40],
+ ]
+ },
+ legend: {
+ left: 0
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ //type: 'shadow'
+ },
+ },
+ grid: {
+ left: 10,
+ right: 10,
+ bottom: '3%',
+ containLabel: true
+ },
+ xAxis: [
+ {
+ type: 'category',
+ //data: ['鏈福绗�', '鏈墜姣�', '鏈懠鍞�', '杩愯涓潯瑙�', '鏈鏌�', '鏈簲绛�'],
+ axisTick: {
+ alignWithLabel: true
+ },
+ // axisLine: {
+ // lineStyle: {
+ // color: '#ccc'
+ // }
+ // },
+ // nameTextStyle: {
+ // color: "#333"
+ // }
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ axisLine: {
+ show: false
+ }
+ }
+ ],
+ series: [
+ {
+ name: '鏈夊紓甯�',
+ type: 'bar',
+ stack: '寮傚父',
+ barWidth: 20,
+ //data: [270, 500, 300, 430, 620, 540]
+ },
+ {
+ name: '鏃犲紓甯�',
+ type: 'bar',
+ stack: '寮傚父',
+ barWidth: 20,
+ //data: [270, 500, 300, 430, 620, 540]
+ }
+ ]
+ },
+ taskAnalyzeCaseTableData: [],
+ jsTreeNodes: [],
}
},
methods: {
+ checkTabInSwipe (tab) {
+ debugger
+ },
+ checkIrregularEventType (type) {
+ debugger
+ },
+ taskAnalyzeCase (time) {
+
+ },
+ taskAnalyzeStatics (time) {
+
+ },
+ partAssignstatics (time) {
+
+ },
+ taskAssignStatics (time) {
+
+ },
renderIrregularMenTable () {
},
@@ -431,7 +793,8 @@
irregularEventStatistic (time) {
}
- }
+ },
+
}
</script>
@@ -495,13 +858,13 @@
.day-ratio {
display: flex;
align-items: center;
- &>span{
+ & > span {
margin-right: 6px;
}
- .triangle.green{
+ .triangle.green {
margin-top: -6px;
}
- .triangle.red{
+ .triangle.red {
margin-top: 6px;
}
}
@@ -515,7 +878,7 @@
display: flex;
align-items: center;
color: #777;
- .name{
+ .name {
margin-right: 20px;
}
}
@@ -536,13 +899,14 @@
display: flex;
padding: 0 10px;
min-height: 400px;
- margin-bottom: 20px;
+ margin-bottom: 30px;
.statics-header {
+ height: 50px;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #eee;
- padding-bottom: 10px;
+ // padding-bottom: 10px;
margin-bottom: 20px;
.title {
font-size: 16px;
@@ -550,6 +914,7 @@
}
}
.statics-part {
+ flex: 1;
.statics-content {
padding: 0 20px;
.chart-area {
@@ -590,6 +955,8 @@
}
.rank-list {
padding: 10px 0;
+ max-height: 380px;
+ overflow-y: auto;
.rank-item {
height: 36px;
display: flex;
@@ -605,9 +972,24 @@
color: #666;
border-radius: 50%;
text-align: center;
+ &.first {
+ background-color: red;
+ color: #fff;
+ }
+ &.second {
+ background-color: rgb(248, 126, 45);
+ color: #fff;
+ }
+ &.third {
+ background-color: #0b3c29;
+ color: #fff;
+ }
}
.name {
width: 200px;
+ }
+ .val {
+ width: 100px;
}
}
}
@@ -627,6 +1009,39 @@
margin-bottom: 20px;
}
}
+ .general-view {
+ display: flex;
+ padding: 20px 50px;
+ .indicator {
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+ &:not(.lastOne):after {
+ content: '';
+ width: 1px;
+ height: 57px;
+ background: #e9e9e9;
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+ .icon .iconfont {
+ font-size: 40px;
+ margin-right: 24px;
+ }
+ .indicator-title {
+ font-size: 14px;
+ color: #999;
+ margin-bottom: 15px;
+ }
+ .indicator-val {
+ font-size: 24px;
+ }
+ }
+ }
}
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0