diff --git a/leave-school-vue/src/api/department-api.js b/leave-school-vue/src/api/department-api.js
index b8cbc29..3caafbe 100644
--- a/leave-school-vue/src/api/department-api.js
+++ b/leave-school-vue/src/api/department-api.js
@@ -8,9 +8,16 @@
     params
   })
 }
-export function getAllList(params) {
+export function getDeptList(params) {
   return request({
-    url: '/api/system/department/all-list',
+    url: '/api/system/department/dept-list',
+    method: 'get',
+    params
+  })
+}
+export function getSectionList(params) {
+  return request({
+    url: '/api/system/department/section-list',
     method: 'get',
     params
   })
diff --git a/leave-school-vue/src/api/deptreport-api.js b/leave-school-vue/src/api/deptreport-api.js
new file mode 100644
index 0000000..beb7668
--- /dev/null
+++ b/leave-school-vue/src/api/deptreport-api.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/api/statistical/deptreport/list-api',
+    method: 'get',
+    params
+  })
+}
diff --git a/leave-school-vue/src/components/AuditStudentList/index.vue b/leave-school-vue/src/components/AuditStudentList/index.vue
index f3f22d2..27479e3 100644
--- a/leave-school-vue/src/components/AuditStudentList/index.vue
+++ b/leave-school-vue/src/components/AuditStudentList/index.vue
@@ -93,7 +93,7 @@
 <script>
 import { getBjListByZy } from '@/api/class-api'
 import { getAuditList } from '@/api/leavestudent-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import { getZyListByYx } from '@/api/major-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
diff --git a/leave-school-vue/src/icons/svg/deptreport.svg b/leave-school-vue/src/icons/svg/deptreport.svg
new file mode 100644
index 0000000..6ea0e38
--- /dev/null
+++ b/leave-school-vue/src/icons/svg/deptreport.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1535095956419" class="icon" style="" viewBox="0 0 1026 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2733" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.390625" height="200"><defs><style type="text/css"></style></defs><path d="M171.52 634.88H84.48C38.4 634.88 2.56 670.72 2.56 716.8v202.24c0 46.08 35.84 81.92 81.92 81.92h232.96c46.08 0 81.92-35.84 81.92-81.92V716.8c0-46.08-35.84-81.92-81.92-81.92H171.52z m145.92 56.32c12.8 0 25.6 10.24 25.6 25.6v202.24c0 12.8-10.24 25.6-25.6 25.6H84.48c-12.8 0-25.6-10.24-25.6-25.6V716.8c0-12.8 10.24-25.6 25.6-25.6h232.96z m230.4-320h81.92c46.08 0 81.92-35.84 81.92-81.92V89.6c0-46.08-35.84-81.92-81.92-81.92h-232.96c-46.08 0-81.92 35.84-81.92 81.92v202.24c0 46.08 35.84 81.92 81.92 81.92h94.72l56.32-2.56z m-151.04-56.32c-12.8 0-25.6-10.24-25.6-25.6V89.6c0-12.8 10.24-25.6 25.6-25.6h232.96c12.8 0 25.6 10.24 25.6 25.6v202.24c0 12.8-10.24 25.6-25.6 25.6l-232.96-2.56z m547.84 320h-232.96c-46.08 0-81.92 35.84-81.92 81.92v202.24c0 46.08 35.84 81.92 81.92 81.92h232.96c46.08 0 81.92-35.84 81.92-81.92V716.8c0-46.08-35.84-81.92-81.92-81.92z m23.04 284.16c0 12.8-10.24 25.6-25.6 25.6h-232.96c-12.8 0-25.6-10.24-25.6-25.6V716.8c0-12.8 10.24-25.6 25.6-25.6h232.96c12.8 0 25.6 10.24 25.6 25.6v202.24z m0 0" fill="#bfcbd9" p-id="2734"></path><path d="M855.04 634.88V512c0-15.36-12.8-28.16-28.16-28.16h-281.6v-112.64h-56.32v112.64H197.12c-15.36 0-25.6 12.8-25.6 25.6v122.88H230.4v-92.16h568.32v92.16h56.32z m0 0" fill="#bfcbd9" p-id="2735"></path></svg>
\ No newline at end of file
diff --git a/leave-school-vue/src/mock/department.js b/leave-school-vue/src/mock/department.js
index 0ce4f87..98ef5b3 100644
--- a/leave-school-vue/src/mock/department.js
+++ b/leave-school-vue/src/mock/department.js
@@ -34,9 +34,17 @@
       code: 200
     }
   },
