From 10a1b91687d248c07ebd86695cb29f7e6b28edef Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 05 十二月 2025 15:05:55 +0800
Subject: [PATCH] 1.海川开心-新增公告可以自己输入公告类型,不局限于两个公告(可以所有公司适用)
---
src/views/collaborativeApproval/noticeManagement/index.vue | 83 +++++++++++++++++------------------------
1 files changed, 35 insertions(+), 48 deletions(-)
diff --git a/src/views/collaborativeApproval/noticeManagement/index.vue b/src/views/collaborativeApproval/noticeManagement/index.vue
index 77bc697..dcbbf65 100644
--- a/src/views/collaborativeApproval/noticeManagement/index.vue
+++ b/src/views/collaborativeApproval/noticeManagement/index.vue
@@ -10,16 +10,17 @@
<!-- 閫氱煡鍏憡鏉� -->
<div class="notice-board">
- <!-- 鏀惧亣閫氱煡鍖哄煙 -->
- <div class="notice-section" v-if="holidayNoticeCount > 0">
+ <!-- 缁熶竴閫氱煡鍖哄煙 -->
+ <div class="notice-section" v-if="totalNoticeCount > 0">
<div class="section-header">
- <h3>馃搮 鏀惧亣閫氱煡</h3>
- <span class="section-count">{{ holidayNoticeCount }}鏉�</span>
+ <h3>锟� 閫氱煡鍏憡</h3>
+ <span class="section-count">{{ totalNoticeCount }}鏉�</span>
</div>
<div class="notice-cards">
+ <!-- 鏀惧亣閫氱煡 -->
<div
v-for="notice in holidayNotices"
- :key="notice.id"
+ :key="'holiday-' + notice.id"
class="notice-card holiday-card"
:class="{ 'urgent': notice.priority === '3' }"
>
@@ -40,6 +41,9 @@
</div>
<div class="card-footer">
<div class="card-meta">
+ <span class="type" :class="'type-' + notice.type">
+ {{ notice.type }}
+ </span>
<span class="priority" :class="'priority-' + notice.priority">
{{ getPriorityText(notice.priority) }}
</span>
@@ -59,27 +63,11 @@
<span>{{ notice.remark }}</span>
</div>
</div>
- </div>
- </div>
-
- <pagination
- v-if="holidayNoticePage.total > 0"
- :total="holidayNoticePage.total"
- :page="holidayNoticePage.current"
- :limit="holidayNoticePage.size"
- @pagination="handleHolidayNoticeCurrentChange"
- />
-
- <!-- 璁惧缁翠慨閫氱煡鍖哄煙 -->
- <div class="notice-section" v-if="maintenanceNoticeCount > 0">
- <div class="section-header">
- <h3>馃敡 璁惧缁翠慨閫氱煡</h3>
- <span class="section-count">{{ maintenanceNoticeCount }}鏉�</span>
- </div>
- <div class="notice-cards">
+
+ <!-- 璁惧缁翠慨閫氱煡 -->
<div
v-for="notice in maintenanceNotices"
- :key="notice.id"
+ :key="'maintenance-' + notice.id"
class="notice-card maintenance-card"
:class="{ 'urgent': notice.priority === '3' }"
>
@@ -122,12 +110,13 @@
</div>
</div>
+ <!-- 缁熶竴鍒嗛〉 -->
<pagination
- v-if="maintenanceNoticePage.total > 0"
- :total="maintenanceNoticePage.total"
- :page="maintenanceNoticePage.current"
- :limit="maintenanceNoticePage.size"
- @pagination="handleMaintenanceNoticeCurrentChange"
+ v-if="(holidayNoticePage.total + maintenanceNoticePage.total) > 0"
+ :total="holidayNoticePage.total + maintenanceNoticePage.total"
+ :page="Math.max(holidayNoticePage.current, maintenanceNoticePage.current)"
+ :limit="Math.max(holidayNoticePage.size, maintenanceNoticePage.size)"
+ @pagination="handleCurrentChange"
/>
<!-- 绌虹姸鎬� -->
@@ -153,10 +142,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="鍏憡绫诲瀷" prop="type">
- <el-select v-model="form.type" placeholder="璇烽�夋嫨鍏憡绫诲瀷" style="width: 100%">
- <el-option label="鏀惧亣閫氱煡" :value="1"/>
- <el-option label="璁惧缁翠慨閫氱煡" :value="2"/>
- </el-select>
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ュ叕鍛婃爣棰�"/>
</el-form-item>
</el-col>
</el-row>
@@ -419,16 +405,10 @@
});
};
-const holidayNoticeCount = ref()
-const maintenanceNoticeCount = ref()
+const totalNoticeCount = ref(0)
const fetchCount = () => {
getCount().then(res => {
- holidayNoticeCount.value = res.data.filter(item => {
- return item.type === 1
- })[0].count;
- maintenanceNoticeCount.value = res.data.filter(item => {
- return item.type === 2
- })[0].count;
+ totalNoticeCount.value = res.data.reduce((total, item) => total + item.count, 0);
});
}
@@ -447,7 +427,7 @@
})
const fetchHolidayNotices = () => {
- listNotice({...holidayNoticePage.value, type: 1}).then(res => {
+ listNotice({...holidayNoticePage.value}).then(res => {
holidayNotices.value = res.data.records
holidayNoticePage.value.total = res.data.total
});
@@ -460,15 +440,12 @@
});
};
-const handleHolidayNoticeCurrentChange = (val) => {
+const handleCurrentChange = (val) => {
holidayNoticePage.value.size = val.limit
holidayNoticePage.value.current = val.page
- fetchHolidayNotices()
-};
-
-const handleMaintenanceNoticeCurrentChange = (val) => {
maintenanceNoticePage.value.size = val.limit
maintenanceNoticePage.value.current = val.page
+ fetchHolidayNotices()
fetchMaintenanceNotices()
};
@@ -638,13 +615,23 @@
gap: 8px;
}
-.priority, .status {
+.type, .priority, .status {
padding: 2px 8px;
border-radius: 12px;
font-size: 12px;
font-weight: 500;
}
+.type-1 {
+ background: #f0f9ff;
+ color: #0369a1;
+}
+
+.type-2 {
+ background: #fef3c7;
+ color: #d97706;
+}
+
.priority-1 {
background: #f0f9ff;
color: #0369a1;
--
Gitblit v1.9.3