Kaynağa Gözat

new page ready

Changpeng Duan 5 yıl önce
ebeveyn
işleme
b15c8ed9a0

+ 35 - 7
src/api/Navs.js

@@ -1,4 +1,4 @@
-let navs = [ {
+let navs = [{
     "clmid": "2",
     "spclmid": "0",
     "ordno": "1",
@@ -29,7 +29,7 @@ let navs = [ {
             "icon": "home_icon"
         },
     ]
-},{
+}, {
     "clmid": "3",
     "spclmid": "0",
     "ordno": "1",
@@ -58,7 +58,7 @@ let navs = [ {
             "grouplist": "2,5",
             "memo": null,
             "icon": "home_icon"
-        },{
+        }, {
             "clmid": "21",
             "spclmid": "0",
             "ordno": "0",
@@ -72,7 +72,7 @@ let navs = [ {
             "grouplist": "2,5",
             "memo": null,
             "icon": "home_icon"
-        },{
+        }, {
             "clmid": "21",
             "spclmid": "0",
             "ordno": "0",
@@ -111,7 +111,7 @@ let navs = [ {
                 "c_level": "2",
                 "clmcode": "front_index",
                 "clmname": "设备管理",
-                "clmurl": "/record",
+                "clmurl": "/equip",
                 "prname": null,
                 "en": "1",
                 "show": "1",
@@ -189,8 +189,36 @@ let navs = [ {
                 "ordno": "0",
                 "c_level": "2",
                 "clmcode": "front_index",
-                "clmname": "404",
-                "clmurl": "/404",
+                "clmname": "警务通管理",
+                "clmurl": "/jwt",
+                "prname": null,
+                "en": "1",
+                "show": "1",
+                "grouplist": "2,5",
+                "memo": null,
+                "icon": "home_icon"
+            }, {
+                "clmid": "62",
+                "spclmid": "0",
+                "ordno": "0",
+                "c_level": "2",
+                "clmcode": "front_index",
+                "clmname": "密码修改",
+                "clmurl": "/pwd",
+                "prname": null,
+                "en": "1",
+                "show": "1",
+                "grouplist": "2,5",
+                "memo": null,
+                "icon": "home_icon"
+            }, {
+                "clmid": "62",
+                "spclmid": "0",
+                "ordno": "0",
+                "c_level": "2",
+                "clmcode": "front_index",
+                "clmname": "系统设置",
+                "clmurl": "/setting",
                 "prname": null,
                 "en": "1",
                 "show": "1",

+ 30 - 0
src/assets/css/dialog.css

@@ -0,0 +1,30 @@
+.modal .el-input__inner {
+    /*width: 100%;*/
+    height: 30px;
+    line-height: 30px;
+    margin-top: 5px;
+    border-radius: 0;
+    float: left;
+    padding-right: 22px;
+    background: none;
+    border: 1px solid #005EA2;
+    color: #6DC1FF;
+}
+.el-input__inner {
+    background: none;
+    color: #6DC1FF;
+}
+ .el-range-input::placeholder {
+    color: #5391c1;
+}
+ /deep/  .el-range-separator {
+    color:  #6DC1FF;
+    line-height: 20px;
+}
+ .el-range__close-icon {
+    position: relative;
+    top: -5px;
+}
+.el-select .el-input .el-select__caret {
+    line-height: 30px;
+}

+ 63 - 0
src/assets/css/panel.css

@@ -330,3 +330,66 @@
 .el-pagination__total {
     color: #6DC1FF;
 }
+.tabs {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+}
+.tabs ul {
+    width: 600px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+.tabs li {
+    width: 164px;
+    height: 36px;
+    font-size: 18px;
+    line-height: 36px;
+    color: #6DC1FF;
+    float: left;
+    text-align: center;
+    cursor: pointer;
+    list-style: none;
+}
+.tabs li.active {
+    background: url("../../assets/img/op_title.png")top center no-repeat;
+    background-size: 100%;
+}
+.el-date-editor .el-range__icon {
+    display: none;
+}
+.el-date-editor .el-range-input {
+    background: none;
+    color: #6DC1FF;
+}
+.el-date-editor .el-range-input::placeholder {
+    color: #5391c1;
+}
+.panel /deep/ .el-date-editor .el-range-separator {
+    color:  #6DC1FF;
+    line-height: 20px;
+}
+.el-date-editor .el-range__close-icon {
+    position: relative;
+    top: -5px;
+}
+.el-select .el-input .el-select__caret {
+    line-height: 30px;
+}
+.contorl {
+    /*width: 100%;*/
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding: 25px;
+    padding-left: 55px;
+}
+.contorl .el-button {
+    width: 98px;
+    height: 30px;
+    float: left;
+}

+ 264 - 0
src/components/dialog_referrer_list.vue

@@ -0,0 +1,264 @@
+<template>
+    <div v-show="show" :transition="transition">
+        <div class="modal" @click.self="clickMask">
+            <div class="modal-dialog" :class="modalClass">
+                <div class="image-border image-border1"></div>
+                <div class="image-border image-border2"></div>
+                <div class="image-border image-border3"></div>
+                <div class="image-border image-border4"></div>
+                <div class="modal-content">
+                    <!--Header-->
+                    <div class="modal-header">
+                        <slot name="header">
+                            <i class="el-icon-close" @click="cancel"></i>
+                            <h2 class="modal-title">
+                                <slot name="title">
+                                    {{title}}
+                                </slot>
+                            </h2>
+                        </slot>
+                    </div>
+                    <!--Container-->
+                    <div class="modal-body">
+                        <slot></slot>
+                    </div>
+                    <!--Footer-->
+                    <div class="modal-footer">
+                        <slot name="footer">
+                            <button class="btn btn-warning" type="button" :class="cancelClass" @click="cancel" name="cancelText">{{cancelText}}</button>
+                            <button class="btn btn-primary" type="button" :class="okClass" @click="ok" name="okText">{{okText}}</button>
+                        </slot>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="modal-backdrop in"></div>
+    </div>
+</template>
+
+<script>
+    export default {
+        props: {
+            show: {
+                type: Boolean,
+                twoWay: true,
+                default: false
+            },
+            title: {
+                type: String,
+                default: 'Modal'
+            },
+            small: {
+                type: Boolean,
+                default: false
+            },
+            large: {
+                type: Boolean,
+                default: false
+            },
+            full: {
+                type: Boolean,
+                default: false
+            },
+            // 为true时无法通过点击遮罩层关闭modal
+            force: {
+                type: Boolean,
+                default: false
+            },
+            // 自定义组件transition
+            transition: {
+                type: String,
+                default: 'modal'
+            },
+            // 确认按钮text
+            okText: {
+                type: String,
+                default: '确认'
+            },
+            // 取消按钮text
+            cancelText: {
+                type: String,
+                default: '取消'
+            },
+            // 确认按钮className
+            okClass: {
+                type: String,
+                default: 'btn blue'
+            },
+            // 取消按钮className
+            cancelClass: {
+                type: String,
+                default: 'btn red btn-outline'
+            },
+            // 点击确定时关闭Modal
+            // 默认为false,由父组件控制prop.show来关闭
+            closeWhenOK: {
+                type: Boolean,
+                default: false
+            }
+        },
+        data () {
+            return {
+                duration: null
+            };
+        },
+        computed: {
+            modalClass () {
+                return {
+                    'modal-lg': this.large,
+                    'modal-sm': this.small,
+                    'modal-full': this.full
+                }
+            }
+        },
+        mounted () {
+            if (this.show) {
+                document.body.className += ' modal-open';
+            }
+        },
+        beforeDestroy () {
+            document.body.className = document.body.className.replace(/\s?modal-open/, '');
+        },
+        watch: {
+            show (value) {
+                // 在显示时去掉body滚动条,防止出现双滚动条
+                if (value) {
+                    document.body.className += ' modal-open';
+                }
+                // 在modal动画结束后再加上body滚动条
+                else {
+                    if (!this.duration) {
+                        this.duration = window.getComputedStyle(this.$el)['transition-duration'].replace('s', '') * 1000;
+                    }
+                    window.setTimeout(() => {
+                        document.body.className = document.body.className.replace(/\s?modal-open/, '');
+                    }, this.duration || 0);
+                }
+            }
+        },
+        methods: {
+            ok () {
+                this.$emit('dialog_ok');
+            },
+            cancel () {
+                this.$emit('dialog_cancel');
+            },
+            // 点击遮罩层
+            clickMask () {
+                if (!this.force) {
+                    this.cancel();
+                }
+            }
+        }
+    };
+</script>
+
+<style scoped>
+    .modal {
+        position: absolute;
+        top:0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        width: 100%;
+        height: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        background: rgba(0,0,0,0.3);
+    }
+
+    .modal-dialog {
+        position: absolute;
+        left: 0;
+        right: 0;
+        width: 799px;
+        min-height: 400px;
+        display: block;
+        border: 1px solid #005EA2;
+        background: rgba(0,23,67,0.8);
+        margin: 0 auto;
+        margin-top: 10%;
+    }
+    .modal-transition {
+        transition: all .6s ease;
+    }
+    .modal-leave {
+        /* 样式没什么用,但可以让根标签的transitionEnd生效,以去掉modal-leave */
+        border-radius: 1px !important;
+    }
+    .modal-transition .modal-dialog, .modal-transition .modal-backdrop {
+        transition: all .5s ease;
+    }
+    .modal-enter .modal-dialog, .modal-leave .modal-dialog {
+        opacity: 0;
+        transform: translateY(-30%);
+    }
+    .modal-enter .modal-backdrop, .modal-leave .modal-backdrop {
+        opacity: 0;
+    }
+    .modal-header {
+        padding: 7px 22px;
+    }
+    .modal-body {
+        padding: 5px 20px;
+    }
+    .modal-title {
+        width: 473px;
+        margin: 0 auto;
+        margin-top: 10px;
+        text-align: center;
+        font-size: 22px;
+        cursor: pointer;
+        color: #6DC1FF;
+        font-weight: normal;
+        padding-bottom: 10px;
+        background: url("../assets/img/headbotter.png")bottom center no-repeat;
+        background-size: 100%;
+    }
+    .modal-footer button {
+        padding:10px 20px;
+    }
+    .image-border {
+        position: absolute;
+        width: 20px;
+        height: 20px;
+    }
+
+    .image-border1 {
+        top: 0px;
+        left: 0;
+        border-left: 2px solid #6DC1FF;
+        border-top: 2px solid #6DC1FF;
+    }
+
+    .image-border2 {
+        top: 0;
+        right: -2px;
+        border-right: 2px solid #6DC1FF;
+        border-top: 2px solid #6DC1FF;
+    }
+
+    .image-border3 {
+        bottom: 0;
+        left: 0;
+        border-bottom: 2px solid #6DC1FF;
+        border-left: 2px solid #6DC1FF;
+    }
+
+    .image-border4 {
+        bottom: 0;
+        right: -2px;
+        border-right: 2px solid #6DC1FF;
+        border-bottom: 2px solid #6DC1FF;
+    }
+    .el-icon-close {
+        float: right;
+        color: #6DC1FF;
+        margin-top: 10px;
+        font-size: 16px;
+    }
+
+
+
+</style>

+ 49 - 0
src/router/index.js

@@ -28,6 +28,34 @@ const routes = [
                 meta: {
                     title: "首页",
                 }
+            },{
+                path: '/phoneSign',
+                name: 'PhoneSign',
+                component: () => import('@/views/PhoneSign.vue'),
+                meta: {
+                    title: "WiFi信号记录",
+                }
+            },{
+                path: '/wifiSign',
+                name: 'WifiSign',
+                component: () => import('@/views/WifiSign.vue'),
+                meta: {
+                    title: "WiFi信号记录",
+                }
+            },{
+                path: '/GSign',
+                name: 'GSign',
+                component: () => import('@/views/GSign.vue'),
+                meta: {
+                    title: "0-6G扫描记录",
+                }
+            },{
+                path: '/equip',
+                name: 'Equip',
+                component: () => import('@/views/Equip.vue'),
+                meta: {
+                    title: "设备管理",
+                }
             },{
                 path: '/yhgl',
                 name: 'Yhgl',
@@ -70,6 +98,20 @@ const routes = [
                 meta: {
                     title: "关于我们",
                 }
+            },{
+                path: '/hardware',
+                name: 'Hardware',
+                component: () => import('@/views/Hardware.vue'),
+                meta: {
+                    title: "固件管理",
+                }
+            },{
+                path: '/police',
+                name: 'Police',
+                component: () => import('@/views/Police.vue'),
+                meta: {
+                    title: "警务通管理",
+                }
             },{
                 path: '/pwd',
                 name: 'Pwd',
@@ -81,6 +123,13 @@ const routes = [
                 path: '/basic',
                 name: 'Basic',
                 component: () => import('@/views/Basic.vue'),
+                meta: {
+                    title: "no use",
+                }
+            },{
+                path: '/setting',
+                name: 'Setting',
+                component: () => import('@/views/Setting.vue'),
                 meta: {
                     title: "基本设置",
                 }

+ 384 - 0
src/views/Equip.vue

@@ -0,0 +1,384 @@
+<template>
+    <div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="panel">
+            <div class="panel-body">
+                <div class=" panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>设备ID:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入设备ID"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>MAC:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入MAC地址"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>所属区域:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="6">
+                            <em>登记时间:</em>
+                            <el-date-picker
+                                    v-model="panel.time1"
+                                    type="daterange"
+                                    range-separator="至"
+                                    start-placeholder="开始日期"
+                                    end-placeholder="结束日期">
+                            </el-date-picker>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-button size="small" type="primary" @click="query">查询</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </div>
+        </div>
+        <div class="contorl">
+            <el-button size="small" type="primary" @click="addList">添加</el-button>
+            <el-button size="small" type="primary" @click="delList">删除</el-button>
+            <el-button size="small" type="primary" @click="changeList">修改</el-button>
+        </div>
+        <el-table
+                :data="tableData"
+                class=""
+                stripe
+                @selection-change="handleSelectionChange"
+        >
+            <el-table-column
+                    type="selection"
+                    width="55">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="设备ID"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="检测时间"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="探测区域"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="信道"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号频段">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="数据量">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号强度">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="操作记录">
+                <template slot-scope="scope">
+                    <span @click="goRecord(scope.row)">探测记录</span>
+                </template>
+            </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
+        ></el-pagination>
+
+        <dialog_referrer_list
+                :show="dialog_state"
+                :title="dialog_title"
+                :large="true"
+                @dialog_cancel="dialog_cancel"
+                @dialog_ok="dialog_ok"
+        >
+            <div class="dialogContent">
+                <el-row :gutter="20">
+                    <el-col :span="10">
+                        <label>
+                            设备ID
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            MAC地址
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            标签名
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            设备所属楼层
+                        </label>
+                        <el-select v-model="dialog.region" placeholder="请选择所属楼层">
+                            <el-option
+                                    v-for="item in panel.options"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="20">
+                        <label>
+                            备注
+                        </label>
+                        <el-input type="textarea" v-model="dialog.memo"></el-input>
+                    </el-col>
+                </el-row>
+            </div>
+        </dialog_referrer_list>
+    </div>
+</template>
+
+<script>
+    import Global from '../Global.js'
+    import dialog_referrer_list from '../components/dialog_referrer_list'
+
+    export default {
+        data() {
+            return {
+                // dialog
+                dialog_state: true,
+                dialog_title: '添加设备',
+                dialog_type: '',//类型,1是添加,2是修改
+                tabIndex: 0,
+                tabs: [
+                    {name: '设备管理', url: 'equip'},
+                ],
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    taskstatus: 99,
+                    options: [
+                        {value: 99, label: '全部'},
+                        {value: 1, label: '进行中'},
+                        {value: 2, label: '已完成'},
+                    ],
+                    time1: globalBt2(),
+                },
+                pageination: {
+                    pageItem: 10,
+                    pageoptions: pageOptions(),
+                    total: 10,
+                    pageIndex: 1,
+                },
+                dialog: {
+                    name: 10,
+                    region: 10,
+                    memo: '',
+                },
+                multipleSelection: [],
+                tableData: [{
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                }, {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                }, {
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1516 弄'
+                }]
+            }
+        },
+        mounted() {
+            this.getTableQuery();
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url) {
+                this.$router.push({path: url});
+            },
+            // 查询按钮
+            query() {
+                this.getTableQuery();
+                this.$message.success('查询完毕');
+            },
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+                console.log(val);
+            },
+            // 页面数据查询
+            getTableQuery() {
+                // let that = this;
+                // that.loading = true;
+                // let url = headapi + '?ctl=ajax&mod=dial&act=taskListQuery';//获取
+                // let param = {
+                //     'taskstatus': that.panel.taskstatus,
+                //     'bt': globaltime2String(that.panel.time1[0]),
+                //     'et': globaltime2String(that.panel.time1[1]),
+                //     'KEYWORD': that.panel.keyword,
+                //     'USERCODE': that.panel.USERCODE,
+                // };
+                // let JSON = '';
+                // let postdata = qs.stringify(param);
+                // axios.post(url, postdata)
+                //     .then(function (response) {
+                //         JSON = response.data;
+                //         that.loading = false;
+                //         that.allTableData = JSON.rs;
+                //         that.recordsTotal = JSON.rs.length;
+                //         // 设置分页数据
+                //         that.setPaginations();
+                //     })
+                //     .catch(function (error) {
+                //         console.log(error);
+                //     });
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                that.getTableQuery();
+            },
+            // 自动排序
+            sortChange(params) {
+                console.log(params)
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                return globalfmtDate(column, 11);
+            },
+            addList() {
+                this.dialog_state = true;
+                this.dialog_title = '添加设备';
+            },
+            delList() {
+                // checkNum
+                if (!this.multipleSelection.length) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,需要先选中至少一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+                // todo delEquip
+            },
+            changeList() {
+                // checkNum
+                if (!this.multipleSelection.length) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,需要先选中一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+                if (this.multipleSelection.length > 1) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,只能选中一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+            },
+            // 探测记录
+            goRecord(row) {
+                console.log(row);
+                this.$router.push({path: '/record', query: {row: row}});
+            },
+            dialog_cancel() {
+                let that = this;
+                that.dialog_state = false;
+            },
+            dialog_ok() {
+                let that = this;
+                let dialog_type = that.dialog_type;
+                let name = that.field_name;
+                let id = that.field_id;
+            },
+        },
+        components: {
+            dialog_referrer_list
+        }
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+    @import "../assets/css/dialog.css";
+
+    .tabs ul {
+        width: 168px;
+    }
+
+    table span {
+        cursor: pointer;
+    }
+</style>

+ 265 - 0
src/views/GSign.vue

@@ -0,0 +1,265 @@
+<template>
+    <div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="panel">
+            <div class="panel-body">
+                <div class=" panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>设备ID:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入设备ID"></el-input>
+                        </el-col>
+                        <el-col :span="6">
+                            <em>检测时间:</em>
+                            <el-date-picker
+                                    v-model="panel.time1"
+                                    type="daterange"
+                                    range-separator="至"
+                                    start-placeholder="开始日期"
+                                    end-placeholder="结束日期">
+                            </el-date-picker>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>信道:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>信号频段:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-button size="small" type="primary" @click="query">查询</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </div>
+        </div>
+        <el-table
+                :data="tableData"
+                class=""
+                stripe
+        >
+            <el-table-column
+                    prop="name"
+                    label="设备ID"
+                    >
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="检测时间"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="探测区域"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="信道"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号频段">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="数据量">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号强度">
+            </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
+        ></el-pagination>
+    </div>
+
+</template>
+
+<script>
+    import Global from '../Global.js'
+
+    export default {
+        data() {
+            return {
+                tabIndex:2,
+                tabs:[
+                    {name:'手机信号记录',url:'phoneSign'},
+                    {name:'WiFi信号记录',url:'wifiSign'},
+                    {name:'0-6G扫描记录',url:'GSign'},
+                ],
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    taskstatus: 99,
+                    options: [
+                        {value: 99, label: '全部'},
+                        {value: 1, label: '进行中'},
+                        {value: 2, label: '已完成'},
+                    ],
+                    time1: globalBt2(),
+                },
+                pageination: {
+                    pageItem: 10,
+                    pageoptions: pageOptions(),
+                    total: 10,
+                    pageIndex: 1,
+                },
+                tableData: [{
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                }, {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                }, {
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1516 弄'
+                }]
+            }
+        },
+        mounted() {
+            this.getTableQuery();
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url){
+                this.$router.push({path:url});
+            },
+            // 查询按钮
+            query() {
+                this.getTableQuery();
+                this.$message.success('查询完毕');
+            },
+            // 页面数据查询
+            getTableQuery() {
+                // let that = this;
+                // that.loading = true;
+                // let url = headapi + '?ctl=ajax&mod=dial&act=taskListQuery';//获取
+                // let param = {
+                //     'taskstatus': that.panel.taskstatus,
+                //     'bt': globaltime2String(that.panel.time1[0]),
+                //     'et': globaltime2String(that.panel.time1[1]),
+                //     'KEYWORD': that.panel.keyword,
+                //     'USERCODE': that.panel.USERCODE,
+                // };
+                // let JSON = '';
+                // let postdata = qs.stringify(param);
+                // axios.post(url, postdata)
+                //     .then(function (response) {
+                //         JSON = response.data;
+                //         that.loading = false;
+                //         that.allTableData = JSON.rs;
+                //         that.recordsTotal = JSON.rs.length;
+                //         // 设置分页数据
+                //         that.setPaginations();
+                //     })
+                //     .catch(function (error) {
+                //         console.log(error);
+                //     });
+            },
+            // 导出excel
+            btnExpAll() {
+                let that = this;
+                let url = headapi + '?ctl=ajax&mod=czgl&act=czcx_excel';//获取
+                let bt = globaltime2String(that.panel.time1[0]);
+                let et = globaltime2String(that.panel.time1[1]);
+                let usercode = that.panel.usercode;
+                window.location = url + '&bt=' + bt + '&et=' + et + '&usercode=' + usercode;
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                that.getTableQuery();
+            },
+            // 自动排序
+            sortChange(params) {
+                console.log(params)
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                return globalfmtDate(column, 11);
+            },
+            // 过滤金额
+            filterMoney(value, row, column) {
+                let that = this;
+                return parseFloat(column).toFixed(2);
+            },
+        },
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+
+</style>

+ 438 - 0
src/views/Hardware.vue

@@ -0,0 +1,438 @@
+<template>
+    <div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="upload">
+            <h5>固件上传</h5>
+            <div class="uploadContainer">
+                <el-upload
+                        class="upload-demo"
+                        action="https://jsonplaceholder.typicode.com/posts/"
+                        :on-change="handleChange"
+                        :file-list="fileList">
+                    <el-button size="small" type="primary">点击上传</el-button>
+                </el-upload>
+                <em>
+                    <i></i>
+                    添加备注
+                </em>
+            </div>
+        </div>
+        <div class="hardwareList">
+            <h5>设备列表</h5>
+        <div class="panel">
+            <div class="panel-body">
+                <div class=" panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>所属区域:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>固件版本:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入固件版本"></el-input>
+                        </el-col>
+
+                        <el-col :span="4">
+                            <el-button size="small" type="primary" @click="query">查询</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </div>
+        </div>
+        <div class="contorl">
+            <el-button size="small" type="primary" @click="addList">开始更新</el-button>
+            <div class="version">
+                <em>NEW</em>
+                <span>最新固件版本:v.2.0.1版本固件</span>
+            </div>
+            <el-button size="small" type="primary" @click="changeList">修改</el-button>
+        </div>
+        <el-table
+                :data="tableData"
+                class=""
+                stripe
+                @selection-change="handleSelectionChange"
+        >
+            <el-table-column
+                    type="selection"
+                    width="55">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="设备ID"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="检测时间"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="探测区域"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="信道"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号频段">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="数据量">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号强度">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="操作记录">
+                <template slot-scope="scope">
+                    <span @click="goRecord(scope.row)">探测记录</span>
+                </template>
+            </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
+        ></el-pagination>
+
+        <dialog_referrer_list
+                :show="dialog_state"
+                :title="dialog_title"
+                :large="true"
+                @dialog_cancel="dialog_cancel"
+                @dialog_ok="dialog_ok"
+        >
+            <div class="dialogContent">
+                <el-row :gutter="20">
+                    <el-col :span="10">
+                        <label>
+                            设备ID
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            MAC地址
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            标签名
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            设备所属楼层
+                        </label>
+                        <el-select v-model="dialog.region" placeholder="请选择所属楼层">
+                            <el-option
+                                    v-for="item in panel.options"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="20">
+                        <label>
+                            备注
+                        </label>
+                        <el-input type="textarea" v-model="dialog.memo"></el-input>
+                    </el-col>
+                </el-row>
+            </div>
+        </dialog_referrer_list>
+    </div>
+    </div>
+</template>
+
+<script>
+    import Global from '../Global.js'
+    import dialog_referrer_list from '../components/dialog_referrer_list'
+
+    export default {
+        data() {
+            return {
+                // dialog
+                dialog_state: false,
+                dialog_title: '添加设备',
+                dialog_type: '',//类型,1是添加,2是修改
+                tabIndex: 0,
+                tabs: [
+                    {name: '固件管理', url: 'hardware'},
+                    {name: '警务通管理', url: 'police'},
+                    {name: '密码修改', url: 'pwd'},
+                    {name: '系统设置', url: 'setting'},
+                ],
+                fileList: [{
+                    name: 'food.jpeg',
+                    url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
+                }],
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    taskstatus: 99,
+                    options: [
+                        {value: 99, label: '全部'},
+                        {value: 1, label: '进行中'},
+                        {value: 2, label: '已完成'},
+                    ],
+                    time1: globalBt2(),
+                },
+                pageination: {
+                    pageItem: 10,
+                    pageoptions: pageOptions(),
+                    total: 10,
+                    pageIndex: 1,
+                },
+                dialog: {
+                    name: 10,
+                    region: 10,
+                    memo: '',
+                },
+                multipleSelection: [],
+                tableData: [{
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                }, {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                }, {
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1516 弄'
+                }]
+            }
+        },
+        mounted() {
+            this.getTableQuery();
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url) {
+                this.$router.push({path: url});
+            },
+            // 查询按钮
+            query() {
+                this.getTableQuery();
+                this.$message.success('查询完毕');
+            },
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+                console.log(val);
+            },
+            handleChange(file, fileList) {
+                this.fileList = fileList.slice(-3);
+            },
+            // 页面数据查询
+            getTableQuery() {
+                // let that = this;
+                // that.loading = true;
+                // let url = headapi + '?ctl=ajax&mod=dial&act=taskListQuery';//获取
+                // let param = {
+                //     'taskstatus': that.panel.taskstatus,
+                //     'bt': globaltime2String(that.panel.time1[0]),
+                //     'et': globaltime2String(that.panel.time1[1]),
+                //     'KEYWORD': that.panel.keyword,
+                //     'USERCODE': that.panel.USERCODE,
+                // };
+                // let JSON = '';
+                // let postdata = qs.stringify(param);
+                // axios.post(url, postdata)
+                //     .then(function (response) {
+                //         JSON = response.data;
+                //         that.loading = false;
+                //         that.allTableData = JSON.rs;
+                //         that.recordsTotal = JSON.rs.length;
+                //         // 设置分页数据
+                //         that.setPaginations();
+                //     })
+                //     .catch(function (error) {
+                //         console.log(error);
+                //     });
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                that.getTableQuery();
+            },
+            // 自动排序
+            sortChange(params) {
+                console.log(params)
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                return globalfmtDate(column, 11);
+            },
+            addList() {
+                this.dialog_state = true;
+                this.dialog_title = '添加设备';
+            },
+            delList() {
+                // checkNum
+                if (!this.multipleSelection.length) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,需要先选中至少一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+                // todo delEquip
+            },
+            changeList() {
+                // checkNum
+                if (!this.multipleSelection.length) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,需要先选中一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+                if (this.multipleSelection.length > 1) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,只能选中一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+            },
+            // 探测记录
+            goRecord(row) {
+                console.log(row);
+                this.$router.push({path: '/record', query: {row: row}});
+            },
+            dialog_cancel() {
+                let that = this;
+                that.dialog_state = false;
+            },
+            dialog_ok() {
+                let that = this;
+                let dialog_type = that.dialog_type;
+                let name = that.field_name;
+                let id = that.field_id;
+            },
+        },
+        components: {
+            dialog_referrer_list
+        }
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+    @import "../assets/css/dialog.css";
+
+    .tabs ul {
+        width: 800px;
+    }
+
+    table span {
+        cursor: pointer;
+    }
+    .upload {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+    .upload h5 {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        color: #6DC1FF;
+        font-size: 18px;
+        text-align: left;
+        font-weight: normal;
+    }
+    .uploadContainer {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        background: rgba(27,86,200,0.14);
+        border: 1px solid #005EA2;
+        border-radius: 0;
+        margin-top: 11px;
+        padding: 10px 0;
+    }
+    /deep/ .el-upload {
+        float: left;
+        margin-left: 27px;
+    }
+    /deep/ .el-upload-list {
+        width: 200px;
+        float: left;
+    }
+</style>

+ 264 - 0
src/views/PhoneSign.vue

@@ -0,0 +1,264 @@
+<template>
+    <div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="panel">
+            <div class="panel-body">
+                <div class=" panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>设备ID:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入设备ID"></el-input>
+                        </el-col>
+                        <el-col :span="6">
+                            <em>检测时间:</em>
+                            <el-date-picker
+                                    v-model="panel.time1"
+                                    type="daterange"
+                                    range-separator="至"
+                                    start-placeholder="开始日期"
+                                    end-placeholder="结束日期">
+                            </el-date-picker>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>信道:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>信号频段:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-button size="small" type="primary" @click="query">查询</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </div>
+        </div>
+        <el-table
+                :data="tableData"
+                class=""
+                stripe
+        >
+            <el-table-column
+                    prop="name"
+                    label="设备ID"
+                    >
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="检测时间"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="探测区域"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="信道"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号频段">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="数据量">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号强度">
+            </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
+        ></el-pagination>
+    </div>
+
+</template>
+
+<script>
+    import Global from '../Global.js'
+    export default {
+        data() {
+            return {
+                tabIndex:0,
+                tabs:[
+                    {name:'手机信号记录',url:'phoneSign'},
+                    {name:'WiFi信号记录',url:'wifiSign'},
+                    {name:'0-6G扫描记录',url:'GSign'},
+                ],
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    taskstatus: 99,
+                    options: [
+                        {value: 99, label: '全部'},
+                        {value: 1, label: '进行中'},
+                        {value: 2, label: '已完成'},
+                    ],
+                    time1: globalBt2(),
+                },
+                pageination: {
+                    pageItem: 10,
+                    pageoptions: pageOptions(),
+                    total: 10,
+                    pageIndex: 1,
+                },
+                tableData: [{
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                }, {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                }, {
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1516 弄'
+                }]
+            }
+        },
+        mounted() {
+            this.getTableQuery();
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url){
+                this.$router.push({path:url});
+            },
+            // 查询按钮
+            query() {
+                this.getTableQuery();
+                this.$message.success('查询完毕');
+            },
+            // 页面数据查询
+            getTableQuery() {
+                // let that = this;
+                // that.loading = true;
+                // let url = headapi + '?ctl=ajax&mod=dial&act=taskListQuery';//获取
+                // let param = {
+                //     'taskstatus': that.panel.taskstatus,
+                //     'bt': globaltime2String(that.panel.time1[0]),
+                //     'et': globaltime2String(that.panel.time1[1]),
+                //     'KEYWORD': that.panel.keyword,
+                //     'USERCODE': that.panel.USERCODE,
+                // };
+                // let JSON = '';
+                // let postdata = qs.stringify(param);
+                // axios.post(url, postdata)
+                //     .then(function (response) {
+                //         JSON = response.data;
+                //         that.loading = false;
+                //         that.allTableData = JSON.rs;
+                //         that.recordsTotal = JSON.rs.length;
+                //         // 设置分页数据
+                //         that.setPaginations();
+                //     })
+                //     .catch(function (error) {
+                //         console.log(error);
+                //     });
+            },
+            // 导出excel
+            btnExpAll() {
+                let that = this;
+                let url = headapi + '?ctl=ajax&mod=czgl&act=czcx_excel';//获取
+                let bt = globaltime2String(that.panel.time1[0]);
+                let et = globaltime2String(that.panel.time1[1]);
+                let usercode = that.panel.usercode;
+                window.location = url + '&bt=' + bt + '&et=' + et + '&usercode=' + usercode;
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                that.getTableQuery();
+            },
+            // 自动排序
+            sortChange(params) {
+                console.log(params)
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                return globalfmtDate(column, 11);
+            },
+            // 过滤金额
+            filterMoney(value, row, column) {
+                let that = this;
+                return parseFloat(column).toFixed(2);
+            },
+        },
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+
+</style>

+ 387 - 0
src/views/Police.vue

@@ -0,0 +1,387 @@
+<template>
+    <div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="panel">
+            <div class="panel-body">
+                <div class=" panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>设备ID:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入设备ID"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>MAC:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入MAC地址"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>所属区域:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="6">
+                            <em>登记时间:</em>
+                            <el-date-picker
+                                    v-model="panel.time1"
+                                    type="daterange"
+                                    range-separator="至"
+                                    start-placeholder="开始日期"
+                                    end-placeholder="结束日期">
+                            </el-date-picker>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-button size="small" type="primary" @click="query">查询</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </div>
+        </div>
+        <div class="contorl">
+            <el-button size="small" type="primary" @click="addList">添加</el-button>
+            <el-button size="small" type="primary" @click="delList">删除</el-button>
+            <el-button size="small" type="primary" @click="changeList">修改</el-button>
+        </div>
+        <el-table
+                :data="tableData"
+                class=""
+                stripe
+                @selection-change="handleSelectionChange"
+        >
+            <el-table-column
+                    type="selection"
+                    width="55">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="设备ID"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="检测时间"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="探测区域"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="信道"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号频段">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="数据量">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号强度">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="操作记录">
+                <template slot-scope="scope">
+                    <span @click="goRecord(scope.row)">探测记录</span>
+                </template>
+            </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
+        ></el-pagination>
+
+        <dialog_referrer_list
+                :show="dialog_state"
+                :title="dialog_title"
+                :large="true"
+                @dialog_cancel="dialog_cancel"
+                @dialog_ok="dialog_ok"
+        >
+            <div class="dialogContent">
+                <el-row :gutter="20">
+                    <el-col :span="10">
+                        <label>
+                            设备ID
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            MAC地址
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            标签名
+                        </label>
+                        <el-input v-model="dialog.name"></el-input>
+                    </el-col>
+                    <el-col :span="10">
+                        <label>
+                            设备所属楼层
+                        </label>
+                        <el-select v-model="dialog.region" placeholder="请选择所属楼层">
+                            <el-option
+                                    v-for="item in panel.options"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="20">
+                        <label>
+                            备注
+                        </label>
+                        <el-input type="textarea" v-model="dialog.memo"></el-input>
+                    </el-col>
+                </el-row>
+            </div>
+        </dialog_referrer_list>
+    </div>
+</template>
+
+<script>
+    import Global from '../Global.js'
+    import dialog_referrer_list from '../components/dialog_referrer_list'
+
+    export default {
+        data() {
+            return {
+                // dialog
+                dialog_state: false,
+                dialog_title: '添加设备',
+                dialog_type: '',//类型,1是添加,2是修改
+                tabIndex: 1,
+                tabs: [
+                    {name: '固件管理', url: 'hardware'},
+                    {name: '警务通管理', url: 'police'},
+                    {name: '密码修改', url: 'pwd'},
+                    {name: '系统设置', url: 'setting'},
+                ],
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    taskstatus: 99,
+                    options: [
+                        {value: 99, label: '全部'},
+                        {value: 1, label: '进行中'},
+                        {value: 2, label: '已完成'},
+                    ],
+                    time1: globalBt2(),
+                },
+                pageination: {
+                    pageItem: 10,
+                    pageoptions: pageOptions(),
+                    total: 10,
+                    pageIndex: 1,
+                },
+                dialog: {
+                    name: 10,
+                    region: 10,
+                    memo: '',
+                },
+                multipleSelection: [],
+                tableData: [{
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                }, {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                }, {
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1516 弄'
+                }]
+            }
+        },
+        mounted() {
+            this.getTableQuery();
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url) {
+                this.$router.push({path: url});
+            },
+            // 查询按钮
+            query() {
+                this.getTableQuery();
+                this.$message.success('查询完毕');
+            },
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+                console.log(val);
+            },
+            // 页面数据查询
+            getTableQuery() {
+                // let that = this;
+                // that.loading = true;
+                // let url = headapi + '?ctl=ajax&mod=dial&act=taskListQuery';//获取
+                // let param = {
+                //     'taskstatus': that.panel.taskstatus,
+                //     'bt': globaltime2String(that.panel.time1[0]),
+                //     'et': globaltime2String(that.panel.time1[1]),
+                //     'KEYWORD': that.panel.keyword,
+                //     'USERCODE': that.panel.USERCODE,
+                // };
+                // let JSON = '';
+                // let postdata = qs.stringify(param);
+                // axios.post(url, postdata)
+                //     .then(function (response) {
+                //         JSON = response.data;
+                //         that.loading = false;
+                //         that.allTableData = JSON.rs;
+                //         that.recordsTotal = JSON.rs.length;
+                //         // 设置分页数据
+                //         that.setPaginations();
+                //     })
+                //     .catch(function (error) {
+                //         console.log(error);
+                //     });
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                that.getTableQuery();
+            },
+            // 自动排序
+            sortChange(params) {
+                console.log(params)
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                return globalfmtDate(column, 11);
+            },
+            addList() {
+                this.dialog_state = true;
+                this.dialog_title = '添加设备';
+            },
+            delList() {
+                // checkNum
+                if (!this.multipleSelection.length) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,需要先选中至少一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+                // todo delEquip
+            },
+            changeList() {
+                // checkNum
+                if (!this.multipleSelection.length) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,需要先选中一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+                if (this.multipleSelection.length > 1) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,只能选中一条记录',
+                        type: 'error'
+                    });
+                    return false
+                }
+            },
+            // 探测记录
+            goRecord(row) {
+                console.log(row);
+                this.$router.push({path: '/record', query: {row: row}});
+            },
+            dialog_cancel() {
+                let that = this;
+                that.dialog_state = false;
+            },
+            dialog_ok() {
+                let that = this;
+                let dialog_type = that.dialog_type;
+                let name = that.field_name;
+                let id = that.field_id;
+            },
+        },
+        components: {
+            dialog_referrer_list
+        }
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+    @import "../assets/css/dialog.css";
+
+    .tabs ul {
+        width: 800px;
+    }
+
+    table span {
+        cursor: pointer;
+    }
+</style>

+ 163 - 27
src/views/Pwd.vue

@@ -1,23 +1,40 @@
 <template>
-    <div class="form_container">
-        <el-form ref="form" :model="form" label-width="110px" :rules="rules">
-            <el-form-item label="原密码" prop="old">
-                <el-input v-model="form.old" type="password"></el-input>
-            </el-form-item>
-            <el-form-item label="新密码" prop="newpwd">
-                <el-input v-model="form.newpwd" type="password"></el-input>
-            </el-form-item>
-            <el-form-item label="确认密码" prop="again">
-                <el-input v-model="form.again" type="password"></el-input>
-            </el-form-item>
-            <s>
-                <i class="el-icon-warning"></i><em>密码由6~32位字母、数字及下划线组成</em>
-            </s>
-            <el-form-item>
-                <el-button size="small" type="primary" @click="onSubmit('form')">确认</el-button>
-                <el-button size="small" @click="resetForm('form')">重置</el-button>
-            </el-form-item>
-        </el-form>
+    <div class="pages">
+        <div class="image-border image-border1"></div>
+        <div class="image-border image-border2"></div>
+        <div class="image-border image-border3"></div>
+        <div class="image-border image-border4"></div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="form_container">
+            <el-form ref="form" :model="form" label-width="110px" :rules="rules">
+                <el-form-item label="请输入原密码" prop="old">
+                    <el-input v-model="form.old" type="password"></el-input>
+                </el-form-item>
+                <el-form-item label="新密码" prop="newpwd">
+                    <el-input v-model="form.newpwd" type="password"></el-input>
+                </el-form-item>
+                <el-form-item label="确认密码" prop="again">
+                    <el-input v-model="form.again" type="password"></el-input>
+                </el-form-item>
+                <el-form-item label="图形验证码" prop="valid">
+                    <el-input v-model="form.valid" type="password"></el-input>
+                    <img  id="validImg" :src="valImgSrc" alt="" width="100px" height="30px" title="看不清?刷一下试试!" @click="changeValImg" >
+                </el-form-item>
+                <!--<s>-->
+                    <!--<i class="el-icon-warning"></i><em>密码由6~32位字母、数字及下划线组成</em>-->
+                <!--</s>-->
+                <el-form-item>
+                    <el-button size="small" type="primary" @click="onSubmit('form')">确认</el-button>
+                    <!--<el-button size="small"  type="primary" @click="resetForm('form')">重置</el-button>-->
+                </el-form-item>
+            </el-form>
+        </div>
     </div>
 </template>
 
@@ -25,7 +42,7 @@
     let qs = require('qs');
     import Global from '../Global.js'
     import {modPwd, logout} from '../api/getApiRes.js'
-
+    import {GenVerifyPic } from '../api/getApiRes.js'
     export default {
         data() {
             let samepass = (rule, value, callback) => {
@@ -44,10 +61,20 @@
                 }
             };
             return {
+                tabIndex: 2,
+                tabs: [
+                    {name: '固件管理', url: 'hardware'},
+                    {name: '警务通管理', url: 'police'},
+                    {name: '密码修改', url: 'pwd'},
+                    {name: '系统设置', url: 'setting'},
+                ],
+                valImgSrc: '',
+                overtime: '',
                 form: {
                     old: '',
                     newpwd: '',
                     again: '',
+                    valid: '',
                 },
                 rules: {
                     old: [
@@ -65,10 +92,42 @@
                         {validator: pwdPass, trigger: 'blur'},
                         {validator: samepass, trigger: 'blur'},
                     ],
+                    valid: [
+                        {required: true, message: '请输入图形验证码', trigger: 'blur'},
+                        {min: 3, max: 4, message: '长度在 4 个字符', trigger: 'blur'}
+                    ],
                 }
             }
         },
+        mounted() {
+            // 读取验证码
+            this.CurentGenVerifyPic();
+            this.overtime = new Date();
+        },
         methods: {
+            // 跳转tab页面
+            goTab(url) {
+                this.$router.push({path: url});
+            },
+            CurentGenVerifyPic(){
+                let that = this;
+                let postdata;
+                GenVerifyPic(postdata).then(res => {
+                    let json = res;
+                    if (json.Id) {
+                        that.valImgSrc=json.Pic;
+                        that.form.picId=json.Id;
+                        this.validImgState = false;
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            //            点击验证码切换
+            changeValImg: function () {
+                this.validImgState = true;
+                this.CurentGenVerifyPic();
+            },
             onSubmit(formName) {
                 let that = this;
                 this.$refs[formName].validate((valid) => {
@@ -137,16 +196,53 @@
     }
 </script>
 <style scoped>
-    #pages {
+    @import "../assets/css/panel.css";
+
+    .tabs ul {
+        width: 800px;
+    }
+    .image-border {
         position: absolute;
+        width: 20px;
+        height: 20px;
+    }
+    .image-border1 {
+        top: 0;
+        left: 25px;
+        border-left: 2px solid #6DC1FF;
+        border-top: 2px solid #6DC1FF;
+    }
+
+    .image-border2 {
         top: 0;
+        right: 12px;
+        border-right: 2px solid #6DC1FF;
+        border-top: 2px solid #6DC1FF;
+    }
+
+    .image-border3 {
+        bottom: 0;
+        left: 25px;
+        border-bottom: 2px solid #6DC1FF;
+        border-left: 2px solid #6DC1FF;
+    }
+
+    .image-border4 {
         bottom: 0;
-        left: 0;
-        right: 0;
+        right: 12px;
+        border-right: 2px solid #6DC1FF;
+        border-bottom: 2px solid #6DC1FF;
+    }
+    .pages {
+        /*position: absolute;*/
+        /*top: 0;*/
+        /*bottom: 0;*/
+        /*left: 0;*/
+        /*right: 0;*/
         width: 100%;
-        height: 100%;
+        /*height: 100%;*/
+        min-height: 600px;
         overflow: hidden;
-        overflow-y: scroll;
         display: block;
         margin: 0 auto;
         padding-bottom: 80px;
@@ -155,9 +251,8 @@
     .form_container {
         width: 50%;
         overflow: hidden;
+        margin: 0 auto;
         margin-top: 20px;
-        margin-left: 40px;
-        background: #fff;
         padding: 20px;
     }
 
@@ -176,4 +271,45 @@
     s em {
         font-style: normal;
     }
+    /deep/ .el-form {
+        width: 500px;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+    /deep/ .el-form-item__label {
+        width: 120px!important;
+        color: #6DC1FF;
+        font-size: 16px;
+        float: left;
+    }
+    /deep/ .el-form-item__content {
+        width: 370px;
+        float: right;
+        overflow: hidden;
+        margin-left: 0px!important;
+    }
+    /deep/ .el-input__inner {
+        background: none;
+        color: #6DC1FF;
+        border: 1px solid #005EA2;
+        border-radius: 0;
+    }
+    /deep/ .el-range-input {
+        background: none;
+        color: #6DC1FF;
+    }
+    .el-button--primary {
+        width: 186px;
+        height: 30px;
+        background: #0162AA;
+        color: #6DC1FF;
+        border: 1px solid #6DC1FF;
+        border-radius: 0;
+    }
+    #validImg {
+        position: relative;
+        float: right;
+        bottom: 35px;
+    }
 </style>

+ 139 - 0
src/views/Setting.vue

@@ -0,0 +1,139 @@
+<template>
+    <div class="pages">
+        <div class="image-border image-border1"></div>
+        <div class="image-border image-border2"></div>
+        <div class="image-border image-border3"></div>
+        <div class="image-border image-border4"></div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="content">
+            <ul>
+                <li>
+                    <em>报警声音</em>
+                    <el-switch
+                            v-model="setting.sound"
+                            active-color="#6DC1FF"
+                            inactive-color="#DCDFE6">
+                    </el-switch>
+                </li>
+                <li>
+                    <em>设备固件自动升级</em>
+                    <el-switch
+                            v-model="setting.update"
+                            active-color="#6DC1FF"
+                            inactive-color="#DCDFE6">
+                    </el-switch>
+                </li>
+            </ul>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                tabIndex: 3,
+                tabs: [
+                    {name: '固件管理', url: 'hardware'},
+                    {name: '警务通管理', url: 'police'},
+                    {name: '密码修改', url: 'pwd'},
+                    {name: '系统设置', url: 'setting'},
+                ],
+                setting:{
+                  sound:true,
+                  update:false,
+                },
+            }
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url) {
+                this.$router.push({path: url});
+            },
+        },
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+
+    .tabs ul {
+        width: 800px;
+    }
+    .pages {
+        width: 96%;
+        min-height: 600px;
+        overflow: hidden;
+        display: block;
+        margin-left: 20px;
+    }
+    .content {
+        width: 100%;
+        height: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+    .content li {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        background: rgba(27,86,200,0.14);
+        color:#6DC1FF;
+        font-size: 16px;
+        height: 60px;
+        line-height: 60px;
+        padding-left: 37px;
+        margin-bottom: 5px;
+    }
+    .content li em {
+        float: left;
+        font-style: normal;
+        margin-right: 27px;
+    }
+    .content li .el-switch {
+        float: left;
+        margin-top: 20px;
+    }
+
+    .image-border {
+        position: absolute;
+        width: 20px;
+        height: 20px;
+    }
+
+    .image-border1 {
+        top: 0px;
+        left: 25px;
+        border-left: 2px solid #6DC1FF;
+        border-top: 2px solid #6DC1FF;
+    }
+
+    .image-border2 {
+        top: 0;
+        right: 12px;
+        border-right: 2px solid #6DC1FF;
+        border-top: 2px solid #6DC1FF;
+    }
+
+    .image-border3 {
+        bottom: 0;
+        left: 25px;
+        border-bottom: 2px solid #6DC1FF;
+        border-left: 2px solid #6DC1FF;
+    }
+
+    .image-border4 {
+        bottom: 0;
+        right: 12px;
+        border-right: 2px solid #6DC1FF;
+        border-bottom: 2px solid #6DC1FF;
+    }
+</style>

+ 265 - 0
src/views/WifiSign.vue

@@ -0,0 +1,265 @@
+<template>
+    <div>
+        <div class="tabs">
+            <ul>
+                <li v-for="(tab,i) in tabs" @click="goTab(tab.url)" :class="{'active':tabIndex == i}">
+                    {{tab.name}}
+                </li>
+            </ul>
+        </div>
+        <div class="panel">
+            <div class="panel-body">
+                <div class=" panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>设备ID:</em>
+                            <el-input v-model="panel.keyword" placeholder="请输入设备ID"></el-input>
+                        </el-col>
+                        <el-col :span="6">
+                            <em>检测时间:</em>
+                            <el-date-picker
+                                    v-model="panel.time1"
+                                    type="daterange"
+                                    range-separator="至"
+                                    start-placeholder="开始日期"
+                                    end-placeholder="结束日期">
+                            </el-date-picker>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>信道:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>信号频段:</em>
+                            <el-select v-model="panel.taskstatus">
+                                <el-option
+                                        v-for="item in panel.options"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-button size="small" type="primary" @click="query">查询</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </div>
+        </div>
+        <el-table
+                :data="tableData"
+                class=""
+                stripe
+        >
+            <el-table-column
+                    prop="name"
+                    label="设备ID"
+                    >
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="检测时间"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="探测区域"
+            >
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="信道"
+                    width="180">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号频段">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="数据量">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="信号强度">
+            </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
+        ></el-pagination>
+    </div>
+
+</template>
+
+<script>
+    import Global from '../Global.js'
+
+    export default {
+        data() {
+            return {
+                tabIndex:1,
+                tabs:[
+                    {name:'手机信号记录',url:'phoneSign'},
+                    {name:'WiFi信号记录',url:'wifiSign'},
+                    {name:'0-6G扫描记录',url:'GSign'},
+                ],
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    taskstatus: 99,
+                    options: [
+                        {value: 99, label: '全部'},
+                        {value: 1, label: '进行中'},
+                        {value: 2, label: '已完成'},
+                    ],
+                    time1: globalBt2(),
+                },
+                pageination: {
+                    pageItem: 10,
+                    pageoptions: pageOptions(),
+                    total: 10,
+                    pageIndex: 1,
+                },
+                tableData: [{
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                }, {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                }, {
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1516 弄'
+                }]
+            }
+        },
+        mounted() {
+            this.getTableQuery();
+        },
+        methods: {
+            // 跳转tab页面
+            goTab(url){
+                this.$router.push({path:url});
+            },
+            // 查询按钮
+            query() {
+                this.getTableQuery();
+                this.$message.success('查询完毕');
+            },
+            // 页面数据查询
+            getTableQuery() {
+                // let that = this;
+                // that.loading = true;
+                // let url = headapi + '?ctl=ajax&mod=dial&act=taskListQuery';//获取
+                // let param = {
+                //     'taskstatus': that.panel.taskstatus,
+                //     'bt': globaltime2String(that.panel.time1[0]),
+                //     'et': globaltime2String(that.panel.time1[1]),
+                //     'KEYWORD': that.panel.keyword,
+                //     'USERCODE': that.panel.USERCODE,
+                // };
+                // let JSON = '';
+                // let postdata = qs.stringify(param);
+                // axios.post(url, postdata)
+                //     .then(function (response) {
+                //         JSON = response.data;
+                //         that.loading = false;
+                //         that.allTableData = JSON.rs;
+                //         that.recordsTotal = JSON.rs.length;
+                //         // 设置分页数据
+                //         that.setPaginations();
+                //     })
+                //     .catch(function (error) {
+                //         console.log(error);
+                //     });
+            },
+            // 导出excel
+            btnExpAll() {
+                let that = this;
+                let url = headapi + '?ctl=ajax&mod=czgl&act=czcx_excel';//获取
+                let bt = globaltime2String(that.panel.time1[0]);
+                let et = globaltime2String(that.panel.time1[1]);
+                let usercode = that.panel.usercode;
+                window.location = url + '&bt=' + bt + '&et=' + et + '&usercode=' + usercode;
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                that.getTableQuery();
+            },
+            // 自动排序
+            sortChange(params) {
+                console.log(params)
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                return globalfmtDate(column, 11);
+            },
+            // 过滤金额
+            filterMoney(value, row, column) {
+                let that = this;
+                return parseFloat(column).toFixed(2);
+            },
+        },
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+
+</style>