From 7c20fd15b7fbc2bd5756b39d5ab655cc849ffcc3 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 16 七月 2025 22:39:23 +0800
Subject: [PATCH] 添加时间筛选

---
 src/components/solveProblem/index.vue |  285 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 233 insertions(+), 52 deletions(-)

diff --git a/src/components/solveProblem/index.vue b/src/components/solveProblem/index.vue
index 8f20c92..8cd43ad 100644
--- a/src/components/solveProblem/index.vue
+++ b/src/components/solveProblem/index.vue
@@ -1,74 +1,255 @@
 <template>
     <div class="sovle-problem">
         <div class="sovle-header">
-            <div class="sovle-limit">澶勭悊鏃堕檺:{{}}</div>
-            <div class="sovle-limit">鍓╀綑鏃堕棿:23灏忔椂</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[0].handleId}}</div>
-                        <div class="title-right">{{item.disposeRecords[0].endTime}}</div>
+                        <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>
                     </div>
-                    <div class="message">銆恵{item.name === '娲鹃仯' ? '娲鹃仯鎰忚':item.name === '澶勭悊' ? '澶勭悊缁撴灉':'璇勫畾缁撴灉'}}銆戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div>
-                </el-timeline-item> 
-                <!-- <el-timeline-item :color="mycolor">
-                    <div class="title">
-                        <div class="title-left">銆愬鐞嗐�戝鐞嗕汉:xxx</div>
-                        <div class="title-right">22.09.06 16:40</div>
-                    </div>
-                    <div class="message">銆愬鐞嗙粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div>
+                    <div class="message">{{filterPerson(item.name)}} {{item.disposeRecords && item.disposeRecords.length !=0 ? item.disposeRecords[0].result:''}}</div>
                 </el-timeline-item>
-                <el-timeline-item :color="mycolor">
-                    <div class="title">
-                        <div class="title-left">銆愯瘎瀹氥�戣瘎瀹氫汉:xxx</div>
-                        <div class="title-right">22.09.06 16:40</div>
-                    </div>
-                    <div class="message">銆愯瘎瀹氱粨鏋溿�戣鐩稿叧鎵ф硶闃熷憳鍙婃椂鍓嶅線鐜板満杩涜澶勭疆</div>
-                </el-timeline-item> -->
-            </el-timeline>
+            </el-timeline> -->
+            </div>
         </div>
     </div>
-</template>
+</template> 
 <script>
-    export default{
-        data(){
-            return{
-                mycolor:'#02a7f0',
-                list:[]
+import helper from '@/utils/mydate'
+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);
+        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 { dispatchInfo } = this;
+            if (name === '璋冨害') {
+                return '銆愭淳閬f剰瑙併��'
+            } else if (name === '澶勭悊') {
+                return '銆愬鐞嗙粨鏋溿��'
+            } else if (name === '鏍告煡') {
+                return '銆愭牳鏌ョ粨鏋溿��'
+            } else if (name === '缁撴') {
+                return '銆愯瘎瀹氱粨鏋溿��'
             }
+            return
         },
-        props:['problemProVo'],
-        created(){
-            const {problemProVo:{workflowConfigSteps:mylist}} = this;
-            console.log(mylist);
-            this.list = mylist;
-        }   
+        // 澶勭悊鏃堕棿
+        filterTime(time) {
+            if (time) {
+                return helper(time)
+            } else {
+                return
+            }
+
+        },
+        // 鑾峰緱鍓╀綑鏃堕棿
+        getRestTime(limitTime) {
+            if (limitTime) {
+                return computeTime(limitTime)
+            }
+            return
+        }
     }
+}
 </script>
 <style lang="scss" scoped>
-    .sovle-problem{
-        .sovle-header{
-            padding: 0 200px;
-            display: flex;
-            line-height: 60px;
-            justify-content: space-between;
+.sovle-problem {
+    
+    padding-top: 20px;
+    .sovle-header {
+        padding: 0 40px;
+        display: flex;
+        line-height: 60px;
+        justify-content: space-between;
+    }
+
+    .title {
+        display: flex;
+        justify-content: space-between;
+        line-height: 40px;
+        padding: 0 20px;
+        color: #4b9bb7;
+        font-size: 16px;
+    }
+
+    .message {
+        padding: 20px;
+        color: #666;
+        line-height: 20px;
+        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;
+            }
         }
-        .title{
+
+        
+    }
+
+    .my-pro-main {
+        margin-top: 30px;
+        margin-left: -50px;
+        .pro-step-ver {
             display: flex;
-            justify-content: space-between;
-            line-height: 40px;
-            padding: 0 20px;
-            color: #4b9bb7;
-            font-size: 16px;
+            align-items: flex-start;
+            .line {
+                width: 2px;
+                height: 100px;
+            }
         }
-        .message{
-            padding: 20px;
-            background-color: #070f22;
-            color: #4b9bb7;
-            line-height: 20px;
-            font-size: 10px;
+        .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>
\ No newline at end of file

--
Gitblit v1.8.0