From 5333935ae59999c47653122a669f4326f0173c1c Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 08 一月 2026 14:47:02 +0800
Subject: [PATCH] 确认按钮在左边

---
 src/views/collaborativeApproval/notificationManagement/summary/index.vue |  580 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 308 insertions(+), 272 deletions(-)

diff --git a/src/views/collaborativeApproval/notificationManagement/summary/index.vue b/src/views/collaborativeApproval/notificationManagement/summary/index.vue
index 04eaa4a..76d95c9 100644
--- a/src/views/collaborativeApproval/notificationManagement/summary/index.vue
+++ b/src/views/collaborativeApproval/notificationManagement/summary/index.vue
@@ -4,157 +4,185 @@
     <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>
-          <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="meetingList" 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="meetingList"
+                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 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
-              type="primary"
-              link
-              @click="addMinutes(scope.row)"
-            >
+            <el-button type="primary"
+                       link
+                       @click="viewDetail(scope.row)">鏌ョ湅</el-button>
+            <el-button type="primary"
+                       link
+                       @click="addMinutes(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"
-            label-class-name="nowrap-label">{{ currentMeeting.description }}</el-descriptions-item>
+          <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="minutesDialogVisible"
-      width="80%"
-      @close="handleCloseMinutesDialog"
-    >
+    <el-dialog title="娣诲姞浼氳绾"
+               v-model="minutesDialogVisible"
+               width="80%"
+               @close="handleCloseMinutesDialog">
       <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="editor-container">
-            <Editor
-              v-model="minutesContent"
-              :min-height="400"
-            />
+            <Editor v-model="minutesContent"
+                    :min-height="400" />
           </div>
         </div>
       </div>
-
       <template #footer>
         <div class="dialog-footer">
+          <el-button type="primary"
+                     @click="submitMinutes">淇� 瀛�</el-button>
           <el-button @click="minutesDialogVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="submitMinutes">淇� 瀛�</el-button>
         </div>
       </template>
     </el-dialog>
@@ -162,242 +190,250 @@
 </template>
 
 <script setup>
-import { ref, reactive, onMounted } from 'vue'
-import { ElMessage } from 'element-plus'
-import Pagination from '@/components/Pagination/index.vue'
-import Editor from '@/components/Editor/index.vue'
-import { getRoomEnum, getMeetingPublish ,getMeetingMinutesByMeetingId,saveMeetingMinutes} from '@/api/collaborativeApproval/meeting.js'
-import { getStaffOnJob } from "@/api/personnelManagement/onboarding.js"
-import dayjs from "dayjs"
+  import { ref, reactive, onMounted } from "vue";
+  import { ElMessage } from "element-plus";
+  import Pagination from "@/components/Pagination/index.vue";
+  import Editor from "@/components/Editor/index.vue";
+  import {
+    getRoomEnum,
+    getMeetingPublish,
+    getMeetingMinutesByMeetingId,
+    saveMeetingMinutes,
+  } 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 total = ref(0);
+  const roomEnum = ref([]);
+  const staffList = ref([]);
 
-// 浼氳鍒楄〃鏁版嵁
-const meetingList = ref([])
+  // 浼氳鍒楄〃鏁版嵁
+  const meetingList = ref([]);
 
-// 鏌ヨ鍙傛暟
-const queryParams = reactive({
-  current: 1,
-  size: 10
-})
+  // 鏌ヨ鍙傛暟
+  const queryParams = reactive({
+    current: 1,
+    size: 10,
+  });
 
-// 鎼滅储琛ㄥ崟
-const searchForm = reactive({
-  title: '',
-  applicant: '',
-  // status: '1' // 榛樿鍙樉绀哄凡閫氳繃瀹℃壒鐨勪細璁�
-})
+  // 鎼滅储琛ㄥ崟
+  const searchForm = reactive({
+    title: "",
+    applicant: "",
+    // status: '1' // 榛樿鍙樉绀哄凡閫氳繃瀹℃壒鐨勪細璁�
+  });
 
-// 鏄惁鏄剧ず瀵硅瘽妗�
-const detailDialogVisible = ref(false)
-const minutesDialogVisible = ref(false)
+  // 鏄惁鏄剧ず瀵硅瘽妗�
+  const detailDialogVisible = ref(false);
+  const minutesDialogVisible = ref(false);
 
