From 71a9eef518f2f2f1a1eb2fb90f2eb8ab7b155bc8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 一月 2026 14:57:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_天津军泰伟业' into dev_天津军泰伟业

---
 src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue |  575 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 307 insertions(+), 268 deletions(-)

diff --git a/src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue b/src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue
index 3f0fc69..49b040d 100644
--- a/src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue
+++ b/src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue
@@ -4,184 +4,216 @@
     <div class="page-header">
       <h2>浼氳鍙戝竷</h2>
     </div>
-
     <!-- 鎼滅储鍖哄煙 -->
     <el-card class="search-card">
-      <el-form :model="searchForm" inline>
+      <el-form :model="searchForm"
+               inline>
         <el-form-item label="浼氳涓婚">
-          <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ヤ細璁富棰�" clearable/>
+          <el-input v-model="searchForm.title"
+                    placeholder="璇疯緭鍏ヤ細璁富棰�"
+                    clearable />
         </el-form-item>
         <el-form-item label="鐢宠浜�">
-          <el-input v-model="searchForm.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable/>
+          <el-input v-model="searchForm.applicant"
+                    placeholder="璇疯緭鍏ョ敵璇蜂汉"
+                    clearable />
         </el-form-item>
         <el-form-item label="鍙戝竷鐘舵��">
-          <el-select style="width: 100px" v-model="searchForm.status" placeholder="璇烽�夋嫨鍙戝竷鐘舵��" clearable>
-            <el-option label="寰呭彂甯�" value="0"/>
-            <el-option label="宸插彂甯�" value="1"/>
+          <el-select style="width: 100px"
+                     v-model="searchForm.status"
+                     placeholder="璇烽�夋嫨鍙戝竷鐘舵��"
+                     clearable>
+            <el-option label="寰呭彂甯�"
+                       value="0" />
+            <el-option label="宸插彂甯�"
+                       value="1" />
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="handleSearch">鎼滅储</el-button>
+          <el-button type="primary"
+                     @click="handleSearch">鎼滅储</el-button>
           <el-button @click="resetSearch">閲嶇疆</el-button>
         </el-form-item>
       </el-form>
     </el-card>
-
     <!-- 浼氳鍙戝竷鍒楄〃 -->
     <el-card>
-      <el-table v-loading="loading" :data="approvalList" border>
-        <el-table-column prop="title" label="浼氳涓婚" align="center" min-width="200" show-overflow-tooltip/>
-        <el-table-column prop="applicant" label="鐢宠浜�" align="center" width="120"/>
-        <el-table-column prop="host" label="涓荤悊浜�" align="center" width="120"/>
-        <el-table-column prop="meetingTime" label="浼氳鏃堕棿" align="center" width="180">
+      <el-table v-loading="loading"
+                :data="approvalList"
+                border>
+        <el-table-column prop="title"
+                         label="浼氳涓婚"
+                         align="center"
+                         min-width="200"
+                         show-overflow-tooltip />
+        <el-table-column prop="applicant"
+                         label="鐢宠浜�"
+                         align="center"
+                         width="120" />
+        <el-table-column prop="host"
+                         label="涓荤悊浜�"
+                         align="center"
+                         width="120" />
+        <el-table-column prop="meetingTime"
+                         label="浼氳鏃堕棿"
+                         align="center"
+                         width="180">
           <template #default="scope">
             {{ formatDateTime(scope.row.meetingTime) }}
           </template>
         </el-table-column>
-        <el-table-column prop="location" label="浼氳鍦扮偣" align="center" width="150"/>
-        <el-table-column prop="participants" label="鍙備細浜烘暟" align="center" width="100">
+        <el-table-column prop="location"
+                         label="浼氳鍦扮偣"
+                         align="center"
+                         width="150" />
+        <el-table-column prop="participants"
+                         label="鍙備細浜烘暟"
+                         align="center"
+                         width="100">
           <template #default="scope">
             {{ scope.row.participants.length }}浜�
           </template>
         </el-table-column>
-        <el-table-column prop="status" label="鍙戝竷鐘舵��" align="center" width="120">
+        <el-table-column prop="status"
+                         label="鍙戝竷鐘舵��"
+                         align="center"
+                         width="120">
           <template #default="scope">
             <el-tag :type="getStatusType(scope.row.status)">
               {{ getStatusText(scope.row.status) }}
             </el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔" align="center" width="200" fixed="right">
