部门统计报表查询
diff --git a/leave-school-vue/src/api/sectionreport-api.js b/leave-school-vue/src/api/sectionreport-api.js
new file mode 100644
index 0000000..5e4fb05
--- /dev/null
+++ b/leave-school-vue/src/api/sectionreport-api.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+ return request({
+ url: '/api/statistical/sectionreport/list-api',
+ method: 'get',
+ params
+ })
+}
diff --git a/leave-school-vue/src/icons/svg/deptreport.svg b/leave-school-vue/src/icons/svg/deptreport.svg
index 6ea0e38..f32988b 100644
--- a/leave-school-vue/src/icons/svg/deptreport.svg
+++ b/leave-school-vue/src/icons/svg/deptreport.svg
@@ -1 +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
+<?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="1535354819184" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1801" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M946.169514 263.275273l-345.628802-223.762647c0 0-50.350863-36.696391-97.544129-36.696391-41.816818 0-81.329444 36.696391-81.329444 36.696391L92.338362 242.878907c0 0-34.648221 32.173348-20.481707 81.500125C79.793316 351.943995 128.949412 360.990083 128.949412 360.990083L165.560463 360.990083l0 305.433453c0 0 4.011001 290.669556 31.405284 319.173264 25.431453 26.455538 74.246187 35.501625 74.246187 35.501625l483.794983 0c0 0 49.070756-4.523044 73.051421-32.68539 22.700558-26.711559 20.481707-322.07484 20.481707-322.07484L848.540045 360.990083l61.018418 0c0 0 36.781732-4.096341 46.937245-31.746646C969.979498 292.717726 946.169514 263.275273 946.169514 263.275273zM306.372198 841.115426c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.103759 64.005334-61.103759S370.377531 739.304275 370.377531 780.011668C370.377531 820.71906 349.04242 841.115426 306.372198 841.115426zM306.372198 669.751813c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.103759 64.005334-61.103759s64.005334 20.396366 64.005334 61.103759C370.377531 649.355446 349.04242 669.751813 306.372198 669.751813zM306.372198 498.388199c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.018418 64.005334-61.018418s64.005334 20.311026 64.005334 61.018418C370.377531 478.077173 349.04242 498.388199 306.372198 498.388199zM559.833319 914.67889c0 26.967581-21.847154 48.985415-48.900075 48.985415L486.525877 963.664305c-26.967581 0-48.900075-21.932494-48.900075-48.985415L437.625802 767.722644c0-27.052921 21.847154-48.900075 48.900075-48.900075l24.407367 0c26.967581 0 48.900075 21.932494 48.900075 48.900075L559.833319 914.67889zM498.814901 669.751813c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.103759 64.005334-61.103759 42.670223 0 64.005334 20.396366 64.005334 61.103759C562.820235 649.355446 541.485124 669.751813 498.814901 669.751813zM498.814901 498.388199c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.018418 64.005334-61.018418 42.670223 0 64.005334 20.311026 64.005334 61.018418C562.820235 478.077173 541.485124 498.388199 498.814901 498.388199zM691.257605 841.115426c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.103759 64.005334-61.103759 42.670223 0 64.005334 20.396366 64.005334 61.103759C755.262939 820.71906 733.927827 841.115426 691.257605 841.115426zM691.257605 669.751813c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.103759 64.005334-61.103759 42.670223 0 64.005334 20.396366 64.005334 61.103759C755.262939 649.355446 733.927827 669.751813 691.257605 669.751813zM691.257605 498.388199c-42.670223 0-64.005334-20.311026-64.005334-61.103759 0-40.707392 21.335111-61.018418 64.005334-61.018418 42.670223 0 64.005334 20.311026 64.005334 61.018418C755.262939 478.077173 733.927827 498.388199 691.257605 498.388199z" p-id="1802" fill="#bfcbd9"></path></svg>
\ No newline at end of file
diff --git a/leave-school-vue/src/icons/svg/sectionreport.svg b/leave-school-vue/src/icons/svg/sectionreport.svg
new file mode 100644
index 0000000..6ea0e38
--- /dev/null
+++ b/leave-school-vue/src/icons/svg/sectionreport.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/deptreport.js b/leave-school-vue/src/mock/deptreport.js
index 0e08084..9d969d7 100644
--- a/leave-school-vue/src/mock/deptreport.js
+++ b/leave-school-vue/src/mock/deptreport.js
@@ -25,14 +25,5 @@
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 06d547e..c2ab223 100644
--- a/leave-school-vue/src/mock/index.js
+++ b/leave-school-vue/src/mock/index.js
@@ -18,6 +18,7 @@
import nodereportApi from './nodereport'
import deptreportApi from './deptreport'
import majorreportApi from './majorreport'
+import sectionreportApi from './sectionreport'
import leaveschoolnodeApi from './leaveschoolnode'
@@ -115,6 +116,9 @@
// 专业统计报表查询
Mock.mock(/\/api\/statistical\/majorreport\/list-api/, 'get', majorreportApi.getList)
+// 部门统计报表查询
+Mock.mock(/\/api\/statistical\/sectionreport\/list-api/, 'get', sectionreportApi.getList)
+
// 离校环节管理
Mock.mock(/\/api\/procedures\/node\/list-api/, 'get', leaveschoolnodeApi.getList)
Mock.mock(/\/api\/procedures\/node\/create-node/, 'post', leaveschoolnodeApi.createData)
diff --git a/leave-school-vue/src/mock/majorreport.js b/leave-school-vue/src/mock/majorreport.js
index ad2be90..1fc55fd 100644
--- a/leave-school-vue/src/mock/majorreport.js
+++ b/leave-school-vue/src/mock/majorreport.js
@@ -26,14 +26,5 @@
recordCount: mockList.length,
code: 200
}
- },
- getLeaveAuditResult: config => {
- return {
- data: {
- zylx: 100,
- bzylx: 200
- },
- code: 200
- }
}
}
diff --git a/leave-school-vue/src/mock/menulist.js b/leave-school-vue/src/mock/menulist.js
index a854108..616ae59 100644
--- a/leave-school-vue/src/mock/menulist.js
+++ b/leave-school-vue/src/mock/menulist.js
@@ -167,6 +167,12 @@
code: 'majorreport',
resource: '/views/statistical/majorreport/index',
meta: { title: '专业统计报表查询', icon: 'majorreport' }
+ },
+ {
+ path: 'sectionreport',
+ code: 'sectionreport',
+ resource: '/views/statistical/sectionreport/index',
+ meta: { title: '部门统计报表查询', icon: 'sectionreport' }
}
]
}
diff --git a/leave-school-vue/src/mock/sectionreport.js b/leave-school-vue/src/mock/sectionreport.js
new file mode 100644
index 0000000..f1430ad
--- /dev/null
+++ b/leave-school-vue/src/mock/sectionreport.js
@@ -0,0 +1,29 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const recordList = Mock.mock({
+ 'list|4': [{
+ 'id': '@increment',
+ 'bm|1': ['后勤处', '财务处', '学生处', '图书馆'],
+ 'bmid|1': [1, 2, 3, 4],
+ 'shtg|1-1000': 100,
+ 'shbtg|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
+ }
+ }
+}
diff --git a/leave-school-vue/src/views/statistical/deptreport/index.vue b/leave-school-vue/src/views/statistical/deptreport/index.vue
index f69e393..fbf4423 100644
--- a/leave-school-vue/src/views/statistical/deptreport/index.vue
+++ b/leave-school-vue/src/views/statistical/deptreport/index.vue
@@ -60,7 +60,6 @@
data() {
return {
tableheight: 500,
- year: (new Date()).getFullYear() + 2,
pcmcList: [],
queryparam: {}
}
diff --git a/leave-school-vue/src/views/statistical/majorreport/index.vue b/leave-school-vue/src/views/statistical/majorreport/index.vue
index 460e312..13472f8 100644
--- a/leave-school-vue/src/views/statistical/majorreport/index.vue
+++ b/leave-school-vue/src/views/statistical/majorreport/index.vue
@@ -67,7 +67,6 @@
data() {
return {
tableheight: 500,
- year: (new Date()).getFullYear() + 2,
pcmcList: [],
yxList: [],
queryparam: {}
diff --git a/leave-school-vue/src/views/statistical/sectionreport/index.vue b/leave-school-vue/src/views/statistical/sectionreport/index.vue
new file mode 100644
index 0000000..3045ac2
--- /dev/null
+++ b/leave-school-vue/src/views/statistical/sectionreport/index.vue
@@ -0,0 +1,157 @@
+<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.bm}}
+ </template>
+ </el-table-column>
+ <el-table-column label="审核通过" align="center">
+ <template slot-scope="scope">
+ {{scope.row.shtg}}
+ </template>
+ </el-table-column>
+ <el-table-column label="审核不通过" align="center">
+ <template slot-scope="scope">
+ {{scope.row.shbtg}}
+ </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/sectionreport-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: [],
+ queryparam: {}
+ }
+ },
+ created() {
+ this.handlePageList()
+ this.tableheight = window.innerHeight - 320
+ },
+ methods: {
+ drawLine() {
+ const that = this
+ this.$nextTick(function() {
+ const xdata = []
+ const bmiddata = []
+ const shtgdata = []
+ const shbtgdata = []
+ for (const item of this.items) {
+ xdata.push(item.bm)
+ bmiddata.push(item.bmid)
+ shtgdata.push(item.shtg)
+ shbtgdata.push(item.shbtg)
+ }
+ // 基于准备好的dom,初始化echarts实例
+ const myChart = window.echarts.init(document.getElementById('myChart'))
+ // 绘制图表
+ const option = {
+ tooltip: {
+ trigger: 'axis'
+ },
+ toolbox: {
+ feature: {
+ saveAsImage: {}
+ }
+ },
+ xAxis: {
+ type: 'category',
+ data: xdata,
+ bmiddata: bmiddata
+ },
+ yAxis: {
+ type: 'value'
+ },
+ legend: {
+ data: ['准予离校', '不准予离校']
+ },
+ series: [
+ {
+ name: '准予离校',
+ type: 'bar',
+ data: shtgdata
+ },
+ {
+ name: '不准予离校',
+ type: 'bar',
+ data: shbtgdata
+ }]
+ }
+ myChart.setOption(option)
+ myChart.on('click', function(params) {
+ that.listQuery.bm = option.xAxis.bmiddata[params.seriesIndex]
+ // 命名的路由
+ // params不能直接传递that.listQuery,否则跳转页面的级联下拉框有bug,无法选择,可传递复制对象
+ that.$router.push({ name: 'deptsectionrep', params: Object.assign({}, 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>
+