Преглед на файлове

提交报告厅审核界面修改

zlwu преди 1 година
родител
ревизия
d2781d4470
променени са 1 файла, в които са добавени 61 реда и са изтрити 30 реда
  1. 61 30
      web/src/views/hq/hallAudit/index.vue

+ 61 - 30
web/src/views/hq/hallAudit/index.vue

@@ -4,9 +4,9 @@
       <div ref="searchRef" v-show="showSearch" class="mb-[10px]">
       <div ref="searchRef" v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover">
         <el-card shadow="hover">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="100px">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="100px">
-            <el-form-item label="报告厅ID" prop="hallId">
+            <!-- <el-form-item label="报告厅ID" prop="hallId">
               <el-input v-model="queryParams.hallId" placeholder="请输入报告厅ID" clearable @keyup.enter="handleQuery" />
               <el-input v-model="queryParams.hallId" placeholder="请输入报告厅ID" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="报告厅名称" prop="hallName">
             <el-form-item label="报告厅名称" prop="hallName">
               <el-input v-model="queryParams.hallName" placeholder="请输入报告厅名称" clearable @keyup.enter="handleQuery" />
               <el-input v-model="queryParams.hallName" placeholder="请输入报告厅名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
             </el-form-item>
@@ -53,7 +53,14 @@
         </el-row>
         </el-row>
       </template>
       </template>
 
 
-      <el-table v-loading="loading" border :data="hallReservationList" @selection-change="handleSelectionChange" style="margin-bottom: 0">
+      <el-table
+        v-loading="loading"
+        border
+        :data="hallReservationList"
+        @selection-change="handleSelectionChange"
+        @row-dblclick="handleView"
+        style="margin-bottom: 0"
+      >
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="报告厅ID" align="center" prop="hallId" />
         <el-table-column label="报告厅ID" align="center" prop="hallId" />
         <el-table-column label="报告厅名称" align="center" prop="hallName" />
         <el-table-column label="报告厅名称" align="center" prop="hallName" />
@@ -80,13 +87,9 @@
               :hide-after="100"
               :hide-after="100"
               effect="dark"
               effect="dark"
             >
             >
-              <span class="purpose-text">
-                {{
-                  scope.row.reservationPurpose && scope.row.reservationPurpose.length > 100
-                    ? scope.row.reservationPurpose.substring(0, 100) + '...'
-                    : scope.row.reservationPurpose
-                }}
-              </span>
+              <div class="purpose-text line-clamp-3">
+                {{ scope.row.reservationPurpose }}
+              </div>
             </el-tooltip>
             </el-tooltip>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -112,17 +115,13 @@
               :hide-after="100"
               :hide-after="100"
               effect="dark"
               effect="dark"
             >
             >
-              <span class="audit-remark-text">
-                {{
-                  scope.row.auditRemark && scope.row.auditRemark.length > 100
-                    ? scope.row.auditRemark.substring(0, 100) + '...'
-                    : scope.row.auditRemark
-                }}
-              </span>
+              <div class="audit-remark-text line-clamp-3">
+                {{ scope.row.auditRemark }}
+              </div>
             </el-tooltip>
             </el-tooltip>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220">
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220" fixed="right">
           <template #default="scope">
           <template #default="scope">
             <!-- 查看按钮,所有记录都可以查看 -->
             <!-- 查看按钮,所有记录都可以查看 -->
             <el-tooltip content="查看" placement="top">
             <el-tooltip content="查看" placement="top">
@@ -180,9 +179,9 @@
           <span class="form-text">{{ viewForm.hallName }}</span>
           <span class="form-text">{{ viewForm.hallName }}</span>
         </el-form-item>
         </el-form-item>
         <!-- 报告厅图片展示区域 -->
         <!-- 报告厅图片展示区域 -->
-        <el-form-item label="报告厅图片" v-if="viewHallImages.length > 0">
+        <el-form-item label="报告厅图片">
           <div class="view-hall-images">
           <div class="view-hall-images">
