From a26af4a8afc3c1b59a33c0642cd07778a89e5813 Mon Sep 17 00:00:00 2001
From: wjt <1797368093@qq.com>
Date: 星期六, 22 六月 2024 21:04:50 +0800
Subject: [PATCH] 投书处理天机

---
 src/views/infomanger/enforcement/component/details.vue |  252 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 198 insertions(+), 54 deletions(-)

diff --git a/src/views/infomanger/enforcement/component/details.vue b/src/views/infomanger/enforcement/component/details.vue
index d4778c2..599b03d 100644
--- a/src/views/infomanger/enforcement/component/details.vue
+++ b/src/views/infomanger/enforcement/component/details.vue
@@ -1,75 +1,115 @@
 <template>
-  <el-dialog title="鎵ф硶璇︽儏" width="1000px" v-model="dialogVisible" @close="closeDialog">
-    <div>
+  <el-dialog title="鎵ф硶璇︽儏" width="900px" v-model="dialogVisible" @close="closeDialog">
+    <div v-loading="loading">
       <div class="title">鎵ф硶淇℃伅</div>
-      <div>
+      <div class="content">
         <el-row>
           <el-col :span="12">
-            <div class="label">鎵ф硶绫诲瀷</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">鎵ф硶绫诲瀷</div>
+            <div class="value">鍙告硶妫�鏌�</div>
           </el-col>
           <el-col :span="12">
-            <div class="label">鎵ф硶閮ㄩ棬</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">鎵ф硶閮ㄩ棬</div>
+            <div class="value">{{ details.applyDeptName }}</div>
           </el-col>
           <el-col :span="12">
-            <div class="label">浼佷笟</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">浼佷笟</div>
+            <div class="value">{{ details.companyName }}</div>
           </el-col>
           <el-col :span="12">
-            <div class="label">鎵ф硶浜哄憳</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">鎵ф硶浜哄憳</div>
+            <div class="value">{{ details.executeUser || details.applyUser }}</div>
           </el-col>
           <el-col :span="12">
-            <div class="label">闅忚浜哄憳</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">闅忚浜哄憳</div>
+            <div class="value">
+              <div v-for="(item, index) in details.peers" :key="index">
+                {{ item.peerUser }} ({{ item.peerDeptName }})
+              </div>
+            </div>
           </el-col>
           <el-col :span="12">
-            <div class="label">鐢宠鏃堕棿</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">鐢宠鏃堕棿</div>
+            <div class="value">{{ details.applyTime || "" }}</div>
           </el-col>
           <el-col :span="12">
-            <div class="label">鎵ф硶鏃堕棿</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">鎵ф硶鏃堕棿</div>
+            <div class="value">{{ details.executeTime || details.planTime }}</div>
           </el-col>
           <el-col :span="12">
-            <div class="label">鐘舵��</div> <div class="value">鍙告硶妫�鏌�</div>
+            <div class="label">鐘舵��</div>
+            <div class="value">{{ status.orderStatusMap[details.orderStatus] }}</div>
           </el-col>
           <el-col :span="24">
-            <div class="label">鎵ф硶鍐呭</div> <div class="value">1.鐏伨闅愭偅鏁存敼鎯呭喌浠ュ強闃茶寖鎺柦鐨勮惤瀹炴儏鍐点��
-
-2.瀹夊叏鐤忔暎閫氶亾銆佺枏鏁f寚绀烘爣蹇椼�佸簲鎬ョ収鏄庡拰瀹夊叏鍑哄彛鎯呭喌銆�
-
-3.娑堥槻杞﹂�氶亾銆佹秷闃叉按婧愭儏鍐点��</div>
+            <div class="label">鎵ф硶鍐呭</div>
+            <div class="value">{{ details.enforceContent || "--" }}</div>
           </el-col>
         </el-row>
       </div>
-      <div class="title">鎵ф硶璁板綍</div>
-      <div>
-        <el-row>
-          <el-col :span="12">
-            <div class="label">鎵ф硶涓婚</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-          <el-col :span="12">
-            <div class="label">鏄惁閫氱煡浼佷笟</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-          <el-col :span="24">
-            <div class="label">鎵ф硶杩囩▼</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-          <el-col :span="12">
-            <div class="label">鎵ф硶缁撴灉</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-        </el-row>
+      <div v-if="details.orderStatus == 4">
+        <div class="title">鎵ф硶璁板綍</div>
+        <div class="content">
+          <el-row>
+            <el-col :span="12">
+              <div class="label">鎵ф硶涓婚</div>
+              <div class="value">{{ details.enforceReason || '' }}</div>
+            </el-col>
+            <el-col :span="12">
+              <div class="label">鏄惁閫氱煡浼佷笟</div>
+              <div class="value">{{ status.isNoticeCompany[details.isNoticeCompany] }}</div>
+            </el-col>
+            <el-col :span="24">
+              <div class="label">鎵ф硶杩囩▼</div>
+              <div class="value">
+                <div>
+                  <img :src="baseUrl + item" alt="" class="image" v-for="(item, index) in details.regionImgs"
+                    :key="index" />
+                </div>
+                <div>
+                  {{ details.regionReason }}
+                </div>
+              </div>
+            </el-col>
+            <el-col :span="12">
+              <div class="label">鎵ф硶缁撴灉</div>
+              <div class="value">
+                {{ status.regionStatus[details.regionStatus] }}
+              </div>
+            </el-col>
+          </el-row>
+        </div>
       </div>
