From 5a85dcab83e969d6b21c599b512a15117e9b8651 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 04 七月 2024 08:54:30 +0800
Subject: [PATCH] ''

---
 h5/pages/staff/meetingDetail.vue |  145 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 115 insertions(+), 30 deletions(-)

diff --git a/h5/pages/staff/meetingDetail.vue b/h5/pages/staff/meetingDetail.vue
index 0222759..fd97fcf 100644
--- a/h5/pages/staff/meetingDetail.vue
+++ b/h5/pages/staff/meetingDetail.vue
@@ -10,7 +10,7 @@
     <!--  -->
     <view class="empty"></view>
     <view class="module_list">
-      <view class="item">
+      <view class="item" v-if="detail.meetingContent">
         <view class="label">浼氳鍐呭</view>
         <view class="value">
           <!-- <text>涓昏璁ㄨ鏅鸿兘浼氳瀹ょ郴缁熼�夊瀷锛岃澶у涓�瀹氳鎸夋椂鏉ュ紑浼氾紝鏃堕棿瀹濊吹銆傛劅璋㈠ぇ瀹讹紒</text> -->
@@ -24,7 +24,7 @@
           />
         </view>
       </view>
-      <view class="item">
+      <view class="item" v-if="detail.userResponseList && detail.userResponseList.length > 0">
         <view class="label">鍙備細浜哄憳</view>
         <view class="value">
           <view class="personnel">
@@ -33,13 +33,19 @@
               v-for="mem in detail.userResponseList"
               :key="mem.id"
             >
-              <image :src="mem.avatar ? mem.avatar : require('@/static/meeting/common/default_user@2x.png')" class="avatar" mode=""></image>
+              <image
+                v-if="mem.avatar"
+                :src="mem.avatar"
+                class="avatar"
+                mode=""
+              ></image>
+              <view v-else class="avatar">{{ mem.realname.slice(0, 1) }}</view>
               <view class="name">{{ mem.realname }}</view>
             </view>
           </view>
         </view>
       </view>
-      <view class="item">
+      <view class="item" v-if="detail.projectsResponseList && detail.projectsResponseList.length > 0">
         <view class="label">鏈嶅姟椤�</view>
         <view class="value">
           <template v-for="(ser, serI) in detail.projectsResponseList">
@@ -54,13 +60,13 @@
           </template>
         </view>
       </view>
-      <view class="item">
+      <view class="item" v-if="detail.remark || detail.meetingRemark">
         <view class="label">澶囨敞</view>
         <view class="value">{{ detail.remark || detail.meetingRemark }}</view>
       </view>
       <view class="item">
         <view class="label">棰勭害浜�</view>
-        <view class="value"
+        <view class="value" v-if="detail.bookingUser"
           >{{ detail.bookingUser.companyName || "" }}
           {{ detail.bookingUser.realname }}
           {{ detail.bookingUser.mobile }}</view
@@ -69,22 +75,72 @@
     </view>
     <view class="empty empty2"></view>
     <view class="main_footer" v-if="detail.meetingStatus == '1'">
-      <view class="btn" @click="handleCancel(detail.id)">鎾ゅ洖</view>
+      <view class="btn" @click="openCancel">鎾ゅ洖</view>
       <view class="btn agree" @click="handleEdit">淇敼</view>
     </view>
     <view class="main_footer" v-if="detail.meetingStatus == '2'">
-      <view class="btn agree" @click="handleSub('2')">缁撴潫</view>
+      <view class="btn agree" @click="openClose">缁撴潫</view>
     </view>
+    <!-- 鎾ゅ洖 -->
+    <u-popup
+      catchtouchmove
+      :show="isShowCancel"
+      closeable
+      :round="12"
+      mode="bottom"
+      @close="isShowCancel = false"
+    >
+      <view class="cancel_modal">
+        <view class="title">鎾ら攢棰勭害</view>
+        <view class="line">
+          <view class="label">鎾ゅ洖璇存槑</view>
+          <textarea
+            class="textarea"
+            placeholder="璇疯緭鍏�"
+            maxlength="300"
+            v-model="cancelParam.businessRemark"
+          />
+        </view>
+        <view class="sub_btn" @click="handleCancel('0')">鎻愪氦</view>
+      </view>
+    </u-popup>
+    <!-- 缁撴潫 -->
+    <u-popup
+      catchtouchmove
+      closeable
+      :show="isShowClose"
+      :round="12"
+      mode="bottom"
+      @close="isShowClose = false"
+    >
+      <view class="cancel_modal">
+        <view class="title">缁撴潫棰勭害</view>
+        <view class="line">
+          <view class="label">缁撴潫璇存槑</view>
+          <textarea
+            class="textarea"
+            placeholder="璇疯緭鍏�"
+            maxlength="300"
+            v-model="cancelParam.businessRemark"
+          />
+        </view>
+        <view class="sub_btn" @click="handleCancel('1')">鎻愪氦</view>
+      </view>
+    </u-popup>
   </view>
 </template>
 
 <script>
-import { meetingDetail, cancelById } from '@/api'
+import { meetingDetail, cancelById, closeMeetignById } from '@/api'
 export default {
   data() {
     return {
       param: {},
       detail: {},
+
+      cancelParam: {},
+      isShowCancel: false,
+      isShowClose: false,
       id: ''
     }
   },
@@ -99,30 +155,30 @@
         this.detail = res.data
       })
     },
-    handleCancel(id) {
-      uni.showModal({
-        title: '鎻愮ず',
-        // confirmText: '纭',
-        content: '纭鎾ゅ洖璇ヤ細璁悧',
-        success: function (res) {
-          if (res.confirm) {
-            cancelById({ id }).then(res => {
-              if (res.code === 200) {
-                setTimeout(() => {
-                  uni.showToast({
-                    title: '鎾ゅ洖鎴愬姛',
-                    icon: 'success'
-                  })
-                })
-                setTimeout(() => {
-                  uni.navigateBack()
-                })
-              }
+    openCancel() {
+      this.isShowCancel = true
+      this.cancelParam = {}
+    },
+    openClose() {
+      this.isShowClose = true
+      this.cancelParam = {}
+    },
+    handleCancel(str) {
+      const { id } = this.detail
+      let fn = str == '0' ? cancelById : closeMeetignById
+      fn({ id, ...this.cancelParam }).then(res => {
+        if (res.code === 200) {
+          setTimeout(() => {
+            uni.showToast({
+              title: '鎻愪氦鎴愬姛',
+              icon: 'success'
             })
-          }
+          })
+          setTimeout(() => {
+            uni.navigateBack()
+          })
         }
       })
-
     },
     handleEdit() {
       const { id } = this
@@ -189,10 +245,12 @@
           flex-direction: column;
           justify-content: center;
           align-items: center;
+          justify-content: center;
           margin-right: 24rpx;
           .avatar {
             width: 72rpx;
             height: 72rpx;
+            margin: 0;
             border-radius: 50%;
           }
           .name {
@@ -241,4 +299,31 @@
 .empty2 {
   height: 280rpx !important;
 }
+.cancel_modal {
+  height: 440rpx;
+  padding: 30rpx;
+  .title {
+    padding: 0 30rpx 50rpx;
+    text-align: center;
+  }
+  .line {
+    .label {
+      margin-bottom: 10rpx;
+    }
+    textarea {
+      height: 120rpx;
+    }
+  }
+  .sub_btn {
+    background-color: $uni-color-primary;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    color: #fff;
+    border-radius: 44rpx;
+    width: 690rpx;
+    height: 88rpx;
+    margin: 20rpx auto;
+  }
+}
 </style>

--
Gitblit v1.9.3