“dzb”
2022-10-17 68270bc858a465bc482820586a7ccb534b6c3565
新增日志管理
14个文件已修改
5个文件已添加
1359 ■■■■■ 已修改文件
src/api/logs.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/logs/index.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/helper.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/layout/components/Menu/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/log/index.vue 528 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/components/closure/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/components/examine/index.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/components/illExamine/index.vue 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/components/illclosure/index.vue 334 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/myIndex/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/message/myIndex/createUser/index.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/message/myIndex/index.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/department/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/device/bayonet/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/logs.js
New file
@@ -0,0 +1,28 @@
import axios from "axios";
import {getToken} from '@/utils/helper'
const baseUrl = '/sccg/log_manage'
const token = {
    'Authorization':getToken()
}
export default {
    // 获取日志列表
    getLogsList: (data) => axios({
        method: 'get',
        url: baseUrl+'/query',
        headers:{...token},
        params: data
    }),
    // 获取日志操作类型
    getLogsOperationType:() => axios({
        method:'get',
        url:baseUrl+'/query_operationType',
        headers:{...token},
    }),
    // 导出日志
    exportLogs:(data)=>axios({
        method:'post',
        url:baseUrl+'/export',
        headers:{...token},
        params:data
    })
};
src/router/index.js
@@ -253,6 +253,11 @@
                component: () => import('@/views/operate/message/mycontrol'),
              },
            ]
          },
          {
            path: 'log',
            name: 'log',
            component: () => import('@/views/operate/log'),
          }
        ]
      },
