zhanghua
7 天以前 7c20fd15b7fbc2bd5756b39d5ab655cc849ffcc3
src/components/solveProblem/index.vue
@@ -1,11 +1,42 @@
<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.disposeRecords && item.disposeRecords.length
@@ -17,7 +48,8 @@
                    </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> 
@@ -27,6 +59,7 @@
export default {
    data() {
        return {
            active: 0,
            mycolor: '#02a7f0',
            list: [],
            dispatchInfo: {},
@@ -37,12 +70,21 @@
        const { handlePassVo: mylist, baseCase } = this;
        console.log(baseCase, mylist);
        if (mylist) {
            this.list = mylist.workflowConfigSteps.filter(item => {
                return item.id !== 2
            });
            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: {
@@ -50,7 +92,9 @@
        filterPerson(name) {
            const { dispatchInfo } = this;
            if (name === '调度') {
                return '【派遣意见】'
                return '【派遣意见】'
            } else if (name === '处理') {
                return '【处理结果】'
            } else if (name === '核查') {
                return '【核查结果】'
            } else if (name === '结案') {
@@ -79,8 +123,10 @@
</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;
@@ -97,10 +143,113 @@
    .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>