|
@@ -0,0 +1,287 @@
|
|
|
+<template>
|
|
|
+ <div class="vipClass">
|
|
|
+ <save-form :inline="true" class="searchForm" ref="searchForm" @submit="getList" @reset="reset"
|
|
|
+ save-key="smallCourseConsumption-actualList" :model.sync="searchForm">
|
|
|
+ <el-form-item prop="organId">
|
|
|
+ <el-select class="multiple" filterable v-model.trim="searchForm.organId" multiple collapse-tags clearable
|
|
|
+ placeholder="请选择分部">
|
|
|
+ <el-option v-for="(item, index) in selects.branchs" :key="index" :label="item.name" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-date-picker
|
|
|
+ v-model.trim="searchForm.timer"
|
|
|
+ style="width: 400px"
|
|
|
+ type="daterange"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ :picker-options="{
|
|
|
+ firstDayOfWeek: 1,
|
|
|
+ }"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button native-type="submit" type="danger">搜索</el-button>
|
|
|
+ <el-button native-type="reset" type="primary">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </save-form>
|
|
|
+ <ExportChiose
|
|
|
+ v-permission="'export/orderList'"
|
|
|
+ style="margin-bottom: 20px;margin-right:10px;"
|
|
|
+ name="课耗统计导出"
|
|
|
+ ExportEnum="EXPORT_COURSE_CONSUMER_SUM"
|
|
|
+ :exportData="onExport"
|
|
|
+ fileName="课耗统计导出"
|
|
|
+ errorMsg="请选择时间"
|
|
|
+ :isDownList="true"
|
|
|
+ />
|
|
|
+ <div class="tableWrap">
|
|
|
+ <el-table :data="tableList" :header-cell-style="{ background: '#EDEEF0', color: '#444' }">
|
|
|
+ <el-table-column align="center" prop="organName" label="所属分部">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <copy-text>{{
|
|
|
+ scope.row.organName
|
|
|
+ }}</copy-text>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column align="center" prop="normalNum" label="在读人数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.normalNum
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="normalNum" label="应有课耗">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.courseConsumerNum
|
|
|
+ }}节
|
|
|
+ </p>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="normalNum" label="实际课耗">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.courseSum
|
|
|
+ }}节
|
|
|
+ </p>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="normalNum" label="课耗达标率">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.courseConsumerRate
|
|
|
+ }}%
|
|
|
+ </p>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="大于等于5节">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.num5
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="大于等于4节">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.num4
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="大于等于3节">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.num3
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="大于等于2节">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.num2
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="大于等于1节">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.num1
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="大于等于0节">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.num0
|
|
|
+ }}人
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentBasicInfo.subjectName" label="达标占比">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p>
|
|
|
+ {{
|
|
|
+ scope.row.standRate
|
|
|
+ }}%
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+
|
|
|
+ <el-table-column align="center" width="180px" label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" @click="lookDetail(scope.row)">查看详情</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <preDetail ref='preDetailRef'/>
|
|
|
+ <!-- <pagination
|
|
|
+ sync
|
|
|
+ save-key="smallCourseConsumption-actualList"
|
|
|
+ :total.sync="pageInfo.total"
|
|
|
+ :page.sync="pageInfo.page"
|
|
|
+ :limit.sync="pageInfo.limit"
|
|
|
+ :page-sizes="pageInfo.page_size"
|
|
|
+ @pagination="getList"
|
|
|
+ /> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getCourseConsumerSum } from '../api'
|
|
|
+import pagination from "@/components/Pagination/index";
|
|
|
+import dayjs from 'dayjs'
|
|
|
+import preDetail from '../modals/preDetail.vue'
|
|
|
+import ExportChiose from "@/components/Export-chiose";
|
|
|
+import { getTimes } from "@/utils";
|
|
|
+export default {
|
|
|
+ name: "actualList",
|
|
|
+ components: {
|
|
|
+ pagination,
|
|
|
+ preDetail,
|
|
|
+ ExportChiose
|
|
|
+ },
|
|
|
+ provide() {
|
|
|
+ return {
|
|
|
+ organId: () => this.searchForm.organId.join(","),
|
|
|
+ isSearch: () => this.isSearch,
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+
|
|
|
+ searchForm: {
|
|
|
+ organId: [],
|
|
|
+ timer:[dayjs(new Date().setDate(1)).format('YYYY-MM-DD'), dayjs(new Date()).format('YYYY-MM-DD')]
|
|
|
+ },
|
|
|
+ pageInfo: {
|
|
|
+ // 分页规则
|
|
|
+ limit: 10, // 限制显示条数
|
|
|
+ page: 1, // 当前页
|
|
|
+ total: 0, // 总条数
|
|
|
+ page_size: [10, 20, 40, 50], // 选择限制显示条数
|
|
|
+ },
|
|
|
+ tableList: [],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ async mounted() {
|
|
|
+ this.$store.dispatch("setBranchs");
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ __init() { },
|
|
|
+
|
|
|
+ reset() {
|
|
|
+ this.searchForm.organId = [];
|
|
|
+ this.searchForm.timer=[dayjs(new Date().setDate(1)).format('YYYY-MM-DD'), dayjs(new Date()).format('YYYY-MM-DD')]
|
|
|
+ this.pageInfo.page = 1;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ async getList() {
|
|
|
+ try {
|
|
|
+ const { timer, ...rest } = this.searchForm;
|
|
|
+ let obj = {
|
|
|
+ ...rest,
|
|
|
+ organId: this.searchForm.organId.join(","),
|
|
|
+ ...getTimes(timer, ["startDate", "endDate"]),
|
|
|
+ // rows: this.rues.limit,
|
|
|
+ // page: this.rulles.page,
|
|
|
+ }
|
|
|
+ const res = await getCourseConsumerSum(obj)
|
|
|
+ this.tableList = res.data;
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ lookDetail(row){
|
|
|
+ this.$refs.preDetailRef.openDialog(row,this.searchForm.timer)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed:{
|
|
|
+ onExport(){
|
|
|
+ const { timer, ...rest } = this.searchForm;
|
|
|
+ let obj = {
|
|
|
+ organId: this.searchForm.organId.join(","),
|
|
|
+ ...getTimes(timer, ["startDate", "endDate"]),
|
|
|
+ // rows: this.rues.limit,
|
|
|
+ // page: this.rulles.page,
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.rows {
|
|
|
+ >div {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .el-card__body .statistic {
|
|
|
+ margin-bottom: 15px;
|
|
|
+ padding: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.statistic {
|
|
|
+ .statistic-content>span {
|
|
|
+ font-size: 22px !important;
|
|
|
+
|
|
|
+ &:first-child {
|
|
|
+ font-size: 14px !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|