caiaa 1 yıl önce
ebeveyn
işleme
330791e0ad

+ 20 - 0
src/api/log.js

@@ -6,3 +6,23 @@ export function addLog(type, id, name) {
     headers: { 'sys-number': encodeURIComponent(name) }
   })
 }
+
+export function fetchTableList(data) {
+  return request({
+    url: 'sysLog/page',
+    method: 'post',
+    data: data
+  })
+}
+
+export function fetchLogDetail(id) {
+  return request({
+    url: `sysLog/detail?id=${id}`
+  })
+}
+
+export function fetchModuleData() {
+  return request({
+    url: 'sysLog/moduleMaps'
+  })
+}

+ 0 - 1
src/views/faq/index.vue

@@ -5,7 +5,6 @@
       :data="list"
       element-loading-text="Loading"
       border
-      fit
       highlight-current-row
     >
       <el-table-column align="center" label="ID" width="95">

+ 1 - 1
src/views/home/components/MessageList.vue

@@ -32,7 +32,7 @@
         </el-form>
       </div>
       <div class="list-table">
-        <el-table v-loading="loading" :data="tableData" fit border stripe height="500" style="width: 100%;">
+        <el-table v-loading="loading" :data="tableData" border stripe height="500" style="width: 100%;">
           <el-table-column type="index" label="序号" width="50" />
           <el-table-column prop="messageType" label="消息类型" :formatter="formatDictData" width="100" show-overflow-tooltip />
           <el-table-column prop="title" label="消息标题" show-overflow-tooltip />

+ 2 - 2
src/views/info/index.vue

@@ -53,7 +53,7 @@
         <el-button plain @click="addInfo(3)">发布标准规范</el-button>
         <el-button plain>批量签阅</el-button>
       </div>
-      <el-table v-loading="loading" :data="tableData" fit border stripe height="calc(100% - 82px)" @selection-change="handleSelectionChange">
+      <el-table v-loading="loading" :data="tableData" border stripe height="calc(100% - 82px)" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="40" />
         <el-table-column type="index" label="序号" width="50" />
         <el-table-column prop="messageType" label="信息类型" :formatter="formatDictData" width="120" show-overflow-tooltip />