-  getAllList: config => {
+  getDeptList: config => {
+    const mockList = deptList.filter(item => item.lbm === '院系')
     return {
-      items: deptList,
+      items: mockList,
+      code: 200
+    }
+  },
+  getSectionList: config => {
+    const mockList = deptList.filter(item => item.lbm === '部门')
+    return {
+      items: mockList,
       code: 200
     }
   },
diff --git a/leave-school-vue/src/mock/deptreport.js b/leave-school-vue/src/mock/deptreport.js
new file mode 100644
index 0000000..0e08084
--- /dev/null
+++ b/leave-school-vue/src/mock/deptreport.js
@@ -0,0 +1,38 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const recordList = Mock.mock({
+  'list|4': [{
+    'id': '@increment',
+    'yx|1': ['教育学院', '经管学院', '人文学院'],
+    'yxid|1': [1, 2, 3],
+    'zylx|1-1000': 100,
+    'bzylx|1-1000': 100
+  }]
+}).list
+
+export default{
+  getList: config => {
+    const { pcmc, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+    const mockList = recordList.filter(item => {
+      if (pcmc && item.pcmc + '' !== pcmc + '') return false
+      return true
+    })
+
+    const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
+    return {
+      items: pageList,
+      recordCount: mockList.length,
+      code: 200
+    }
+  },
+  getLeaveAuditResult: config => {
+    return {
+      data: {
+        zylx: 100,
+        bzylx: 200
+      },
+      code: 200
+    }
+  }
+}
diff --git a/leave-school-vue/src/mock/index.js b/leave-school-vue/src/mock/index.js
index 5fa59ec..fe83b76 100644
--- a/leave-school-vue/src/mock/index.js
+++ b/leave-school-vue/src/mock/index.js
@@ -13,8 +13,9 @@
 import instructorApi from './instructor'
 import newspublishApi from './newspublish'
 import handlingApi from './handling'
-import nodereportApi from './nodereport'
 import leavestudentApi from './leavestudent'
+import nodereportApi from './nodereport'
+import deptreportApi from './deptreport'
 
 // 登录
 Mock.mock(/\/api\/login\/login/, 'post', loginApi.loginByUsername)
@@ -29,7 +30,8 @@
 
 // 院系部门管理
 Mock.mock(/\/api\/system\/department\/list-api/, 'get', departmentApi.getList)
-Mock.mock(/\/api\/system\/department\/all-list/, 'get', departmentApi.getAllList)
+Mock.mock(/\/api\/system\/department\/dept-list/, 'get', departmentApi.getDeptList)
+Mock.mock(/\/api\/system\/department\/section-list/, 'get', departmentApi.getSectionList)
 Mock.mock(/\/api\/system\/department\/create-department/, 'post', departmentApi.createData)
 Mock.mock(/\/api\/system\/department\/delete-department/, 'delete', departmentApi.deleteData)
 Mock.mock(/\/api\/system\/department\/get-item/, 'get', departmentApi.getItem)
@@ -95,12 +97,15 @@
 Mock.mock(/\/api\/statistical\/handling\/list-api/, 'get', handlingApi.getList)
 Mock.mock(/\/api\/statistical\/handling\/get-item/, 'get', handlingApi.getItem)
 
+// 离校学生审核查询
+Mock.mock(/\/api\/leaveprocess\/leavestudent\/auditlist-api/, 'get', leavestudentApi.getList)
+
 // 环节统计报表查询
 Mock.mock(/\/api\/statistical\/nodereport\/list-api/, 'get', nodereportApi.getList)
 Mock.mock(/\/api\/statistical\/nodereport\/get-item/, 'get', nodereportApi.getItem)
 Mock.mock(/\/api\/statistical\/nodereport\/leaveresult/, 'get', nodereportApi.getLeaveAuditResult)
 
-// 离校学生审核查询
-Mock.mock(/\/api\/leaveprocess\/leavestudent\/auditlist-api/, 'get', leavestudentApi.getList)
+// 院系统计报表查询
+Mock.mock(/\/api\/statistical\/deptreport\/list-api/, 'get', deptreportApi.getList)
 
 export default Mock
diff --git a/leave-school-vue/src/mock/major.js b/leave-school-vue/src/mock/major.js
index 2999c65..2eacdbc 100644
--- a/leave-school-vue/src/mock/major.js
+++ b/leave-school-vue/src/mock/major.js
@@ -9,7 +9,7 @@
     'sfky|1': ['可用', '不可用'],
     'sfkycode|1': ['1', '0'],
     'ssyx|1': ['教育学院', '经管学院', '人文学院', '数学学院', '计算机学院', '电子学院', '电气学院', '生命科学院'],
-    'ssyxid|1': ['1', '2', '3', '4', '5', '6', '7', '8'],
+    'ssyxid|1': [1, 2, 3, 4, 5, 6, 7, 8],
     'sszygb|1': ['计算机', '哲学']
   }]
 }).list