src/store/index.js
@@ -1,6 +1,7 @@
import Vue from 'vue'
import Vuex from 'vuex'
import users from "./users"
import logs from "./logs"
Vue.use(Vuex)
export default new Vuex.Store({
@@ -13,6 +14,6 @@
  actions: {
  },
  modules: {
    users
    users,logs
  }
})
src/store/logs/index.js
New file
@@ -0,0 +1,22 @@
import logsApi from "@/api/logs";
// import { Message } from "element-ui";
export default {
  namespaced: true,
  state: {
    userInfo: {},
  },
  actions: {
    async getLogsList({ state }, params) {
      const res = await logsApi.getLogsList(params);
      return res;
    },
    async getLogsOperationType({ state }) {
      const res = await logsApi.getLogsOperationType();
      return res;
    },
    async exportLogs({ state },params) {
      const res = await logsApi.exportLogs(params);
      return res;
    }
  },
};
src/utils/helper.js
@@ -22,24 +22,33 @@
    return filterTime(t2.getTime() - t1.getTime());
}
// 获取字典表
export async function getTypeList(level,code){
export async function getTypeList(level, code) {
    let arr;
    await myrequest({
        method:'get',
        url:`sccg/dict/query_type?level=${level}&typeCode=${code}`
        method: 'get',
        url: `sccg/dict/query_type?level=${level}&typeCode=${code}`
    })
    .then(res=>{
        arr = res.data;
    })
        .then(res => {
            arr = res.data;
        })
    return arr;
}
// 获取token
export function getToken() {
    const token = sessionStorage.getItem('token');
    const tokenHead = sessionStorage.getItem('tokenHead');
    if (token && tokenHead) {
        return tokenHead + token;
    }
    return;
}
function filterTime(time) {
    if (time < 0) {
        return '已逾期';
    }
    let dd = Math.floor(time/24/60/60/1000),
        hh = Math.floor(time/60/60/1000-dd*24),
        mi = Math.floor(time/60/1000-dd*24*60-hh*60);
    let dd = Math.floor(time / 24 / 60 / 60 / 1000),
        hh = Math.floor(time / 60 / 60 / 1000 - dd * 24),
        mi = Math.floor(time / 60 / 1000 - dd * 24 * 60 - hh * 60);
    return addDay(fillTime(dd)) + addHour(fillTime(hh)) + addMin(fillTime(mi));
}
function fillTime(num) {
@@ -50,14 +59,14 @@
}
function addDay(str) {
    str = parseFloat(str);
    if (str <0) {
    if (str < 0) {
        return;
    }
    return str + '天'
}
function addHour(str) {
    str = parseFloat(str);
    if (str <0) {
    if (str < 0) {
        return;
    }
    return str + '小时'
src/views/layout/components/Menu/index.vue
@@ -28,13 +28,13 @@
              <el-menu-item index="/home/system/userSetting/department">部门管理</el-menu-item>
            </el-submenu>
            <!-- 平台设置 -->
            <el-submenu index="/home/system/add" class="secondMenu">
            <el-submenu index="/home/system/platform" class="secondMenu">
              <template slot="title">
                <span class="secondSpan">门户管理</span>
              </template>
              <el-menu-item index="/home/system/mySetting">自定义菜单</el-menu-item>
              <el-menu-item index="/home/system/portalSetting">logo管理</el-menu-item>
              <el-menu-item index="/home/system/otherInterface">第三方接口管理</el-menu-item>
              <el-menu-item index="/home/system/platform/mySetting">自定义菜单</el-menu-item>
              <el-menu-item index="/home/system/platform/portalSetting">logo管理</el-menu-item>
              <el-menu-item index="/home/system/platform/otherInterface">第三方接口管理</el-menu-item>
            </el-submenu>
            <!-- 设备管理 -->
            <el-submenu index="/home/system/device" class="secondMenu">
@@ -110,7 +110,7 @@
              <el-menu-item index="/home/operate/message/mycontrol">栏目管理</el-menu-item>
            </el-submenu>
            <el-menu-item index="/home/operate">短信管理</el-menu-item>
            <el-menu-item index="/home/operate">日志管理</el-menu-item>
            <el-menu-item index="/home/operate/log">日志管理</el-menu-item>
          </el-submenu>
          <!-- 视频巡查模块 -->
          <el-submenu index="/home/video" class="firstMenu">
src/views/login/index.vue
@@ -118,6 +118,7 @@
    handleLogin() {
      const { username, password } = this.loginForm;
      const that = this;
      console.log(this.login);
      this.$axios
        .post("sccg/admin/login", {
          password,
src/views/operate/disposal/casepool/dispatch/index.vue
@@ -35,7 +35,7 @@
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                    <el-table-column prop="eventSource" label="问题来源" min-width="8">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
@@ -72,8 +72,6 @@
                        <template slot-scope="scope">
                            <div class="operation">
                                <div class="btn">
                                    <span>调度</span>
                                    <span class="line">|</span>
                                    <span @click="opernDialog(scope.row)">上传处置结果</span>
                                </div>
                            </div>
@@ -87,7 +85,7 @@
                    <MyIllDetail :info=info v-else></MyIllDetail>
                </el-dialog>
                <!-- 上传页面 -->
                <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果" v-if="dialogUpload"
                <el-dialog :visible.sync="dialogUpload" width="80%" title="上传处置结果" v-if="dialogUpload"
                    :before-close="handleClose">
                    <uploadVio v-if="mystatus === 1" :caseId="caseId" @closeDialog="closeDialog"></uploadVio>
                    <uploadIll v-else :caseId="caseId" @closeDialog="closeDialog"></uploadIll>
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -142,6 +142,7 @@
import MyMap from '@/components/map'
import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate'
import {getTypeList} from '@/utils/helper'
import {parseTime} from "@/utils/index"
export default {
    components: {
        MyMap
@@ -454,13 +455,16 @@
            this.$refs.user.validate((valid) => {
                if (valid) {
                    const { vio } = this;
                    console.log(vio);
                    this.$axios({
                        method: 'post',
                        url: 'sccg/base_case/addition_violation',
                        data: vio
                        data: {
                            ...vio,
                            alarmTime:parseTime(vio.alarmTime),
                        }
                    })
                        .then(res => {
                            console.log(res);
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
src/views/operate/log/index.vue
New file
@@ -0,0 +1,528 @@
<template>
    <div class="userList">
        <header>
            <div class="header-nav">
                <span class="nav-left">数据筛选</span>
                <span class="nav-right">高级搜索</span>
            </div>
            <div class="header-content">
                <div class="search">
                    <span>输入查询:</span>
                    <el-input placeholder="内容信息" v-model="context"></el-input>
                </div>
                <div class="message-status">
                    <span>操作类型:</span>
                    <el-select v-model="operationType" style="margin-left:20px">
                        <el-option v-for="item in operationTypeList" :key="item.id" :label="item.operationType"
                            :value="item.operationType">
                        </el-option>
                    </el-select>
                </div>
                <div class="message-kind">
                    <span>时间范围:</span>
                    <el-input placeholder="选择时间范围" v-model="timeArea"></el-input>
                </div>
                <div class="find">
                    <el-button type="primary" icon="el-icon-search" @click="setTableData">查询</el-button>
                    <el-button icon="el-icon-delete-solid">重置</el-button>
                </div>
            </div>
        </header>
        <main>
            <div class="mainContent">
                <div class="main-nav">
                    <span>数据列表</span>
                    <div class="main-nav-right">
                        <el-button type="primary" icon="el-icon-upload2" @click="handleExport">导出</el-button>
                        <el-button class="el-icon-delete-solid">清空</el-button>
                    </div>
                </div>
                <!-- 数据展示 -->
                <el-table ref="multipleTable"
                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="createTime" label="日志时间" min-width="10">
                        <template slot-scope="scope">
                            <span>{{changeTime(scope.row.createTime)}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="userAgent" label="终端设备" min-width="10">
                    </el-table-column>
                    <el-table-column prop="operationType" label="操作类型" min-width="10">
                    </el-table-column>
                    <el-table-column prop="adminId" label="操作人员" min-width="10">
                    </el-table-column>
                    <el-table-column prop="ip" label="IP地址" min-width="10">
                    </el-table-column>
                    <el-table-column prop="contain" label="内容" min-width="10">
                    </el-table-column>
                </el-table>
                <!-- tools -->
                <div class="tools">
                    <div class="funs">
                        <div class="funsItem funs-sp">
                            <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
                        </div>
                        <div class="funsItem funs-sp">
                            <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox>
                        </div>
                        <div class="funsItem">
                            <el-select v-model="myIdx" placeholder="批量操作" @change="selectChange">
                                <el-option v-for="item in options" :key="item.value" :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </div>
                    </div>
                    <div class="pagination">
                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
                            @prev-click="handlePrev" @next-click="handleNext">
                        </el-pagination>
                    </div>
                </div>
            </div>
        </main>
    </div>
</template>
<script>
import helper from '@/utils/mydate'
import { createNamespacedHelpers } from "vuex";
const { mapActions } = createNamespacedHelpers("logs");
export default {
    components: {
    },
    data() {
        return {
            tableData: [],
            context: "",
            totalNum: null,
            pageSize: 10,
            currentPage: 1,
            all: false,
            unsame: false,
            myIdx: null,
            preMyIdx: null,
            options: [
                {
                    value: 1,
                    label: '批量启用',
                },
                {
                    value: 2,
                    label: '批量禁用',
                },
                {
                    value: 3,
                    label: '批量删除',
                }
            ],
            tempList: [],
            timeArea: '',
            operationType: '全部',
            operationTypeList: [],
        }
    },
    created() {
        this.setTableData();
        this.setOperationType();
    },
    methods: {
        ...mapActions(["getLogsList", 'getLogsOperationType', 'exportLogs']),
        // 导出日志
        async handleExport() {
            const { currentPage, pageSize, context, operationType } = this;
            let arr = await this.exportLogs({
                content: context,
                current: currentPage,
                size: pageSize,
            });
            const blob = new Blob([arr.data], {
                type: 'application/octet-stream'
            })
            // content-disposition
            const downloadElement = document.createElement('a')
            // 创建下载的链接
            const href = window.URL.createObjectURL(blob)
            downloadElement.href = href
            // // 下载后文件名
            // downloadElement.download = '日志报告'+'.xlsx'
            document.body.appendChild(downloadElement)
            // 点击下载
            downloadElement.click()
            // 下载完成移除元素
            document.body.removeChild(downloadElement)
            // 释放掉blob对象
            window.URL.revokeObjectURL(href)
        },
        // 设置操作类型
        async setOperationType() {
            this.operationTypeList = await this.getOperationType();
        },
        // 获取操作类型
        async getOperationType() {
            let arr = await this.getLogsOperationType();
            console.log(arr);
            arr.data.data.unshift({ id: 0, operationType: '全部' })
            return arr.data.data;
        },
        // 批量删除
        handleDelete(idarr) {
            this.$confirm('确认删除?')
                .then(_ => {
                    this.$axios({
                        method: 'post',
                        url: 'sccg/message/delete?ids=' + idarr,
                    })
                        .then(res => {
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: '删除成功',
                                })
                                this.setTableData();
                            } else {
                                this.$message({
                                    type: 'error',
                                    message: res.message
                                })
                            }
                        })
                })
        },
        // 设置表格数据
        async setTableData() {
            const arr = await this.getLogList();
            this.tableData = arr.records;
            this.totalNum = arr.total
        },
        // 获取日志数据
        async getLogList() {
            const { currentPage, pageSize, context, operationType } = this;
            let arr = await this.getLogsList({
                content: context,
                current: currentPage,
                endTime: '',
                id: '',
                operationType: operationType === '全部' ? '' : operationType,
                portEqulpment: '',
                size: pageSize,
                startTime: '',
            })
            return arr.data.data;
        },
        // 批量下拉框操作
        async selectChange(list) {
            console.log(this.tempList);
            if (this.tempList.length !== 0) {
                this.preMyIdx = list;
                if (list === 3) {
                    await this.handleDelete(this.tempList);
                } else if (list === 2) {
                    await this.mulUpdateStatus(this.tempList, 0);
                } else {
                    await this.mulUpdateStatus(this.tempList, 1);
                }
                this.myIdx = 0;
            } else {
                this.myIdx = this.preMyIdx;
                this.$message({
                    type: 'warning',
                    message: '您还没选中任何数据',
                })
            }
        },
        // 批量操作
        mulUpdateStatus(idArr, flag) {
            this.$confirm(flag === 1 ? "您确定要进行批量启用角色吗?" : '您确定要进行批量禁用角色吗?')
                .then(_ => {
                    this.$axios({
                        method: 'post',
                        url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag,
                    })
                        .then(res => {
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: '更改用户状态成功',
                                })
                                this.getUserList();
                            } else {
                                this.$message({
                                    type: 'error',
                                    message: res.message
                                })
                            }
                            console.log(res);
                        })
                })
                .catch(err => { console.log(err) })
        },
        // 表格监听
        tableChange(list) {
            this.tempList = [];
            list.forEach(item => {
                this.tempList.push(item.id);
            })
            if (list.length === this.tableData.length) {
                this.all = true;
            } else {
                this.all = false
            }
        },
        // 修改时间格式
        changeTime(time) {
            return helper(time);
        },
        // 全选
        selectAll() {
            this.$refs.multipleTable.toggleAllSelection();
        },
        // 反选
        disSame(list) {
            list.forEach(row => {
                this.$refs.multipleTable.toggleRowSelection(row)
            })
        },
        // 设置表格斑马纹
        tableRowClassName({ row, rowIndex }) {
            if ((rowIndex + 1) % 2 == 0) {
                return 'warning-row';
            } else {
                return 'success-row';
            }
            return '';
        },
        // 当前页改变触发事件
        changeCurrentPage(page) {
            this.currentPage = page;
            this.setTableData();
        },
        // 上一页点击事件
        handlePrev(page) {
            this.currentPage = page;
            this.setTableData();
        },
        // 下一页点击事件
        handleNext(page) {
            this.currentPage = page;
            this.setTableData();
        },
        // 关闭弹窗
        handleClose(done) {
            done();
        },
        // 确认关闭弹窗
        handleConfirmClose(done) {
            this.$confirm('确认关闭?')
                .then(_ => {
                    done();
                })
                .catch(err => {
                    console.log(err);
                })
        },
        // 自定义关闭弹窗
        closeDialog({ flag, index }) {
            if (index === 1) {
                this.setTableData();
            }
        }
    }
}
</script>
<style lang="scss" scoped>
.userList {
    text-align: left;
    margin: 10px 20px;
    color: #4b9bb7;
    header {
        background-color: #09152f;
        border: 1pox solid #fff;
        .header-nav {
            line-height: 40px;
            padding: 0 30px;
            display: flex;
            justify-content: space-between;
            font-weight: 650;
        }
        .header-content {
            padding: 0 40px;
            display: flex;
            line-height: 100px;
            justify-content: space-between;
            align-items: center;
            .search,
            .message-status,
            .message-kind {
                display: flex;
                justify-content: flex-start;
                span {
                    flex: 1;
                }
                .el-input {
                    flex: 2;
                    color: #1d3f57;
                    &::v-deep .el-input__inner {
                        background-color: #09152f;
                        border: 1px solid #17324c;
                    }
                }
            }
            .findBtn {
                line-height: 100px;
                margin-left: 15px;
                display: flex;
                align-items: center;
                margin-top: -2px;
                .el-button {
                    padding: 12px 25px;
                    border-radius: 20px;
                }
            }
        }
    }
    main {
        background-color: #09152f;
        margin-top: 20px;
        padding-bottom: 50px;
        border: 1pox solid #fff;
        .el-link {
            color: #4b9bb7;
        }
        .leftPx {
            margin-left: 10px;
        }
        .mainTitle {
            line-height: 60px;
        }
        .main-nav {
            line-height: 40px;
            display: flex;
            padding: 10px;
            justify-content: space-between;
        }
        .tools {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0 20px;
            .funs {
                display: flex;
                .funs-sp {
                    border: 1px solid #17324c;
                }
                .funsItem {
                    line-height: 28px;
                    display: flex;
                    align-items: center;
                    border-radius: 4px;
                    font-size: 12px;
                    margin-left: 10px;
                    .el-checkbox {
                        width: 80px;
                        padding: 0 10px;
                    }
                    .el-select {
                        width: 120px;
                    }
                    &::v-deep .el-input__inner {
                        border: none;
                        background-color: #09152f;
                    }
                    &:hover {
                        border: 1px solid #4b9bb7;
                    }
                    &:hover .el-checkbox {
                        color: #4b9bb7;
                    }
                }
            }
            .pagination {
                margin-top: 50px;
                display: flex;
                line-height: 50px;
                justify-content: center;
                .el-pagination {
                    &::v-deep li,
                    &::v-deep .btn-prev,
                    &::v-deep .btn-next {
                        background-color: #071f39;
                        color: #4b9bb7;
                    }
                    &::v-deep .active {
                        background-color: #409eff;
                        color: #fff;
                    }
                }
            }
        }
        .el-table {
            color: #4b9bb7;
            font-size: 10px;
            &::v-deep .el-table__empty-block {
                background-color: #09152f;
            }
            &::v-deep .el-table__empty-block {
                color: #4b9bb7;
            }
            .operation {
                display: flex;
                .line {
                    padding: 0 5px;
                }
                span:hover {
                    cursor: pointer;
                }
            }
        }
        .el-table::v-deep .warning-row {
            background: #06122c;
        }
        .el-table::v-deep .success-row {
            background: #071f39;
        }
    }
}
</style>
src/views/operate/management/myIndex/components/closure/index.vue
@@ -104,7 +104,7 @@
                    </div>
                    <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
                    <MyFilePicture v-else-if="activeIndex === 2"  :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture>
                    <MySovleProblem v-else-if="activeIndex === 3" :baseCase="baseCase" :problemProVo="problemProVo"></MySovleProblem>
                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
                    <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene>
                </div>
            </div>
@@ -203,7 +203,7 @@
                if (valid) {
                    this.$axios({
                        method: 'put',
                        url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&result='+baseCase.finalOpinion,
                        url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&opinion='+baseCase.finalOpinion +'&result='+'结案成功',
                    })
                        .then(res => {
                            console.log(res);
src/views/operate/management/myIndex/components/examine/index.vue
@@ -86,7 +86,7 @@
                <div class="show-wrap">
                    <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
                    <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture>
                    <MySovleProblem v-else-if="activeIndex === 3" :baseCase="baseCase" :problemProVo="problemProVo"></MySovleProblem>
                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
                    <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene>
                </div>
            </div>
@@ -142,12 +142,11 @@
            handlePassVo: {},
            currentSitVo: {},
            problemProVo: {},
            filesPictureVo: {}
            filesPictureVo: {},
        }
    },
    created() {
        const { info } = this;
        const { info} = this;
        this.baseCase = info.baseCase;
        this.handlePassVo = info.handlePassVo;
        this.currentSitVo = info.currentSitVo;
@@ -159,8 +158,7 @@
            this.activeIndex = index;
        },
        // 提交审核意见
        handleSubmit(mystatus) {
            // this.getUserLoginInfo();
        handleSubmit(index) {
            const { baseCase } = this;
            this.$refs.viewForm.validate((valid) => {
                if (valid) {
@@ -170,8 +168,7 @@
                        data: {
                            baseCaseId: baseCase.id,
                            checkOpinion: baseCase.auditOpinion,
                            currentUser: baseCase.createUser,
                            status: mystatus,
                            result:index === 0 ? '驳回':'通过',
                        }
                    })
                        .then(res => {
@@ -179,7 +176,7 @@
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: mystatus === 0 ? '驳回成功' : '审核通过'
                                    message: index === 0 ? '驳回成功' : '审核通过'
                                })
                                this.$emit('closeDialog', { flag: false });
                            }
@@ -205,7 +202,7 @@
                .then(res => {
                    console.log(res);
                })
        }
        },
    },
    props: ['info', 'closeDialog']
}
src/views/operate/management/myIndex/components/illExamine/index.vue
New file
@@ -0,0 +1,284 @@
<template>
    <div class="view">
        <div class="view-data">
            <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px">
                <div class="data-item">
                    <el-form-item label="问题来源:">
                        <span class="data-detail">{{baseCase.eventSource === 2 ? '人工上报' : '视频巡查'}}</span>
                    </el-form-item>
                    <el-form-item label="登记人员:">
                        <span class="data-detail">{{baseCase.createUser}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="问题类型:">
                        <span class="data-detail">{{baseCase.category === 1 ? '违规' : '违建'}}</span>
                    </el-form-item>
                    <el-form-item label="违建类别:">
                        <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="事件等级:">
                        <span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="案由:">
                        <span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设长、宽、高:">
                        <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m、'+baseCase.illegalBuilding.buildingWidth+'m、'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设面积:">
                        <span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'㎡ '}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="所属社区:">
                        <span class="data-detail">{{baseCase.communityText}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="事发地点:">
                        <span class="data-detail">{{baseCase.site}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="问题描述:">
                        <span class="data-detail">{{baseCase.illegalBuilding.description}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="处置方式:">
                        <span class="data-detail">xxxxxxx</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="处置手段:">
                        <span class="data-detail">xxxxxxx</span>
                    </el-form-item>
                </div>
                <!-- 审核意见 -->
                <el-form-item label="审核意见" prop="auditOpinion">
                    <el-input type="textarea" placeholder="请输入审核意见" v-model="baseCase.auditOpinion"></el-input>
                </el-form-item>
                <div class="el-form-footer">
                    <el-button @click.native.prevent="handleSubmit(0)">驳回</el-button>
                    <el-button type="primary" @click.native.prevent="handleSubmit(1)">通过</el-button>
                </div>
            </el-form>
        </div>
        <div class="view-process">
            <div class="process-header">
                <div class="process-title-item" v-for="item in titleList" :key="item.title"
                    @click="changeComponent(item.index)">
                    <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div>
                    <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div>
                </div>
            </div>
            <div class="show-item">
                <div class="show-wrap">
                    <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
                    <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture>
                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
                    <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
import MyProcess from '@/components/process'
import MyFilePicture from '@/components/filePictrue'
import MySovleProblem from '@/components/solveProblem'
import MyScene from '@/components/scene'
export default {
    components: {
        MyProcess, MyFilePicture, MySovleProblem, MyScene
    },
    data() {
        const checkOpinion = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                callback(new Error('审核意见不能为空'))
            }
        }
        return {
            myInfo: {
            },
            activeIndex: 1,
            titleList: [
                {
                    title: '办理经过',
                    index: 1,
                },
                {
                    title: '案卷图片',
                    index: 2,
                },
                {
                    title: '问题处理',
                    index: 3,
                },
                {
                    title: '现场情况',
                    index: 4,
                },
            ],
            Rules: {
                auditOpinion: [
                    { required: true, trigger: 'blur', validator: checkOpinion }
                ]
            },
            baseCase: {},
            handlePassVo: {},
            currentSitVo: {},
            problemProVo: {},
            filesPictureVo: {},
        }
    },
    created() {
        const { info } = this;
        this.baseCase = info.baseCase;
        this.handlePassVo = info.handlePassVo;
        this.currentSitVo = info.currentSitVo;
        this.problemProVo = info.problemProVo;
        this.filesPictureVo = info.filesPictureVo;
    },
    methods: {
        changeComponent(index) {
            this.activeIndex = index;
        },
        // 提交审核意见
        handleSubmit(mystatus) {
            // this.getUserLoginInfo();
            const { baseCase } = this;
            this.$refs.viewForm.validate((valid) => {
                if (valid) {
                    this.$axios({
                        method: 'post',
                        url: 'sccg/check_handle/check',
                        data: {
                            baseCaseId: baseCase.id,
                            checkOpinion: baseCase.auditOpinion,
                            currentUser: baseCase.createUser,
                            status: mystatus,
                        }
                    })
                        .then(res => {
                            console.log(res);
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: mystatus === 0 ? '驳回成功' : '审核通过'
                                })
                                this.$emit('closeDialog', { flag: false });
                            }
                        })
                        .catch(err => { console.log(err) });
                }else{
                    return false;
                }
            })
        },
        // 获取当前用户登录信息
        getUserLoginInfo() {
            // 获取登录名;
            const username = sessionStorage.getItem('name');
            this.$axios({
                method: 'get',
                url: 'sccg/admin/info',
                data: {
                    name: 'username'
                }
            })
                .then(res => {
                    console.log(res);
                })
        },
    },
    props: ['info', 'closeDialog']
}
</script>
<style lang="scss" scoped>
.view {
    display: flex;
    padding: 20px;
    .view-data {
        color: #4b9bb7;
        flex: 4;
        padding: 20px;
        .data-item {
            display: flex;
            justify-content: space-between;
            line-height: 40px;
        }
        :deep(.el-form-item__label) {
            color: #4b9bb7;
        }
        :deep(.el-textarea__inner) {
            background-color: #17324c;
            color: #4b9bb7;
        }
        .el-form-footer {
            display: flex;
            justify-content: flex-end;
        }
        border: 1px solid #17324c;
    }
    .view-process {
        flex: 6;
        margin-left: 20px;
        .process-header {
            display: flex;
            line-height: 40px;
            .process-title-item {
                width: 120px;
                text-align: center;
                .under-line {
                    height: 2px;
                    width: 100%;
                }
                .title-active {
                    color: #4b9bb7;
                }
                .line-active {
                    background-color: #4b9bb7;
                    border-radius: 20px;
                }
            }
        }
        .show-item {
            overflow: hidden;
            height: 600px;
            position: relative;
            .show-wrap {
                overflow: scroll;
                height: 600px;
            }
        }
    }
}
</style>
src/views/operate/management/myIndex/components/illclosure/index.vue
New file
@@ -0,0 +1,334 @@
<template>
    <div class="view">
        <div class="view-data">
            <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px">
                <div class="data-item">
                    <el-form-item label="问题来源:">
                        <span class="data-detail">{{baseCase.eventSource === 2 ? '人工上报' : '视频巡查'}}</span>
                    </el-form-item>
                    <el-form-item label="登记人员:">
                        <span class="data-detail">{{baseCase.createUser}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="问题类型:">
                        <span class="data-detail">{{baseCase.category === 1 ? '违规' : '违建'}}</span>
                    </el-form-item>
                    <el-form-item label="违建类别:">
                        <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="事件等级:">
                        <span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="案由:">
                        <span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设长、宽、高:">
                        <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m、'+baseCase.illegalBuilding.buildingWidth+'m、'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="违法建设面积:">
                        <span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'㎡ '}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="所属社区:">
                        <span class="data-detail">{{baseCase.communityText}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="事发地点:">
                        <span class="data-detail">{{baseCase.site}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="问题描述:">
                        <span class="data-detail">{{baseCase.illegalBuilding.description}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="处置方式:">
                        <span class="data-detail">xxxxxxx</span>
                    </el-form-item>
                </div>
                <div class="data-item">
                    <el-form-item label="处置手段:">
                        <span class="data-detail">xxxxxxx</span>
                    </el-form-item>
                </div>
                <!-- 审核意见 -->
                <el-form-item label="审核意见" prop="auditOpinion">
                    <el-input type="textarea" placeholder="请输入审核意见" v-model="baseCase.auditOpinion"></el-input>
                </el-form-item>
                <div class="el-form-footer">
                    <el-button @click.native.prevent="handleSubmit(0)">驳回</el-button>
                    <el-button type="primary" @click.native.prevent="handleSubmit(1)">通过</el-button>
                </div>
            </el-form>
        </div>
        <div class="view-process">
            <div class="process-header">
                <div class="process-title-item" v-for="item in titleList" :key="item.title"
                    @click="changeComponent(item.index)">
                    <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div>
                    <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div>
                </div>
            </div>
            <div class="show-item">
                <div class="show-wrap">
                    <div class="closure-info" v-if="activeIndex === 0">
                        <el-form :model="baseCase" label-position="right" ref="opinionForm" :rules="Rules"
                            label-width="100px">
                            <el-form-item label="审核意见" class="op-item" prop="auditOpinion">
                                <el-input type="textarea" placeholder="请输入审核意见" v-model="baseCase.auditOpinion" disabled>
                                </el-input>
                            </el-form-item>
                            <el-form-item label="结案意见" class="op-item" prop="finalOpinion">
                                <el-input type="textarea" placeholder="请输入结案意见" v-model="baseCase.finalOpinion">
                                </el-input>
                            </el-form-item>
                        </el-form>
                        <div class="form-footer">
                            <el-button type="primary"  @click.native.prevent="handleSubmit">结案</el-button>
                            <el-button  @click.native.prevent="handleBack">返回</el-button>
                        </div>
                    </div>
                    <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
                    <MyFilePicture v-else-if="activeIndex === 2"  :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture>
                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
                    <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
import MyProcess from '@/components/process'
import MyFilePicture from '@/components/filePictrue'
import MySovleProblem from '@/components/solveProblem'
import MyScene from '@/components/scene'
export default {
    components: {
        MyProcess, MyFilePicture, MySovleProblem, MyScene
    },
    data() {
        const checkOpinion = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                callback()
            }
        }
        const checkFinal = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                callback(new Error('结案意见不能为空'))
            }
        }
        return {
            myInfo: {
            },
            activeIndex: 0,
            titleList: [
                {
                    title: '结案信息',
                    index: 0,
                },
                {
                    title: '办理经过',
                    index: 1,
                },
                {
                    title: '案卷图片',
                    index: 2,
                },
                {
                    title: '问题处理',
                    index: 3,
                },
                {
                    title: '现场情况',
                    index: 4,
                },
            ],
            Rules: {
                auditOpinion: [
                    {  trigger: 'blur', validator: checkOpinion }
                ],
                finalOpinion:[
                    {
                        trigger:'blur',validator:checkFinal
                    }
                ]
            },
            baseCase: {},
            handlePassVo: {},
            currentSitVo: {},
            problemProVo: {},
            filesPictureVo: {}
        }
    },
    created() {
        const { info } = this;
        this.baseCase = info.baseCase;
        this.handlePassVo = info.handlePassVo;
        this.currentSitVo = info.currentSitVo;
        this.problemProVo = info.problemProVo;
        this.filesPictureVo = info.filesPictureVo;
    },
    methods: {
        changeComponent(index) {
            this.activeIndex = index;
        },
        handleBack(){
            this.$emit('closeDialog', { flag: false });
        },
        // 提交审核意见
        handleSubmit() {
            const { baseCase } = this;
            this.$refs.opinionForm.validate((valid) => {
                if (valid) {
                    this.$axios({
                        method: 'put',
                        url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&opinion='+baseCase.finalOpinion+'&result='+'结案成功' ,
                    })
                        .then(res => {
                            console.log(res);
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: '结案成功'
                                })
                                this.$emit('closeDialog', { flag: false });
                            }else{
                                this.$message({
                                    type:'error',
                                    message:'结案失败',
                                })
                            }
                        })
                        .catch(err => { console.log(err) });
                } else {
                    return false;
                }
            })
        },
        // 获取当前用户登录信息
        getUserLoginInfo() {
            // 获取登录名;
            const username = sessionStorage.getItem('name');
            this.$axios({
                method: 'get',
                url: 'sccg/admin/info',
                data: {
                    name: 'username'
                }
            })
                .then(res => {
                    console.log(res);
                })
        }
    },
    props: ['info', 'closeDialog']
}
</script>
<style lang="scss" scoped>
.view {
    display: flex;
    padding: 20px;
    .view-data {
        color: #4b9bb7;
        flex: 4;
        padding: 20px;
        .data-item {
            display: flex;
            justify-content: space-between;
            line-height: 40px;
        }
        :deep(.el-form-item__label) {
            color: #4b9bb7;
        }
        :deep(.el-textarea__inner) {
            background-color: #17324c;
            color: #4b9bb7;
        }
        .el-form-footer {
            display: flex;
            justify-content: flex-end;
        }
        border: 1px solid #17324c;
    }
    :deep(.el-textarea__inner){
        background-color: #17324c;
        color: #4b9bb7;
    }
    .closure-info{
        padding: 20px;
        .op-item{
            padding-top: 20px;
        }
        .form-footer{
            display: flex;
            margin-top: 50px;
            justify-content: flex-end;
        }
    }
    .view-process {
        flex: 6;
        margin-left: 20px;
        .process-header {
            display: flex;
            line-height: 40px;
            .process-title-item {
                width: 120px;
                text-align: center;
                .under-line {
                    height: 2px;
                    width: 100%;
                }
                .title-active {
                    color: #4b9bb7;
                }
                .line-active {
                    background-color: #4b9bb7;
                    border-radius: 20px;
                }
            }
        }
        .show-item {
            overflow: hidden;
            height: 600px;
            position: relative;
            .show-wrap {
                overflow: scroll;
                height: 600px;
            }
        }
    }
}
</style>
src/views/operate/management/myIndex/index.vue
@@ -31,7 +31,7 @@
                            <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link>
                        </template>
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题来源" min-width="7">
                    <el-table-column prop="eventSource" label="问题来源" min-width="8">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span>
                        </template>
@@ -62,8 +62,9 @@
                            <div class="btn">
                                <!-- v-if="instatus===7 ? true : false" -->
                                <span @click="handleExamine(scope.row)" v-if="instatus===7">审核</span>
                                <!-- <span class="line" v-if="instatus===7 ? true : false">|</span> -->
                                <span @click="handleClosure(scope.row)" v-if="instatus===8">结案</span>
                                <span class="line" v-if="instatus !==9">|</span>
                                <span @click="JumpView(scope.row)">查看</span>
                            </div>
                        </template>
                    </el-table-column>
@@ -71,12 +72,14 @@
                <!-- 审核页面 -->
                <el-dialog :visible.sync="dialogExamine" width="80%" title="基础信息(人工)" v-if="dialogExamine"
                    :before-close="handleClose">
                    <MyExamine :info="info" @closeDialog="closeDialog"></MyExamine>
                    <MyExamine :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyExamine>
                    <MyIllExamine :info="info" v-else  @closeDialog="closeDialog"></MyIllExamine>
                </el-dialog>
                <!-- 结案页面 -->
                <el-dialog :visible.sync="dialogClosure" width="80%" title="基础信息(人工)" v-if="dialogClosure"
                    :before-close="handleClose">
                    <MyClosure :info="info" @closeDialog="closeDialog"></MyClosure>
                    <MyClosure :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyClosure>
                    <MyIllClosure :info="info" v-else @closeDialog="closeDialog"></MyIllClosure>
                </el-dialog>
                <!-- 详情页面 -->
                <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView"
@@ -115,12 +118,14 @@
<script>
import MyExamine from './components/examine'
import MyClosure from './components/closure'
import MyIllExamine from './components/illExamine'
import MyIllClosure from './components/illclosure'
import MyDetail from '@/components/detail'
import MyIllDetail from '@/components/illdetail'
import helper from '@/utils/mydate'
export default {
    components: {
        MyExamine,MyClosure,MyDetail,MyIllDetail
        MyExamine,MyClosure,MyDetail,MyIllDetail,MyIllExamine,MyIllClosure
    },
    data() {
        return {
src/views/operate/message/myIndex/createUser/index.vue
@@ -102,6 +102,7 @@
                messageType: '',
                head: '',
                targetTo: '',
                targetFrom:null,
                body: '',
                channelCode: 1,
            },
@@ -135,6 +136,7 @@
    created() {
        this.setColumnList();
        this.setDepartList();
        this.getLoginUserInfo();
    },
    methods: {
        // 关闭弹窗
@@ -230,11 +232,12 @@
                        url: 'sccg/message/sendMessage',
                        data: {
                            body: role.body,
                            channelCode: role.channelCode,
                            channelCode: `${role.channelCode}`,
                            head: role.head,
                            messageType: role.messageType,
                            sendTime: new Date(),
                            targetTo: checkedList.join(',')
                            targetTo: checkedList.join(','),
                            targetFrom:`${role.targetFrom}`,
                        }
                    })
                    .then(res=>{
@@ -262,6 +265,17 @@
            // this.$refs.edit.wangEditor.txt.html('<p><br></p>') 
            this.setDepartList();
            this.$refs.user.resetFields();
        },
        // 获取当前登录用户信息
        getLoginUserInfo(){
            const name = sessionStorage.getItem('name');
            this.$axios({
                method:'get',
                url:'sccg/admin/info?name='+name,
            })
            .then(res=>{
                this.role.targetFrom = res.data.userId
            })
        }
    },
    props: ['closeMyDialog']
src/views/operate/message/myIndex/index.vue
@@ -157,23 +157,26 @@
    },
    methods: {
        handleDelete(idarr) {
            this.$axios({
                method: 'post',
                url: 'sccg/message/delete?ids=' + idarr,
            })
                .then(res => {
                    if (res.code === 200) {
                        this.$message({
                            type: 'success',
                            message: '删除成功',
            this.$confirm('确认删除?')
                .then(_ => {
                    this.$axios({
                        method: 'post',
                        url: 'sccg/message/delete?ids=' + idarr,
                    })
                        .then(res => {
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: '删除成功',
                                })
                                this.setTableData();
                            } else {
                                this.$message({
                                    type: 'error',
                                    message: res.message
                                })
                            }
                        })
                        this.setTableData();
                    } else {
                        this.$message({
                            type: 'error',
                            message: res.message
                        })
                    }
                })
        },
        // 设置表格数据
src/views/systemSetting/baseSetting/department/index.vue
@@ -51,7 +51,7 @@
          </el-table-column>
          <el-table-column prop="departName" label="部门名称" min-width="10">
          </el-table-column>
          <el-table-column prop="departTypeName" label="部门类型" min-width="10">
          <el-table-column prop="departType" label="部门类型" min-width="10">
          </el-table-column>
          <el-table-column prop="departDes" label="部门描述" min-width="10">
          </el-table-column>
@@ -250,8 +250,6 @@
      this.$refs.multipleTable.toggleAllSelection();
    },
    disSame(list) {
      // console.log(this.$refs.multipleTable);
      // const row = this.$refs.table.data
      list.forEach((row) => {
        this.$refs.multipleTable.toggleRowSelection(row);
      });
src/views/systemSetting/device/bayonet/index.vue
@@ -3,8 +3,8 @@
        <header>
            <div class="header-content">
                <div class="search">
                    <span>筛选条件:</span>
                    <el-select v-model="value" placeholder="请选择">
                    <span style="padding-right:20px">筛选条件:</span>
                    <el-select v-model="context" placeholder="请选择">
                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
@@ -91,7 +91,7 @@
    data() {
        return {
            tableData: [],
            context: "",
            context: 0,
            dialogCreate: false,
            totalNum: null,
            pageSize: 10,