From 1ea0d85b0fe2e7e4427fd484a9342d964c831b3d Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Wed, 06 Aug 2025 15:15:00 +0800
Subject: [PATCH] 修改
---
src/views/hazardousChemicals/avoidWarning/index.vue | 203 ++++++++++++++++++++++++++++++++------------------
1 files changed, 128 insertions(+), 75 deletions(-)
diff --git a/src/views/hazardousChemicals/avoidWarning/index.vue b/src/views/hazardousChemicals/avoidWarning/index.vue
index 9cb4d7b..941b711 100644
--- a/src/views/hazardousChemicals/avoidWarning/index.vue
+++ b/src/views/hazardousChemicals/avoidWarning/index.vue
@@ -1,120 +1,142 @@
<template>
<div class="app-container">
<!-- 卡片部分-->
- <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between">
- <div style="font-weight: 600;font-size: 22px">实时报警状态</div>
+ <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between" >
+ <div style="font-weight: 600;font-size: 20px">实时报警状态</div>
<div style="display: flex;align-items: center">
- <div class="card-item-red title-font">
- <el-icon><WarnTriangleFilled /></el-icon>
+ <div class="title-font" style="cursor: pointer" :class="cardQueryParams.warningType == '' ? 'card-item-blue-titleChoose' : 'card-item-blue-title'" @click="chooseType('')">
+ 全部
+ </div>
+ <div class=" title-font" style="cursor: pointer" :class="cardQueryParams.warningType == 1 ? 'card-item-red-titleChoose' : 'card-item-red-title'" @click="chooseType('red')">
+ <el-icon style="margin-right: 3px"><WarnTriangleFilled /></el-icon>
高危报警
</div>
- <div class="card-item-yellow title-font">
- <el-icon><WarningFilled /></el-icon>
+ <div class=" title-font" style="cursor: pointer" :class="cardQueryParams.warningType == 2 ? 'card-item-yellow-titleChoose' : 'card-item-yellow-title'" @click="chooseType('yellow')">
+ <el-icon style="margin-right: 3px"><WarningFilled /></el-icon>
中等风险
</div>
</div>
</div>
- <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;">
+ <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;" v-if="state.dataList && state.dataList.length >0">
<el-row :gutter="20" style="margin-top: 5px;margin-left: 5px">
<el-col v-for="(item,index) in state.dataList" :key="index" :span="8">
- <el-card class="card-item " :class= "item.level == 1 ? 'card-item-red' : 'card-item-yellow' " shadow="always">{{ item.name }}</el-card>
+ <el-card class="card-item " :class= "item.warningType == 1 ? 'card-item-red' : 'card-item-yellow' " shadow="always">
+ <div style="display: flex;align-items: center;justify-content: space-between">
+ {{item.basicName}}
+ <el-tag :color="item.warningType == 1 ? '#FBACAC' : '#FBD59A'" :type="item.warningType == 1 ? 'danger' : 'warning'">{{ item.warningType == 1 ? '危险' : '警告' }}</el-tag>
+ </div>
+ <div style="margin-top: 10px">相忌试剂:{{ item.tabooBasicName }}</div>
+ <div style="margin-top: 10px">存储位置:{{item.warehouseName}}——{{item.cupboardName}}</div>
+ <el-button style="margin-top: 15px;float: right;color: white;margin-bottom: 5px" :color="item.warningType == 1 ? '#ef8a8a' : '#efb965'" @click="handle(item)">立即处理</el-button>
+
+ </el-card>
</el-col>
</el-row>
</el-scrollbar>
+ <el-empty v-else></el-empty>
<!-- 表格部分-->
- <div style="font-weight: 600;font-size: 22px;margin-top: 25px">最近报警记录</div>
+ <div style="font-weight: 600;font-size: 20px;margin-top: 25px">最近报警记录</div>
<div style="margin-top: 10px">
<el-table v-loading="loading" :data="state.tableList" :border="true">
<el-table-column label="序号" type="index" align="center" width="80" />
- <el-table-column label="时间" prop="name" align="center" />
- <el-table-column label="相忌试剂" prop="remark" align="center" />
- <el-table-column label="储存位置" prop="remark" align="center" />
- <el-table-column label="风险等级" prop="remark" align="center" />
- <el-table-column label="处理状态" prop="remark" align="center" />
- <el-table-column label="处理人" prop="remark" align="center" />
+ <el-table-column label="时间" prop="createTime" align="center" />
+ <el-table-column label="品名" prop="basicName" align="center" />
+ <el-table-column label="相忌试剂" prop="tabooBasicName" align="center" />
+ <el-table-column label="储存位置" align="center" width="160">
+ <template #default="scope">
+ <span>{{scope.row.warehouseName}}—{{scope.row.cupboardName}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="当前位置" align="center" width="160">
+ <template #default="scope">
+ <span v-if="scope.row.state == 1">{{scope.row.reWarehouseName}}—{{scope.row.reCupboardName}}</span>
+ <span v-else>—</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="风险等级" align="center" >
+ <template #default="scope">
+ <el-tag type="danger" v-if="scope.row.warningType == 1">高危</el-tag>
+ <el-tag type="warning" v-else>中等</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="处理状态" align="center" >
+ <template #default="scope">
+ <span>{{scope.row.state == 0 ? '未处理' : '已处理'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="处理人" prop="updateBy" align="center" />
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
- @pagination="getList"
+ @pagination="getListAll"
/>
</div>
+ <avoid-dialog ref="avoidRef" @getList="getListAll"></avoid-dialog>
</div>
</template>
<script setup>
-import {reactive, ref, toRefs} from "vue";
+import {onMounted, reactive, ref, toRefs} from "vue";
import {getWarehouse} from "@/api/hazardousChemicals/warehouse";
import {ElMessage} from "element-plus";
-
+import avoidDialog from './components/avoidDialog.vue'
+import {getAvoidInfoPage, getAvoidList} from "@/api/hazardousChemicals/avoid";
+const avoidRef = ref(null)
const state = reactive({
queryParams: {
pageNum: 1,
pageSize: 5,
- name: ''
+ warningType: ''
+ },
+ cardQueryParams: {
+ warningType: ''
},
total: 0,
- dataList: [
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 1, //1-低危 2-中危 3-高危
- },
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 2, //1-低危 2-中危 3-高危
- },
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 1, //1-低危 2-中危 3-高危
- },
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 1, //1-低危 2-中危 3-高危
- },
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 2, //1-低危 2-中危 3-高危
- },
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 1, //1-低危 2-中危 3-高危
- },
- {
- id: 1,
- name: '硫酸与氢氧化钠',
- address: 'S区-1号柜',
- level: 2, //1-低危 2-中危 3-高危
- },
-
- ],
+ dataList: [],
tableList: []
});
-const { queryParams, total, dataList } = toRefs(state);
+const { queryParams,cardQueryParams, total, dataList } = toRefs(state);
const loading = ref(false);
-const getList = async () => {
+onMounted(()=>{
+ getListPage()
+ getList()
+})
+const getListPage = async () => {
loading.value = true
- // const res = await getWarehouse(data.queryParams)
- // if(res.code == 200){
- // data.dataList = res.data.list
- // data.total = res.data.total
- // }else{
- // ElMessage.warning(res.message)
- // }
+ const res = await getAvoidInfoPage(state.queryParams)
+ if(res.code == 200){
+ state.tableList = res.data.list
+ state.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
loading.value = false
+}
+const getList = async () => {
+ const res = await getAvoidList(state.cardQueryParams)
+ if(res.code == 200){
+ state.dataList = res.data
+ }else{
+ ElMessage.warning(res.message)
+ }
+}
+const handle = (val) => {
+ avoidRef.value.openDialog(val);
+}
+
+const chooseType = (type) => {
+ state.queryParams.warningType = type == 'red' ? 1 : type == '' ? '' :2
+ state.cardQueryParams.warningType = type == 'red' ? 1 : type == '' ? '' :2
+ getListPage()
+ getList()
+
+}
+const getListAll = () => {
+ getListPage()
+ getList()
}
</script>
@@ -122,8 +144,9 @@
<style scoped lang="scss">
.app-container{
.card-item{
- height: 180px;
+ //height: 160px;
margin-bottom: 10px;
+ //min-width: 300px;
}
.title-font{
display:flex;
@@ -134,16 +157,46 @@
border-radius: 5px
}
.card-item-red{
-
+ cursor: pointer;
color: #f56c6c;
background-color: rgb(254, 240.3, 240.3);
border: 1px solid rgb(253, 225.6, 225.6);
+ }
+ .card-item-red-title{
+ cursor: pointer;
+ color: #f56c6c;
+ background-color: rgb(254, 240.3, 240.3);
+ border: 1px solid rgb(253, 225.6, 225.6);
+ }
+ .card-item-red-titleChoose{
+ color: #f6d1d1;
+ background-color: #f55d5d;
}
.card-item-yellow{
color: #e6a23c;
background-color: rgb(252.5, 245.7, 235.5);
border: 1px solid rgb(250, 236.4, 216);
}
+ .card-item-yellow-title{
+ cursor: pointer;
+ color: #f1950b;
+ background-color: rgb(252.5, 245.7, 235.5);
+ border: 1px solid rgb(250, 236.4, 216);
+ }
+ .card-item-yellow-titleChoose{
+ color: #f6e7d1;
+ background-color: #f1a902;
+ }
+ .card-item-blue-title{
+ cursor: pointer;
+ color: #409eff;
+ background-color: rgb(235.9, 245.3, 255);
+ border: 1px solid rgb(216.8, 235.6, 255);
+ }
+ .card-item-blue-titleChoose{
+ color: #d7e6f6;
+ background-color: #2da0ef;
+ }
:deep(.is-horizontal) {
height: 0;
left: 0;
--
Gitblit v1.9.2