@@ -191,7 +191,7 @@ export default {
       }
       if (this.formData.publishDate) {
         params.publishTimeStart = this.formData.publishDate[0] + '000000'
-        params.publishTimeEnd = this.formData.publishDate[1] + '000000'
+        params.publishTimeEnd = this.formData.publishDate[1] + '235959'
       }
       fetchTableList(params).then(response => {
         this.loading = false

+ 224 - 0
src/views/log/components/LogView.vue

@@ -0,0 +1,224 @@
+<template>
+  <div>
+    <el-dialog
+      :visible.sync="visible"
+      :close-on-press-escape="true"
+      :close-on-click-modal="false"
+      :show-close="false"
+      custom-class="main-edit-dialog"
+      title="详情"
+    >
+      <el-form :ref="formName" v-loading="loading" :model="formData" label-width="130px" class="dialog-form">
+        <el-row>
+          <el-form-item label="操作人姓名:">
+            <span>{{ formData.createUser }}</span>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="操作人单位名称:">
+              <span>{{ formData.createOrgName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="操作人身份证号:">
+              <span>{{ formData.createBy }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="操作类型:">
+              <span>{{ formData.title }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="功能模块名称:">
+              <span>{{ formData.moduleName }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="终端IP:">
+              <span>{{ formData.remoteAddr }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="操作时间:">
+              <span>{{ formData.createTime }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item label="访问应用列表:" />
+        </el-row>
+      </el-form>
+      <div class="list-table">
+        <el-table v-loading="tableLoading" :data="tableData" border stripe height="calc(100% - 32px)">
+          <el-table-column type="index" label="序号" width="50" />
+          <el-table-column prop="systemName" label="应用名称" width="120" show-overflow-tooltip />
+          <el-table-column label="URL地址" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <a @click="$jumpTo('app', scope.row.systemId, scope.row.systemNumber, scope.row.systemUrl)">{{ scope.row.systemUrl }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" label="访问时间" width="160" show-overflow-tooltip />
+        </el-table>
+        <div v-if="total > 0" class="page">
+          <el-pagination
+            layout="total, sizes, prev, pager, next, jumper"
+            :current-page="current"
+            :total="total"
+            :page-sizes="pageSizeAll"
+            :page-size="size"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+      <div slot="footer">
+        <el-button @click="close">取消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { hasValidRecords } from '@/utils/convert'
+import { fetchLogDetail, fetchTableList } from '@/api/log'
+
+export default {
+  name: 'LogView',
+  data() {
+    return {
+      // dialog
+      visible: false,
+      formName: 'viewForm',
+      formData: {},
+      // table
+      current: 1,
+      size: 20,
+      total: 0,
+      pageSizeAll: [10, 20, 50, 100, 200, 500],
+      tableData: [],
+      // others
+      loading: false,
+      tableLoading: false,
+      appModuleType: '3005',
+      idCard: ''
+    }
+  },
+  methods: {
+    // 改变每页显示条数
+    handleSizeChange(val) {
+      this.current = 1
+      this.size = val
+      this.getTablelist()
+    },
+    // 切换第几页
+    handleCurrentChange(val) {
+      this.current = val
+      this.getTablelist()
+    },
+    // 重置搜索项
+    resetForm() {
+      this.$refs[this.formName].resetFields()
+      this.getTablelist()
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val
+    },
+    // 点击搜索按钮
+    searchTable() {
+      this.current = 1
+      this.getTablelist()
+    },
+    // 获取table数据
+    getTablelist() {
+      this.tableLoading = true
+      const params = {
+        current: this.current,
+        size: this.size,
+        orders: [{ column: 'create_time', asc: 0 }],
+        delFlag: 0,
+        idCard: this.idCard,
+        moduleType: this.appModuleType
+      }
+      fetchTableList(params).then(response => {
+        this.tableLoading = false
+        if (hasValidRecords(response)) {
+          response.data.records.forEach(item => {
+            // Object.assign(item, ...item.params)
+          })
+          this.tableData = response.data.records
+          console.log(this.tableData[0].params)
+          this.total = response.data.total
+        } else {
+          this.tableData = []
+          this.total = 0
+        }
+      }).catch(error => {
+        console.log(error)
+        this.tableLoading = false
+        this.$message({
+          type: 'error',
+          duration: 0,
+          showClose: true,
+          message: '获取访问应用列表出错: ' + error.message
+        })
+      })
+    },
+    /**
+     * 加载dialog
+     */
+    open(id, idCard) {
+      this.visible = true
+      this.getDetailData(id)
+      this.idCard = idCard
+      this.searchTable()
+    },
+    close() {
+      this.visible = false
+    },
+    getDetailData(id) {
+      this.loading = true
+      fetchLogDetail(id).then(res => {
+        this.formData = res.data || {}
+        this.loading = false
+      }).catch(error => {
+        console.log(error)
+        this.loading = false
+        this.$message({
+          type: 'error',
+          duration: 0,
+          showClose: true,
+          message: '获取信息详情出错: ' + error.message
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+
+  ::v-deep {
+    .el-dialog {
+      height: 85vh;
+    }
+
+    .el-dialog__body {
+      padding: 10px 20px !important;
+      height: calc(100% - 55px - 71px);
+    }
+  }
+}
+.el-form-item {
+  margin-bottom: 10px !important;
+}
+
+.list-table {
+  height: calc(100% - 250px);
+}
+</style>

+ 81 - 77
src/views/log/index.vue

@@ -3,23 +3,23 @@
     <div class="list-filter">
       <el-form :ref="formName" inline label-width="110px">
         <el-row>
-          <el-form-item prop="createUser" label="操作人姓名">
-            <el-input v-model="formData.createUser" class="filter-item" clearable placeholder="请输入" />
+          <el-form-item prop="userName" label="操作人姓名">
+            <el-input v-model="formData.userName" class="filter-item" clearable placeholder="请输入" />
           </el-form-item>
-          <el-form-item prop="createBy" label="身份证号">
-            <el-input v-model="formData.createBy" class="filter-item" clearable placeholder="请输入" />
+          <el-form-item prop="idCard" label="操作人身份证号">
+            <el-input v-model="formData.idCard" class="filter-item" clearable placeholder="请输入" />
           </el-form-item>
-          <el-form-item prop="createOrgName" label="操作人单位名称">
-            <el-input v-model="formData.createOrgName" class="filter-item" clearable placeholder="请输入" />
+          <el-form-item prop="orgName" label="操作人单位名称">
+            <el-input v-model="formData.orgName" class="filter-item" clearable placeholder="请输入" />
           </el-form-item>
         </el-row>
         <el-row>
           <el-form-item prop="title" label="操作类型">
             <el-input v-model="formData.title" class="filter-item" clearable placeholder="请输入" />
           </el-form-item>
-          <el-form-item prop="moduleName" label="功能模块名称">
-            <el-select v-model="formData.moduleName" clearable placeholder="请选择">
-              <el-option v-for="(item) in moduleData" :key="item.id" :label="item.label" :value="item.id" />
+          <el-form-item prop="moduleType" label="功能模块名称">
+            <el-select v-model="formData.moduleType" clearable placeholder="请选择">
+              <el-option v-for="(item) in moduleData" :key="item.key" :label="item.value" :value="item.key" />
             </el-select>
           </el-form-item>
           <el-form-item prop="createTime" label="操作日期">
@@ -44,18 +44,18 @@
       </el-form>
     </div>
     <div class="list-table">
-      <el-table v-loading="loading" :data="tableData" fit border stripe height="calc(100% - 32px)">
+      <el-table v-loading="loading" :data="tableData" border stripe height="calc(100% - 32px)">
         <el-table-column type="index" label="序号" width="50" />
         <el-table-column prop="createUser" label="操作人姓名" width="120" show-overflow-tooltip />
-        <el-table-column prop="createBy" label="操作人身份证号" show-overflow-tooltip />
-        <el-table-column prop="createOrgName" label="操作人单位名称" width="180" show-overflow-tooltip />
+        <el-table-column prop="createBy" label="操作人身份证号" width="190" />
+        <el-table-column prop="createOrgName" label="操作人单位名称" min-width="150" show-overflow-tooltip />
         <el-table-column prop="moduleName" label="功能模块名称" width="200" show-overflow-tooltip />
-        <el-table-column prop="createTime" label="操作时间" width="160" />
-        <el-table-column prop="title" label="操作类型" width="160" />
+        <el-table-column prop="createTime" label="操作时间" width="170" />
+        <el-table-column prop="title" label="操作类型" width="240" show-overflow-tooltip />
         <el-table-column prop="remoteAddr" label="终端IP" width="160" />
         <el-table-column label="操作" align="center" width="160" class-name="action-column">
           <template slot-scope="scope">
-            <el-button type="text" @click="viewItem(scope.row.id)">详情</el-button>
+            <el-button type="text" @click="viewItem(scope.row)">详情</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -71,16 +71,21 @@
         />
       </div>
     </div>
+    <log-view ref="logView" />
   </div>
 </template>
 
 <script>
 
-import { isNull, hasValidRecords, formatDictData } from '@/utils/convert'
+import { isNull, hasValidRecords } from '@/utils/convert'
+
+import { fetchTableList, fetchModuleData } from '@/api/log'
+
+import LogView from './components/LogView'
 
 export default {
   name: 'Log',
-  components: { },
+  components: { LogView },
   data() {
     return {
       // table
@@ -93,11 +98,12 @@ export default {
       // filter
       formName: 'filterForm',
       formData: {
+        userName: '',
+        idCard: '',
+        orgName: '',
         title: '',
-        content: '',
-        messageType: '',
-        deptCode: '',
-        publishDate: null
+        moduleType: '',
+        createTime: null
       },
       // select
       moduleData: [],
@@ -106,7 +112,7 @@ export default {
     }
   },
   created() {
-    this.getTypeData()
+    this.getModuleData()
     this.searchTable()
   },
   methods: {
@@ -136,64 +142,62 @@ export default {
     },
     // 获取table数据
     getTablelist() {
-      this.$message({
-        type: 'info',
-        message: '开发中'
+      this.loading = true
+      const params = {
+        current: this.current,
+        size: this.size,
+        orders: [{ column: 'create_time', asc: 0 }],
+        delFlag: 0,
+        userName: this.formData.userName,
+        idCard: this.formData.idCard,
+        orgName: this.formData.orgName,
+        title: this.formData.title,
+        moduleType: this.formData.moduleType
+      }
+      if (this.formData.createTime) {
+        params.createTimeStart = this.formData.createTime[0] + '000000'
+        params.createTimeEnd = this.formData.createTime[1] + '235959'
+      }
+      fetchTableList(params).then(response => {
+        this.loading = false
+        if (hasValidRecords(response)) {
+          this.tableData = response.data.records
+          this.total = response.data.total
+        } else {
+          this.tableData = []
+          this.total = 0
+        }
+      }).catch(error => {
+        console.log(error)
+        this.loading = false
+        this.$message({
+          type: 'error',
+          duration: 0,
+          showClose: true,
+          message: '获取信息列表出错: ' + error.message
+        })
       })
-      // this.loading = true
-      // const params = {
-      //   current: this.current,
-      //   size: this.size,
-      //   delFlag: 0,
-      //   title: this.formData.title,
-      //   content: this.formData.content,
-      //   messageType: this.formData.messageType,
-      //   deptCode: this.formData.deptCode
-      // }
-      // if (this.formData.publishDate) {
-      //   params.publishTimeStart = this.formData.publishDate[0] + '000000'
-      //   params.publishTimeEnd = this.formData.publishDate[1] + '000000'
-      // }
-      // fetchTableList(params).then(response => {
-      //   this.loading = false
-      //   if (hasValidRecords(response)) {
-      //     this.tableData = response.data.records
-      //     this.total = response.data.total
-      //   } else {
-      //     this.tableData = []
-      //     this.total = 0
-      //   }
-      // }).catch(error => {
-      //   console.log(error)
-      //   this.loading = false
-      //   this.$message({
-      //     type: 'error',
-      //     duration: 0,
-      //     showClose: true,
-      //     message: '获取信息列表出错: ' + error.message
-      //   })
-      // })
     },
-    viewItem(id) {
-      this.$refs['infoView'].open(id)
+    viewItem(row) {
+      this.$refs['logView'].open(row.id, row.createBy)
     },
-    getTypeData() {
-      // fetchDictData(this.dictType).then(response => {
-      //   if (!isNull(response.data)) {
-      //     this.typeData = response.data
-      //   } else {
-      //     this.typeData = []
-      //   }
-      // }).catch(error => {
-      //   console.log(error)
-      //   this.topLoading = false
-      //   this.$message({
-      //     type: 'error',
-      //     duration: 0,
-      //     showClose: true,
-      //     message: '获取信息类型出错: ' + error.message
-      //   })
-      // })
+    getModuleData() {
+      fetchModuleData().then(response => {
+        if (!isNull(response.data)) {
+          this.moduleData = response.data
+        } else {
+          this.moduleData = []
+        }
+      }).catch(error => {
+        console.log(error)
+        this.topLoading = false
+        this.$message({
+          type: 'error',
+          duration: 0,
+          showClose: true,
+          message: '获取功能模块名称出错: ' + error.message
+        })
+      })
     }
   }
 }