Browse Source

添加导入历史记录

zhangjintao 1 year ago
parent
commit
69c3192267

+ 1 - 0
src/store/modules/user.js

@@ -189,6 +189,7 @@ const actions = {
    */
   async getUserInfo({ commit, dispatch }) {
     const { data } = await getUserInfo()
+    localStorage.setItem('admin_id', data.id)
     const {
       ability,
       type_id,

+ 10 - 0
src/vab/components/ImportRecord/api/index.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+//获取历史上传信息
+export function getTasks(params) {
+  return request({
+    url: '/base/tasks',
+    method: 'get',
+    params,
+  })
+}

+ 143 - 0
src/vab/components/ImportRecord/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <el-dialog
+    :before-close="close"
+    destroy-on-close
+    title="历史导入记录"
+    :visible.sync="importVisible"
+    width="900px"
+  >
+    <el-table v-loading="listLoading" border :data="tasksList">
+      <el-table-column align="center" label="序号" width="55">
+        <template #default="{ $index }">
+          {{ $index + 1 }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="文件名称"
+        prop="name"
+        show-overflow-tooltip
+        width="300"
+      >
+        <template #default="{ row }">
+          <div>{{ row.name }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="状态"
+        show-overflow-tooltip
+        width="100"
+      >
+        <template #default="{ row }">
+          <el-tag v-if="row.make_status == 0" type="warning">待生成</el-tag>
+          <el-tag v-if="row.make_status == 1" type="primary">生成中</el-tag>
+          <el-tag v-if="row.make_status == 2" type="success">生成完成</el-tag>
+          <el-tag v-if="row.make_status == 3" type="danger">生成失败</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="信息"
+        min-width="350"
+        prop="name"
+        show-overflow-tooltip
+      >
+        <template #default="{ row }">
+          <div>{{ row.result || '--' }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="操作人"
+        prop="name"
+        show-overflow-tooltip
+        width="140"
+      >
+        <template #default="{ row }">
+          <div>{{ row.admin.name || '--' }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="时间"
+        prop="name"
+        show-overflow-tooltip
+        width="180"
+      >
+        <template #default="{ row }">
+          <div>{{ row.created_at || '--' }}</div>
+        </template>
+      </el-table-column>
+      <template #empty>
+        <el-image
+          class="vab-data-empty"
+          :src="require('@/assets/empty_images/data_empty.png')"
+        />
+      </template>
+    </el-table>
+    <el-pagination
+      background
+      :current-page="queryFormRecord.page"
+      :layout="layout"
+      :page-size="queryFormRecord.per_page"
+      :total="total"
+      @current-change="handleCurrentChange"
+      @size-change="handleSizeChange"
+    />
+  </el-dialog>
+</template>
+<script>
+  import { getTasks } from './api/index.js'
+  export default {
+    name: 'ImportRecord',
+    data() {
+      return {
+        listLoading: true,
+        layout: 'total, sizes, prev, pager, next, jumper',
+        total: 20,
+        queryFormRecord: {
+          page: 1,
+          per_page: 10,
+          type: '',
+          admin_id: localStorage.getItem('admin_id'),
+        },
+        tasksList: [],
+        importVisible: false,
+      }
+    },
+    created() {},
+    methods: {
+      showEdit(res) {
+        this.importVisible = true
+        this.queryFormRecord.type = res.type
+        this.tasksfn()
+      },
+      //初始化历史记录数据
+      async tasksfn() {
+        this.listLoading = true
+        const {
+          data: { list, meta },
+        } = await getTasks(this.queryFormRecord)
+        this.tasksList = list
+        this.total = meta.pagination.total
+        this.listLoading = false
+      },
+      //切换当前页数据条数
+      handleSizeChange(val) {
+        this.queryFormRecord.per_page = val
+        this.tasksfn()
+      },
+      //切换页码
+      handleCurrentChange(val) {
+        this.queryFormRecord.page = val
+        this.tasksfn()
+      },
+      close() {
+        this.queryFormRecord.type = ''
+        this.importVisible = false
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped></style>

+ 11 - 0
src/views/courseTable/courseList.vue

@@ -22,6 +22,9 @@
         <el-button icon="el-icon-upload2" type="warning" @click="modelImport">
           导入老师授课模版
         </el-button>
+        <el-button type="success" @click="importRecordFn">
+          导入历史记录
+        </el-button>
       </vab-query-form-left-panel>
       <vab-query-form-right-panel :span="16">
         <el-form :inline="true" :model="queryForm" @submit.native.prevent>
@@ -248,6 +251,8 @@
     <courseTimetable ref="time-table" />
     <!-- 教师授课模版导入 -->
     <importClassModel ref="import-model" />
+    <!--历史记录-->
+    <import-record ref="task" />
   </div>
 </template>
 <script>
@@ -285,6 +290,12 @@
     },
 
     methods: {
+      //查看历史导入记录
+      importRecordFn() {
+        this.$refs['task'].showEdit({
+          type: 'App\\\\Repositories\\\\Models\\\\Lab\\\\LessonTeacher',
+        })
+      },
       //导入教师授课模版
       modelImport() {
         this.$refs['import-model'].showEdit()

+ 4 - 1
src/views/organization/components/userImport.vue

@@ -8,7 +8,7 @@
 <template>
   <el-dialog
     :before-close="handleClose"
-    title="用户导入"
+    :title="title"
     :visible.sync="dialogVisible"
     width="800px"
   >
@@ -77,6 +77,7 @@
         model_url: '',
         tips: '',
         type: 1, //教师添加部门之后导入1,其余2
+        title: '',
       }
     },
     created() {
@@ -95,9 +96,11 @@
         this.type = type
         if (type == 1) {
           // this.form.type = 1
+          this.title = '教师部门导入'
           this.uploadData = { file_type: 'file', type: 'import_teacher' }
           this.model_url = base_url + '/template/import_teacher.xlsx'
         } else {
+          this.title = '用户导入'
           this.uploadData = { file_type: 'file', type: 'import_record' }
           this.model_url = base_url + '/template/base/import_admin.xlsx'
         }

+ 20 - 0
src/views/organization/user.vue

@@ -8,6 +8,9 @@
         <el-button icon="el-icon-upload2" type="success" @click="batchImport">
           批量导入
         </el-button>
+        <el-button type="success" @click="importRecordFn(1)">
+          导入历史记录
+        </el-button>
         <el-button
           icon="el-icon-download"
           type="warning"
@@ -22,6 +25,9 @@
         >
           教师部门导入
         </el-button>
+        <el-button type="success" @click="importRecordFn(2)">
+          教师部门导入历史记录
+        </el-button>
       </vab-query-form-left-panel>
       <vab-query-form-right-panel :span="14">
         <el-form :inline="true" :model="queryForm" @submit.native.prevent>
@@ -216,6 +222,8 @@
     <changePwd ref="change-pwd" @fetch-data="fetchData" />
     <!-- 批量导入 -->
     <userImport ref="user-import" @fetch-data="fetchData" />
+    <!--历史记录-->
+    <import-record ref="task" />
   </div>
 </template>
 
@@ -279,6 +287,18 @@
       //上传文件upload需要的参数
     },
     methods: {
+      //查看历史导入记录
+      importRecordFn(res) {
+        if (res == '1') {
+          this.$refs['task'].showEdit({
+            type: 'App\\\\Repositories\\\\Models\\\\Base\\\\Admin',
+          })
+        } else {
+          this.$refs['task'].showEdit({
+            type: 'App\\\\Repositories\\\\Models\\\\School\\\\Teacher',
+          })
+        }
+      },
       //获取部门列表
       async getDepartmentList() {
         let params = {