-// 褰撳墠鏌ョ湅鐨勪細璁�
-const currentMeeting = ref(null)
+  // 褰撳墠鏌ョ湅鐨勪細璁�
+  const currentMeeting = ref(null);
 
-// 浼氳绾鍐呭
-const minutesContent = ref('')
-const minutesContentId = ref('')
+  // 浼氳绾鍐呭
+  const minutesContent = ref("");
+  const minutesContentId = ref("");
 
-// 鏌ヨ鏁版嵁
-const getList = async () => {
-  loading.value = true
-  let resp = await getMeetingPublish({ ...searchForm, ...queryParams })
-  meetingList.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.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 });
+    meetingList.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.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.current = 1
-  getList()
-}
+  // 鎼滅储鎸夐挳鎿嶄綔
+  const handleSearch = () => {
+    queryParams.current = 1;
+    getList();
+  };
 
-// 閲嶇疆鎼滅储琛ㄥ崟
-const resetSearch = () => {
-  Object.assign(searchForm, {
-    title: '',
-    applicant: '',
-    // status: '1'
-  })
-  handleSearch()
-}
+  // 閲嶇疆鎼滅储琛ㄥ崟
+  const resetSearch = () => {
+    Object.assign(searchForm, {
+      title: "",
+      applicant: "",
+      // status: '1'
+    });
+    handleSearch();
+  };
 
-// 鏌ョ湅璇︽儏
-const viewDetail = (row) => {
-  currentMeeting.value = row
-  detailDialogVisible.value = true
-}
+  // 鏌ョ湅璇︽儏
+  const viewDetail = row => {
+    currentMeeting.value = row;
+    detailDialogVisible.value = true;
+  };
 
-// 娣诲姞浼氳绾
-const addMinutes = async (row) => {
-  let resp = await getMeetingMinutesByMeetingId(row.id)
-  currentMeeting.value = row
-  if (resp.data){
-    minutesContent.value = resp.data.content
-    minutesContentId.value = resp.data.id
-  }else {
-    minutesContent.value = `<h2>${row.title}浼氳绾</h2>
-<p><strong>浼氳鏃堕棿锛�</strong>${row.meetingTime}</p>
-<p><strong>浼氳鍦扮偣锛�</strong>${row.location}</p>
-<p><strong>涓绘寔浜猴細</strong>${row.host}</p>
-<p><strong>鍙備細浜哄憳锛�</strong></p>
-<ol>
-  ${row.participants.map(p => `<li>${p.name}</li>`).join('')}
-</ol>
-<p><strong>浼氳鍐呭锛�</strong></p>
-<ol>
-  <li>璁涓�锛�
-    <ul>
-      <li>璁ㄨ鍐呭锛�</li>
-      <li>鍐宠浜嬮」锛�</li>
-    </ul>
-  </li>
-  <li>璁浜岋細
-    <ul>
-      <li>璁ㄨ鍐呭锛�</li>
-      <li>鍐宠浜嬮」锛�</li>
-    </ul>
-  </li>
-</ol>
-<p><strong>澶囨敞锛�</strong></p>`
-  }
+  // 娣诲姞浼氳绾
+  const addMinutes = async row => {
+    let resp = await getMeetingMinutesByMeetingId(row.id);
+    currentMeeting.value = row;
+    if (resp.data) {
+      minutesContent.value = resp.data.content;
+      minutesContentId.value = resp.data.id;
+    } else {
+      minutesContent.value = `<h2>${row.title}浼氳绾</h2>
+  <p><strong>浼氳鏃堕棿锛�</strong>${row.meetingTime}</p>
+  <p><strong>浼氳鍦扮偣锛�</strong>${row.location}</p>
+  <p><strong>涓绘寔浜猴細</strong>${row.host}</p>
+  <p><strong>鍙備細浜哄憳锛�</strong></p>
+  <ol>
+    ${row.participants.map(p => `<li>${p.name}</li>`).join("")}
+  </ol>
+  <p><strong>浼氳鍐呭锛�</strong></p>
+  <ol>
+    <li>璁涓�锛�
+      <ul>
+        <li>璁ㄨ鍐呭锛�</li>
+        <li>鍐宠浜嬮」锛�</li>
+      </ul>
+    </li>
+    <li>璁浜岋細
+      <ul>
+        <li>璁ㄨ鍐呭锛�</li>
+        <li>鍐宠浜嬮」锛�</li>
+      </ul>
+    </li>
+  </ol>
+  <p><strong>澶囨敞锛�</strong></p>`;
+    }
 
-  minutesDialogVisible.value = true
-}
+    minutesDialogVisible.value = true;
+  };
 
