Files
UNION_NSI/target/classes/views/platform/jsz/cxtj/hdunion.html
T
2026-09-08 19:49:21 +08:00

143 lines
5.1 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-table__footer-wrapper td{
color: orangered!important;
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="tool-button mt5">
<el-select v-model="pageForm.hdid" @change="hdChange" style="width: 100%">
<el-option v-for="i in hdOptions" :label="i.name" :value="i._id" :key="i._id"></el-option>
</el-select>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" show-summary>
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="unionname" label="院级工会"></el-table-column>
<el-table-column prop="ybmnum" label="报名人数" sortable>
<template slot-scope="{row}">
<span class="text-primary pointer" @click="bmNumClick(row.ybm)">
{{row.ybmnum}}
</span>
</template>
</el-table-column>
<el-table-column prop="signnum" label="参加人数" sortable>
<template slot-scope="{row}">
<span class="text-primary pointer" @click="signNumClick(row.sign)">
{{row.signnum}}
</span>
</template>
</el-table-column>
</el-table>
</el-row>
<el-dialog title="详情" :visible.sync="detailVisible">
<el-table :data="bmTableData.length===0?signTableData:bmTableData" height="450px">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="loginname" label="工号"></el-table-column>
<el-table-column prop="username" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="birthday" label="生日"></el-table-column>
</el-table>
</el-dialog>
</div>
<script>
let vue = new Vue({
el:'#app',
data(){
return{
tableData:[],
bmTableData:[],
signTableData:[],
unionOptions:[],
hdOptions:[],
pageForm:{
hdid:'',
pageNumber:1,
pageSize:10,
totalCount:0
},
detailVisible:false
}
},
methods:{
async getAllUnion(){
const {data} = await GET('/platform/jsz/cxtj/union/getAllUnion',{})
this.unionOptions = data
this.pageForm.totalCount = this.unionOptions.length
},
async getUnionNumData(){
if(this.hdOptions.length>0){
const {data:{ybmlist,signlist}} = await POST('/platform/jsz/cxtj/union/pageData',this.pageForm,true)
let signlist2 = QC(signlist,[],'loginname')
this.compileData(ybmlist,signlist2)
}
},
async getAllHd(){
const {data} = await GET('/jsz/common/getAllHd',{})
this.hdOptions = data
if(this.hdOptions.length>0){
this.pageForm.hdid = this.hdOptions[0]._id
}
},
compileData(ybmlist,signlist){
console.log(ybmlist)
console.log(signlist)
this.tableData= []
for(let gh of this.unionOptions){
let o = {}
o.unionname = gh.unionname
const s = ybmlist.filter(o=>{return o.unionid === gh.id})
o.ybmnum = s.length
o.ybm = s
const b = signlist.filter(o=>{return o.unionid === gh.id})
o.sign = b
o.signnum = b.length
this.tableData.push(o)
}
},
hdChange(hdid){
this.pageForm.hdid = hdid
this.getUnionNumData()
},
bmNumClick(data){
this.signTableData = []
this.bmTableData = data
this.detailVisible = true
},
signNumClick(data){
console.log(data)
this.bmTableData = []
this.signTableData = data
this.detailVisible = true
},
groupBy (array, name) {
const groups = {}
array.forEach(function (o) {
const group = JSON.stringify(o[name])
groups[group] = groups[group] || []
groups[group].push(o)
})
return Object.keys(groups).map(function (group) {
return groups[group]
})
}
},
async created(){
this.getAllUnion()
await this.getAllHd()
await this.getUnionNumData()
}
})
</script>
<!--#
}
#-->