| | |
| | | <template> |
| | | <div class="sovle-problem"> |
| | | <div class="sovle-header"> |
| | | <div class="sovle-limit">处理时限:{{dispatchInfo.disposeDate}}</div> |
| | | <div class="sovle-limit">剩余时间:{{getRestTime(dispatchInfo.disposeDate)}}</div> |
| | | <div class="sovle-limit"> |
| | | 处理时间:{{ dispatchInfo.createTime }} |
| | | </div> |
| | | <div class="sovle-limit"> |
| | | 剩余时间:{{ getRestTime(dispatchInfo.disposeDate) || '未限制' }} |
| | | </div> |
| | | </div> |
| | | <div class="sovle-timeline"> |
| | | <el-timeline> |
| | | <div class="my-process"> |
| | | <div class="my-pro-header"> |
| | | <el-steps :space="260" :active="active" align-center> |
| | | <el-step v-for="item in list" :key="item.name"> |
| | | <template slot="title"> |
| | | <div> |
| | | 【{{ item.name }}】 |
| | | {{ |
| | | item.disposeRecords && |
| | | item.disposeRecords.length != 0 |
| | | ? item.disposeRecords[0].handlerText |
| | | : '' |
| | | }} |
| | | </div> |
| | | </template> |
| | | <template slot="description"> |
| | | <div> |
| | | {{ |
| | | item.disposeRecords && |
| | | item.disposeRecords.length != 0 |
| | | ? item.disposeRecords[0].result |
| | | : '' |
| | | }} |
| | | </div> |
| | | </template> |
| | | </el-step> |
| | | </el-steps> |
| | | |
| | | <!-- <el-timeline > |
| | | <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id"> |
| | | <div class="title"> |
| | | <div class="title-left">【{{item.name}}】{{item.name === '派遣' ? '派遣员':item.name === '处理' ? |
| | | '处理人':'评定人'}}:{{item.disposeRecords.length !==0 ? item.disposeRecords[0].handleId : ''}} |
| | | <div class="title-left">【{{item.name}}】处理人: {{item.disposeRecords && item.disposeRecords.length |
| | | != 0 ? item.disposeRecords[0].handlerText:''}} |
| | | </div> |
| | | <div class="title-right">{{item.disposeRecords.length !==0 ? filterTime(item.disposeRecords[0].endTime):''}} |
| | | <div class="title-right">{{item.disposeRecords.length !==0 ? |
| | | filterTime(item.disposeRecords[0].endTime):''}} |
| | | </div> |
| | | </div> |
| | | <div class="message">{{filterPerson(item.name)}}</div> |
| | | <div class="message">{{filterPerson(item.name)}} {{item.disposeRecords && item.disposeRecords.length !=0 ? item.disposeRecords[0].result:''}}</div> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </el-timeline> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import helper from '@/utils/mydate' |
| | | import {computeTime} from '@/utils/helper' |
| | | import { computeTime } from '@/utils/helper' |
| | | export default { |
| | | data() { |
| | | return { |
| | | active: 0, |
| | | mycolor: '#02a7f0', |
| | | list: [], |
| | | dispatchInfo: {}, |
| | |
| | | props: ['handlePassVo', 'baseCase'], |
| | | created() { |
| | | const { handlePassVo: mylist, baseCase } = this; |
| | | console.log(baseCase, mylist); |
| | | console.log(baseCase, mylist); |
| | | if (mylist) { |
| | | this.list = mylist.workflowConfigSteps; |
| | | } |
| | | if (baseCase.dispatchInfo) { |
| | | this.dispatchInfo = baseCase.dispatchInfo; |
| | | } |
| | | if (baseCase.state === 6) { |
| | | this.active = 1; |
| | | } else if (baseCase.state === 7) { |
| | | this.active = 2; |
| | | } else if (baseCase.state === 8) { |
| | | this.active = 3; |
| | | } else if (baseCase.state === 9) { |
| | | this.active = 4; |
| | | } else { |
| | | this.active = 0; |
| | | } |
| | | }, |
| | | methods: { |
| | | // 获得意见 |
| | | filterPerson(name) { |
| | | const { baseCase, dispatchInfo } = this; |
| | | const { dispatchInfo } = this; |
| | | if (name === '调度') { |
| | | return '【派遣意见】' + dispatchInfo.dispatchOpinion |
| | | return '【派遣意见】' |
| | | } else if (name === '处理') { |
| | | return '【处理结果】' |
| | | } else if (name === '核查') { |
| | | return '【核查结果】' + baseCase.handlingOpinion |
| | | return '【核查结果】' |
| | | } else if (name === '结案') { |
| | | return '【评定结果】' + baseCase.finalOpinion |
| | | } else { |
| | | return '【处理结果】' + baseCase.handlingOpinion |
| | | return '【评定结果】' |
| | | } |
| | | return |
| | | }, |
| | | // 处理时间 |
| | | filterTime(time){ |
| | | if(time){ |
| | | filterTime(time) { |
| | | if (time) { |
| | | return helper(time) |
| | | }else{ |
| | | } else { |
| | | return |
| | | } |
| | | |
| | | |
| | | }, |
| | | // 获得剩余时间 |
| | | getRestTime(limitTime){ |
| | | if(limitTime){ |
| | | getRestTime(limitTime) { |
| | | if (limitTime) { |
| | | return computeTime(limitTime) |
| | | } |
| | | return |
| | | return |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .sovle-problem { |
| | | |
| | | padding-top: 20px; |
| | | .sovle-header { |
| | | padding: 0 200px; |
| | | padding: 0 40px; |
| | | display: flex; |
| | | line-height: 60px; |
| | | justify-content: space-between; |
| | |
| | | |
| | | .message { |
| | | padding: 20px; |
| | | background-color: #070f22; |
| | | color: #4b9bb7; |
| | | color: #666; |
| | | line-height: 20px; |
| | | font-size: 10px; |
| | | font-size: 12px; |
| | | } |
| | | } |
| | | .my-process { |
| | | padding-top: 20px; |
| | | .my-pro-header { |
| | | padding: 0 30px; |
| | | line-height: 1; |
| | | |
| | | .pro-step { |
| | | flex: 1; |
| | | |
| | | .pro-step-top { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .line { |
| | | flex: 1; |
| | | height: 2px; |
| | | } |
| | | } |
| | | |
| | | .pro-step-name { |
| | | line-height: 20px; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | .my-pro-main { |
| | | margin-top: 30px; |
| | | margin-left: -50px; |
| | | .pro-step-ver { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | .line { |
| | | width: 2px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | .pro-step-top { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | } |
| | | .pro-step-name { |
| | | width: 120px; |
| | | line-height: 24px; |
| | | margin-right: 10px; |
| | | text-align: right; |
| | | } |
| | | .desc { |
| | | flex: 1; |
| | | line-height: 24px; |
| | | margin-left: 10px; |
| | | // color: #4b9bb7; |
| | | .desc-content-endtime { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding-right: 50px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .circle { |
| | | width: 24px; |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | background-color: #fff; |
| | | border: 2px solid #808080; |
| | | } |
| | | |
| | | .line { |
| | | background-color: #c0c4cc; |
| | | } |
| | | .in-process { |
| | | color: #0079fe; |
| | | } |
| | | .in-process__circle { |
| | | border: 2px solid #0079fe; |
| | | } |
| | | .finish-line { |
| | | background-color: #0079fe; |
| | | } |
| | | .finish { |
| | | border: 2px solid #4b9bb7; |
| | | } |
| | | .finish-name { |
| | | color: #4b9bb7; |
| | | } |
| | | .desc-content-message { |
| | | color: #666; |
| | | } |
| | | } |
| | | ::v-deep .el-step__title { |
| | | font-size: 18px; |
| | | padding: 10px 0; |
| | | } |
| | | ::v-deep .el-step__title.is-process { |
| | | color: #5388f1; |
| | | } |
| | | |
| | | ::v-deep .el-step__description{ |
| | | font-size: 14px; |
| | | } |
| | | |
| | | </style> |