diff --git a/leave-school-vue/src/views/statistical/handling/index.vue b/leave-school-vue/src/views/statistical/handling/index.vue
new file mode 100644
index 0000000..a3ff438
--- /dev/null
+++ b/leave-school-vue/src/views/statistical/handling/index.vue
@@ -0,0 +1,312 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-row :gutter="20">
+        <el-col :span="4">
+          <el-select clearable @change="initZyList" class="filter-item" v-model="listQuery.pcmc" placeholder="批次名称">
+          </el-select>
+        </el-col>
+        <el-col :span="4">
+          <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="学号" v-model="listQuery.xh">
+          </el-input>
+        </el-col>
+        <el-col :span="4">
+          <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="姓名" v-model="listQuery.xm">
+          </el-input>
+        </el-col>
+        <el-col :span="4">
+          <el-select clearable @change="initZyList" class="filter-item" v-model="listQuery.sfzylx" placeholder="是否准予离校">
+            <el-option key="1" label="准予" value="1">
+            </el-option>
+            <el-option key="0" label="不准予" value="0">
+            </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>
+      <el-row :gutter="20">
+        <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.bj" placeholder="班级">
+            <el-option v-for="item in  bjList" :key="item.id" :label="item.bjmc" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="4">
+          <el-select clearable @change="initZyList" class="filter-item" v-model="listQuery.nj" placeholder="学生类别">
+            <el-option v-for="item in  xslbList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="12">
+        </el-col>
+      </el-row>
+    </div>
+    <el-table :height="height" :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.xh}}
+        </template>
+      </el-table-column>
+      <el-table-column label="姓名" align="center">
+        <template slot-scope="scope">
+          <a href="#" @click="showTrace(scope.row)">{{scope.row.xm}}</a>
+        </template>
+      </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.zy}}
+        </template>
+      </el-table-column>
+      <el-table-column label="班级" align="center">
+        <template slot-scope="scope">
+          {{scope.row.bj}}
+        </template>
+      </el-table-column>
+      <el-table-column label="学生类别" align="center">
+        <template slot-scope="scope">
+          {{scope.row.xslb}}
+        </template>
+      </el-table-column>
+      <el-table-column v-for="blbm in colList" :label="blbm" :key="blbm" :prop="blbm" align="center">
+      </el-table-column>
+      <el-table-column label="是否准予离校" align="center">
+        <template slot-scope="scope">
+          <font color="green" v-if="scope.row.sfzylx == '准予'">{{scope.row.sfzylx}}</font>
+          <font color="red" v-else>{{scope.row.sfzylx}}</font>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.pageIndex" 
+      :page-sizes="[10,20,30, 50]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="recordCount">
+      </el-pagination>
+    </div>
+    <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="80%" top="10vh">
+      <div class="J_conWarp g-lr-mg">
+          <div id="dcMain">
+          <div id="index" class="mainBox" style=" height: auto; min-height: 310px;">
+            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="indexBoxTwo">
+              <tbody>
+                <tr>
+                  <td width="85%" valign="top" class="pr">
+                    <div class="indexBox">
+                      <div class="boxTitle">基本信息</div>
+                      <ul>
+                        <table width="100%" border="0" cellspacing="0" cellpadding="7" class="tableBasic">
+                          <tbody>
+                            <tr>
+                              <td width="120">学号：</td>
+                              <td><b>{{ jbxx.xh }}</b></td>
+                              <td width="100">姓名：</td>
+                              <td><b>{{ jbxx.xm }}</b></td>
+                            </tr>
+                            <tr>
+                              <td>院系：</td>
+                              <td><b>{{ jbxx.yx }}</b></td>
+                              <td>专业：</td>
+                              <td><b>{{ jbxx.zy }}</b></td>
+                            </tr>
+                            <tr>
+                              <td>班级：</td>
+                              <td><b>{{ jbxx.bj }}</b></td>
+                              <td>学生类别：</td>
+                              <td><b>{{ jbxx.xslb }}</b></td>
+                            </tr>
+                          </tbody>
+                        </table>
+                      </ul>
+                    </div>
+                  </td>
+                  <td valign="top" class="pl">
+                  </td>
+                </tr>
+              </tbody>
+            </table>
+            
+            <div class="indexBox">
+              <div class="boxTitle">审核记录</div>
+              <ul>
+                <table width="100%" border="0" cellspacing="0" cellpadding="7" class="tableBasic">
+                  <tbody>
+                    <tr>
+                      <th width="35%">审核环节</th>
+                      <th>审核意见</th>
+                    </tr>
+                    <tr v-for="shjl in shjllist" :key="shjl.shhj">
+                      <td align="center">
+                        {{shjl.shhj}} 
+                        [<font color="green" v-if="shjl.shzt == '通过'">{{shjl.shzt}}</font>
+                        <font color="red" v-else>{{shjl.shzt}}</font>]
+                      </td>
+                      <td align="left">
+                        <template v-for="sj in shjl.shyj">
+                          [<font color="green" v-if="sj.shzt == '通过'">{{sj.shzt}}</font>
+                          <font color="red" v-else>{{sj.shzt}}</font>&nbsp;{{sj.shsj}}]
+                          【{{shjl.shhj}}】
+                          审核意见:{{sj.shyj}}
+                          <br>
+                        </template>
+                      </td>
+                    </tr>                    
+                  </tbody>
+                </table>
+              </ul>
+            </div>
+            
+          </div>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" style="text-align:center">
+        <el-button @click="dialogFormVisible = false">关闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getAllList as getClassList } 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 { getZyListByYx } from '@/api/major-api'
+import waves from '@/directive/waves' // 水波纹指令
+import { resetForm } from '@/utils'
+import { crudPageList } from '@/utils/crud'
+import mixindata from '@/utils/crud'
+
+export default {
+  name: 'class',
+  directives: {
+    waves
+  },
+  mixins: [mixindata],
+  data() {
+    return {
+      pcmcList: [],
+      yxList: [],
+      zyList: [],
+      bjList: [],
+      colList: [],
+      xslbList: [],
+      jbxx: {},
+      shjllist: []
+    }
+  },
+  filters: {
+    statusFilter(status) {
+      const statusMap = {
+        '1': 'success',
+        '0': 'danger'
+      }
+      return statusMap[status]
+    }
+  },
+  created() {
+    this.initYxList()
+    this.initZyList()
+    this.initBjList()
+    this.initXslbList()
+    this.handlePageList()
+    this.height = window.innerHeight - 266
+  },
+  methods: {
+    initYxList() {
+      getAllDeptList(this.listQuery).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
+          }
+        }
+      })
+    },
+    initXslbList() {
+      getDicList({ type: 'xslb' }).then(response => {
+        this.xslbList = response.items
+      })
+    },
+    initBjList() {
+      getClassList().then(response => {
+        this.bjList = response.items
+      })
+    },
+    handlePageList() {
+      crudPageList(this, getList, this.parseItems)
+    },
+    parseItems() {
+      // 重新组织列表，动态生成列
+      for (let i = 0; i < this.items.length; i++) {
+        const item = this.items[i]
+        if (i === 0) {
+          for (const blbm of item.blbmlist) {
+            if (this.colList.indexOf(blbm.bmmc) === -1) {
+              this.colList.push(blbm.bmmc)
+            }
+          }
+        }
+        for (const blbm of item.blbmlist) {
+          item[blbm.bmmc] = blbm.shjg
+        }
+      }
+    },
+    handleReset() {
+      resetForm(this.listQuery)
+    },
+    handleFilter() {
+      this.listQuery.pageIndex = 1
+      this.handlePageList()
+    },
+    handleSizeChange(val) {
+      this.listQuery.pageSize = val
+      this.handlePageList()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.pageIndex = val
+      this.handlePageList()
+    },
+    handleAudit(rowid) {
+      this.dialogFormVisible = true
+    },
+    showTrace(item) {
+      this.jbxx = item
+      this.shjllist = item.shjllist
+      this.dialogFormVisible = true
+    }
+  }
+}
+</script>
+<style scoped>
+.app-container a:visited {
+    color: #00a4f4;
+    text-decoration: none;
+}
+</style>
+
diff --git a/leave-school-vue/src/views/statistical/newspublish/index.vue b/leave-school-vue/src/views/statistical/newspublish/index.vue
new file mode 100644
index 0000000..019db1b
--- /dev/null
+++ b/leave-school-vue/src/views/statistical/newspublish/index.vue
@@ -0,0 +1,256 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-row :gutter="20">
+        <el-col :span="5">
+          <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="公告标题" v-model="listQuery.ggbt">
+          </el-input>
+        </el-col>
+        <el-col :span="5">
+          <el-date-picker
+            v-model="listQuery.fbqssj"
+            type="date"
+            placeholder="发布起始时间">
+          </el-date-picker>
+        </el-col>
+        <el-col :span="5">
+          <el-date-picker
+            v-model="listQuery.fbjssj"
+            type="date"
+            placeholder="发布结束时间">
+          </el-date-picker>
+        </el-col>
+        <el-col :span="9">
+          <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="handleCreate(null, 'create')" type="primary" icon="el-icon-edit">添加</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>
+      <el-row :gutter="20">
+        <el-col :span="5">
+          <el-select class="filter-item" v-model="temp.sfky" placeholder="是否可用">
+            <el-option key="1" label="可用" value="1">
+            </el-option>
+            <el-option key="0" label="不可用" value="0">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="5">
+          <el-select clearable class="filter-item" v-model="listQuery.xswz" placeholder="显示位置">
+            <el-option v-for="item in  xswzList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="5">
+          <el-select clearable class="filter-item" v-model="listQuery.jlckzt" placeholder="记录查看状态">
+            <el-option key="1" label="需要" value="1">
+            </el-option>
+            <el-option key="0" label="不需要" value="0">
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="9">
+        </el-col>
+      </el-row>
+    </div>
+    <el-table :height="height" :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.ggbt}}
+        </template>
+      </el-table-column>
+      <el-table-column label="公告类型" align="center">
+        <template slot-scope="scope">
+          <span>{{scope.row.gglx}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="接收者类型" align="center">
+        <template slot-scope="scope">
+          {{scope.row.jszlx}}
+        </template>
+      </el-table-column>
+      <el-table-column label="是否可用" align="center">
+        <template slot-scope="scope">
+          {{scope.row.sfky}}
+        </template>
+      </el-table-column>
+      <el-table-column label="发布起始时间" align="center">
+        <template slot-scope="scope">
+          {{scope.row.fbqssj}}
+        </template>
+      </el-table-column>
+      <el-table-column label="发布结束时间" align="center">
+        <template slot-scope="scope">
+          {{scope.row.fbjssj}}
+        </template>
+      </el-table-column>
+      <el-table-column label="显示位置设置" align="center">
+        <template slot-scope="scope">
+          {{scope.row.xswz}}
+        </template>
+      </el-table-column>
+      <el-table-column label="点击数" align="center">
+        <template slot-scope="scope">
+          {{scope.row.djs}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button type="text" size="small" @click="handleCreate(scope.row.id, 'update')">修改</el-button>
+          <el-button type="text" size="small" @click="handleDelete(scope.row.id)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.pageIndex" :page-sizes="[10,20,30, 50]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="recordCount">
+      </el-pagination>
+    </div>
+
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="80%" top="10vh">
+      <el-form :rules="rules" ref="dataForm" :model="temp" label-position="left" label-width="150px" style='margin-left:50px;'>
+        <el-form-item label="公告标题" prop="ggbt">
+          <el-input v-model="temp.ggbt"></el-input>
+          <input type="hidden" v-model="temp.id" />
+        </el-form-item>
+        <el-form-item label="是否可用" prop="sfky">
+          <el-select class="filter-item" v-model="temp.sfky" placeholder="是否可用">
+            <el-option key="1" label="可用" value="1">
+            </el-option>
+            <el-option key="0" label="不可用" value="0">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="发布开始时间">
+          <el-date-picker
+            v-model="temp.fbqssj"
+            type="date"
+            placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="发布结束时间">
+          <el-date-picker
+            v-model="temp.fbjssj"
+            type="date"
+            placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="记录查看状态">
+          <el-select class="filter-item" v-model="temp.jlckzt" placeholder="请选择">
+            <el-option key="1" label="需要" value="1">
+            </el-option>
+            <el-option key="0" label="不需要" value="0">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="显示位置" prop="xswz">
+          <el-select class="filter-item" v-model="temp.xswz" placeholder="请选择">
+            <el-option v-for="item in xswzList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="接收者类型">
+          <el-radio-group v-model="temp.jszlx">
+            <el-radio v-for="item in jszlxList" :label="item.id" :key="item.id" >{{item.name}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="公告内容">
+          <div class="editor-container">
+            <UE v-model="temp.ggnr" :config=config ref="ue"></UE>
+          </div>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">返回</el-button>
+        <el-button type="primary" @click="createData">提交</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getList, getItem, createNewspublish, deleteNewspublish } from '@/api/newspublish-api'
+import { getDicList } from '@/api/dictionary-api'
+import waves from '@/directive/waves' // 水波纹指令
+import { resetForm } from '@/utils'
+import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
+import mixindata from '@/utils/crud'
+import UE from '@/components/UEditor'
+
+const initData = { sfky: '1', xswz: '14', jszlx: '16', ggnr: '' }
+export default {
+  name: 'newspublish',
+  components: { UE },
+  directives: {
+    waves
+  },
+  mixins: [mixindata],
+  data() {
+    return {
+      config: {
+        initialFrameWidth: null,
+        initialFrameHeight: 350
+      },
+      xswzList: [],
+      jszlxList: [],
+      rules: {
+        ggbt: [{ required: true, message: '公告标题必填', trigger: 'blur' }],
+        sfky: [{ required: true, message: '是否可用必选', trigger: 'change' }],
+        xswz: [{ required: true, message: '显示位置必选', trigger: 'change' }]
+      }
+    }
+  },
+  created() {
+    this.getXswzList()
+    this.getJszlxList()
+    this.handlePageList()
+    this.height = window.innerHeight - 266
+  },
+  methods: {
+    getXswzList() {
+      getDicList({ type: 'xswz' }).then(response => {
+        this.xswzList = response.items
+      })
+    },
+    getJszlxList() {
+      getDicList({ type: 'jszlx' }).then(response => {
+        this.jszlxList = response.items
+      })
+    },
+    handlePageList() {
+      crudPageList(this, getList)
+    },
+    handleCreate(rowid, dialogStatus) {
+      this.dialogStatus = dialogStatus
+      crudGetItem(this, getItem, rowid, initData)
+    },
+    handleReset() {
+      resetForm(this.listQuery)
+    },
+    handleFilter() {
+      this.listQuery.pageIndex = 1
+      this.handlePageList()
+    },
+    handleSizeChange(val) {
+      this.listQuery.pageSize = val
+      this.handlePageList()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.pageIndex = val
+      this.handlePageList()
+    },
+    createData() {
+      crudCreate(this, createNewspublish, this.handlePageList)
+    },
+    handleDelete(rowid) {
+      crudDelete(this, deleteNewspublish, rowid, this.handlePageList)
+    }
+  }
+}
+</script>