-            <div class="image-gallery">
+            <div class="image-gallery" v-if="viewHallImages.length > 0">
               <div v-for="(image, index) in viewHallImages" :key="index" class="image-item" @click="previewImage(image, index)">
               <div v-for="(image, index) in viewHallImages" :key="index" class="image-item" @click="previewImage(image, index)">
                 <img :src="image" class="gallery-image" @error="handleImageError" />
                 <img :src="image" class="gallery-image" @error="handleImageError" />
                 <div class="image-overlay">
                 <div class="image-overlay">
@@ -190,6 +189,10 @@
                 </div>
                 </div>
               </div>
               </div>
             </div>
             </div>
+            <div v-else class="no-images-placeholder">
+              <el-icon><Picture /></el-icon>
+              <span>暂无图片</span>
+            </div>
           </div>
           </div>
         </el-form-item>
         </el-form-item>
         <el-form-item label="预约开始时间">
         <el-form-item label="预约开始时间">
@@ -430,7 +433,7 @@ const getHallList = async () => {
 const getHallImages = (imageUrl: string): string[] => {
 const getHallImages = (imageUrl: string): string[] => {
   if (!imageUrl || imageUrl.trim() === '') return [];
   if (!imageUrl || imageUrl.trim() === '') return [];
   // 支持多种分隔符:逗号、分号、空格
   // 支持多种分隔符:逗号、分号、空格
-  const separators = /[,;|\s]+/;
+  const separators = /[,;|\\s]+/;
   const images = imageUrl
   const images = imageUrl
     .split(separators)
     .split(separators)
     .map((url) => url.trim())
     .map((url) => url.trim())
@@ -855,22 +858,31 @@ onMounted(() => {
 
 
 /* 表格中预约用途文本样式 */
 /* 表格中预约用途文本样式 */
 .purpose-text {
 .purpose-text {
-  display: inline-block;
-  max-width: 100%;
+  display: -webkit-box;
   word-break: break-all;
   word-break: break-all;
   word-wrap: break-word;
   word-wrap: break-word;
   line-height: 1.4;
   line-height: 1.4;
   cursor: pointer;
   cursor: pointer;
+  padding: 0 4px;
 }
 }
 
 
 /* 表格中审核备注文本样式 */
 /* 表格中审核备注文本样式 */
 .audit-remark-text {
 .audit-remark-text {
-  display: inline-block;
-  max-width: 100%;
+  display: -webkit-box;
   word-break: break-all;
   word-break: break-all;
   word-wrap: break-word;
   word-wrap: break-word;
   line-height: 1.4;
   line-height: 1.4;
   cursor: pointer;
   cursor: pointer;
+  padding: 0 4px;
+}
+
+/* 三行省略样式 */
+.line-clamp-3 {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+  max-height: 4.2em;
 }
 }
 
 
 /* 查看详情表单样式 */
 /* 查看详情表单样式 */
@@ -920,11 +932,6 @@ onMounted(() => {
   width: 100%;
   width: 100%;
 }
 }
 
 
-/* 选中报告厅的图片展示区域 */
-.selected-hall-images {
-  width: 100%;
-}
-
 .image-gallery {
 .image-gallery {
   display: flex;
   display: flex;
   flex-wrap: wrap;
   flex-wrap: wrap;
@@ -977,6 +984,30 @@ onMounted(() => {
   font-size: 20px;
   font-size: 20px;
 }
 }
 
 
+/* 暂无图片占位样式 */
+.no-images-placeholder {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  max-width: 450px;
+  height: 120px;
+  background-color: #f5f7fa;
+  border: 2px dashed #dcdfe6;
+  border-radius: 8px;
+  color: #909399;
+}
+
+.no-images-placeholder .el-icon {
+  font-size: 32px;
+  margin-bottom: 8px;
+}
+
+.no-images-placeholder span {
+  font-size: 14px;
+}
+
 /* 审核对话框样式 */
 /* 审核对话框样式 */
 .audit-form .form-text {
 .audit-form .form-text {
   color: #303133;
   color: #303133;