| | |
| | | VITE_APP_BASE_API = 'http://192.168.2.58:8100' |
| | | |
| | | #线上 |
| | | #VITE_APP_BASE_API = 'http://47.108.222.15:8185/signature' |
| | | #VITE_APP_BASE_API = 'http://39.104.85.193:4105' |
| | |
| | | VITE_APP_ENV = 'production' |
| | | |
| | | # 烟花爆竹批发企业仓库安全监测预警/生产环境 |
| | | VITE_APP_BASE_API = 'http://47.108.222.15:8185/signature' |
| | | VITE_APP_BASE_API = 'http://39.104.85.193:4105' |
| | | |
| | | # 是否在打包时开启压缩,支持 gzip 和 brotli |
| | | VITE_BUILD_COMPRESS = gzip |
| | |
| | | style="width: 300px" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="报警类型:" > |
| | | <el-select |
| | | clearable |
| | | v-model="data.queryParams.filter.alarmType" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in data.typeList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="状态:" > |
| | | <el-select |
| | | clearable |
| | | v-model="data.queryParams.filter.alarmStatus" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | |
| | | <span>{{scope.row.alarmStatus == 1 ? '已消警' : '未消警'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警图片" prop="alarmFile" align="center" > |
| | | <el-table-column label="报警图片" prop="alarmFile" align="center" width="120" > |
| | | <template #default="scope"> |
| | | <div class="demo-image__preview" v-if="scope.row.alarmFile"> |
| | | <el-image |
| | |
| | | alarmEndTime: '', |
| | | alarmStatus: null, |
| | | companyCode: '', |
| | | alarmType: null |
| | | } |
| | | }, |
| | | total: 0, |
| | |
| | | name: '未消警' |
| | | }, |
| | | ], |
| | | dateRange:[] |
| | | dateRange:[], |
| | | typeList: [ |
| | | { |
| | | id: 1, |
| | | name: '超员作业' |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: '堵塞通道' |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: '超高超量' |
| | | }, |
| | | { |
| | | id: 4, |
| | | name: '非法入侵' |
| | | }, |
| | | { |
| | | id: 5, |
| | | name: '摄像头遮挡偏移' |
| | | }, |
| | | { |
| | | id: 6, |
| | | name: '温度' |
| | | }, |
| | | { |
| | | id: 7, |
| | | name: '湿度' |
| | | }, |
| | | ] |
| | | }); |
| | | |
| | | const { queryParams, total, dataList } = toRefs(data); |
| | |
| | | const res = await getAlarm(data.queryParams) |
| | | if(res.code == 200){ |
| | | data.dataList = res.result.records |
| | | // .map(item => { |
| | | // return { |
| | | // ...item, |
| | | // alarmFile: '' |
| | | // } |
| | | // }) |
| | | .map(item => { |
| | | return { |
| | | ...item, |
| | | alarmFile:item.alarmFile ? import.meta.env.VITE_APP_BASE_API+ '/upload/'+ item.alarmFile: '' |
| | | } |
| | | }) |
| | | data.total = res.result.total |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | |
| | | alarmEndTime: '', |
| | | alarmStatus: null, |
| | | companyCode: '', |
| | | alarmType: null |
| | | } |
| | | } |
| | | data.dateRange = [] |
| | |
| | | <!-- <span style="font-size: 18px;font-weight: 600;margin-left: 15px;margin-top: 10px"> 设备信息</span>--> |
| | | <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;" v-if="state.dataList && state.dataList.length >0"> |
| | | <div class="grid-container"> |
| | | <div v-for="(item,index) in state.dataList" :key="index" style="width: 365px;margin: 20px 30px"> |
| | | <div v-for="(item,index) in state.dataList" :key="index" style="width: 370px;margin: 20px 30px"> |
| | | <el-card class="card-item " shadow="always"> |
| | | <div style="display: flex;flex-direction: column"> |
| | | <div style="font-size: 18px;font-weight: 700;margin-bottom: 25px">{{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}}</div> |
| | | <!-- <div style="font-size: 18px;font-weight: 700;margin-bottom: 25px">{{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}}</div>--> |
| | | <div class="truncate-text" :title="item.storeName+'—'+item.storeroomName+'—'+item.deviceName"> |
| | | {{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}} |
| | | </div> |
| | | <div style="display: flex;align-items: center;margin-bottom: 15px"> |
| | | <img src="@/assets/images/device.png" /> |
| | | <div style="display: flex;flex-direction: column"> |
| | |
| | | pageIndex: 1, |
| | | pageSize: 5, |
| | | filter: { |
| | | companyCode : '' |
| | | companyCode : '', |
| | | deviceType: 1 |
| | | } |
| | | }, |
| | | total: 0, |
| | |
| | | :deep(.el-scrollbar__wrap) { |
| | | overflow-x: hidden; |
| | | } |
| | | .truncate-text { |
| | | width: 350px; |
| | | font-size: 18px; |
| | | font-weight: 700; |
| | | margin-bottom: 25px; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | /* 悬浮显示原生标题 */ |
| | | cursor: pointer; |
| | | position: relative; |
| | | } |
| | | /* 高级悬浮样式优化 */ |
| | | .truncate-text:hover::after { |
| | | content: attr(title); |
| | | position: absolute; |
| | | left: 0; |
| | | top: 100%; |
| | | background: rgba(0,0,0,0.8); |
| | | color: white; |
| | | padding: 6px 12px; |
| | | border-radius: 4px; |
| | | z-index: 999; |
| | | white-space: normal; |
| | | width: max-content; |
| | | max-width: 300px; |
| | | } |
| | | } |
| | | </style> |