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