Files
UNION_NJUST/target/classes/views/platform/member/inquire/Analysis.html
T
2026-09-23 09:38:39 +08:00

230 lines
9.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.addColumn {
color: #c1c3c6;
}
.deleteColumn {
color: #c1c3c6;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">年度:</div>
<div class="search-item-option">
<el-date-picker
@change="yearChange"
style="width: 100%"
v-model="pageForm.currentYear"
value-format="yyyy"
:clearable="false"
type="year"
:picker-options="pickerOptions"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item" v-if="searchType==='按部门工会分析'">
<div class="search-item-label">部门工会:</div>
<div class="search-item-option">
<el-select placeholder="部门工会" style="width: 100%;" v-model="pageForm.unionId"
@change="unionChange"
clearable
filterable>
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item" v-if="searchType==='按单位分析'">
<div class="search-item-label">单位:</div>
<div class="search-item-option">
<el-select placeholder="单位" v-model="pageForm.unitId" style="width: 100%;"
@change="unitChange"
clearable
filterable>
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="offscreen-right pull-right">
<el-radio-group v-model="searchType" @change="searchTypeChange">
<el-radio-button label="按部门工会分析"></el-radio-button>
<el-radio-button label="按单位分析"></el-radio-button>
</el-radio-group>
</div>
<div class="offscreen-right pull-right ml20">
<el-button type="primary" @click="doExport">导出</el-button>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<vi-title title="会员分析"></vi-title>
<el-table :data="tableData" show-summary>
<el-table-column align="center" header-align="center" type="index" label="序号"
width="80px"></el-table-column>
<el-table-column align="center" header-align="center" label="部门工会" v-if="searchType==='按部门工会分析'"
width="220px">
<template scope="{row}">
{{isDisPlayCode?'('+row.unionCode+')':null}}{{row.unionName}}
</template>
</el-table-column>
<el-table-column v-if="searchType==='按单位分析'" align="center" header-align="center" label="单位"
width="220px">
<template scope="{row}">
{{isDisPlayCode?'('+row.unitCode+')':null}}{{row.unitName}}
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="年初数量"
sortable
prop="lastYearMemberNum"
></el-table-column>
<el-table-column align="center" header-align="center" label="新增人数"
sortable
prop="newMemberNum"
></el-table-column>
<el-table-column align="center" header-align="center" label="【新入职(恢复)"
sortable label-class-name="addColumn"
prop="newResetMemberNum"
>
<template scope="{row}">
<span style="color:#c1c3c6;">{{row.newResetMemberNum}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="校内转入】"
sortable label-class-name="addColumn"
prop="memberUnitChangeNumIn"
>
<template scope="{row}">
<span style="color:#c1c3c6;">{{row.memberUnitChangeNumIn}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="减少人数"
sortable
prop="reduceMemberNum"
></el-table-column>
<el-table-column align="center" header-align="center" label="【校内转出"
sortable label-class-name="deleteColumn"
prop="memberUnitChangeNumOut"
>
<template scope="{row}">
<span style="color:#c1c3c6;">{{row.memberUnitChangeNumOut}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="其他(离职)】"
sortable label-class-name="deleteColumn"
prop="reduceOtherNum"
>
<template scope="{row}">
<span style="color:#c1c3c6;">{{row.reduceOtherNum}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="当前数量"
sortable
prop="currentYearMemberNum"
></el-table-column>
</el-table>
</el-card>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue')
},
data() {
return {
pickerOptions: {
disabledDate(time) {
return (
time.getFullYear() > new Date().getFullYear()
);
}
},
pageForm: {
currentYear: null,
unions: []
},
unions: [],
units: [],
tableData: [],
fullTableData: [],
searchType: '按部门工会分析'
}
},
methods: {
yearChange(val) {
this.pageForm.currentYear = val
this.getData()
},
unionChange(val) {
if (val == null || val == '') {
this.tableData = this.fullTableData
} else {
this.tableData = this.fullTableData.filter(v => v.id === val)
}
},
unitChange(val) {
if (val == null || val == '') {
this.tableData = this.fullTableData
} else {
this.tableData = this.fullTableData.filter(v => v.id === val)
}
},
async getData() {
const url = this.searchType === '按部门工会分析' ? '/pageData' : '/pageData2'
const resp_data = await $.post(loc() + url, this.pageForm)
requestLaterFun(resp_data, () => {
this.tableData = resp_data.data
this.fullTableData = this.tableData
}, () => {
this.notifyError(resp_data.msg)
}, () => {
})
},
searchTypeChange(val) {
this.getData()
console.log(val)
},
doExport() {
let url = '/platform/member/inquire/analysis/doExport?searchType=' + this.searchType
+ "&currentYear=" + this.pageForm.currentYear
if (this.pageForm.unionId) {
url += "&unionId=" + this.pageForm.currentYear
}
if (this.pageForm.unitId) {
url += "&unitId=" + this.pageForm.unitId
}
window.open(url)
}
},
async created() {
this.pageForm.currentYear = moment().format('YYYY')
await this.getData()
this.unions = await getUnions(null)
this.units = await getUnits(null)
}
})
</script>
<!--#
}
#-->