@@ -21,7 +21,7 @@
       if (zydm && item.zydm !== zydm) return false
       if (zymc && item.zymc !== zymc) return false
       if (sfky && item.sfkycode !== sfky) return false
-      if (ssyx && item.ssyxid !== ssyx) return false
+      if (ssyx && item.ssyxid + '' !== ssyx + '') return false
       return true
     })
 
@@ -34,7 +34,7 @@
   },
   getZyListByYx: config => {
     const { yx } = param2Obj(config.url)
-    const mockList = majorList.filter(item => item.ssyxid === yx)
+    const mockList = majorList.filter(item => item.ssyxid + '' === yx + '')
 
     return {
       items: mockList,
diff --git a/leave-school-vue/src/mock/menulist.js b/leave-school-vue/src/mock/menulist.js
index cc1ded8..659e74f 100644
--- a/leave-school-vue/src/mock/menulist.js
+++ b/leave-school-vue/src/mock/menulist.js
@@ -105,6 +105,19 @@
         code: 'nodereport',
         resource: '/views/statistical/nodereport/index',
         meta: { title: '环节统计报表查询', icon: 'nodereport' }
+      },
+      {
+        path: 'deptreport',
+        code: 'deptreport',
+        resource: '/views/statistical/deptreport/index',
+        meta: { title: '院系统计报表查询', icon: 'deptreport' }
+      },
+      {
+        path: 'deptsectionrep',
+        code: 'deptsectionrep',
+        hidden: true,
+        resource: '/views/statistical/deptsectionrep/index',
+        meta: { title: '院系各部门统计报表', icon: 'deptsectionrep' }
       }
     ]
   }
diff --git a/leave-school-vue/src/mock/nodereport.js b/leave-school-vue/src/mock/nodereport.js
index bb91f1c..bd2d607 100644
--- a/leave-school-vue/src/mock/nodereport.js
+++ b/leave-school-vue/src/mock/nodereport.js
@@ -6,6 +6,7 @@
     'id': '@increment',
     'hjmc|1': ['后勤处', '财务处', '学生处'],
     'hjid': '@word(5)',
+    'yxid|1': [1, 2, 3],
     'dsh|1-1000': 100,
     'shtg|1-1000': 100,
     'shbtg|1-1000': 100
@@ -20,7 +21,7 @@
       if (xh && item.xh !== xh) return false
       if (xm && item.xm !== xm) return false
       if (sfzylx && item.sfzylx !== sfzylx) return false
-      if (yx && item.yx !== yx) return false
+      if (yx && item.yxid + '' !== yx + '') return false
       if (zy && item.zy !== zy) return false
       if (bj && item.bj !== bj) return false
       if (xslb && item.xslb !== xslb) return false
diff --git a/leave-school-vue/src/router/index.js b/leave-school-vue/src/router/index.js
index 7f638d2..e49a427 100644
--- a/leave-school-vue/src/router/index.js
+++ b/leave-school-vue/src/router/index.js
@@ -82,6 +82,7 @@
       name: menu.code,
       component: () => import('@/views' + menuresource),
       meta: menu.meta,
