MergeLog.vue 1.89 KB
Newer Older
dragondean@qq.com's avatar
dragondean@qq.com committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
<template>
    <el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false">
        <el-collapse v-model="activeNames">
            <template v-for="item in list">
            <el-collapse-item :key="item.orderNo" :title="item.orderNo" :name="item.orderNo">
                <el-timeline :reverse="reverse">
                    <el-timeline-item
                    v-for="(activity, index) in item.logs"
                    :key="index"
                    :timestamp="activity.createTime|parseTime">
                    {{activity.titleZh}}
                    </el-timeline-item>
                </el-timeline>
            </el-collapse-item>
            </template>
            <div class="empty-placeholder" v-if="status == 'finished' && !list.length">
                暂无数据
            </div>
        </el-collapse>
    </el-dialog>
</template>
<script>
import {getMergeLogByMergedOrderNo} from '@/api/ecw/order'
import {parseTime} from '@/utils/ruoyi'
export default {
    props:{
        orderNo: String
    },
    data(){
        return {
            show: false,
            list:[],
            activeNames:[],
            status: null
        }
    },
    filters: {parseTime},
    computed:{
        title(){
            return '合单日志 - ' + this.orderNo 
        }
    },
    created(){
        this.status = 'loading'
        getMergeLogByMergedOrderNo({mergedOrderNo: this.orderNo}).then(res => {
            for(let orderNo in res.data){
                this.list.push({
                    orderNo,
                    logs: res.data[orderNo]
                })
            }
            if(!this.list.length){
                this.empty = true
            }
        }).finally(res => {
            this.status = 'finished'
        })
    },
    methods:{
        closeDialog(){
            this.show = false
            this.$emit('close');
        }
    }
}
</script>