From 68270bc858a465bc482820586a7ccb534b6c3565 Mon Sep 17 00:00:00 2001
From: “dzb” <2632970487@qq.com>
Date: 星期一, 17 十月 2022 18:40:57 +0800
Subject: [PATCH] 新增日志管理

---
 src/views/operate/management/myIndex/components/closure/index.vue    |    4 
 src/store/logs/index.js                                              |   22 
 src/views/operate/message/myIndex/createUser/index.vue               |   18 
 src/store/index.js                                                   |    3 
 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue    |    8 
 src/views/login/index.vue                                            |    1 
 src/views/operate/management/myIndex/components/examine/index.vue    |   17 
 src/views/operate/log/index.vue                                      |  528 ++++++++++++++++++++++
 src/views/operate/message/myIndex/index.vue                          |   35 
 src/views/operate/management/myIndex/components/illclosure/index.vue |  334 ++++++++++++++
 src/router/index.js                                                  |    5 
 src/views/layout/components/Menu/index.vue                           |   10 
 src/utils/helper.js                                                  |   31 
 src/views/operate/disposal/casepool/dispatch/index.vue               |    6 
 src/api/logs.js                                                      |   28 +
 src/views/systemSetting/baseSetting/department/index.vue             |    4 
 src/views/systemSetting/device/bayonet/index.vue                     |    6 
 src/views/operate/management/myIndex/index.vue                       |   15 
 src/views/operate/management/myIndex/components/illExamine/index.vue |  284 ++++++++++++
 19 files changed, 1,295 insertions(+), 64 deletions(-)

diff --git a/src/api/logs.js b/src/api/logs.js
new file mode 100644
index 0000000..349eee2
--- /dev/null
+++ b/src/api/logs.js
@@ -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
+    })
+};  
diff --git a/src/router/index.js b/src/router/index.js
index f4aa33d..7e6331e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -253,6 +253,11 @@
                 component: () => import('@/views/operate/message/mycontrol'),
               },
             ]
+          },
+          {
+            path: 'log',
+            name: 'log',
+            component: () => import('@/views/operate/log'),
           }
         ]
       },
diff --git a/src/store/index.js b/src/store/index.js
index bb05c23..3b44862 100644
--- a/src/store/index.js
+++ b/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
   }
 })
diff --git a/src/store/logs/index.js b/src/store/logs/index.js
new file mode 100644
index 0000000..5193a9a
--- /dev/null
+++ b/src/store/logs/index.js
@@ -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;
+    }
+  },
+};
diff --git a/src/utils/helper.js b/src/utils/helper.js
index e8e2d20..2c1f075 100644
--- a/src/utils/helper.js
+++ b/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 + '灏忔椂'
diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue
index 635f444..acc142b 100644
--- a/src/views/layout/components/Menu/index.vue
+++ b/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">绗笁鏂规帴鍙g鐞�</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">绗笁鏂规帴鍙g鐞�</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">
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index ed477bb..0da15ac 100644
--- a/src/views/login/index.vue
+++ b/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,
diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue
index effa791..78a7bbf 100644
--- a/src/views/operate/disposal/casepool/dispatch/index.vue
+++ b/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>
diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
index b6d8f0c..853168f 100644
--- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
+++ b/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',
diff --git a/src/views/operate/log/index.vue b/src/views/operate/log/index.vue
new file mode 100644
index 0000000..5480f57
--- /dev/null
+++ b/src/views/operate/log/index.vue
@@ -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)
+            // 閲婃斁鎺塨lob瀵硅薄
+            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>
\ No newline at end of file
diff --git a/src/views/operate/management/myIndex/components/closure/index.vue b/src/views/operate/management/myIndex/components/closure/index.vue
index 71dd4ac..b61ff2d 100644
--- a/src/views/operate/management/myIndex/components/closure/index.vue
+++ b/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);
diff --git a/src/views/operate/management/myIndex/components/examine/index.vue b/src/views/operate/management/myIndex/components/examine/index.vue
index 6bd340d..bd96ba7 100644
--- a/src/views/operate/management/myIndex/components/examine/index.vue
+++ b/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']
 }
diff --git a/src/views/operate/management/myIndex/components/illExamine/index.vue b/src/views/operate/management/myIndex/components/illExamine/index.vue
new file mode 100644
index 0000000..49b5785
--- /dev/null
+++ b/src/views/operate/management/myIndex/components/illExamine/index.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/operate/management/myIndex/components/illclosure/index.vue b/src/views/operate/management/myIndex/components/illclosure/index.vue
new file mode 100644
index 0000000..c0e087d
--- /dev/null
+++ b/src/views/operate/management/myIndex/components/illclosure/index.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/operate/management/myIndex/index.vue b/src/views/operate/management/myIndex/index.vue
index f39c4ae..ee0a296 100644
--- a/src/views/operate/management/myIndex/index.vue
+++ b/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 {
diff --git a/src/views/operate/message/myIndex/createUser/index.vue b/src/views/operate/message/myIndex/createUser/index.vue
index 64cc64d..9ecfc81 100644
--- a/src/views/operate/message/myIndex/createUser/index.vue
+++ b/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']
diff --git a/src/views/operate/message/myIndex/index.vue b/src/views/operate/message/myIndex/index.vue
index bad32ed..24c4114 100644
--- a/src/views/operate/message/myIndex/index.vue
+++ b/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
-                        })
-                    }
                 })
         },
         // 璁剧疆琛ㄦ牸鏁版嵁
diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue
index 84044b8..eb02119 100644
--- a/src/views/systemSetting/baseSetting/department/index.vue
+++ b/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);
       });
diff --git a/src/views/systemSetting/device/bayonet/index.vue b/src/views/systemSetting/device/bayonet/index.vue
index 90eabef..23b3a98 100644
--- a/src/views/systemSetting/device/bayonet/index.vue
+++ b/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,

--
Gitblit v1.8.0