+      hidden: menu.hidden,
       children: menu.children ? getChildren(menu.children) : null
     }
     children.push(route)
@@ -100,6 +101,7 @@
         redirect: menu.path + '/' + ((menu.children && menu.children.length > 0) ? menu.children[0].path : null),
         name: menu.code,
         meta: menu.meta,
+        hidden: menu.hidden,
         children: menu.children ? getChildren(menu.children) : null
       }
       menuList.push(route)
diff --git a/leave-school-vue/src/views/statistical/deptreport/index.vue b/leave-school-vue/src/views/statistical/deptreport/index.vue
new file mode 100644
index 0000000..27932a2
--- /dev/null
+++ b/leave-school-vue/src/views/statistical/deptreport/index.vue
@@ -0,0 +1,162 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-row :gutter="20">
+        <el-col :span="4">
+          <el-select clearable class="filter-item" v-model="listQuery.pcmc" placeholder="批次名称">
+          </el-select>
+        </el-col>
+        <el-col :span="8">
+          <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查询</el-button>
+          <el-button class="filter-item" style="margin-left: 10px;" @click="handleReset" type="primary" icon="el-icon-edit">重置</el-button>
+        </el-col>
+      </el-row>
+    </div>
+    <el-table :data="items" v-loading="listLoading" element-loading-text="Loading" border fit highlight-current-row>
+      <el-table-column align="center" type="index" label='序号' width="95">
+      </el-table-column>
+      <el-table-column label="院系" align="center">
+        <template slot-scope="scope">
+          {{scope.row.yx}}
+        </template>
+      </el-table-column>
+      <el-table-column label="准予离校" align="center">
+        <template slot-scope="scope">
+          {{scope.row.zylx}}
+        </template>
+      </el-table-column>
+      <el-table-column label="不准予离校" align="center">
+        <template slot-scope="scope">
+          {{scope.row.bzylx}}
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-col :span="24">
+      <el-card>
+        <div id="myChart" :style="{width: '100%', height: '300px'}"></div>
+      </el-card>
+    </el-col>
+    <el-dialog title="详情" :visible.sync="dialogFormVisible" width="80%" top="2vh">
+      <audit-student-list :tableheight="tableheight" :queryparam="queryparam"></audit-student-list>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getList } from '@/api/deptreport-api'
+import waves from '@/directive/waves' // 水波纹指令
+import { resetForm } from '@/utils'
+import { crudPageList } from '@/utils/crud'
+import mixindata from '@/utils/crud'
+import AuditStudentList from '@/components/AuditStudentList'
+
+export default {
+  name: 'class',
+  components: { AuditStudentList },
+  directives: {
+    waves
+  },
+  mixins: [mixindata],
+  data() {
+    return {
+      tableheight: 500,
+      year: (new Date()).getFullYear() + 2,
+      pcmcList: [],
+      yxList: [],
+      zyList: [],
+      xbList: [],
+      xslbList: [],
+      jbxx: {},
+      queryparam: {}
+    }
+  },
+  created() {
+    this.handlePageList()
+    this.tableheight = window.innerHeight - 320
+  },
+  methods: {
+    drawLine() {
+      const that = this
+      this.$nextTick(function() {
+        const xdata = []
+        const yxiddata = []
+        const zylxdata = []
+        const bzylxdata = []
+        for (const item of this.items) {
+          xdata.push(item.yx)
+          yxiddata.push(item.yxid)
+          zylxdata.push(item.zylx)
+          bzylxdata.push(item.bzylx)
+        }
+        // 基于准备好的dom，初始化echarts实例
+        const myChart = window.echarts.init(document.getElementById('myChart'))
+        // 绘制图表
+        const option = {
+          tooltip: {
+            trigger: 'axis'
+          },
+          toolbox: {
+            feature: {
+              saveAsImage: {}
+            }
+          },
+          xAxis: {
+            type: 'category',
+            data: xdata,
+            yxiddata: yxiddata
+          },
+          yAxis: {
+            type: 'value'
+          },
+          legend: {
+            data: ['准予离校', '不准予离校']
+          },
+          series: [
+            {
+              name: '准予离校',
+              type: 'bar',
+              data: zylxdata
+            },
+            {
+              name: '不准予离校',
+              type: 'bar',
+              data: bzylxdata
+            }]
+        }
+        myChart.setOption(option)
+        myChart.on('click', function(params) {
+          that.listQuery.yx = option.xAxis.yxiddata[params.seriesIndex]
+          // 命名的路由
+          that.$router.push({ name: 'deptsectionrep', params: that.listQuery })
+        })
+      })
+    },
+    handlePageList() {
+      crudPageList(this, getList, this.drawLine)
+    },
+    handleReset() {
+      resetForm(this.listQuery)
+    },
+    handleFilter() {
+      this.listQuery.pageIndex = 1
+      this.handlePageList()
+    },
+    showDetail(hjid, shzt) {
+      this.listQuery['hjid'] = hjid
+      this.listQuery['shzt'] = shzt
+      this.queryparam = Object.assign({}, this.listQuery)
+      this.dialogFormVisible = true
+    }
+  }
+}
+</script>
+<style scoped>
+.app-container a {
+    color: #00a4f4;
+    text-decoration: none;
+}
+.el-card {
+  margin: 5px;
+}
+</style>
+
diff --git a/leave-school-vue/src/views/statistical/deptsectionrep/index.vue b/leave-school-vue/src/views/statistical/deptsectionrep/index.vue
new file mode 100644
index 0000000..97a015e
--- /dev/null
+++ b/leave-school-vue/src/views/statistical/deptsectionrep/index.vue
@@ -0,0 +1,195 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-row :gutter="20">
+        <el-col :span="4">
+          <el-select clearable class="filter-item" v-model="listQuery.pcmc" placeholder="批次名称">
+          </el-select>
+        </el-col>
+        <el-col :span="4">
+          <el-select clearable @change="initZyList" class="filter-item" v-model="listQuery.yx" placeholder="所在院系">
+            <el-option v-for="item in  yxList" :key="item.id" :label="item.dwmc" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="4">
+          <el-select clearable class="filter-item" v-model="listQuery.zy" placeholder="专业">
+            <el-option v-for="item in  zyList" :key="item.id" :label="item.zymc" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="4">
+          <el-select clearable class="filter-item" v-model="listQuery.bm" placeholder="部门">
+            <el-option v-for="item in  bmList" :key="item.id" :label="item.dwmc" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="8">
+          <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查询</el-button>
+          <el-button class="filter-item" style="margin-left: 10px;" @click="handleReset" type="primary" icon="el-icon-edit">重置</el-button>
+        </el-col>
+      </el-row>
+    </div>
+    <el-col :span="24">
+      <el-card>
+        <div id="myChart" :style="{width: '100%', height: '300px'}"></div>
+      </el-card>
+    </el-col>
+    <el-dialog title="详情" :visible.sync="dialogFormVisible" width="80%" top="2vh">
+      <audit-student-list :tableheight="tableheight" :queryparam="queryparam"></audit-student-list>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getList } from '@/api/nodereport-api'
+import { getDeptList, getSectionList } from '@/api/department-api'
+import { getZyListByYx } from '@/api/major-api'
+import waves from '@/directive/waves' // 水波纹指令
+import { resetForm } from '@/utils'
+import { crudPageList } from '@/utils/crud'
+import mixindata from '@/utils/crud'
+import AuditStudentList from '@/components/AuditStudentList'
+
+export default {
+  name: 'class',
+  components: { AuditStudentList },
+  directives: {
+    waves
+  },
+  mixins: [mixindata],
+  data() {
+    return {
+      tableheight: 500,
+      pcmcList: [],
+      yxList: [],
+      zyList: [],
+      bmList: [],
+      queryparam: {}
+    }
+  },
+  created() {
+    this.listQuery = this.$route.params
+    this.initYxList()
+    this.initZyList()
+    this.initBmList()
+    this.handlePageList()
+    this.tableheight = window.innerHeight - 320
+  },
+  methods: {
+    drawLine() {
+      this.$nextTick(function() {
+        const xdata = []
+        const xiddata = []
+        const tgdata = []
+        const btgdata = []
+        const dshdata = []
+        for (const item of this.items) {
+          xdata.push(item.hjmc)
+          xiddata.push(item.hjid)
+          tgdata.push(item.shtg)
+          btgdata.push(item.shbtg)
+          dshdata.push(item.dsh)
+        }
+        // 基于准备好的dom，初始化echarts实例
+        const myChart = window.echarts.init(document.getElementById('myChart'))
+        // 绘制图表
+        const option = {
+          tooltip: {
+            trigger: 'axis'
+          },
+          toolbox: {
+            feature: {
+              saveAsImage: {}
+            }
+          },
+          xAxis: {
+            type: 'category',
+            data: xdata,
+            xiddata: xiddata
+          },
+          yAxis: {
+            type: 'value'
+          },
+          legend: {
+            data: ['通过', '不通过', '待审核']
+          },
+          series: [
+            {
+              name: '通过',
+              type: 'bar',
+              data: tgdata,
+              shzt: 1
+            },
+            {
+              name: '不通过',
+              type: 'bar',
+              data: btgdata,
+              shzt: 2
+            },
+            {
+              name: '待审核',
+              type: 'bar',
+              data: dshdata,
+              shzt: 3
+            }]
+        }
+        myChart.setOption(option)
+        const that = this
+        myChart.on('click', function(params) {
+          const hjid = option.xAxis.xiddata[params.dataIndex]
+          const shzt = option.series[params.seriesIndex].shzt
+          that.showDetail(hjid, shzt)
+        })
+      })
+    },
+    initYxList() {
+      getDeptList().then(response => {
+        this.yxList = response.items
+      })
+    },
+    initZyList() {
+      getZyListByYx({ yx: this.listQuery.yx }).then(response => {
+        this.zyList = response.items
+        // TODO 坑，this.listQuery.zy == null 直接赋值，专业下拉框选择出bug，无法选择，原因未知
+        for (const attr in this.listQuery) {
+          if (attr === 'zy') {
+            this.listQuery['zy'] = null
+          }
+        }
+      })
+    },
+    initBmList() {
+      getSectionList().then(response => {
+        this.bmList = response.items
+      })
+    },
+    handlePageList() {
+      crudPageList(this, getList, this.drawLine)
+    },
+    handleReset() {
+      resetForm(this.listQuery)
+    },
+    handleFilter() {
+      this.listQuery.pageIndex = 1
+      this.handlePageList()
+    },
+    showDetail(hjid, shzt) {
+      this.listQuery['hjid'] = hjid
+      this.listQuery['shzt'] = shzt
+      this.queryparam = Object.assign({}, this.listQuery)
+      this.dialogFormVisible = true
+    }
+  }
+}
+</script>
+<style scoped>
+.app-container a {
+    color: #00a4f4;
+    text-decoration: none;
+}
+.el-card {
+  margin: 5px;
+}
+</style>
+
diff --git a/leave-school-vue/src/views/statistical/handling/index.vue b/leave-school-vue/src/views/statistical/handling/index.vue
index bcd7d34..936f769 100644
--- a/leave-school-vue/src/views/statistical/handling/index.vue
+++ b/leave-school-vue/src/views/statistical/handling/index.vue
@@ -189,7 +189,7 @@
 import { getBjListByZy } from '@/api/class-api'
 import { getList } from '@/api/handling-api'
 import { getDicList } from '@/api/dictionary-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import { getZyListByYx } from '@/api/major-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
