Procházet zdrojové kódy

Merge branch 'feature/Feature-setting' into develop

莫绍宝 před 3 roky
rodič
revize
833013e58f

+ 196 - 0
src/views/setting/components/log-examine.vue

@@ -0,0 +1,196 @@
+<template>
+  <div class="detail-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="账号" prop="account">
+              <el-input v-model="screenForm.account" placeholder="请输入账号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="审批时间" prop="examineDate">
+              <el-date-picker
+                v-model="screenForm.examineDate"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="提交时间" prop="submitDate">
+              <el-date-picker
+                v-model="screenForm.submitDate"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl" />
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport">导出</el-button>
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="账号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="姓名" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="审批编号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="审批类型" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="业务编号" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="审批结果" prop="ip" min-width="140"></el-table-column>
+        </el-table>
+      </div>
+      
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getOplogList } from '@/api/setting'
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      dataList: null, // 列表数据
+      listLoading: true, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        account: '',
+        name: '',
+        examineDate: '',
+        submitDate: '',
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0 ? true : false;
+      return true;
+    },
+
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        account: this.screenForm.account,
+        name: this.screenForm.name,
+        obj: this.screenForm.obj,
+        startTime: this.screenForm.submitDate ? this.screenForm.submitDate[0] : '',
+        endTime: this.screenForm.submitDate ? this.screenForm.submitDate[1] : '',
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      };
+
+      getOplogList(params).then(res => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 筛选后重新获取列表
+    getListByScreen() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+    
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        orderId: this.screenForm.orderId,
+        status: this.screenForm.status,
+      };
+      downloadFiles('tax/export', screenData);
+    },
+
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 190 - 0
src/views/setting/components/log-login.vue

@@ -0,0 +1,190 @@
+<template>
+  <div class="detail-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="账号" prop="account">
+              <el-input v-model="screenForm.account" placeholder="请输入账号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="登陆时间" prop="date">
+              <el-date-picker
+                v-model="screenForm.date"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="所在地区" prop="region">
+              <el-input v-model="screenForm.region" placeholder="请输入所在地区"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl" />
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport">导出</el-button>
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="账号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="姓名" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="登录时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="终端类型" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="浏览器/终端版本" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作系统" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="设备名称" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="MAC地址" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="登录IP" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="所在地区" prop="ip" min-width="140"></el-table-column>
+        </el-table>
+      </div>
+      
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getOplogList } from '@/api/setting'
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      dataList: null, // 列表数据
+      listLoading: true, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        account: '',
+        name: '',
+        date: '',
+        region: '',
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0 ? true : false;
+      return true;
+    },
+
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        account: this.screenForm.account,
+        name: this.screenForm.name,
+        region: this.screenForm.region,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      };
+
+      getOplogList(params).then(res => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 筛选后重新获取列表
+    getListByScreen() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        orderId: this.screenForm.orderId,
+        status: this.screenForm.status,
+      };
+      downloadFiles('tax/export', screenData);
+    },
+
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 187 - 0
src/views/setting/components/log-operation.vue

@@ -0,0 +1,187 @@
+<template>
+  <div class="detail-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="账号" prop="account">
+              <el-input v-model="screenForm.account" placeholder="请输入账号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="操作对象" prop="obj">
+              <el-input v-model="screenForm.obj" placeholder="请输入操作对象"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="操作时间" prop="date">
+              <el-date-picker
+                v-model="screenForm.date"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl" />
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport">导出</el-button>
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="账号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="姓名" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作编号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="所属模块" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作对象" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作类型" prop="ip" min-width="140"></el-table-column>
+        </el-table>
+      </div>
+      
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getOplogList } from '@/api/setting'
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      dataList: null, // 列表数据
+      listLoading: true, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        account: '',
+        name: '',
+        date: '',
+        obj: '',
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0 ? true : false;
+      return true;
+    },
+
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        account: this.screenForm.account,
+        name: this.screenForm.name,
+        obj: this.screenForm.obj,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      };
+
+      getOplogList(params).then(res => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 筛选后重新获取列表
+    getListByScreen() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+    
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        orderId: this.screenForm.orderId,
+        status: this.screenForm.status,
+      };
+      downloadFiles('tax/export', screenData);
+    },
+
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 18 - 133
src/views/setting/oplog.vue

@@ -1,109 +1,37 @@
 <template>
   <div class="app-container">
-    <div class="setting_title">操作日志</div>
+    <el-radio-group v-model="logType" size="small">
+      <el-radio-button label="login">登录日志</el-radio-button>
+      <el-radio-button label="operation">操作日志</el-radio-button>
+      <el-radio-button label="examine">审批日志</el-radio-button>
+    </el-radio-group>
     <el-divider></el-divider>
 
