| | |
| | | <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:40px"></line-chart> |
| | | </div> |
| | | <div class="devide"></div> |
| | | <div class="detail"> |
| | | <div class="name">日均分析量</div> |
| | |
| | | <div class="rt"> |
| | | <time-shortcut @actPickerChange="timeShortChange"></time-shortcut> |
| | | <el-date-picker |
| | | v-model="searchTime" |
| | | v-model="searchHidDanderTime" |
| | | type="datetimerange" |
| | | size="small" |
| | | range-separator="至" |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | components: { timeShortcut, Bar, Pie, LineChart, SwipeTabs, DatasetChart }, |
| | | data () { |
| | | return { |
| | | actCardTab: 'dataStatistic', |
| | | //actCardTab: 'dataStatistic', |
| | | actCardTab: 'taskStatistic', |
| | | hidDangerTab: 'hidDanderStatistic', |
| | | searchTime: [], |
| | | optionsOfWeekAnalyze:{ |
| | | animation: false, |
| | | grid: { |
| | | top: 0, |
| | | left: 0, |
| | | right: 0, |
| | | bottom: 10, |
| | | }, |
| | | 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'], |
| | |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | { |
| | | type: 'value', |
| | | axisLine: { |
| | | show: false |
| | |
| | | optionsOfHidDangerPie: { |
| | | tooltip: { |
| | | trigger: 'item', |
| | | formatter: '{a}<br/>{b}:{c} ({d}%)' |
| | | formatter: '{a}<br>{b}:{c} ({d}%)' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | position: 'center', |
| | | formatter: '{b}\n{c} ' |
| | | }, |
| | | emphasis: { |
| | | label: { |
| | |
| | | } |
| | | ] |
| | | }, |
| | | 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, |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | |
| | | animation: false, |
| | | grid: { |
| | | top: 0, |
| | | left: 0 |
| | | left: 0, |
| | | bottom: 10, |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | |
| | | 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: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | checkTabInSwipe(tab){ |
| | | debugger |
| | | }, |
| | | checkIrregularEventType(type){ |
| | | debugger |
| | | }, |
| | | taskAnalyzeCase (time) { |
| | | |
| | | }, |
| | | taskAnalyzeStatics (time) { |
| | | |
| | | }, |
| | | partAssignstatics (time) { |
| | | |
| | | }, |
| | | taskAssignStatics (time) { |
| | | |
| | | }, |
| | | renderIrregularMenTable () { |
| | | |
| | | }, |
| | |
| | | irregularEventStatistic (time) { |
| | | |
| | | } |
| | | }, |
| | | mounted(){ |
| | | debugger |
| | | } |
| | | } |
| | | </script> |
| | |
| | | .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; |
| | | } |
| | | } |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | color: #777; |
| | | .name{ |
| | | .name { |
| | | margin-right: 20px; |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | .statics-part { |
| | | flex: 1; |
| | | .statics-content { |
| | | padding: 0 20px; |
| | | .chart-area { |
| | |
| | | } |
| | | .rank-list { |
| | | padding: 10px 0; |
| | | max-height: 380px; |
| | | overflow-y: auto; |
| | | .rank-item { |
| | | height: 36px; |
| | | display: flex; |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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> |