diff --git a/leave-school-vue/src/views/statistical/nodereport/index.vue b/leave-school-vue/src/views/statistical/nodereport/index.vue
index 803b19f..9081c35 100644
--- a/leave-school-vue/src/views/statistical/nodereport/index.vue
+++ b/leave-school-vue/src/views/statistical/nodereport/index.vue
@@ -85,7 +85,7 @@
     </el-col>
     <el-col :span="24">
       <el-card>
-        <div id="myChart4" :style="{width: '100%', height: '300px'}"></div>
+        <div id="zylxChart" :style="{width: '100%', height: '300px'}"></div>
       </el-card>
     </el-col>
     <el-dialog title="详情" :visible.sync="dialogFormVisible" width="80%" top="2vh">
@@ -97,7 +97,7 @@
 <script>
 import { getList, getLeaveAuditResult } from '@/api/nodereport-api'
 import { getDicList } from '@/api/dictionary-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import { getZyListByYx } from '@/api/major-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
@@ -151,6 +151,11 @@
               trigger: 'item',
               formatter: '{a} <br/>{b} : {c} ({d}%)'
             },
+            toolbox: {
+              feature: {
+                saveAsImage: {}
+              }
+            },
             legend: {
               orient: 'vertical',
               left: 'left',
@@ -187,7 +192,7 @@
         const zylx = response.data.zylx || 0
         const bzylx = response.data.bzylx || 0
         // 基于准备好的dom，初始化echarts实例
-        const myChart4 = window.echarts.init(document.getElementById('myChart4'))
+        const zylxChart = window.echarts.init(document.getElementById('zylxChart'))
         // 绘制图表
         const option = {
           title: {
@@ -198,6 +203,11 @@
             trigger: 'item',
             formatter: '{a} <br/>{b} : {c} ({d}%)'
           },
+          toolbox: {
+            feature: {
+              saveAsImage: {}
+            }
+          },
           legend: {
             orient: 'vertical',
             left: 'left',
@@ -223,7 +233,7 @@
             }
           ]
         }