-    <div class="mymain-container">
-      <div class="btn-group clearfix">
-        <div class="fl">
-          
-        </div>
-        <div class="fr">
-          <el-select v-model="screenForm.moduleName" placeholder="全部" size="small" style="width: 140px;" @change="getListByScreen">
-            <el-option label="选择模块" value=""></el-option>
-            <el-option :label="item" :value="item" v-for="(item, index) in moduleList" :key="index"></el-option>
-          </el-select>
-
-          <el-date-picker
-            v-model="screenForm.date"
-            @change="getListByScreen"
-            type="daterange"
-            size="small"
-            style="margin-left: 20px; width: 250px !important;"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期">
-          </el-date-picker>
-        </div>
-      </div>
-
-      <div class="table">
-        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
-          <el-table-column type="expand" v-if="checkBtnRole('detail')">
-            <template slot-scope="scope">
-              <el-form label-position="left" inline class="demo-table-expand">
-                <el-form-item label="所在模块">
-                  <span>{{ scope.row.moduleName }}</span>
-                </el-form-item>
-                <el-form-item label="操作类型">
-                  <span>{{ scope.row.shop }}</span>
-                </el-form-item>
-                <el-form-item label="IP">
-                  <span>{{ scope.row.ip }}</span>
-                </el-form-item>
-                <el-form-item label="用户">
-                  <span>{{ scope.row.nickName +'('+scope.row.userName+')' }}</span>
-                </el-form-item>
-                <el-form-item label="记录时间">
-                  <span>{{ scope.row.createTime }}</span>
-                </el-form-item>
-                <el-form-item label="操作">
-                  <span>{{ scope.row.content }}</span>
-                </el-form-item>
-              </el-form>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="所在模块" prop="moduleName" min-width="140"></el-table-column>
-          <el-table-column align="center" label="记录时间" prop="createTime" min-width="160"></el-table-column>
-          <el-table-column align="center" label="用户" prop="nickName" min-width="140">
-            <template slot-scope="scope">
-              {{ scope.row.nickName +'('+scope.row.userName+')' }}
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="IP" prop="ip" min-width="160"></el-table-column>
-        </el-table>
-      </div>
-      
-      <div class="pagination clearfix">
-        <div class="fr">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
-            :page-size="10"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal">
-          </el-pagination>
-        </div>
-      </div>
-    </div>
+    <LoginLog v-if="logType === 'login'" />
+    <OperationLog v-if="logType === 'operation'" />
+    <ExamineLog v-if="logType === 'examine'" />
 
   </div>
 </template>
 
 <script>
-import { getOplogList, getModuleList } from '@/api/setting'
+import LoginLog from "@/views/setting/components/log-login";
+import OperationLog from "@/views/setting/components/log-operation";
+import ExamineLog from "@/views/setting/components/log-examine";
 
 export default {
+  components: {
+    LoginLog,
+    OperationLog,
+    ExamineLog,
+  },
   data() {
     return {
-      dataList: null, // 列表数据
-      moduleList: null, // 模块列表
-      listLoading: true, // 列表加载loading
-      screenForm: { // 筛选表单数据
-        moduleName: '', // 模块名称
-        date: '', // 日期
-      },
-      currentPage: 1, // 当前页码
-      pageSize: 10, // 每页数量
-      listTotal: 0, // 列表总数
+      logType: 'login',
     }
   },
   created() {
-    this.getList();
-    this.getModuleList();
+    
   },
   methods: {
     // 查询按钮权限
@@ -115,49 +43,6 @@ export default {
       return true;
     },
 
-    getList() {
-      this.listLoading = true;
-
-      let params = {
-        moduleName: this.screenForm.moduleName,
-        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        pageNo: this.currentPage,
-        pageSize: this.pageSize
-      };
-
-      getOplogList(params).then(res => {
-        this.dataList = res.data.records;
-        this.listTotal = res.data.total;
-        this.listLoading = false;
-      })
-    },
-
-    getModuleList() {
-      getModuleList().then(res => {
-        this.moduleList = res.data;
-      })
-    },
-
-    // 筛选后重新获取列表
-    getListByScreen() {
-      this.currentPage = 1;
-      this.getList();
-    },
-
-    // 更改每页数量
-    handleSizeChange(val) {
-      this.pageSize = val;
-      this.currentPage = 1;
-      this.getList();
-    },
-
-    // 更改当前页
-    handleCurrentChange(val) {
-      this.currentPage = val;
-      this.getList();
-    },
-
   }
 }
 </script>