-      <div class="title">鎵ф硶璇勪环</div>
-      <div>
-        <el-row>
-          <el-col :span="12">
-            <div class="label">鎵ф硶涓撲笟鎬�</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-          <el-col :span="12">
-            <div class="label">鎵ф硶鍚堢悊鎬�</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-          <el-col :span="24">
-            <div class="label">鎵ф硶璁ょ湡绋嬪害</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-          <el-col :span="12">
-            <div class="label">鎵ф硶缁撴灉婊℃剰搴�</div> <div class="value">鍙告硶妫�鏌�</div>
-          </el-col>
-        </el-row>
+      <div v-if="details.orderStatus == 4">
+        <div class="title">鎵ф硶璇勪环</div>
+        <div class=" end-content" v-if="details.evaluateVo">
+          <!-- <el-row> -->
+            <div  v-for="(item,index) in details.evaluateVo.questionList" :key="index">
+              <div class="label" >{{item.questionName}}</div>
+              <div class="value" v-if="item.questionType == 2"><el-rate v-model="item.questionScore" disabled></el-rate></div>
+              <div class="value" v-if="item.questionType == 1" style="margin: 10px;">
+                  <!-- <el-raido-group v-model="item.remark" >
+                    <el-radio v-for="(ele,inde) in item.answerList" :key="inde"  :value="ele.answerId">
+                      {{ ele.answerName }} {{ele.answerId}} {{item.remark}}
+                    </el-radio>
+                  </el-raido-group> -->
+                  {{ item.answerList.find((ele) => ele.answerId == item.remark).answerName }}
+              </div>
+
+            </div>
+            <!-- <el-col :span="12">
+              <div class="label">鎵ф硶鍚堢悊鎬�</div>
+              <div class="value">鍙告硶妫�鏌�</div>
+            </el-col>
+            <el-col :span="24">
+              <div class="label">鎵ф硶璁ょ湡绋嬪害</div>
+              <div class="value">鍙告硶妫�鏌�</div>
+            </el-col>
+            <el-col :span="12">
+              <div class="label">鎵ф硶缁撴灉婊℃剰搴�</div>
+              <div class="value">鍙告硶妫�鏌�</div>
+            </el-col> -->
+          <!-- </el-row> -->
+        </div>
       </div>
     </div>
     <template #footer>
@@ -79,11 +119,115 @@
 </template>
 
 <script setup lang="ts">
-  const dialogVisible = ref(false)
-  function openDialog() {
-    dialogVisible.value = true
+import { getOrder } from '@/api/system/company/company'
+const dialogVisible = ref(false)
+const details:any = ref({
+  evaluateVo: {
+    questionList: []
   }
-  function closeDialog() {
-    dialogVisible.value = false
+})
+const loading = ref(false)
+const status = {
+  orderStatusMap: {
+    '-1': '鎷掔粷',
+    0: '寰呮彁浜�',
+    1: '宸叉彁浜�',
+    2: '寰呮墽琛�',
+    3: '寰呬笂鎶�',
+    4: '宸茬粨鏉�',
+  },
+  regionStatus: {
+    0: '姝e父',
+    1: '鍋滀笟鏁撮】',
+  },
+  isNoticeCompany: {
+    0: '鍚�',
+    1: '鏄�',
   }
-</script>
\ No newline at end of file
+}
+const baseUrl = import.meta.env.VITE_APP_BASE_API
+function getDetails(orderId) {
+  getOrder({ orderId }).then(val => {
+    if (val.data.regionImgs) {
+      val.data.regionImgs = val.data.regionImgs.split(',')
+    }
+    if(val.data.evaluateVo && val.data.evaluateVo.questionList) {
+      val.data.evaluateVo.questionList.map(item => {
+        item.remark = Number(item.remark)
+      })
+    }
+    details.value = val.data
+    console.log(details.value)
+    loading.value = false
+  }).catch(err => {
+    loading.value = false
+  })
+}
+function openDialog(item: any) {
+  // console.log()
+  loading.value = true
+  getDetails(item.orderId)
+  dialogVisible.value = true
+}
+
+
+function closeDialog() {
+  dialogVisible.value = false
+}
+defineExpose({ openDialog, closeDialog })
+</script>
+
+<style lang="scss" scoped>
+.title {
+  font-size: 16px;
+  background-color: #f6f6f6;
+  padding: 10px;
+  margin-bottom: 14px;
+}
+
+.el-col {
+  display: flex;
+  justify-content: flex-start;
+  align-items: flex-start;
+  margin-bottom: 15px
+}
+
+.content {
+  margin-bottom: 14px;
+
+  .label {
+    font-size: 14px;
+    color: #999;
+    width: 110px;
+    text-align: justify;
+    text-align-last: justify;
+    margin-right: 30px;
+  }
+
+  .value {
+    font-size: 14px;
+    color: #333;
+    width: calc(100% - 120px);
+  }
+}
+.end-content{
+  margin-bottom: 14px;
+  .label {
+    font-size: 14px;
+    color: #999;
+    margin-right: 30px;
+  }
+
+  .value {
+    font-size: 14px;
+    color: #333;
+  }
+}
+.image {
+  width: 80px;
+  height: 80px;
+  display: inline-block;
+  margin-right: 20px;
+  margin-bottom: 20px
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.1