-        myChart4.setOption(option)
+        zylxChart.setOption(option)
       })
     },
     initYxList() {
diff --git a/leave-school-vue/src/views/systemmanagement/class/index.vue b/leave-school-vue/src/views/systemmanagement/class/index.vue
index 33619b6..eeb8cf4 100644
--- a/leave-school-vue/src/views/systemmanagement/class/index.vue
+++ b/leave-school-vue/src/views/systemmanagement/class/index.vue
@@ -147,7 +147,7 @@
 <script>
 import { getList, getItem, createClass, deleteClass } from '@/api/class-api'
 import { getDicList } from '@/api/dictionary-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import { getZyListByYx } from '@/api/major-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
diff --git a/leave-school-vue/src/views/systemmanagement/major/index.vue b/leave-school-vue/src/views/systemmanagement/major/index.vue
index 2738ff7..94cc7d1 100644
--- a/leave-school-vue/src/views/systemmanagement/major/index.vue
+++ b/leave-school-vue/src/views/systemmanagement/major/index.vue
@@ -108,7 +108,7 @@
 <script>
 import { getList, getItem, createMajor, deleteMajor } from '@/api/major-api'
 import { getDicList } from '@/api/dictionary-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
 import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
diff --git a/leave-school-vue/src/views/workteam/departmentleader/index.vue b/leave-school-vue/src/views/workteam/departmentleader/index.vue
index c521dce..3200e68 100644
--- a/leave-school-vue/src/views/workteam/departmentleader/index.vue
+++ b/leave-school-vue/src/views/workteam/departmentleader/index.vue
@@ -144,7 +144,7 @@
 <script>
 import { getList, getItem, createDepartmentleader, deleteDepartmentleader } from '@/api/departmentleader-api'
 import { getDicList } from '@/api/dictionary-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
 import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
diff --git a/leave-school-vue/src/views/workteam/instructor/index.vue b/leave-school-vue/src/views/workteam/instructor/index.vue
index cad431e..242ce49 100644
--- a/leave-school-vue/src/views/workteam/instructor/index.vue
+++ b/leave-school-vue/src/views/workteam/instructor/index.vue
@@ -133,7 +133,7 @@
 import { getList, getItem, createInstructor, deleteInstructor } from '@/api/instructor-api'
 import { getAllList } from '@/api/class-api'
 import { getDicList } from '@/api/dictionary-api'
-import { getAllList as getAllDeptList } from '@/api/department-api'
+import { getDeptList as getAllDeptList } from '@/api/department-api'
 import waves from '@/directive/waves' // 水波纹指令
 import { resetForm } from '@/utils'
 import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
