shuishen
2022-11-10 1ef142b9a68a26460c482389239fd4b53cb7595b
左侧按钮
2 files modified
375 ■■■■ changed files
src/views/activity/index.vue 77 ●●●●● patch | view | raw | blame | history
src/views/video/index.vue 298 ●●●● patch | view | raw | blame | history
src/views/activity/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2022-11-08 14:26:29
 * @LastEditTime: 2022-11-10 16:15:42
 * @FilePath: \srs-police-affairs\src\views\activity\index.vue
 * @Description: 安保活动
 * 
@@ -11,19 +11,15 @@
<template>
    <div class="container">
        <div class="left-container">
        <div v-show='boxShow' class="container-content">
            <div class="title">活动信息</div>
            <div class="search-box">
                <div>
                    <div class="category">活动类型:</div>
                    <div class="category-value">
                        <el-select size="small" v-model="activityType" placeholder="请选择">
                            <el-option
                                v-for="item in activityOptions"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value"
                            ></el-option>
                            <el-option v-for="item in activityOptions" :key="item.value" :label="item.label"
                                :value="item.value"></el-option>
                        </el-select>
                    </div>
                </div>
@@ -37,25 +33,16 @@
                <div>
                    <div class="category">选择时间:</div>
                    <div class="category-value">
                        <el-date-picker
                            size="small"
                            v-model="selectTime"
                            type="date"
                            placeholder="选择日期"
                            style="width:268px"
                        ></el-date-picker>
                        <el-date-picker size="small" v-model="selectTime" type="date" placeholder="选择日期"
                            style="width:268px"></el-date-picker>
                    </div>
                </div>
            </div>
            <div class="result-content">
                <div class="table-box">
                    <div
                        class="row-box"
                        :class="{ on: currentClickIndex === index }"
                    <div class="row-box" :class="{ on: currentClickIndex === index }"
                        v-for="(item, index) in activityList.slice((currentPage - 1) * pagesize, currentPage * pagesize)"
                        :key="index"
                        @click="goAbDetail(item, index)"
                    >
                        :key="index" @click="goAbDetail(item, index)">
                        <div class="row-title">常规安保</div>
                        <div class="row-content">
                            <div>
@@ -64,9 +51,7 @@
                            </div>
                            <div>
                                <div class="category">活动时间:</div>
                                <div
                                    class="category-value"
                                >2022-08-01 00:00:00 至 2022-09-01 00:00:00</div>
                                <div class="category-value">2022-08-01 00:00:00 至 2022-09-01 00:00:00</div>
                            </div>
                            <div>
                                <div class="category">活动详情:</div>
@@ -76,15 +61,9 @@
                    </div>
                </div>
                <div class="pages">
                    <el-pagination
                        background
                        layout="prev, pager, next"
                        :total="activityList.length"
                        :page-size="pagesize"
                        pager-count="3"
                        :current-page="currentPage"
                        @current-change="handleCurrentChange"
                    ></el-pagination>
                    <el-pagination background layout="prev, pager, next" :total="activityList.length"
                        :page-size="pagesize" pager-count="3" :current-page="currentPage"
                        @current-change="handleCurrentChange"></el-pagination>
                </div>
            </div>
        </div>
@@ -130,7 +109,7 @@
            </ul>
        </div>
        <div class="second-container">
        <div class="second-container" :style="{ left: `${boxShow == true ? '405px' : '5px'}` }">
            <el-tree :data="treeData" show-checkbox node-key="id" @check="treeCheckClick"></el-tree>
        </div>
@@ -174,12 +153,8 @@
            <div class="row-box">
                <div class="category">应急预案:</div>
                <div class="category-value">
                    <el-switch
                        v-model="polylineSwitch"
                        @change="switchChange"
                        active-color="#13ce66"
                        inactive-color="#ccc"
                    ></el-switch>
                    <el-switch v-model="polylineSwitch" @change="switchChange" active-color="#13ce66"
                        inactive-color="#ccc"></el-switch>
                </div>
            </div>
