Commit 3b52e54e authored by 纪泽龙's avatar 纪泽龙

Merge branch 'jzl'

parents 8b6d12db 041d563a
/*
* @Author: your name
* @Date: 2022-02-23 15:28:07
* @LastEditTime: 2024-07-18 15:13:55
* @LastEditTime: 2024-10-28 11:14:31
* @LastEditors: 纪泽龙 jizelong@qq.com
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /newDev/gassafety-progress/gassafetyprogress-web/src/api/bigWindow/getdevice.js
......@@ -118,6 +118,19 @@ export function deviceUserList(query) {
params: query,
});
}
// 气瓶详情
export function getqpDetail(query) {
return request({
url: '/supervise/user/getLpgGasBottleFilesBackToByCode',
method: "get",
params: query,
})
}
// 监控
export function getVideo(query) {
return request({
......
......@@ -47,7 +47,12 @@
@click.stop="deviceShow(scope.row.safetyDeviceList)"
>设备</el-button
>
<el-button disabled type="text">气瓶</el-button>
<el-button
:disabled="scope.row.gasBottleTitleList.length == 0"
@click.stop="qipingShow(scope.row.gasBottleTitleList)"
type="text"
>气瓶</el-button
>
</div>
</template>
</el-table-column>
......@@ -99,7 +104,9 @@
>
<div class="table-wrapper">
<div class="list-top">
<div class="title">设备列表</div>
<div class="title">
{{ safetyDeviceList.length > 0 ? "设备列表" : "气瓶列表" }}
</div>
<div class="close" @click="close">
<i
......@@ -114,6 +121,12 @@
:detcetorList="safetyDeviceList"
v-if="safetyDeviceList.length > 0"
/>
<UserCenterQiping
ref="yhqpingrCenter"
:show="true"
:detcetorList="qipingList"
v-if="qipingList.length > 0"
/>
</div>
</div>
</div>
......@@ -125,6 +138,7 @@
// import { listDeviceAlarm } from "@/api/dataMonitoring/deviceAlarm";
import { listDetectorInfo, getUserList } from "@/api/detector/detectorInfo";
import UserCenterDevice from "@/components/bigWindow/UserCenterDevice.vue";
import UserCenterQiping from "@/components/bigWindow/UserCenterQiping.vue";
export default {
props: {
......@@ -150,6 +164,7 @@ export default {
},
components: {
UserCenterDevice,
UserCenterQiping,
},
data() {
return {
......@@ -165,6 +180,7 @@ export default {
// },
],
safetyDeviceList: [],
qipingList: [],
yhquserCenterShow: false,
};
},
......@@ -206,6 +222,10 @@ export default {
this.yhquserCenterShow = true;
this.safetyDeviceList = list;
},
qipingShow(list) {
this.yhquserCenterShow = true;
this.qipingList = list;
},
handleSizeChange(val) {
console.log(val);
},
......@@ -223,6 +243,7 @@ export default {
close() {
// this.fade = "fade";
this.safetyDeviceList = [];
this.qipingList = [];
this.yhquserCenterShow = false;
},
},
......@@ -243,6 +264,7 @@ export default {
// justify-content: space-between;
margin-top: 2px;
z-index: 9999;
overflow: hidden;
& > div {
}
......@@ -382,8 +404,8 @@ export default {
right: 0;
top: 0;
bottom: 0;
background: rgba(0,0,0,.5);
z-index: 999999999;
background: rgba(0, 0, 0, 0.5);
z-index: 2001;
}
.table-wrapper {
position: fixed;
......
<template>
<transition>
<div v-show="show" class="wrapper myCenter ">
<div class="left">
<!-- <div class="title-wrapper">
<div class="title">{{ title }}报警器列表</div>
<div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" />
</div>
</div> -->
<div class="bottom right-bottom-data-left">
<el-table
size="mini"
:data="detcetorList"
style="width: 720px"
class="el-bottom"
height="460"
:key="Math.random()"
>
<!-- :height="tableHeight" -->
<el-table-column prop="detectorCode" label="气瓶编号" width="180">
<template slot-scope="scope">
<div :title="scope.row.detectorCode" class="zzz" v-unValue>
{{ scope.row.code }}
</div>
</template>
</el-table-column>
<el-table-column prop="detectorName" label="报警器名称" width="100">
<template slot-scope="scope">
<div :title="scope.row.detectorName" class="zzz" v-unValue>
{{ scope.row.deviceName }}
</div>
</template>
</el-table-column>
<el-table-column prop="medium" label="监测介质" width="100">
<template slot-scope="scope">
<div v-unValue>{{ scope.row.detctionMedium }}</div>
</template>
</el-table-column>
<!-- <el-table-column prop="detectorAddr" label="设备地址" width="100">
<template slot-scope="scope">
<div v-unValue style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" :title="scope.row.address">
{{ scope.row.address }}
</div>
</template>
</el-table-column> -->
<!-- <el-table-column prop="linkman" label="联系人" width="80">
<template slot-scope="scope">
<div v-unValue style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">{{ scope.row.linkman }}</div>
</template>
</el-table-column>
<el-table-column prop="phone" label="联系电话" width="100">
</el-table-column> -->
<el-table-column prop="detectorStatus" label="状态" width="100">
<template slot-scope="scope">
<div class="detail" v-if="scope.row.status == 0">在线</div>
<div class="detail" v-else-if="scope.row.status == 1">离线</div>
<div class="detail" v-else>-</div>
<!-- <div v-unValue :style="{color:scope.row.detectorStatus==1?'red':''}">{{scope.row.detectorStatus}}</div> -->
</template>
</el-table-column>
<el-table-column prop="alarmTime" label="报警记录" width="140">
<template slot-scope="scope">
<div class="zzz" v-unValue>{{ scope.row.alarmTime }}</div>
</template>
</el-table-column>
<el-table-column prop="alarmTime" label="操作" width="140">
<template v-slot="scope">
<!-- <div class="zzz" v-unValue>
{{ scope.row.deviceInstallTime }}
</div> -->
<div class="detail">
<el-button type="text" @click="goDetail(scope.row.code)"
>详情</el-button
>
</div>
</template>
</el-table-column>
</el-table>
<div>
<!-- <el-pagination
@current-change="handleCurrentChangvale"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="total"
:hide-on-single-page="total <= pageSize"
:key="total + '' + pageSize"
>
</el-pagination> -->
</div>
</div>
</div>
<ViewBottleTrackInfo ref="view" />
</div>
</transition>
</template>
<script>
// import Velocity from "velocity-animate";
// import { listDeviceAlarm } from "@/api/dataMonitoring/deviceAlarm";
import { yhqlistDetectorInfo } from "@/api/detector/detectorInfo";
import { deviceUserList } from "@/api/bigWindow/getDevice";
import ViewBottleTrackInfo from "@/views/bigWindow/components/ViewBottleTrackInfo.vue";
export default {
props: {
detcetorList: {
type: Array,
default: () => [],
},
show: {
type: Boolean,
},
title: {
type: String,
},
userId: {
type: [Number, String],
},
total: {
type: Number,
},
pageSize: {
type: Number,
},
},
components: {
ViewBottleTrackInfo,
},
data() {
return {
// 动画效果的切换
// tableHeight: 600,
tableData: [
// {
// deviceCode: "2016-05-05",
// name: "王小虎",
// province: "上海",
// city: "普陀区",
// address: "上海市普陀区金沙江路",
// },
],
// detectorStatusList: {
// 0: "在线",
// 1: "离线",
// },
};
},
created() {
console.log("2222222============", this.detcetorList);
// this.getList();
},
watch: {
// 当组件显示的时候
detcetorList(newData) {
// console.log(bol);
// if (bol) {
console.log("222222222222222222222222222222222222222222", newData);
this.tableData = [...newData];
console.log(this.tableData);
// }
},
},
mounted() {},
methods: {
handleSizeChange(val) {
console.log(val);
},
handleCurrentChangvale(val) {
this.$parent.getDetectorInfoList(
deviceUserList,
{
userId: this.userId,
pageNum: val,
pageSize: this.pageSize,
},
this.title
);
},
goDetail(code) {
this.$refs.view.bottleId = code;
this.$refs.view.detailOpen = true;
},
// close() {
// // this.fade = "fade";
// this.$parent.otherCenterShow = false;
// },
},
};
</script>
<style lang="scss" scoped>
.wrapper {
// width: 978px;
// max-height: 600px;
// position: fixed;
// top: 50%;
// left: 50%;
// margin-top: -300px;
// margin-left: -500px;
// // background-color: #fff;
// display: flex;
// justify-content: space-between;
// margin-top: 10px;
z-index: 2001;
& > div {
}
.left {
// width: 100px;
max-height: 598px;
margin-right: 12px;
// box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.16);
// background-color: #fff;
// color: #fff;
font-size: 14px;
font-weight: 400;
.title-wrapper {
width: 100%;
height: 30px;
display: flex;
justify-content: space-between;
background: #1890ff;
padding: 5px;
.title {
width: 100%;
color: #fff;
text-align: center;
}
.close {
box-sizing: border-box;
padding-top: 2px;
padding-right: 5px;
cursor: pointer;
}
}
.el-table__body-wrappe {
height: 140px !important;
}
.top {
height: 19px;
// background-color: #053b6a;
color: #fff;
// line-height: 32px;
// padding-left: 12px;
position: relative;
.title {
position: absolute;
left: 50%;
margin-left: -92px;
top: -5px;
}
.repeat {
position: absolute;
top: -5px;
right: 160px;
color: #fff;
cursor: pointer;
&:hover {
color: #2788ea;
}
}
.repeat2 {
position: absolute;
right: 206px;
color: #67c23a;
}
.more {
position: absolute;
right: 38px;
top: -5px;
color: #fff;
float: right;
margin-right: 20px;
cursor: pointer;
&:hover {
color: #2788ea;
}
}
}
.bottom {
width: 1000px;
margin: 0 auto;
position: relative;
}
}
.right {
width: 740px;
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
align-content: flex-start;
// margin-top: 7px;
& > .right-content {
background-color: #fff;
width: 238px;
height: 82px;
margin-bottom: 29px;
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.16);
margin-right: 10px;
display: flex;
&.three {
margin-right: 0px;
}
// align-items: center;
.text-icon {
line-height: 82px;
padding-left: 22px;
margin-right: 22px;
i {
color: #053b6a;
font-size: 60px;
}
}
.text {
font-size: 14px;
padding-top: 16px;
.top {
color: #000;
margin-bottom: 10px;
font-weight: 600;
}
.bottom {
color: #2788ea;
}
}
}
}
.iconfont {
cursor: pointer;
}
// 单独调整下最后一个icon的大小
.iconFontSize {
font-size: 50px !important;
}
}
.detail {
text-align: left;
}
</style>
<style lang="scss">
.myCenter {
.left .el-table__body-wrapper {
overflow-y: auto !important;
}
}
</style>
<!--
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2024-10-25 15:11:18
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2024-10-28 11:25:48
* @FilePath: /zh-baseversion-web/src/views/bigWindow/components/Processes.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<el-timeline>
<el-timeline-item
v-for="(record, index) in trackRecordList"
:key="index"
:timestamp="record.time"
>
<!-- <div v-if="record.processesName == '0'"> -->
<div>{{record.title}}</div>
<div style="margin: 15px 0px">{{ record.message }}</div>
<!-- </div>
<div v-if="record.processesName == '1'">
<div>气瓶配送</div>
<div style="margin: 15px 0px">{{ record.message }}</div>
</div>
<div v-if="record.processesName == '2'">
<div>气瓶回收</div>
<div style="margin: 15px 0px">{{ record.message }}</div>
</div> -->
</el-timeline-item>
</el-timeline>
</template>
<script>
// import { bottleTrackRecordList } from "@/api/gasBottleTrack/bottleTrackRecord";
export default {
name: "processes",
props: {
trackRecordList: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
// trackRecordList: [],
};
},
created() {
// this.getTrackRecordInfo();
},
methods: {
// getTrackRecordInfo() {
// bottleTrackRecordList({ bottleId: this.bottleId }).then((res) => {
// if (res.code == 200) {
// this.trackRecordList = res.data;
// }
// });
// },
},
};
</script>
<style scoped></style>
......@@ -228,7 +228,7 @@ export default {
width: 840px;
// height: 96px;
// height: 56px;
z-index: 9999;
z-index: 2000;
position: fixed;
top: 90px;
margin-left: calc((100% - 840px) / 2);
......
<!--
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2024-10-25 15:11:18
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2024-10-28 11:21:52
* @FilePath: /zh-baseversion-web/src/views/bigWindow/components/ViewBottleTrackInfo.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<el-dialog
title="气瓶追溯查看"
:visible.sync="detailOpen"
width="900px"
append-to-body
class="big-window-dlg"
>
<el-tabs v-model="activeName">
<el-tab-pane label="气瓶信息" name="first">
<BottleInfo :detailInfo="itemData"/>
</el-tab-pane>
<el-tab-pane label="流转过程" name="second">
<Processes :trackRecordList="itemData.backToMessage"/>
</el-tab-pane>
</el-tabs>
</el-dialog>
</template>
<script>
import BottleInfo from "./BottleInfo";
import Processes from "./Processes";
import { getqpDetail } from "@/api/bigWindow/getDevice.js";
export default {
name: "view-bottle-track-info",
components: {
BottleInfo,
Processes,
},
data() {
return {
detailOpen: false,
activeName: "first",
bottleId: null,
itemData:{
backToMessage:[],
},
};
},
watch: {
bottleId(newData) {
console.log(newData);
this.getqpDetail(newData);
},
},
methods: {
getqpDetail(code) {
getqpDetail({ code }).then((res) => {
console.log("气瓶详情", res);
this.itemData = res.data;
});
},
handleClick(tab, event) {
console.log(tab, event);
this.activeName = tab;
},
},
};
</script>
<style lang="scss">
.big-window-dlg {
.el-dialog {
background: rgba(2, 26, 51, 0.9);
border: 1px solid #127bd1;
.el-dialog__header {
border-bottom: 1px solid #127bd1;
}
.el-dialog__body {
padding-top: 10px;
}
.el-dialog__headerbtn .el-dialog__close {
color: #1890ff;
font-size: 22px;
}
.el-dialog__title {
color: #1890ff;
}
}
// background-color: #dfe4ed;
.el-tabs__nav-wrap::after {
// background-color: #127bd1;
// background-color: #606266;
opacity: 0;
}
.el-tabs__active-bar {
// background-color:#49d8ff;
// background-color:#49d8ff;
}
.el-tabs__item {
// 标签的字
color: #fff;
&.el-tabs__item.is-active {
// 选中的字的颜色
color: #1890ff;
}
}
// 文本内容的字的颜色
.el-form-item__label {
color: #fff;
}
// 右边的颜色
.el-form-item__content span {
color: #fff;
}
// 圆圈
.el-timeline-item__node {
// background: #1890ff;
}
// 左边框
.el-timeline-item__tail {
// border: 1px solid #1890ff;
}
// 字
.el-timeline-item__content {
color: #fff;
}
// .el-dialog__title{
// }
}
</style>
<style scoped lang="scss">
.el-tab-pane {
margin-top: 20px;
height: 350px;
overflow-y: auto;
&::-webkit-scrollbar {
/* 设置滚动条宽度 */
width: 4px;
/* 设置滚动条背景色 */
//background: black;
}
//滚动条轨道
&::-webkit-scrollbar-track {
background-color: transparent;
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
}
//滚动条滑块
&::-webkit-scrollbar-thumb {
background-color: rgb(147, 147, 153, 0.5);
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
}
}
</style>
......@@ -34,8 +34,8 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://localhost:8905/gassafety`,
// target: `http://27.128.233.145:8905/gassafety`,
// target: `http://localhost:8905/gassafety`,
target: `http://36.138.180.82:8905/gassafety`,
// target: `http://36.138.180.82:8905/gassafety`,
// 服务器
// target: `http://36.138.180.82:8079//gassafety`,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment