|
@@ -0,0 +1,496 @@
|
|
|
+
|
|
|
+<template>
|
|
|
+ <div id="init-window" style="position:relative">
|
|
|
+ <router-view />
|
|
|
+ <div style="position: absolute;width: 100%;">
|
|
|
+ <el-container class="set-background">
|
|
|
+ <el-header class="header">
|
|
|
+ <el-menu :default-active="activeIndex" class="el-menu-demo" active-text-color="#409EFF" mode="horizontal" @select="handleSelect">
|
|
|
+ <el-menu-item index="0">业务线数据</el-menu-item>
|
|
|
+ <el-menu-item index="2">部门数据</el-menu-item>
|
|
|
+ </el-menu>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="value1"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ />
|
|
|
+ </el-header>
|
|
|
+ <el-container>
|
|
|
+ <el-aside class="aside">
|
|
|
+ <el-tree :data="businessData" :props="defaultProps" icon-class="el-icon-watermelon" style="margin-top:20px" @node-click="handleNodeClick" />
|
|
|
+ </el-aside>
|
|
|
+ <el-main class="combine-table">
|
|
|
+ <el-menu :default-active="activeIndex1" class="el-menu-demo" active-text-color="#409EFF" mode="horizontal" @select="handleSelect">
|
|
|
+ <el-menu-item index="3">质量大盘</el-menu-item>
|
|
|
+ </el-menu>
|
|
|
+ <!-- 上线过程 -->
|
|
|
+ <h4>1.上线过程</h4>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="上线次数"
|
|
|
+ style="width:50%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="免提测上线数"
|
|
|
+ style="width:50%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ class="move-border-top"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="回滚数据"
|
|
|
+ style="width:100%;"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="回滚次数"
|
|
|
+ style="width:20%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="免提测回滚数"
|
|
|
+ style="width:20%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="预发回滚数"
|
|
|
+ style="width:20%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="小流量回滚数"
|
|
|
+ style="width:20%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="全量回滚数"
|
|
|
+ style="width:20%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ class="move-border-top"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="预发具备率"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="有预发不走预发占比"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="被动免提测率"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="免提测上线占比"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="回滚率"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="免提测回滚占比"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="预发回滚率"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="小流量回滚率"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="全量回滚数"
|
|
|
+ align="center"
|
|
|
+ width="calc(10/9)%"
|
|
|
+ />
|
|
|
+ </el-table>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ class="move-border-top"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="预发停留<5min占比"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="小流量停留<5min占比"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="裸奔上线占比"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="紧急上线占比"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table>
|
|
|
+ <!-- 线上问题 -->
|
|
|
+ <h4>2.线上问题</h4>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="上线次数"
|
|
|
+ width="170"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="免提测上线数"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P0"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P1"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P2"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P3"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P4"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P5"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P6"
|
|
|
+ width="calc(10/7)%"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ class="move-border-top"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="未定责P5+问题"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="遗留P5+问题定责"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="线上问题处理完成率"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="线上问题平均处理时长(H)"
|
|
|
+ style="width:25%;"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table>
|
|
|
+ <!-- 线上缺陷 -->
|
|
|
+ <h4>3.线上缺陷</h4>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="提报bug数"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="缺陷分级"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P0"
|
|
|
+ width="40"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P1"
|
|
|
+ width="40"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P2"
|
|
|
+ width="40"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P3"
|
|
|
+ width="40"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="P4"
|
|
|
+ width="40"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="缺陷阶段"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="准入"
|
|
|
+ width="49"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="测试"
|
|
|
+ width="49"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="准出"
|
|
|
+ width="49"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="预发"
|
|
|
+ width="49"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="其他"
|
|
|
+ width="49"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="众测"
|
|
|
+ width="49"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="核心指标"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="人均bug数"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="bug修复率"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ </el-table>
|
|
|
+ </el-main>
|
|
|
+ </el-container>
|
|
|
+ </el-container>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getBusiness, getDepartment, getOnlineInfo, getOnlineAllCount } from '@/api/qualityCenter'
|
|
|
+
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ tableData: [{
|
|
|
+ date: '20',
|
|
|
+ name: '王小虎',
|
|
|
+ address: '上海市普陀区金沙江路 1518 弄'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ businessData: [],
|
|
|
+ defaultProps: {
|
|
|
+ children: 'child',
|
|
|
+ label: 'name'
|
|
|
+ },
|
|
|
+ activeIndex: '0',
|
|
|
+ activeIndex1: '3',
|
|
|
+ value1: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this._initBusinessTreeAndBeginInfo()
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this._initWindow()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ _initWindow() {
|
|
|
+ if (!document.getElementById('window-judge')) {
|
|
|
+ document.getElementById('init-window').parentNode.style.overflow = ''
|
|
|
+ } else {
|
|
|
+ document.getElementById('init-window').parentNode.style.overflow = 'hidden'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async _initBusinessTreeAndBeginInfo() {
|
|
|
+ await getBusiness().then(res => {
|
|
|
+ res.code === 0 ? this.businessData = res.data : ''
|
|
|
+ })
|
|
|
+ const pretermitSearch = { id: this.businessData[0].id, type: 0 }
|
|
|
+ console.log(pretermitSearch)
|
|
|
+ getOnlineAllCount(pretermitSearch).then(res => {
|
|
|
+ console.log(res.data)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initDepartmentTree() {
|
|
|
+ getDepartment().then(res => {
|
|
|
+ res.code === 0 ? this.businessData = res.data : ''
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleSelect(key) {
|
|
|
+ if (key === '0') {
|
|
|
+ this._initBusinessTree()
|
|
|
+ } else if (key === '2') {
|
|
|
+ this.initDepartmentTree()
|
|
|
+ } else {
|
|
|
+ this.errorFun()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleNodeClick(data) {
|
|
|
+ console.log(data)
|
|
|
+ },
|
|
|
+ successFun() {
|
|
|
+ this.$notify({ title: 'Success', message: 'initialization Successfully', type: 'success', duration: 2000 })
|
|
|
+ },
|
|
|
+ errorFun() {
|
|
|
+ this.$notify({ title: 'Failed', message: 'initialization Failed', type: 'error', duration: 2000 })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="stylus" scoped>
|
|
|
+ .set-background
|
|
|
+ background-color #F2F3F6
|
|
|
+ .header
|
|
|
+ width 90%
|
|
|
+ background-color white
|
|
|
+ border-radius 7px
|
|
|
+ margin 15px auto 25px auto
|
|
|
+ display flex
|
|
|
+ justify-content space-between
|
|
|
+ align-items center
|
|
|
+ .aside
|
|
|
+ width 170px !important
|
|
|
+ margin 0 0 2% 5%
|
|
|
+ background-color white
|
|
|
+ border-radius 7px
|
|
|
+ .combine-table
|
|
|
+ background-color white
|
|
|
+ border-radius 7px
|
|
|
+ width 72.7%
|
|
|
+ margin 0 0 2% 1.5%
|
|
|
+ flex 0 1 auto !important
|
|
|
+ .combine-table >>> .el-menu
|
|
|
+ border-bottom 0px
|
|
|
+ margin -20px 0 15px 0
|
|
|
+ .combine-table >>> .is-active
|
|
|
+ font-weight bold
|
|
|
+ .combine-table >>> th
|
|
|
+ background-color #F0F7FF !important
|
|
|
+ font-size 10px
|
|
|
+ .combine-table >>> .move-border-top
|
|
|
+ border-top 0px
|
|
|
+</style>
|