-// 鎻愪氦浼氳绾
-const submitMinutes = () => {
-  if (!minutesContent.value) {
-    ElMessage.warning('璇疯緭鍏ヤ細璁邯瑕佸唴瀹�')
-    return
-  }
-  saveMeetingMinutes({
-    id: minutesContentId.value,
-    content: minutesContent.value,
-    meetingId: currentMeeting.value.id,
-    title: currentMeeting.value.title
-  }).then(resp=>{
-    console.log('浼氳绾鍐呭:', minutesContent.value)
-    ElMessage.success('浼氳绾淇濆瓨鎴愬姛')
-    minutesDialogVisible.value = false
-  })
+  // 鎻愪氦浼氳绾
+  const submitMinutes = () => {
+    if (!minutesContent.value) {
+      ElMessage.warning("璇疯緭鍏ヤ細璁邯瑕佸唴瀹�");
+      return;
+    }
+    saveMeetingMinutes({
+      id: minutesContentId.value,
+      content: minutesContent.value,
+      meetingId: currentMeeting.value.id,
+      title: currentMeeting.value.title,
+    }).then(resp => {
+      console.log("浼氳绾鍐呭:", minutesContent.value);
+      ElMessage.success("浼氳绾淇濆瓨鎴愬姛");
+      minutesDialogVisible.value = false;
+    });
+  };
 
-}
+  // 鍏抽棴浼氳绾瀵硅瘽妗�
+  const handleCloseMinutesDialog = () => {
+    minutesContent.value = "";
+  };
 
-// 鍏抽棴浼氳绾瀵硅瘽妗�
-const handleCloseMinutesDialog = () => {
-  minutesContent.value = ''
-}
+  // 鑾峰彇鐘舵�佺被鍨�
+  const getStatusType = status => {
+    const statusMap = {
+      0: "info", // 寰呭鎵�
+      1: "success", // 宸查�氳繃
+      2: "warning", // 鏈�氳繃
+      3: "danger", // 鍙栨秷
+    };
+    return statusMap[status] || "info";
+  };
 
-// 鑾峰彇鐘舵�佺被鍨�
-const getStatusType = (status) => {
-  const statusMap = {
-    '0': 'info',     // 寰呭鎵�
-    '1': 'success',  // 宸查�氳繃
-    '2': 'warning',  // 鏈�氳繃
-    '3': 'danger'   // 鍙栨秷
-  }
-  return statusMap[status] || 'info'
-}
+  // 鑾峰彇鐘舵�佹枃鏈�
+  const getStatusText = status => {
+    const statusMap = {
+      0: "寰呭鎵�",
+      1: "宸查�氳繃",
+      2: "鏈�氳繃",
+      3: "宸插彇娑�",
+    };
+    return statusMap[status] || "鏈煡";
+  };
 
-// 鑾峰彇鐘舵�佹枃鏈�
-const getStatusText = (status) => {
-  const statusMap = {
-    '0': '寰呭鎵�',
-    '1': '宸查�氳繃',
-    '2': '鏈�氳繃',
-    '3': '宸插彇娑�'
-  }
-  return statusMap[status] || '鏈煡'
-}
+  // 鏍煎紡鍖栨棩鏈熸椂闂�
+  const formatDateTime = dateTime => {
+    if (!dateTime) return "";
+    return dateTime.replace(" ", "\n");
+  };
 
-// 鏍煎紡鍖栨棩鏈熸椂闂�
-const formatDateTime = (dateTime) => {
-  if (!dateTime) return ''
-  return dateTime.replace(' ', '\n')
-}
+  // 椤甸潰鍔犺浇鏃惰幏鍙栨暟鎹�
+  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;
+  }
 
-.nowrap-label {
-  white-space: nowrap !important;
-}
+  .nowrap-label {
+    white-space: nowrap !important;
+  }
 
-.editor-container {
-  border: 1px solid #dcdfe6;
-  border-radius: 4px;
-}
+  .editor-container {
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+  }
 </style>

--
Gitblit v1.9.3