+        <el-table-column label="鎿嶄綔"
+                         align="center"
+                         width="200"
+                         fixed="right">
           <template #default="scope">
-            <el-button type="primary" link @click="viewDetail(scope.row)">鏌ョ湅</el-button>
-            <el-button
-                v-if="scope.row.status == '0'"
-                type="primary"
-                link
-                @click="handleApproval(scope.row)"
-            >
+            <el-button type="primary"
+                       link
+                       @click="viewDetail(scope.row)">鏌ョ湅</el-button>
+            <el-button v-if="scope.row.status == '0'"
+                       type="primary"
+                       link
+                       @click="handleApproval(scope.row)">
               鍙戝竷
             </el-button>
           </template>
         </el-table-column>
       </el-table>
-
       <!-- 鍒嗛〉 -->
-      <pagination
-          v-show="total > 0"
-          :total="total"
-          v-model:page="queryParams.current"
-          v-model:limit="queryParams.size"
-          @pagination="getList"
-      />
+      <pagination v-show="total > 0"
+                  :total="total"
+                  v-model:page="queryParams.current"
+                  v-model:limit="queryParams.size"
+                  @pagination="getList" />
     </el-card>
-
     <!-- 浼氳璇︽儏瀵硅瘽妗� -->
-    <el-dialog
-        title="浼氳璇︽儏"
-        v-model="detailDialogVisible"
-        width="800px"
-    >
+    <el-dialog title="浼氳璇︽儏"
+               v-model="detailDialogVisible"
+               width="800px">
       <div v-if="currentMeeting">
