From 5672f352d0ba114e2ae96c8cefad6c74ae6d2934 Mon Sep 17 00:00:00 2001
From: unknown <280848880@qq.com>
Date: 星期一, 23 十月 2023 10:38:28 +0800
Subject: [PATCH] 苏州-web:智能安全帽提交

---
 web/src/views/SecureManage/SmartHelmet/PhoneManage.vue |  253 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 250 insertions(+), 3 deletions(-)

diff --git a/web/src/views/SecureManage/SmartHelmet/PhoneManage.vue b/web/src/views/SecureManage/SmartHelmet/PhoneManage.vue
index f377ec1..300e799 100644
--- a/web/src/views/SecureManage/SmartHelmet/PhoneManage.vue
+++ b/web/src/views/SecureManage/SmartHelmet/PhoneManage.vue
@@ -1,3 +1,250 @@
-<template>
-    <div>照片管理</div>
-</template>
\ No newline at end of file
+<template>
+    <!-- 安全管理 ==> 智能安全帽 => 照片管理 -->
+    <div class="main">
+        <!-- main_left -->
+        <div class="main_left">
+            <div class="main_left_search">
+                <div class="search_item">
+                    <span>姓名:</span>
+                    <el-input size="mini" v-model="queryInfo.userName" placeholder="请输入姓名" clearable></el-input>
+                </div>
+                <div class="search_item">
+                    <span>设备编号:</span>
+                    <el-input size="mini" v-model="queryInfo.deviceNum" placeholder="请输入设备编号" clearable></el-input>
+                    <el-button icon="el-icon-search" @click="queryTable">查询</el-button>
+                </div>
+            </div>
+            <div class="main_left_table">
+                <cpnTable :table-loading="loading" :table-data="dataList" :table-columns="tableColumns"
+                    :row-click="rowClick">
+                </cpnTable>
+            </div>
+        </div>
+        <!-- main_right -->
+        <div class="main_right">
+            <div class="search_item">
+                <span>日期:</span>
+                <el-date-picker type="daterange" v-model="pics.date" value-format="yyyy-MM-dd" start-placeholder="开始日期"
+                    end-placeholder="结束日期" clearable></el-date-picker>
+                <!-- <el-select v-model="pics.type">
+                    <el-option :value="1">所有照片</el-option>
+                    <el-option :value="2">安全带取证</el-option>
+                </el-select> -->
+                <el-button icon="el-icon-search" @click="queryPic">查询</el-button>
+            </div>
+            <div class="pic_wrap">
+                <div class="pic_item" v-for="item in pics.data" :key="item.iid">
+                    <el-image :src="item.imageUrl" :preview-src-list="[item.imageUrl]" lazy></el-image>
+                    <div class="pic_item_info">
+                        <div class="pic_item_info_time">{{ item.smTime }}</div>
+                        <div class="pic_item_info_des"></div>
+                        <div class="pic_item_info_btn">
+                        </div>
+                    </div>
+                </div>
+                <div class="nopic" v-if="!pics.data.length">暂无图片</div>
+            </div>
+        </div>
+    </div>
+</template>
+  
+<script>
+import cpnTable from '@/components/element/Table'
+export default {
+    data() {
+        return {
+            loading: false,
+            queryInfo: {
+                pageNum: 1,
+                pageSize: 9999,
+                userName: '',
+                deviceNum: '',
+            },
+            dataList: [],
+            tableColumns: [],
+            userId: '', // 用户id
+            pics: {
+                date: [],
+                type: '',
+                data: [],
+            },
+            $http: '', // 接口api路径
+        }
+    },
+    components: {
+        cpnTable
+    },
+    created() {
+        this.$http = this.$api.Safety.SmartHelmet.pic
+        this.setTableColumn()
+        this.getLists()
+    },
+    methods: {
+        setTableColumn() {
+            this.tableColumns = [
+                {selection: true},
+                {name: "用户ID", key: "userId"},
+                {name: "姓名", key: "userName"},
+                {name: "设备编号", key: "deviceNum"},
+            ]
+        },
+        getLists() {
+            this.loading = true
+            this.$api.Safety.SmartHelmet.getLists(this.queryInfo).then(res => {
+                if (res.statusMsg === 'ok') {
+                    this.dataList = res.data.list
+                }
+            }).finally(() => this.loading = false)
+        },
+        getPics() {
+            const params = {
+                userId: this.userId,
+                pageNum: 1,
+                pageSize: 9999,
+                strTime: this.pics.date?.[0],
+                endTime: this.pics.date?.[1],
+            }
+            this.$http.getPics(params).then(res => {
+                if (res.statusMsg === 'ok') {
+                    this.pics.data = res.data.list
+                }
+            })
+        },
+        rowClick(row) {
+            this.userId = row.userId
+            this.getPics()
+        },
+        queryTable() {
+            this.getLists()
+        },
+        queryPic() {
+            this.getPics()
+        },
+    }
+}
+</script>
+  
+<style lang="scss" scoped>
+@import '@/style/layout-main.scss';
+
+.main {
+    display: flex;
+    flex-direction: row;
+    color: #EBEBEB;
+
+    .main_left {
+        display: flex;
+        flex-direction: column;
+        width: 380px;
+        padding: 14px;
+        margin-right: 18px;
+        border: 1px solid #39B5FE;
+        border-radius: 10px;
+        box-shadow: rgba(0, 145, 255, 0.7) 0 0 18px inset;
+        box-sizing: content-box;
+
+        .search_item {
+            span {
+                display: inline-block;
+                min-width: 54px;
+                margin-right: 6px;
+                text-align: right;
+            }
+
+            .el-input {
+                width: 220px;
+                margin: 0 28px 16px 0;
+            }
+        }
+
+        ::v-deep.main_left_table {
+            overflow: hidden;
+
+            .el-table__row {
+                cursor: pointer
+            }
+
+            .el-table {
+                display: flex;
+                flex-direction: column;
+
+                .el-table__body-wrapper {
+                    overflow-y: auto;
+                    flex: 1;
+                }
+            }
+        }
+    }
+
+    .main_right {
+        overflow: hidden;
+        display: flex;
+        flex-direction: column;
+        flex: 1;
+        padding: 20px;
+        border: 1px solid #39B5FE;
+        background-color: rgba(0, 52, 121, 0.3);
+        border-radius: 10px;
+        box-shadow: rgba(0, 145, 255, 0.7) 0 0 18px inset;
+        box-sizing: content-box;
+
+        .search_item {
+
+            .el-button,
+            .el-input,
+            .el-select {
+                margin: 0 12px 14px 6px;
+            }
+        }
+
+        .pic_wrap {
+            flex: 1;
+            display: flex;
+            flex-wrap: wrap;
+            justify-content: space-between;
+            align-items: center;
+            overflow-y: auto;
+
+            .nopic {
+                width: 100%;
+                text-align: center;
+                font-size: 28px;
+            }
+
+            .pic_item {
+                display: flex;
+                flex-direction: column;
+                width: 380px;
+                height: 300px;
+                border: 1px solid green;
+                margin: 10px;
+
+                .el-image {
+                    border: 1px solid #4EA7DD;
+                }
+
+                .pic_item_info {
+                    position: relative;
+                    flex: 1;
+                    margin-top: 3px;
+                    border: 1px solid #3DC8FF;
+                    background: rgba(21, 66, 107, .6);
+
+                    .pic_item_info_time {
+                        position: absolute;
+                        top: 40%;
+                        font-size: 13px;
+                        text-indent: 20px;
+                    }
+
+                    .pic_item_info_btn {
+                        position: absolute;
+                        top: 34px;
+                        right: 20px;
+                    }
+                }
+            }
+        }
+    }
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3