From 7c50e4ce6be2929057b61afb9ef1ee7a61beb6f6 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 16 七月 2025 11:49:12 +0800
Subject: [PATCH] 前端

---
 admin/src/components/business/OperaOrderDetailWindow.vue    |  159 ++++++++++++++++++++++++++++++-
 admin/src/components/business/OperaMemberDetailWindow.vue   |    9 +
 admin/src/components/business/orderProgress.vue             |   90 +++++++++++++----
 admin/src/components/business/OperaIdentityDetailWindow.vue |    7 +
 4 files changed, 235 insertions(+), 30 deletions(-)

diff --git a/admin/src/components/business/OperaIdentityDetailWindow.vue b/admin/src/components/business/OperaIdentityDetailWindow.vue
index 3406795..e7269b4 100644
--- a/admin/src/components/business/OperaIdentityDetailWindow.vue
+++ b/admin/src/components/business/OperaIdentityDetailWindow.vue
@@ -59,7 +59,12 @@
               <div class="line"> <span class="label">璁よ瘉璧勬枡锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span> </div>
             </template>
             <template v-else>
-              <div class="line">  <span class="label">韬唤淇℃伅锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span> </div>
+              <div class="line">
+                <span class="label">鎺ュ崟浣嶇疆锛�</span><span class="txt">{{item.location || '' }}</span>
+              </div>
+              <div class="line">
+                <span class="label">韬唤淇℃伅锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span>
+              </div>
             </template>
               <div class="line" v-if="item.imgList && item.imgList.length>0">
                 <div v-for="info in item.imgList" style="display: inline-block">
diff --git a/admin/src/components/business/OperaMemberDetailWindow.vue b/admin/src/components/business/OperaMemberDetailWindow.vue
index 7b5a453..5b0c1ce 100644
--- a/admin/src/components/business/OperaMemberDetailWindow.vue
+++ b/admin/src/components/business/OperaMemberDetailWindow.vue
@@ -153,13 +153,18 @@
             </div>
             <template v-if="item.authType ==1">
               <div class="line">
-                <span class="label">鍗曚綅浣嶇疆锛�</span><span class="txt">{{item.location || '' }}</span>
+                <span class="label">鎺ュ崟浣嶇疆锛�</span><span class="txt">{{item.location || '' }}</span>
                 <span class="label">鍗曚綅鍚嶇О锛�</span><span class="txt">{{item.companyName || '' }}</span>
               </div>
               <div class="line"> <span class="label">璁よ瘉璧勬枡锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span> </div>
             </template>
             <template v-else>
-              <div class="line">  <span class="label">韬唤淇℃伅锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span> </div>
+              <div class="line">
+                <span class="label">鎺ュ崟浣嶇疆锛�</span><span class="txt">{{item.location || '' }}</span>
+              </div>
+              <div class="line">
+                <span class="label">韬唤淇℃伅锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span>
+              </div>
             </template>
               <div class="line" v-if="item.imgList && item.imgList.length>0">
                 <div v-for="info in item.imgList" style="display: inline-block">
diff --git a/admin/src/components/business/OperaOrderDetailWindow.vue b/admin/src/components/business/OperaOrderDetailWindow.vue
index 36eb0f9..f01963f 100644
--- a/admin/src/components/business/OperaOrderDetailWindow.vue
+++ b/admin/src/components/business/OperaOrderDetailWindow.vue
@@ -11,9 +11,10 @@
       <div class="renzheng" >
         <div class="info" >
             <span class="m10">璁㈠崟淇℃伅</span>
-            <el-tag type="primary" class="ml10 tag2" v-if="info.status == 0||info.status == 1||info.status == 3">{{ info.statusName }}</el-tag>
+            <el-tag type="primary" class="ml10 tag2" v-if="info.status == 0||info.status == 1||info.status == 2||info.status == 3">{{ info.statusName }}</el-tag>
             <el-tag type="success" class="ml10 tag2" v-if="info.status == 4">{{ info.statusName }}</el-tag>
             <el-tag type="danger" class="ml10 tag2" v-if="info.status == 99">{{ info.statusName }}</el-tag>
+            <div style="display: inline-block;float: right;font-size: 12px"><el-button icon="el-icon-timer" type="primary" @click="showLogList" >璁㈠崟娴佽浆鏃ュ織</el-button></div>
         </div>
         <div class="detail" >
           <div class="line">
@@ -82,7 +83,7 @@
           <div class="line" v-if="info.multifileList && info.multifileList.length>0">
             <div class="cont">
               <template v-if="info.multifileList && info.multifileList.length>0">
-              <div v-for="item in info.multifileList" style="display: inline-block" :key="item">
+              <div v-for="item in info.multifileList" style="display: inline-block" :key="'aaa'+item.id">
                 <el-image v-if="item.fileurlFull" style="width: 50px; height: 50px; margin-right: 10px" :src="item.fileurlFull"
                           :preview-src-list="[info.fileurlFull]">
                 </el-image>
@@ -95,23 +96,152 @@
             <div  style="margin-top: 20px"> <span class="label">  瀹℃牳淇℃伅锛�</span> <span class="txt">{{info.auditRemark || '' }}</span></div>
           </div>
         </div>
+        <div class="detail" v-if="info.type==1">
+          <div class="line">
+            <div class="cont"><span class="label"> 璁㈠崟绫诲瀷锛�</span> <span class="txt">{{(info.type==0?'鐢ㄥ伐鍗�':(info.type==1?'璐ц繍鍗�':'璁㈠崟鍗�')) }}</span></div>
+            <div  class="cont"><span class="label">杞﹁締锛�</span> <span class="txt">{{info.categoryName || ''}}</span></div>
+            <div  class="cont"><span class="label">鐢ㄨ溅鏃堕棿锛�</span> <span class="txt">{{info.startDate|| '' }}-{{info.endDate|| '' }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont" >  <span class="label"> 鍦板潃淇℃伅锛�</span> <span class="label" v-if="!wayList || wayList.length==0">-</span> </div>
+          </div>
+          <div class="line"  v-if="wayList && wayList.length>0">
+            <div class="cont"  style="padding-left: 40px;background-color: #e4ecfe">
+                <div v-for="(item,index) in wayList" style="display: block;margin: 10px" :key="'bbb'+index">
+                   <span v-if="index == 0">鐢ㄨ溅璧风偣锛歿{item.location || ''}}</span>
+                   <span v-if="index >0 && index < wayList.length-1">閫旂粡鍦扮偣锛歿{item.location || ''}}</span>
+                   <span v-if="index == wayList.length-1">鐢ㄨ溅缁堢偣锛歿{item.location || ''}}</span>
+                </div>
+            </div>
+          </div>
+          <div class="line">
+            <div class="cont"><span class="label">鐢ㄥ伐澶╂暟锛�</span><span class="txt">{{info.totalDays || 0 }}</span></div>
+            <div class="cont"><span class="label">杩愯緭閲嶉噺/鏁伴噺锛�</span> <span class="txt">{{info.priceNum1 || '' }}鏂�</span></div>
+            <div class="cont"><span class="label">璐圭敤鏍囧噯锛�</span><span class="txt">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont"><span class="label">棰勪及鎬昏垂鐢細</span><span class="txt yellowbtn">{{((info.estimatedAccount||0)/100).toFixed(2) }}鍏�</span></div>
+          </div>
+          <div class="line">
+            <div class="cont" ><span class="label">闇�姹傝ˉ鍏咃細</span><span class="txt">{{info.supplement || '' }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont">
+              <span class="label">鍥剧墖锛�</span>
+              <span class="txt" v-if="!info.multifileList || info.multifileList.length ==0">鏃�</span>
+            </div>
+          </div>
+          <div class="line" v-if="info.multifileList && info.multifileList.length>0">
+            <div class="cont">
+              <template v-if="info.multifileList && info.multifileList.length>0">
+                <div v-for="item in info.multifileList" style="display: inline-block" :key="item.id">
+                  <el-image v-if="item.fileurlFull" style="width: 50px; height: 50px; margin-right: 10px" :src="item.fileurlFull"
+                            :preview-src-list="[info.fileurlFull]">
+                  </el-image>
+                </div>
+              </template>
+            </div>
+          </div>
+        </div>
+        <div class="detail" v-if="info.type==2">
+          <div class="line">
+            <div class="cont"><span class="label">璁㈠崟绫诲瀷锛�</span> <span class="txt">{{(info.type==0?'鐢ㄥ伐鍗�':(info.type==1?'璐ц繍鍗�':'璁㈠崟鍗�')) }}</span></div>
+            <div class="cont"><span class="label">鐢ㄩ鏃堕棿锛�</span><span class="txt">{{info.startDate|| '' }}-{{info.endDate|| '' }}</span></div>
+            <div class="cont"><span class="label">鐢ㄩ澶╂暟锛�</span><span class="txt">{{info.totalDays || 0 }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont"><span class="label">鐢ㄩ鍦扮偣锛�</span><span class="txt">{{info.location || '' }}</span></div>
+            <div class="cont" style="flex: 2"><span class="label" >椁愭爣鍜屼唤鏁帮細</span><span class="txt">{{info.locationRemark || '' }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont"><span class="label">鍦扮偣鎻忚堪锛�</span><span class="txt">{{info.locationRemark || '' }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont" ><span class="label">闇�姹傛弿杩帮細</span><span class="txt">{{info.supplement || '' }}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont">
+              <span class="label">鍥剧墖锛�</span>
+              <span class="txt" v-if="!info.multifileList || info.multifileList.length ==0">鏃�</span>
+            </div>
+          </div>
+          <div class="line" v-if="info.multifileList && info.multifileList.length>0">
+            <div class="cont">
+              <template v-if="info.multifileList && info.multifileList.length>0">
+                <div v-for="item in info.multifileList" style="display: inline-block" :key="'aaa'+item.id">
+                  <el-image v-if="item.fileurlFull" style="width: 50px; height: 50px; margin-right: 10px" :src="item.fileurlFull"
+                            :preview-src-list="[info.fileurlFull]">
+                  </el-image>
+                </div>
+              </template>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="renzheng" >
+        <div class="info" >
+          <span class="m10">鍙戝崟鏂逛俊鎭�</span>
+        </div>
+        <div class="detail" >
+          <div class="line">
+            <div class="cont"><span class="label">鏄电О锛�</span> <span class="txt">{{ info.releaseName||'' }}</span></div>
+            <div  class="cont"  ><span class="label">鑱旂郴鏂瑰紡锛�</span> <span class="txt ">{{ info.releasePhone||'' }}</span></div>
+            <div  class="cont" ><span class="label">鍏朵粬鑱旂郴浜猴細</span> <span class="txt ">{{ info.linkName||'鍖垮悕' }}-{{ info.linkPhone||'鏈缃�' }}</span></div>
+          </div>
+        </div>
+      </div>
+      <div class="renzheng" >
+        <div class="info" >
+          <span class="m10">鎺ュ崟鏂逛俊鎭�</span>
+        </div>
+        <div class="detail" >
+          <div class="line">
+            <div class="cont"><span class="label">濮撳悕/鍗曚綅锛�</span> <span class="txt">{{ info.acceptName||'' }}</span></div>
+            <div  class="cont" style="flex: 2"><span class="label">鑱旂郴鏂瑰紡锛�</span> <span class="txt ">{{ info.acceptPhone||'' }}</span></div>
+          </div>
+        </div>
+      </div>
+      <div class="renzheng" >
+        <div class="info" >
+          <span class="m10">璇勪环淇℃伅</span>
+        </div>
+        <div class="detail" >
+          <div class="line">
+            <div class="cont"><span class="label">{{info.commentType ==1 ?'绯荤粺鑷姩璇勪环':'鍙戝崟鏂硅瘎浠�'}}</span> <span class="txt">{{ info.commentTime}}</span></div>
+          </div>
+          <div class="line">
+            <div class="cont">
+              <el-button class="label" :class="getScoreLevel(1)" style="border: none;cursor: default" icon="el-icon-star-on"></el-button>
+              <el-button class="label" :class="getScoreLevel(2)" style="border: grey;cursor: default" icon="el-icon-star-on"></el-button>
+              <el-button class="label" :class="getScoreLevel(3)" style="border: grey;cursor: default" icon="el-icon-star-on"></el-button>
+              <el-button class="label" :class="getScoreLevel(4)" style="border: grey;cursor: default" icon="el-icon-star-on"></el-button>
+              <el-button class="label" :class="getScoreLevel(5)" style="border: grey;cursor: default" icon="el-icon-star-on"></el-button>
+            </div>
+          </div>
+          <div class="line">
+            <div class="cont"><span class="label">璇勪环鍐呭锛�</span> <span class="txt">{{ info.commentInfo || '-'}}</span></div>
+          </div>
+        </div>
       </div>
     </div>
+    <orderProgress ref ='orderProgress'></orderProgress>
   </GlobalWindow>
 </template>
 
 <script>
 import GlobalWindow from '@/components/common/GlobalWindow'
 import BaseOpera from '@/components/base/BaseOpera'
-import { getById,cancel } from '@/api/business/orders'
+import orderProgress from '@/components/business/orderProgress'
+import { getById, cancel } from '@/api/business/orders'
 export default {
   components: {
-    GlobalWindow
+    GlobalWindow, orderProgress
   },
   extends: BaseOpera,
   data () {
     return {
       id: '',
+      wayList:[],
       info: {},
       loading: false
     }
@@ -122,6 +252,7 @@
       this.visible = true
       this.tableData2 = []
       this.id = row.id
+      this.wayList=[]
       this.getData()
     },
     getData () {
@@ -129,11 +260,23 @@
         .then(res => {
           this.info = res
           this.visible = true
-          console.log(this.info)
+          if(this.info.wayInfo){
+            this.wayList = JSON.parse(this.info.wayInfo)
+          }
+          console.log(this.wayList)
         })
     },
     close () {
 
+    },
+    showLogList () {
+      this.$refs.orderProgress.open('璁㈠崟娴佽浆鏃ュ織', this.info.orderLogList||[])
+    },
+    getScoreLevel (num) {
+      if (this.info.commentLevel && this.info.commentLevel >= num) {
+        return 'staron'
+      }
+      return 'staroff'
     },
     checkDo (status) {
       console.log(this.$refs.formCheck.length)
@@ -178,6 +321,12 @@
   z-index: 999;
   padding: 16px;
 }
+.staroff{
+  color: #8c939d !important;
+}
+.staron{
+  color: #ff4d00 !important;
+}
 .renzheng{
   margin: 0px 0px 50px 20px;
   width: calc(100% - 60px);
diff --git a/admin/src/components/business/orderProgress.vue b/admin/src/components/business/orderProgress.vue
index 06de68c..30cd834 100644
--- a/admin/src/components/business/orderProgress.vue
+++ b/admin/src/components/business/orderProgress.vue
@@ -6,15 +6,30 @@
         :visible.sync="visible"
         :confirm-working="isWorking"
     >
-        <el-timeline reverse>
-            <el-timeline-item v-for="(item, index) in list" :key="index" :hide-timestamp="true">
-                <div style="display: flex; flex-direction: column;">
-                    <span class="a">{{item.title}}</span>
-                    <span class="b">{{item.creatorName}} {{item.companyName || '骞冲彴鐞嗚禂鍛�'}} {{item.createDate }}</span>
-                    <span class="c" v-if="index >0 && item.content">璇存槑锛歿{item.content}}</span>
-                </div>
-            </el-timeline-item>
+      <div class="time-line">
+        <el-timeline :reverse="true">
+          <el-timeline-item
+              v-for="(activity, index) in list"
+              :key="index"
+              color="#2991FF"
+              size="large"
+              type="primary"
+          >
+            <div class="time">
+              <div>
+            <span class="year">
+              {{ activity.createTime.substring(0, 10) }}
+            </span>
+              </div>
+              <div class="day">{{ activity.createTime.substring(10,20) }}</div>
+            </div>
+            <div class="ml10">
+              <div class="list-title">{{ activity.title }}</div>
+              <div class="list-company">{{activity.logInfo }}</div>
+            </div>
+          </el-timeline-item>
         </el-timeline>
+      </div>
     </GlobalWindow>
 </template>
 
@@ -39,19 +54,50 @@
   }
 }
 </script>
-
 <style lang="scss" scoped>
-    .a {
-        color: rgba(16,16,16,1);
-        font-size: 14px;
-    }
-    .b {
-        color: rgba(154,154,154,1);
-        font-size: 14px;
-        margin: 10px 0;
-    }
-    .c {
-        color: rgba(16,16,16,1);
-        font-size: 14px;
-    }
+.time-line {
+  margin-top: 50px;
+  margin-left: 200px;
+}
+.list-title {
+  font-size: 12px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #181b1e;
+}
+.list-company {
+  font-size: 12px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #596878;
+  margin-top: 15px;
+  margin-bottom: 15px;
+}
+.list-desc {
+  font-size: 12px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #596878;
+}
+//宸︿晶鏃堕棿
+.time {
+  color: #409eff;
+  position: absolute;
+  left: -94px;
+  top: 1px;
+  .year {
+    font-size: 14px;
+    font-family: PingFangSC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #20354a;
+  }
+  .day {
+    font-size: 12px;
+    font-family: PingFangSC-Regular, PingFang SC;
+    font-weight: 400;
+    color: black;
+    text-align: right;
+    margin-top: 0px;
+  }
+}
 </style>

--
Gitblit v1.9.3