-         <el-descriptions label-width="100px" class="meeting-desc" :column="2" border>
-          <el-descriptions-item label="浼氳涓婚" label-class-name="nowrap-label">{{
+        <el-descriptions label-width="100px"
+                         class="meeting-desc"
+                         :column="2"
+                         border>
+          <el-descriptions-item label="浼氳涓婚"
+                                label-class-name="nowrap-label">{{
               currentMeeting.title
             }}</el-descriptions-item>
-          <el-descriptions-item label="鐢宠浜�" label-class-name="nowrap-label">{{
+          <el-descriptions-item label="鐢宠浜�"
+                                label-class-name="nowrap-label">{{
               currentMeeting.applicant
             }}</el-descriptions-item>
-          <el-descriptions-item label="涓荤悊浜�" label-class-name="nowrap-label">{{
+          <el-descriptions-item label="涓荤悊浜�"
+                                label-class-name="nowrap-label">{{
               currentMeeting.host
             }}</el-descriptions-item>
-          <el-descriptions-item label="浼氳鏃堕棿" :span="2" label-class-name="nowrap-label">
+          <el-descriptions-item label="浼氳鏃堕棿"
+                                :span="2"
+                                label-class-name="nowrap-label">
             {{ formatDateTime(currentMeeting.meetingTime) }}
           </el-descriptions-item>
-          <el-descriptions-item label="浼氳鍦扮偣" label-class-name="nowrap-label">{{
+          <el-descriptions-item label="浼氳鍦扮偣"
+                                label-class-name="nowrap-label">{{
               currentMeeting.location
             }}</el-descriptions-item>
-          <el-descriptions-item label="鍙備細浜烘暟" label-class-name="nowrap-label">{{
+          <el-descriptions-item label="鍙備細浜烘暟"
+                                label-class-name="nowrap-label">{{
               currentMeeting.participants.length
             }}浜�</el-descriptions-item>
-          <el-descriptions-item label="鍙戝竷鐘舵��" label-class-name="nowrap-label">
+          <el-descriptions-item label="鍙戝竷鐘舵��"
+                                label-class-name="nowrap-label">
             <el-tag :type="getStatusType(currentMeeting.status)">
               {{ getStatusText(currentMeeting.status) }}
             </el-tag>
           </el-descriptions-item>
-          <el-descriptions-item label="鐢宠鏃堕棿" label-class-name="nowrap-label">{{
+          <el-descriptions-item label="鐢宠鏃堕棿"
+                                label-class-name="nowrap-label">{{
               currentMeeting.createTime
             }}</el-descriptions-item>
-          <el-descriptions-item style="max-height: 400px" label="浼氳璇存槑" :span="2"
+          <el-descriptions-item style="max-height: 400px"
+                                label="浼氳璇存槑"
+                                :span="2"
                                 label-class-name="nowrap-label">{{ currentMeeting.description }}</el-descriptions-item>
         </el-descriptions>
-
-
         <div class="content-section mt-20">
           <h4>鍙備細浜哄憳</h4>
           <div class="participants-list">
-            <el-tag
-                v-for="participant in currentMeeting.participants"
-                :key="participant.id"
-                style="margin-right: 10px; margin-bottom: 10px;"
-            >
+            <el-tag v-for="participant in currentMeeting.participants"
+                    :key="participant.id"
+                    style="margin-right: 10px; margin-bottom: 10px;">
               {{ participant.name }}
             </el-tag>
           </div>
         </div>
       </div>
-
       <template #footer>
         <div class="dialog-footer">
           <el-button @click="detailDialogVisible = false">鍏� 闂�</el-button>
         </div>
       </template>
     </el-dialog>
-
     <!-- 浼氳鍙戝竷瀵硅瘽妗� -->
-    <el-dialog
-        title="浼氳鍙戝竷"
-        v-model="approvalDialogVisible"
-    >
+    <el-dialog title="浼氳鍙戝竷"
+               v-model="approvalDialogVisible">
       <div v-if="currentMeeting">
-        <el-descriptions :column="2" border>
+        <el-descriptions :column="2"
+                         border>
           <el-descriptions-item label="浼氳涓婚">{{ currentMeeting.title }}</el-descriptions-item>
           <el-descriptions-item label="鐢宠浜�">{{ currentMeeting.applicant }}</el-descriptions-item>
           <el-descriptions-item label="涓荤悊浜�">{{ currentMeeting.host }}</el-descriptions-item>
-          <el-descriptions-item label="浼氳鏃堕棿" :span="2">
+          <el-descriptions-item label="浼氳鏃堕棿"
+                                :span="2">
             {{ formatDateTime(currentMeeting.meetingTime) }}
           </el-descriptions-item>
           <el-descriptions-item label="浼氳鍦扮偣">{{ currentMeeting.location }}</el-descriptions-item>
           <el-descriptions-item label="鍙備細浜烘暟">{{ currentMeeting.participants.length }}浜�</el-descriptions-item>
         </el-descriptions>
-
         <div class="content-section mt-20">
           <h4>鍙備細浜哄憳</h4>
           <div class="participants-list">
-            <el-tag
-                v-for="participant in currentMeeting.participants"
-                :key="participant.id"
-                style="margin-right: 10px; margin-bottom: 10px;"
-            >
+            <el-tag v-for="participant in currentMeeting.participants"
+                    :key="participant.id"
+                    style="margin-right: 10px; margin-bottom: 10px;">
               {{ participant.name }}
             </el-tag>
           </div>
         </div>
-
         <div class="approval-opinion mt-20">
           <h4>鍙戝竷鎰忚</h4>
-          <el-input
-              v-model="publishComment"
-              type="textarea"
-              placeholder="璇疯緭鍏ュ彂甯冩剰瑙�"
-              :rows="4"
-          />
+          <el-input v-model="publishComment"
+                    type="textarea"
+                    placeholder="璇疯緭鍏ュ彂甯冩剰瑙�"
+                    :rows="4" />
         </div>
       </div>
-
       <template #footer>
         <div class="dialog-footer">
+          <el-button type="primary"
+                     @click="submitApproval('1')">鍙� 甯�</el-button>
           <el-button @click="approvalDialogVisible = false">鍙� 娑�</el-button>
-<!--          <el-button type="danger" @click="submitApproval('2')">涓嶉�氳繃</el-button>-->
-          <el-button type="primary" @click="submitApproval('1')">鍙� 甯�</el-button>
+          <!--          <el-button type="danger" @click="submitApproval('2')">涓嶉�氳繃</el-button>-->
         </div>
       </template>
     </el-dialog>
@@ -189,228 +221,235 @@
 </template>
 
 <script setup>
-import {ref, reactive, onMounted} from 'vue'
-import {ElMessage, ElMessageBox} from 'element-plus'
-import Pagination from '@/components/Pagination/index.vue'
-import {getRoomEnum, getMeetingPublish,saveMeetingApplication} from '@/api/collaborativeApproval/meeting.js'
-import {getStaffOnJob} from "@/api/personnelManagement/onboarding.js";
-import dayjs from "dayjs";
+  import { ref, reactive, onMounted } from "vue";
+  import { ElMessage, ElMessageBox } from "element-plus";
+  import Pagination from "@/components/Pagination/index.vue";
+  import {
+    getRoomEnum,
+    getMeetingPublish,
+    saveMeetingApplication,
+  } from "@/api/collaborativeApproval/meeting.js";
+  import { getStaffOnJob } from "@/api/personnelManagement/onboarding.js";
+  import dayjs from "dayjs";
 
-// 鏁版嵁鍒楄〃鍔犺浇鐘舵��
-const loading = ref(false)
+  // 鏁版嵁鍒楄〃鍔犺浇鐘舵��
+  const loading = ref(false);
 
-// 鎬绘潯鏁�
-const total = ref(0)
-const roomEnum = ref([])
-const staffList = ref([])
-// 鍙戝竷鍒楄〃鏁版嵁
-const approvalList = ref([])
+  // 鎬绘潯鏁�
+  const total = ref(0);
+  const roomEnum = ref([]);
+  const staffList = ref([]);
+  // 鍙戝竷鍒楄〃鏁版嵁
+  const approvalList = ref([]);
 
-// 鏌ヨ鍙傛暟
-const queryParams = reactive({
-  current: 1,
-  size: 10
-})
+  // 鏌ヨ鍙傛暟
+  const queryParams = reactive({
+    current: 1,
+    size: 10,
+  });
 
-// 鎼滅储琛ㄥ崟
-const searchForm = reactive({
-  title: '',
-  applicant: '',
-  status: ''
-})
+  // 鎼滅储琛ㄥ崟
+  const searchForm = reactive({
+    title: "",
+    applicant: "",
+    status: "",
+  });
 
-// 鏄惁鏄剧ず瀵硅瘽妗�
-const detailDialogVisible = ref(false)
-const approvalDialogVisible = ref(false)
+  // 鏄惁鏄剧ず瀵硅瘽妗�
+  const detailDialogVisible = ref(false);
+  const approvalDialogVisible = ref(false);
 
-// 褰撳墠鏌ョ湅鐨勪細璁�
-const currentMeeting = ref(null)
+  // 褰撳墠鏌ョ湅鐨勪細璁�
+  const currentMeeting = ref(null);
 
-// 鍙戝竷鎰忚
-const publishComment = ref('')
+  // 鍙戝竷鎰忚
+  const publishComment = ref("");
 
-// 鏌ヨ鏁版嵁
-const getList = async () => {
-  loading.value = true
-  let resp = await getMeetingPublish({...searchForm, ...queryParams})
-  approvalList.value = resp.data.records.map(it => {
-    let room = roomEnum.value.find(room => it.roomId === room.id)
-    it.location = `${room.name}(${room.location})`
-    let staffs = JSON.parse(it.participants)
-    it.staffCount = staffs.size
-    it.status = it.publishStatus
-    it.meetingTime = `${it.meetingDate} ${dayjs(it.startTime).format('HH:mm:ss')} ~ ${dayjs(it.endTime).format('HH:mm:ss')}`
-    it.participants = staffList.value.filter(staff => staffs.some(id=>id === staff.id)).map(staff => {
-      return {
-        id: staff.id,
-        name: `${staff.staffName}(${staff.postJob})`
-      }
-    })
+  // 鏌ヨ鏁版嵁
+  const getList = async () => {
+    loading.value = true;
+    let resp = await getMeetingPublish({ ...searchForm, ...queryParams });
+    approvalList.value = resp.data.records.map(it => {
+      let room = roomEnum.value.find(room => it.roomId === room.id);
+      it.location = `${room.name}(${room.location})`;
+      let staffs = JSON.parse(it.participants);
+      it.staffCount = staffs.size;
+      it.status = it.publishStatus;
+      it.meetingTime = `${it.meetingDate} ${dayjs(it.startTime).format(
+        "HH:mm:ss"
+      )} ~ ${dayjs(it.endTime).format("HH:mm:ss")}`;
+      it.participants = staffList.value
+        .filter(staff => staffs.some(id => id === staff.id))
+        .map(staff => {
+          return {
+            id: staff.id,
+            name: `${staff.staffName}(${staff.postJob})`,
+          };
+        });
 
+      return it;
+    });
+    total.value = resp.data.total;
+    loading.value = false;
+  };
 
-    return it
-  })
-  total.value = resp.data.total
-  loading.value = false
-}
+  // 鎼滅储鎸夐挳鎿嶄綔
+  const handleSearch = () => {
+    queryParams.pageNum = 1;
+    getList();
+  };
 
-// 鎼滅储鎸夐挳鎿嶄綔
-const handleSearch = () => {
-  queryParams.pageNum = 1
-  getList()
-}
+  // 閲嶇疆鎼滅储琛ㄥ崟
+  const resetSearch = () => {
+    Object.assign(searchForm, {
+      title: "",
+      applicant: "",
+      status: "",
+    });
+    handleSearch();
+  };
 
-// 閲嶇疆鎼滅储琛ㄥ崟
-const resetSearch = () => {
-  Object.assign(searchForm, {
-    title: '',
-    applicant: '',
-    status: ''
-  })
-  handleSearch()
-}
+  // 鏌ョ湅璇︽儏
+  const viewDetail = row => {
+    currentMeeting.value = row;
+    detailDialogVisible.value = true;
+  };
 
-// 鏌ョ湅璇︽儏
-const viewDetail = (row) => {
-  currentMeeting.value = row
-  detailDialogVisible.value = true
-}
+  // 澶勭悊鍙戝竷
+  const handleApproval = row => {
+    currentMeeting.value = row;
+    publishComment.value = "";
+    approvalDialogVisible.value = true;
+  };
 
-// 澶勭悊鍙戝竷
-const handleApproval = (row) => {
-  currentMeeting.value = row
-  publishComment.value = ''
-  approvalDialogVisible.value = true
-}
+  // 鑾峰彇鐘舵�佺被鍨�
+  const getStatusType = status => {
+    const statusMap = {
+      0: "info", // 寰呭彂甯�
+      1: "success", // 宸查�氳繃
+      2: "danger", // 鏈�氳繃
+    };
+    return statusMap[status] || "info";
+  };
 
-// 鑾峰彇鐘舵�佺被鍨�
-const getStatusType = (status) => {
-  const statusMap = {
-    '0': 'info',     // 寰呭彂甯�
-    '1': 'success',  // 宸查�氳繃
-    '2': 'danger',  // 鏈�氳繃
-  }
-  return statusMap[status] || 'info'
-}
+  // 鑾峰彇鐘舵�佹枃鏈�
+  const getStatusText = status => {
+    const statusMap = {
+      0: "寰呭彂甯�",
+      1: "宸插彂甯�",
+      2: "宸插彇娑�",
+    };
+    return statusMap[status] || "鏈煡";
+  };
 
-// 鑾峰彇鐘舵�佹枃鏈�
-const getStatusText = (status) => {
-  const statusMap = {
-    '0': '寰呭彂甯�',
-    '1': '宸插彂甯�',
-    '2': '宸插彇娑�',
-  }
-  return statusMap[status] || '鏈煡'
-}
+  // 鏍煎紡鍖栨棩鏈熸椂闂�
+  const formatDateTime = dateTime => {
+    if (!dateTime) return "";
+    return dateTime.replace(" ", "\n");
+  };
 
-// 鏍煎紡鍖栨棩鏈熸椂闂�
-const formatDateTime = (dateTime) => {
-  if (!dateTime) return ''
-  return dateTime.replace(' ', '\n')
-}
+  // 鎻愪氦鍙戝竷
+  const submitApproval = status => {
+    // if (status === 'approved' && !publishComment.value.trim()) {
+    //   ElMessage.warning('璇峰~鍐欏彂甯冩剰瑙�')
+    //   return
+    // }
 
-// 鎻愪氦鍙戝竷
-const submitApproval = (status) => {
-  // if (status === 'approved' && !publishComment.value.trim()) {
-  //   ElMessage.warning('璇峰~鍐欏彂甯冩剰瑙�')
-  //   return
-  // }
-
-  ElMessageBox.confirm(
-      `纭${status === '1' ? '鍙戝竷' : '鍙栨秷'}璇ヤ細璁紵`,
-      '鍙戝竷纭',
+    ElMessageBox.confirm(
+      `纭${status === "1" ? "鍙戝竷" : "鍙栨秷"}璇ヤ細璁紵`,
+      "鍙戝竷纭",
       {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
       }
-  ).then(() => {
-    saveMeetingApplication({
-      id: currentMeeting.value.id,
-      publishStatus: status,
-      publishComment: publishComment.value
-    }).then(resp=>{
-      // 鏇存柊浼氳鐘舵��
-      currentMeeting.value.status = status
+    )
+      .then(() => {
+        saveMeetingApplication({
+          id: currentMeeting.value.id,
+          publishStatus: status,
+          publishComment: publishComment.value,
+        }).then(resp => {
+          // 鏇存柊浼氳鐘舵��
+          currentMeeting.value.status = status;
 
-      ElMessage.success('鍙戝竷鎻愪氦鎴愬姛')
-      approvalDialogVisible.value = false
-      getList()
-    })
+          ElMessage.success("鍙戝竷鎻愪氦鎴愬姛");
+          approvalDialogVisible.value = false;
+          getList();
+        });
+      })
+      .catch(() => {});
+  };
 
-  }).catch(() => {
-  })
-}
+  // 椤甸潰鍔犺浇鏃惰幏鍙栨暟鎹�
+  onMounted(async () => {
+    const [resp1, resp2] = await Promise.all([getRoomEnum(), getStaffOnJob()]);
+    roomEnum.value = resp1.data;
+    staffList.value = resp2.data;
 
-// 椤甸潰鍔犺浇鏃惰幏鍙栨暟鎹�
-onMounted(async () => {
-  const [resp1, resp2]= await Promise.all([getRoomEnum(), getStaffOnJob()])
-  roomEnum.value = resp1.data
-  staffList.value = resp2.data
-
-  await getList()
-})
+    await getList();
+  });
 </script>
 
 <style scoped>
-.app-container {
-  padding: 20px;
-}
+  .app-container {
+    padding: 20px;
+  }
 
-.page-header {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  margin-bottom: 20px;
-}
+  .page-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20px;
+  }
 
-.page-header h2 {
-  margin: 0;
-  color: #303133;
-}
+  .page-header h2 {
+    margin: 0;
+    color: #303133;
+  }
 
-.search-card {
-  margin-bottom: 20px;
-}
+  .search-card {
+    margin-bottom: 20px;
+  }
 
-.dialog-footer {
-  display: flex;
-  justify-content: flex-end;
-  gap: 10px;
-}
+  .dialog-footer {
+    display: flex;
+    justify-content: flex-end;
+    gap: 10px;
+  }
 
-.content-section h4 {
-  margin: 0 0 15px 0;
-  color: #303133;
-}
+  .content-section h4 {
+    margin: 0 0 15px 0;
+    color: #303133;
+  }
 
-.mt-20 {
-  margin-top: 20px;
-}
+  .mt-20 {
+    margin-top: 20px;
+  }
 
-.participants-list {
-  min-height: 40px;
-  padding: 15px;
-  border-radius: 4px;
-  line-height: 1.6;
-}
+  .participants-list {
+    min-height: 40px;
+    padding: 15px;
+    border-radius: 4px;
+    line-height: 1.6;
+  }
 
-.approval-opinion h4 {
-  margin: 0 0 15px 0;
-  color: #303133;
-}
+  .approval-opinion h4 {
+    margin: 0 0 15px 0;
+    color: #303133;
+  }
 
-.nowrap-label {
-  white-space: nowrap !important;
-}
+  .nowrap-label {
+    white-space: nowrap !important;
+  }
 
-.description-content {
-  white-space: pre-wrap;
-  word-wrap: break-word;
-  line-height: 1.6;
-  padding: 10px;
-  background-color: #f5f7fa;
-  border-radius: 4px;
-  min-height: 60px;
-}
+  .description-content {
+    white-space: pre-wrap;
+    word-wrap: break-word;
+    line-height: 1.6;
+    padding: 10px;
+    background-color: #f5f7fa;
+    border-radius: 4px;
+    min-height: 60px;
+  }
 </style>

--
Gitblit v1.9.3