| | |
| | | <template> |
| | | <div class="dashboard-main"> |
| | | <div class="body"> |
| | | <div class="body"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <p class="todo-title"><i class="el-icon-bell"></i><span> 生产调度 · 待办</span></p> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-col :xs="24" :sm="12" :md="11" :lg="7"> |
| | | <el-card class="box-card todo-card"> |
| | | <el-collapse v-model="activeName" accordion class="todo-collapse" style="display:none"> |
| | | <ul class="type-box"> |
| | | <li v-for="(m,i) in tabList" :key="i" :class="{active:current == i}" @click="changeTab(m,i)">{{ m }}</li> |
| | | </ul> |
| | | <el-collapse v-model="activeName" accordion class="todo-collapse" style="display: none;"> |
| | | <el-collapse-item name="1"> |
| | | <template slot="title"> |
| | | <span class="title">今日待办</span> |
| | |
| | | </template> |
| | | </el-calendar> |
| | | <div class="todo-span"><span>待办</span></div> |
| | | <!-- <el-table :data="todoByDayList"> |
| | | <el-table-column label="序号" align="center" type="index" width="50"></el-table-column> |
| | | <el-table-column prop="product_type" label="产品类型" align="center" min-width="50"></el-table-column> |
| | | <el-table-column prop="total" label="待办数量" align="center" min-width="50"></el-table-column> |
| | | </el-table> --> |
| | | <div class="todo-info" v-for="(item,index) in 10" :key="index"> |
| | | <div class="todo-info" v-for="(item,index) in todoList" :key="index" v-show="todoList.length>0"> |
| | | <div class="todo-info-state"></div> |
| | | <span>{{ item }}</span> |
| | | </div> |
| | | <span class="no-info" v-if="todoList.length==0">暂无</span> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-col :xs="24" :sm="12" :md="11" :lg="7"> |
| | | <el-card class="box-card todo-total-card"> |
| | | <div class="todo-total-text"> |
| | | <span>今日待办</span> |
| | | <span v-text="todoByDayList.length"></span> |
| | | <span v-text="todoInfo.todoByDay"></span> |
| | | </div> |
| | | <div class="todo-total-text"> |
| | | <span>本周待办</span> |
| | | <span v-text="todoByWeekList.length"></span> |
| | | <span v-text="todoInfo.todoByWeek"></span> |
| | | </div> |
| | | <div class="todo-total-text"> |
| | | <span>本月待办</span> |
| | | <span v-text="todoByMonthList.length"></span> |
| | | <span v-text="todoInfo.todoByMonth"></span> |
| | | </div> |
| | | <div class="todo-total-text"> |
| | | <span>超期</span> |
| | | <span v-text="0"></span> |
| | | <span v-text="todoInfo.outByTime"></span> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | |
| | | background: #FFFFFF; |
| | | border-radius: 8px 8px 8px 8px; |
| | | border: 1px solid #E8E8E8; |
| | | display: flex; |
| | | align-items: center; |
| | | .todo-info-state{ |
| | | width:12px; |
| | | height:64px; |
| | |
| | | position: relative; |
| | | top:0px; |
| | | } |
| | | span{ |
| | | font-size: 14px; |
| | | margin: 0 16px; |
| | | } |
| | | } |
| | | .no-info{ |
| | | font-size: 14px; |
| | | color: #666; |
| | | display: inline-block; |
| | | text-align: center; |
| | | width: 100%; |
| | | margin-top: 100px; |
| | | } |
| | | .todo-total-card{ |
| | | margin-left: 15px; |
| | |
| | | margin-bottom:10px; |
| | | height: 40px; |
| | | background: linear-gradient( 90deg, #C8C2FF 0%, rgba(200,194,255,0) 100%); |
| | | display: flex; |
| | | align-items: center; |
| | | span:nth-child(1){ |
| | | width:50%; |
| | | height:40px; |
| | |
| | | >>>.el-calendar-table td.is-selected { |
| | | background-color: #e3effc; |
| | | } |
| | | .type-box{ |
| | | list-style-type: none; |
| | | display: flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | padding-left: 0; |
| | | margin-left: 20px; |
| | | li{ |
| | | padding: 8px 16px; |
| | | border: 1px solid #E3E1FD; |
| | | cursor: pointer; |
| | | font-size: 14px; |
| | | color: #875A7B; |
| | | &.active{ |
| | | background: linear-gradient( 180deg, #E3E1FD 0%, #F0EFF9 100%); |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | | <script> |
| | |
| | | import ECharts from 'vue-echarts' |
| | | import {dateFormat} from '@/util/date' |
| | | import {getProductionSchedulReport} from '@/api/plan/productionschedul' |
| | | import { getReportList,getReport } from '@/api/wel/index' |
| | | export default { |
| | | name: 'Wel', |
| | | components: { |
| | |
| | | todoByDayList: [], |
| | | todoByWeekList: [], |
| | | todoByMonthList: [], |
| | | tabList:['水密接插件','海工器件','观测网','其他'], |
| | | current:0, |
| | | type:'水密接插件', |
| | | todoList:[], |
| | | todoInfo:{} |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['website']) |
| | | }, |
| | | created() { |
| | | this.getProSchedulReport() |
| | | // this.getProSchedulReport() |
| | | this.getReportList(); |
| | | this.getReport(); |
| | | }, |
| | | watch:{ |
| | | calendarValue(newVal){ |
| | | if(newVal){ |
| | | console.log(dateFormat(newVal,'yyyy-MM-dd')); |
| | | this.getReportList() |
| | | } |
| | | } |
| | | }, |
| | |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | changeTab(m,i){ |
| | | this.type = m; |
| | | this.current = i; |
| | | this.getReportList() |
| | | this.getReport(); |
| | | }, |
| | | getReportList(){ |
| | | getReportList({ |
| | | type:this.type, |
| | | time:dateFormat(this.calendarValue,'yyyy-MM-dd') |
| | | }).then(res=>{ |
| | | if(res.status===200){ |
| | | this.todoList = res.data.data |
| | | } |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | getReport(){ |
| | | getReport({ |
| | | type:this.type, |
| | | }).then(res=>{ |
| | | if(res.status===200){ |
| | | this.todoInfo = res.data.data |
| | | } |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | } |
| | | } |
| | | } |