|
@@ -6,9 +6,24 @@
|
|
</el-card>
|
|
</el-card>
|
|
<evaluation-empty v-if="emptyTitle" :title="emptyTitle" class="mt20"></evaluation-empty>
|
|
<evaluation-empty v-if="emptyTitle" :title="emptyTitle" class="mt20"></evaluation-empty>
|
|
<template v-else>
|
|
<template v-else>
|
|
- <el-button circle class="el-icon-refresh mt20 mb10" @click="handleQuery"></el-button>
|
|
|
|
- <dynamic-table :columns="tableData.columns" :rows="tableData.rows"></dynamic-table>
|
|
|
|
|
|
+ <div class="fx-row jc-sta ai-cen mt20 mb10">
|
|
|
|
+ <el-button circle class="el-icon-refresh" @click="handleQuery"></el-button>
|
|
|
|
+ <div>
|
|
|
|
+ <span class="ml30">班级人数:{{ studentCount }}人</span>
|
|
|
|
+ <span class="ml20">已录取:{{ enrolledCount }}人</span>
|
|
|
|
+ <span class="ml20">未录取:{{ disenrollCount }}人</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <dynamic-table :columns="tableData.columns" :rows="tableData.rows">
|
|
|
|
+ <template #history="{row}">
|
|
|
|
+ <el-button type="text" @click="handleLogView(row)">查看</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </dynamic-table>
|
|
</template>
|
|
</template>
|
|
|
|
+ <el-dialog :title="'选科流程明细 - '+logDetail.studentName" v-if="logVisible"
|
|
|
|
+ :visible.sync="logVisible" :width="logDialogWidth">
|
|
|
|
+ <elective-generation-flow-log :groups="roundGroups" :histories="logDetail.histories"/>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -19,10 +34,11 @@ import config from '@/common/mx-config'
|
|
import { mapGetters } from 'vuex'
|
|
import { mapGetters } from 'vuex'
|
|
import DynamicTable from '@/components/dynamic-table/index'
|
|
import DynamicTable from '@/components/dynamic-table/index'
|
|
import { getClassGenerationDetails } from '@/api/webApi/elective/generation'
|
|
import { getClassGenerationDetails } from '@/api/webApi/elective/generation'
|
|
|
|
+import ElectiveGenerationFlowLog from '@/views/elective/generation/components/elective-generation-flow-log'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'ElectiveReleaseList',
|
|
name: 'ElectiveReleaseList',
|
|
- components: { DynamicTable, MxCondition },
|
|
|
|
|
|
+ components: { ElectiveGenerationFlowLog, DynamicTable, MxCondition },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
loading: false,
|
|
loading: false,
|
|
@@ -35,7 +51,10 @@ export default {
|
|
requireFields: ['studentRoundId', 'releaseGeneration', 'releaseQueryCode'],
|
|
requireFields: ['studentRoundId', 'releaseGeneration', 'releaseQueryCode'],
|
|
// status & results
|
|
// status & results
|
|
electiveStatus: null,
|
|
electiveStatus: null,
|
|
- releaseSummary: null
|
|
|
|
|
|
+ releaseSummary: null,
|
|
|
|
+ // log
|
|
|
|
+ logVisible: false,
|
|
|
|
+ logDetail: null
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -66,6 +85,15 @@ export default {
|
|
roundName() {
|
|
roundName() {
|
|
return this.$refs.condition.getConditionLabel('studentRoundId', this.queryParams.studentRoundId)
|
|
return this.$refs.condition.getConditionLabel('studentRoundId', this.queryParams.studentRoundId)
|
|
},
|
|
},
|
|
|
|
+ studentCount() {
|
|
|
|
+ return this.releaseSummary?.studentCount || 0
|
|
|
|
+ },
|
|
|
|
+ enrolledCount() {
|
|
|
|
+ return this.releaseSummary?.enrolledCount || 0
|
|
|
|
+ },
|
|
|
|
+ disenrollCount() {
|
|
|
|
+ return this.studentCount - this.enrolledCount
|
|
|
|
+ },
|
|
tableData() {
|
|
tableData() {
|
|
const rows = this.releaseSummary?.details || []
|
|
const rows = this.releaseSummary?.details || []
|
|
const columns = [
|
|
const columns = [
|
|
@@ -94,6 +122,14 @@ export default {
|
|
rows,
|
|
rows,
|
|
columns
|
|
columns
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ roundGroups() {
|
|
|
|
+ return this.electiveStatus?.selectResult?.groupList || []
|
|
|
|
+ },
|
|
|
|
+ logDialogWidth() {
|
|
|
|
+ const expectedWidth = (this.roundGroups.length + 3) * 160 // 假定elective-generation-flow-log 单格宽160
|
|
|
|
+ const finalWidth = Math.min(expectedWidth, window.innerWidth * 0.8)
|
|
|
|
+ return finalWidth + 'px'
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -113,6 +149,10 @@ export default {
|
|
handleInvalid() {
|
|
handleInvalid() {
|
|
this.electiveStatus = null
|
|
this.electiveStatus = null
|
|
this.releaseSummary = null
|
|
this.releaseSummary = null
|
|
|
|
+ },
|
|
|
|
+ handleLogView(row) {
|
|
|
|
+ this.logDetail = row
|
|
|
|
+ this.logVisible = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|