From 0c445ac6d2a20153e5eac390555ba88f950d76b0 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 14 八月 2025 17:16:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_7004' into dev_7004

---
 src/views/collaborativeApproval/warningSystem/index.vue |  307 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 307 insertions(+), 0 deletions(-)

diff --git a/src/views/collaborativeApproval/warningSystem/index.vue b/src/views/collaborativeApproval/warningSystem/index.vue
new file mode 100644
index 0000000..b04c583
--- /dev/null
+++ b/src/views/collaborativeApproval/warningSystem/index.vue
@@ -0,0 +1,307 @@
+<template>
+  <div class="warning-system">
+    <h2>棰勮鑱斿姩鏈哄埗</h2>
+    
+    <!-- 缁熻鍗$墖 -->
+    <div class="stats">
+      <div class="stat-card red">
+        <span class="number">2</span>
+        <span class="label">绾㈣壊棰勮</span>
+      </div>
+      <div class="stat-card orange">
+        <span class="number">1</span>
+        <span class="label">姗欒壊棰勮</span>
+      </div>
+      <div class="stat-card yellow">
+        <span class="number">1</span>
+        <span class="label">榛勮壊棰勮</span>
+      </div>
+      <div class="stat-card green">
+        <span class="number">1</span>
+        <span class="label">缁胯壊棰勮</span>
+      </div>
+    </div>
+
+    <!-- 棰勮鍒楄〃 -->
+    <div class="warning-list">
+      <h3>棰勮鍒楄〃</h3>
+      <table>
+        <thead>
+          <tr>
+            <th>缂栧彿</th>
+            <th>鏍囬</th>
+            <th>绫诲瀷</th>
+            <th>绛夌骇</th>
+            <th>鐘舵��</th>
+            <th>璐d换浜�</th>
+            <th>鎿嶄綔</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr v-for="warning in warnings" :key="warning.id">
+            <td>{{ warning.id }}</td>
+            <td>{{ warning.title }}</td>
+            <td>{{ warning.type }}</td>
+            <td>
+              <span :class="['level-tag', warning.level]">
+                {{ warning.levelText }}
+              </span>
+            </td>
+            <td>
+              <span :class="['status-tag', warning.status]">
+                {{ warning.statusText }}
+              </span>
+            </td>
+            <td>{{ warning.responsible }}</td>
+            <td>
+              <button @click="viewDetail(warning)">鏌ョ湅璇︽儏</button>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+
+    <!-- 璇︽儏瀵硅瘽妗� -->
+    <div v-if="showDetail" class="modal">
+      <div class="modal-content">
+        <h3>棰勮璇︽儏</h3>
+        <div v-if="currentWarning">
+          <p><strong>缂栧彿锛�</strong>{{ currentWarning.id }}</p>
+          <p><strong>鏍囬锛�</strong>{{ currentWarning.title }}</p>
+          <p><strong>绫诲瀷锛�</strong>{{ currentWarning.type }}</p>
+          <p><strong>绛夌骇锛�</strong>{{ currentWarning.levelText }}</p>
+          <p><strong>鎻忚堪锛�</strong>{{ currentWarning.description }}</p>
+          <p><strong>褰卞搷锛�</strong>{{ currentWarning.impact }}</p>
+          <p><strong>寤鸿锛�</strong>{{ currentWarning.suggestions }}</p>
+        </div>
+        <button @click="showDetail = false">鍏抽棴</button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'WarningSystem',
+  data() {
+    return {
+      showDetail: false,
+      currentWarning: null,
+      warnings: [
+        {
+          id: 'W001',
+          title: '椤圭洰棰勭畻瓒呮敮棰勮',
+          type: '璐㈠姟棰勮',
+          level: 'red',
+          levelText: '绾㈣壊棰勮',
+          status: 'pending',
+          statusText: '寰呭鐞�',
+          responsible: '寮犵粡鐞�',
+          description: 'A椤圭洰棰勭畻鎵ц鐜囧凡杈�95%锛岄璁″皢瓒呭嚭棰勭畻鑼冨洿銆�',
+          impact: '褰卞搷椤圭洰鏁翠綋璐㈠姟鎸囨爣锛屽彲鑳藉鑷撮」鐩簭鎹�',
+          suggestions: '鏆傚仠闈炲繀瑕佹敮鍑猴紝浼樺寲璧勬簮閰嶇疆锛岀敵璇烽绠楄皟鏁�'
+        },
+        {
+          id: 'W002',
+          title: '鍚堝悓鍒版湡棰勮',
+          type: '鍚堣棰勮',
+          level: 'orange',
+          levelText: '姗欒壊棰勮',
+          status: 'processing',
+          statusText: '澶勭悊涓�',
+          responsible: '鏉庝富绠�',
+          description: '涓庝緵搴斿晢B鐨勫悎鍚屽皢浜�2024骞�1鏈�25鏃ュ埌鏈熴��',
+          impact: '褰卞搷渚涘簲閾剧ǔ瀹氭�э紝鍙兘瀵艰嚧鏈嶅姟涓柇',
+          suggestions: '璇勪及渚涘簲鍟嗚〃鐜帮紝鍑嗗缁鏉愭枡锛屽埗瀹氬閫夋柟妗�'
+        },
+        {
+          id: 'W003',
+          title: '璁惧缁存姢棰勮',
+          type: '杩愯惀棰勮',
+          level: 'yellow',
+          levelText: '榛勮壊棰勮',
+          status: 'pending',
+          statusText: '寰呭鐞�',
+          responsible: '鐜嬪伐绋嬪笀',
+          description: '鐢熶骇绾胯澶嘋宸茶繍琛�8000灏忔椂锛屾帴杩戠淮鎶ゅ懆鏈熴��',
+          impact: '鍙兘褰卞搷鐢熶骇鏁堢巼鍜屼骇鍝佽川閲�',
+          suggestions: '瀹夋帓缁存姢鏃堕棿锛屽噯澶囧浠讹紝鍒跺畾缁存姢璁″垝'
+        },
+        {
+          id: 'W004',
+          title: '浜哄憳閰嶇疆棰勮',
+          type: '杩愯惀棰勮',
+          level: 'green',
+          levelText: '缁胯壊棰勮',
+          status: 'resolved',
+          statusText: '宸茶В鍐�',
+          responsible: '璧礖R',
+          description: '鎶�鏈儴闂ㄤ汉鍛橀厤缃厖瓒筹紝椤圭洰杩涘害姝e父銆�',
+          impact: '鏃犺礋闈㈠奖鍝�',
+          suggestions: '缁х画鐩戞帶浜哄憳閰嶇疆鎯呭喌'
+        },
+        {
+          id: 'W005',
+          title: '璐ㄩ噺浜嬫晠棰勮',
+          type: '杩愯惀棰勮',
+          level: 'red',
+          levelText: '绾㈣壊棰勮',
+          status: 'pending',
+          statusText: '寰呭鐞�',
+          responsible: '闄堟�荤洃',
+          description: '浜у搧D鍦ㄥ鎴风幇鍦哄嚭鐜拌川閲忛棶棰樸��',
+          impact: '褰卞搷瀹㈡埛婊℃剰搴︼紝鍙兘閫犳垚缁忔祹鎹熷け',
+          suggestions: '绔嬪嵆鍙洖闂浜у搧锛屽垎鏋愬師鍥狅紝鍒跺畾鏀硅繘鎺柦'
+        }
+      ]
+    }
+  },
+  methods: {
+    viewDetail(warning) {
+      this.currentWarning = warning
+      this.showDetail = true
+    }
+  }
+}
+</script>
+
+<style scoped>
+.warning-system {
+  padding: 20px;
+  max-width: 1200px;
+  margin: 0 auto;
+}
+
+h2 {
+  color: #333;
+  margin-bottom: 30px;
+}
+
+.stats {
+  display: grid;
+  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+  gap: 20px;
+  margin-bottom: 30px;
+}
+
+.stat-card {
+  padding: 20px;
+  border-radius: 8px;
+  color: white;
+  text-align: center;
+  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
+}
+
+.stat-card.red { background: linear-gradient(135deg, #ff6b6b, #ee5a52); }
+.stat-card.orange { background: linear-gradient(135deg, #ffa726, #ff9800); }
+.stat-card.yellow { background: linear-gradient(135deg, #ffd54f, #ffc107); }
+.stat-card.green { background: linear-gradient(135deg, #66bb6a, #4caf50); }
+
+.stat-card .number {
+  display: block;
+  font-size: 32px;
+  font-weight: bold;
+  margin-bottom: 8px;
+}
+
+.stat-card .label {
+  font-size: 14px;
+  opacity: 0.9;
+}
+
+.warning-list h3 {
+  margin-bottom: 20px;
+  color: #333;
+}
+
+table {
+  width: 100%;
+  border-collapse: collapse;
+  background: white;
+  border-radius: 8px;
+  overflow: hidden;
+  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
+}
+
+th, td {
+  padding: 12px;
+  text-align: left;
+  border-bottom: 1px solid #eee;
+}
+
+th {
+  background: #f8f9fa;
+  font-weight: 600;
+  color: #333;
+}
+
+.level-tag, .status-tag {
+  padding: 4px 8px;
+  border-radius: 4px;
+  font-size: 12px;
+  color: white;
+}
+
+.level-tag.red { background: #f56c6c; }
+.level-tag.orange { background: #e6a23c; }
+.level-tag.yellow { background: #e6a23c; }
+.level-tag.green { background: #67c23a; }
+
+.status-tag.pending { background: #f56c6c; }
+.status-tag.processing { background: #e6a23c; }
+.status-tag.resolved { background: #67c23a; }
+
+button {
+  padding: 6px 12px;
+  margin: 0 4px;
+  border: none;
+  border-radius: 4px;
+  cursor: pointer;
+  font-size: 12px;
+  background: #409eff;
+  color: white;
+}
+
+.modal {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background: rgba(0,0,0,0.5);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.modal-content {
+  background: white;
+  padding: 30px;
+  border-radius: 8px;
+  max-width: 600px;
+  width: 90%;
+  max-height: 80vh;
+  overflow-y: auto;
+}
+
+.modal-content h3 {
+  margin-bottom: 20px;
+  color: #333;
+}
+
+.modal-content p {
+  margin-bottom: 15px;
+  line-height: 1.6;
+}
+
+.modal-content strong {
+  color: #333;
+}
+
+.modal-content button {
+  background: #409eff;
+  color: white;
+  padding: 10px 20px;
+  font-size: 14px;
+}
+</style>

--
Gitblit v1.9.3