@@ -438,13 +413,16 @@
                    url: '/img/icon/activity.png'
                }
            ],
            activityDetails: {}
            activityDetails: {},
            boxShow: false,
        }
    },
    created () {
    },
    mounted () {
        this.$parent.resize('400px')
        this.$nextTick(() => {
            this.activityList.forEach(item => {
                this.$EventBus.$emit('layerPointAdd', {
@@ -649,6 +627,10 @@
            })
        },
        // 大小重置
        boxResize (val) {
            this.boxShow = val
        },
    },
    destroyed () {
@@ -676,6 +658,8 @@
        this.removeAll()
        tc.clear()
        this.$parent.resize('0px')
    }
}
</script>
@@ -685,7 +669,7 @@
    height: 100%;
    position: relative;
    .left-container {
    &-content {
        position: relative;
        display: flex;
        flex-direction: column;
@@ -705,11 +689,11 @@
        .search-box {
            padding: 0 10px;
            & > div:first-child {
            &>div:first-child {
                margin-top: 0;
            }
            & > div {
            &>div {
                margin-top: 10px;
                display: flex;
                align-items: center;
@@ -783,7 +767,7 @@
                    font-size: 14px;
                    .row-content {
                        & > div {
                        &>div {
                            display: flex;
                            line-height: 28px;
@@ -863,7 +847,6 @@
        position: absolute;
        top: 10px;
        display: flex;
        left: 405px;
        flex-direction: column;
        width: 240px;
@@ -918,7 +901,7 @@
            line-height: 28px;
            display: flex;
            & > div {
            &>div {
                text-align: left;
            }
src/views/video/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2022-10-29 15:23:34
 * @LastEditTime: 2022-11-10 16:09:06
 * @FilePath: \srs-police-affairs\src\views\video\index.vue
 * @Description: 辖区管理
 * 
@@ -11,75 +11,52 @@
<template>
    <div class="container">
        <div class="search-box">
            <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" />
            <button @click="searchClick" class="el-icon-search"></button>
        </div>
        <div v-show='boxShow' class="container-content">
            <div class="search-box">
                <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" />
                <button @click="searchClick" class="el-icon-search"></button>
            </div>
        <div class="draw-btn">
            <el-button type="primary" size="mini" @click="draw('polygon')">绘制面</el-button>
            <el-button type="primary" size="mini" @click="draw('polyline')">绘制线</el-button>
            <el-button type="primary" size="mini" @click="removeDrawLayer">清除</el-button>
        </div>
            <div class="draw-btn">
                <el-button type="primary" size="mini" @click="draw('polygon')">绘制面</el-button>
                <el-button type="primary" size="mini" @click="draw('polyline')">绘制线</el-button>
                <el-button type="primary" size="mini" @click="removeDrawLayer">清除</el-button>
            </div>
        <div v-show="true" class="search-val-box">
            <div
                @click="searchVlaClick(item)"
                v-for="(item, index) in searchArray"
                :key="index"
            >{{ item.name }}</div>
        </div>
        <div class="list-show">
            <div class="car-list">
                <div class="list-box">
                    <el-table
                        :data="monitoringList.slice((currentPage - 1) * pagesize, currentPage * pagesize)"
                        style="width: 100%"
                        :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                        :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }"
                        @cell-click="rowClick"
                    >
                        <el-table-column type="index" label="序号" width="50">
                            <template slot-scope="scope">
                                <span>{{ (currentPage - 1) * pagesize + scope.$index + 1 }}</span>
                            </template>
                        </el-table-column>
                        <el-table-column prop="name" label="设备名称" width="150"></el-table-column>
                        <el-table-column prop="type" label="设备类型"></el-table-column>
                    </el-table>
            <div v-show="true" class="search-val-box">
                <div @click="searchVlaClick(item)" v-for="(item, index) in searchArray" :key="index">{{ item.name }}
                </div>
                <div class="pages">
                    <el-pagination
                        background
                        layout="prev, pager, next"
                        :total="monitoringList.length"
                        :page-size="pagesize"
                        pager-count="3"
                        :current-page="currentPage"
                        @current-change="handleCurrentChange"
                    ></el-pagination>
            </div>
            <div class="list-show">
                <div class="car-list">
                    <div class="list-box">
                        <el-table :data="monitoringList.slice((currentPage - 1) * pagesize, currentPage * pagesize)"
                            style="width: 100%"
                            :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                            :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" @cell-click="rowClick">
                            <el-table-column type="index" label="序号" width="50">
                                <template slot-scope="scope">
                                    <span>{{ (currentPage - 1) * pagesize + scope.$index + 1 }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column prop="name" label="设备名称" width="150"></el-table-column>
                            <el-table-column prop="type" label="设备类型"></el-table-column>
                        </el-table>
                    </div>
                    <div class="pages">
                        <el-pagination background layout="prev, pager, next" :total="monitoringList.length"
                            :page-size="pagesize" pager-count="3" :current-page="currentPage"
                            @current-change="handleCurrentChange"></el-pagination>
                    </div>
                </div>
            </div>
        </div>
        <el-dialog
            :title="dialogTitle"
            :modal="true"
            :visible.sync="dialogVisible"
            :before-close="dialogBeforeClose"
            :close-on-click-modal="true"
            class="car-video-box"
        >
            <video
                src="/video/sp.mp4"
                autoplay
                controls
                width="100%"
                height="100%"
                ref="videoElement"
                style="object-fit: fill"
            ></video>
        <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose"
            :close-on-click-modal="true" class="car-video-box">
            <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement"
                style="object-fit: fill"></video>
        </el-dialog>
    </div>
</template>
@@ -101,7 +78,8 @@
            dialogVisible: false,
            searchValue: '',
            searchArray: [],
            searchValBoxShow: false
            searchValBoxShow: false,
            boxShow: false,
        }
    },
@@ -110,6 +88,8 @@
    },
    mounted () {
        this.$parent.resize('400px')
        this.initMonitoringIcon()
        graphicLayer = new EntityDraw()
    },
@@ -187,8 +167,12 @@
        removeDrawLayer () {
            graphicLayer.clearLayer()
        }
        },
        // 大小重置
        boxResize (val) {
            this.boxShow = val
        },
    },
    destroyed () {
@@ -198,116 +182,122 @@
        })
        graphicLayer.destroy()
        this.$parent.resize('0px')
    }
}
</script>
<style scoped lang="scss">
.container {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 400px;
    height: 100%;
    background: $bg-color;
    .search-box {
        padding: 8px;
        height: 48px;
        display: flex;
        input {
            flex: 1;
            height: 100%;
            font-size: 16px;
            text-indent: 1em;
            color: #ffffff;
            background-color: transparent;
            border: 1px solid rgb(0, 92, 169);
            border-radius: 20px 0 0 20px;
        }
        input:focus {
            outline: none;
        }
        input::-webkit-input-placeholder {
            color: rgba(238, 238, 238, 0.7);
        }
        button {
            font-size: 24px;
            font-weight: 700;
            width: 80px;
            height: 100%;
            background-color: rgb(0, 92, 169);
            color: #fff;
            border: 1px solid rgb(0, 92, 169);
            cursor: pointer;
            border-radius: 0 20px 20px 0;
        }
        button:active {
            background-color: rgb(0, 92, 169);
            border: 1px solid rgb(0, 92, 169);
        }
    }
    .search-val-box {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 48px;
        left: 6px;
        width: calc(100% - 12px);
        max-height: 160px;
        text-align: left;
    &-content {
        width: 100%;
        height: 100%;
        color: #fff;
        background: rgba(16, 29, 74, 0.9);
        z-index: 1111;
        border-radius: 10px;
        overflow-y: auto;
        background: $bg-color;
        & > div {
            height: 100%;
            padding: 0 10px;
            line-height: 36px;
            cursor: pointer;
        .search-box {
            padding: 8px;
            height: 48px;
            display: flex;
            input {
                flex: 1;
                height: 100%;
                font-size: 16px;
                text-indent: 1em;
                color: #ffffff;
                background-color: transparent;
                border: 1px solid rgb(0, 92, 169);
                border-radius: 20px 0 0 20px;
            }
            input:focus {
                outline: none;
            }
            input::-webkit-input-placeholder {
                color: rgba(238, 238, 238, 0.7);
            }
            button {
                font-size: 24px;
                font-weight: 700;
                width: 80px;
                height: 100%;
                background-color: rgb(0, 92, 169);
                color: #fff;
                border: 1px solid rgb(0, 92, 169);
                cursor: pointer;
                border-radius: 0 20px 20px 0;
            }
            button:active {
                background-color: rgb(0, 92, 169);
                border: 1px solid rgb(0, 92, 169);
            }
        }
    }
    .draw-btn {
        margin: 8px;
        margin-top: 0;
        display: flex;
        align-items: center;
        justify-content: space-around;
        height: 26px;
        .el-button {
            flex: 1;
        }
    }
    .list-show {
        flex: 1;
        & > div {
            height: 100%;
        .search-val-box {
            display: flex;
            flex-direction: column;
            position: absolute;
            top: 48px;
            left: 6px;
            width: calc(100% - 12px);
            max-height: 160px;
            text-align: left;
            color: #fff;
            background: rgba(16, 29, 74, 0.9);
            z-index: 1111;
            border-radius: 10px;
            overflow-y: auto;
            // background-color: #fff;
            .list-box {
            &>div {
                height: 100%;
                padding: 0 10px;
                line-height: 36px;
                cursor: pointer;
            }
        }
        .draw-btn {
            margin: 8px;
            margin-top: 0;
            display: flex;
            align-items: center;
            justify-content: space-around;
            height: 26px;
            .el-button {
                flex: 1;
            }
        }
        .pages {
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
        .list-show {
            flex: 1;
            &>div {
                height: 100%;
                display: flex;
                flex-direction: column;
                // background-color: #fff;
                .list-box {
                    flex: 1;
                }
            }
            .pages {
                height: 40px;
                display: flex;
                align-items: center;
                justify-content: center;
            }
        }
    }
}