zhanghua
2024-01-21 e1aa0ecffbabd618c71e4ad94370fb8dffe6ee1c
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: {},
@@ -42,18 +75,30 @@
        if (baseCase.dispatchInfo) {
            this.dispatchInfo = baseCase.dispatchInfo;
        }
        debugger
        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 { dispatchInfo } = this;
            if (name === '调度') {
                return '【派遣意见】'
                return '【派遣意见】'
            } else if (name === '处理') {
                return '【处理结果】'
            }else if (name === '核查') {
            } else if (name === '核查') {
                return '【核查结果】'
            }  else if (name === '结案') {
            } else if (name === '结案') {
                return '【评定结果】'
            }
            return
@@ -79,6 +124,7 @@
</script>
<style lang="scss" scoped>
.sovle-problem {
    padding-top: 20px;
    .sovle-header {
        padding: 0 40px;
        display: flex;
@@ -102,4 +148,105 @@
        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;
            }
        }
        ::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;
        }
    }
    .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;
    }
}
</style>