30教龄教职工管理:搜索新增截止日期,新增'即将满30年 周年满30年 超30年'查询和统计; 教职工汇总的查询范围:由cnd.and("u.isThirtyTeach", "=", 1)标记,改成会员cnd.and("u.member", "=", 1);

This commit is contained in:
dd3s_206
2026-06-08 15:05:33 +08:00
parent 87d126a035
commit e969db447c
6 changed files with 178 additions and 20 deletions
@@ -32,9 +32,24 @@ layout("/layouts/platform.html"){
<search-item label="进校时长">
<el-input placeholder="请输入进校时长" clearable v-model="pageForm.teachNum"
style="width: 100%"
@input="pageForm.teachYearTag = ''"
@keyup.enter.native="doSearch">
</el-input>
</search-item>
<search-item label="截止日期">
<el-date-picker
v-model="pageForm.deadlineDate"
type="date"
placeholder="请选择截止日期"
value-format="yyyy-MM-dd"
style="width: 100%">
</el-date-picker>
<div v-if="pageForm.deadlineDate && pageForm.deadlineDate !== currentDate"
class="text-warning"
style="font-size: 12px; margin-top: 5px">
当前按所选截止日期计算进校时长
</div>
</search-item>
<search-item label="办证年份">
<el-date-picker
format="yyyy"
@@ -61,7 +76,26 @@ layout("/layouts/platform.html"){
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="教职工管理">
<table-tool>
<template #label>
<span>教职工管理</span>
<el-tag :type="pageForm.teachYearTag === 'will30' ? '' : 'info'"
style="cursor: pointer; margin-left: 15px; margin-right: 5px; font-weight: normal"
@click="selectTeachYearTag('will30')">即将满30年
</el-tag>
<el-tag :type="pageForm.teachYearTag === 'anniversary30' ? '' : 'info'"
style="cursor: pointer; margin-right: 5px; font-weight: normal"
@click="selectTeachYearTag('anniversary30')">周年满30年
</el-tag>
<el-tag :type="pageForm.teachYearTag === 'over30' ? '' : 'info'"
style="cursor: pointer; margin-right: 10px; font-weight: normal"
@click="selectTeachYearTag('over30')">超30年
</el-tag>
<!--<el-tag :type="pageForm.teachYearTag === 'ge30' ? '' : 'info'"
style="cursor: pointer; margin-right: 10px"
@click="selectTeachYearTag('ge30')">30年及以上</el-tag>-->
</template>
<el-button size="small" @click="batchDelete" type="primary">
批量删除
</el-button>
@@ -107,6 +141,9 @@ layout("/layouts/platform.html"){
<i class="fa fa-circle ml5"></i>
</span>
</template>
<template v-else-if="column.prop==='arrivalAtSchoolDate'" v-slot="{row}">
{{ row.arrivalAtSchoolDate ? $moment(row.arrivalAtSchoolDate).format('YYYY-MM-DD') : '' }}
</template>
<template v-else-if="column.prop==='thirtyCertificateProcessingTime'" v-slot="{row}">
<span v-if="row.isEditThirtyCertificateProcessingTime">
<el-date-picker
@@ -149,12 +186,27 @@ layout("/layouts/platform.html"){
<el-diaLog title="一键设置" :visible.sync="setThirtyTeachVisible" :close-on-click-modal="false" width="50%">
<el-form label-width="120px">
<el-form-item label="设置年限">
<el-form label-width="220px">
<el-form-item label="设置年限(范围:大于等于)">
<el-input placeholder="请输入要设置的年限" v-model="setThirtyTeachData.setNum" type="number"
style="width: 80%"></el-input>
</el-form-item>
<el-form-item label="截止日期">
<el-date-picker
v-model="setThirtyTeachData.deadlineDate"
type="date"
placeholder="请选择截止日期"
value-format="yyyy-MM-dd"
style="width: 80%">
</el-date-picker>
<div v-if="setThirtyTeachData.deadlineDate && setThirtyTeachData.deadlineDate !== currentDate"
class="text-warning"
style="font-size: 12px; margin-top: 5px">
将按所选截止日期计算满足设置年限的人员
</div>
</el-form-item>
<el-form-item label="更新模式">
<el-radio-group v-model="setThirtyTeachData.isFlag">
<el-radio-button label="true">清空更新</el-radio-button>
@@ -188,6 +240,7 @@ layout("/layouts/platform.html"){
{prop: 'loginname', label: '工号', sortable: true},
{prop: 'username', label: '姓名', sortable: true},
{prop: 'sex', label: '性别'},
{prop: 'arrivalAtSchoolDate', label: '入校时间', sortable: true, width: 120},
{prop: 'teachNum', label: '进校时长(年)', sortable: true},
{prop: 'personType', label: '教职工类别', sortable: true},
{prop: 'userState', label: '在职状态', sortable: true},
@@ -199,8 +252,10 @@ layout("/layouts/platform.html"){
],
setThirtyTeachVisible: false,
currentDate: new Date().getFullYear() + '-' + String(new Date().getMonth() + 1).padStart(2, '0') + '-' + String(new Date().getDate()).padStart(2, '0'),
setThirtyTeachData: {
setNum: 30,
setNum: 29,
deadlineDate: '',
isFlag: false
},
checkUsers: [],
@@ -209,7 +264,9 @@ layout("/layouts/platform.html"){
unionId: '',
unitId: '',
personType: '',
userState: ''
userState: '',
teachYearTag: '',
deadlineDate: ''
},
}
},
@@ -241,9 +298,26 @@ layout("/layouts/platform.html"){
},
doExport() {
const {searchKeyword, unionId, unitId, personType, userState} = this.pageForm
const {
searchKeyword,
unionId,
unitId,
personType,
userState,
deadlineDate,
teachYearTag
} = this.pageForm
window.open('/platform/thirtyTeach/manage/doExport?searchKeyword=' + searchKeyword + '&unionId=' + unionId + '&unitId=' + unitId +
'&personType=' + personType + '&userState=' + userState)
'&personType=' + personType + '&userState=' + userState + '&deadlineDate=' + deadlineDate + '&teachYearTag=' + teachYearTag)
},
selectTeachYearTag(value) {
if (this.pageForm.teachYearTag === value) {
this.$set(this.pageForm, "teachYearTag", "")
} else {
this.$set(this.pageForm, "teachYearTag", value)
this.$set(this.pageForm, "teachNum", "")
}
this.doSearch()
},
doSet() {
if (!this.setThirtyTeachData.setNum) {
@@ -252,6 +326,7 @@ layout("/layouts/platform.html"){
}
this.$axios.post('/platform/thirtyTeach/manage/setThirtyTeach', {
setNum: this.setThirtyTeachData.setNum,
deadlineDate: this.setThirtyTeachData.deadlineDate,
isFlag: this.setThirtyTeachData.isFlag,
}).then(resp => {
if (resp.code === 0) {
@@ -293,7 +368,8 @@ layout("/layouts/platform.html"){
},
setThirtyTeach() {
this.setThirtyTeachData = {
setNum: 30,
setNum: 29,
deadlineDate: this.currentDate,
isFlag: false
}
this.setThirtyTeachVisible = true
@@ -330,6 +406,8 @@ layout("/layouts/platform.html"){
},
},
async created() {
this.$set(this.pageForm, "deadlineDate", this.currentDate)
this.$set(this.setThirtyTeachData, "deadlineDate", this.currentDate)
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
this.$businessTool.listUnit().then((res) => (this.unitOptions = res))
this.pageData()
@@ -71,7 +71,10 @@ layout("/layouts/platform.html"){
},
tableColumns: [
{prop: 'name', label: '分工会名称', sortable: true},
{prop: 'userNum', label: '在职人数', sortable: true},
{prop: 'willThirtyNum', label: '即将满30年', sortable: true},
{prop: 'anniversaryThirtyNum', label: '周年满30年', sortable: true},
{prop: 'overThirtyNum', label: '超过30年', sortable: true},
{prop: 'userNum', label: '人数', sortable: true},
],
unionOptions: [],
unitOptions: [],