This commit is contained in:
zhouhefeng
2026-04-27 08:39:59 +08:00
118 changed files with 2078 additions and 806 deletions
@@ -22,7 +22,6 @@
{{ viewData.arrivalAtSchoolDate ? $moment(viewData.arrivalAtSchoolDate).format("YYYY-MM-DD") : null }}
</el-descriptions-item>
<el-descriptions-item label="身份类别">{{ viewData.identityType }}</el-descriptions-item>
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="预计离退休时间">
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -52,7 +52,7 @@ layout("/layouts/platform.html"){
<el-option v-for="item in preparedByOptions" :label="item" :value="item"></el-option>
</el-select>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<el-select v-model="pageForm.personType" clearable filterable>
<el-option v-for="item in personTypeOptions" :label="item" :value="item"></el-option>
</el-select>
@@ -77,8 +77,7 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column prop="userState" label="在职状态" sortable width="120"></el-table-column>
<el-table-column prop="arrivalAtSchoolDate" label="来校时间" sortable width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" sortable width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" sortable width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" sortable width="120"></el-table-column>
<el-table-column prop="technicalTitle" label="技术职称" sortable width="120"></el-table-column>
<el-table-column prop="position" label="干部职务" sortable width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="education" label="学历" show-overflow-tooltip sortable width="120"></el-table-column>
@@ -209,3 +208,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -39,10 +39,7 @@ layout("/layouts/platform.html"){
<search-item label="在职状态">
<dict-select v-model="pageForm.userState" code="USER_STATE" style="width: 100%"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" code="USER_PREPARED_BY_TYPE" style="width: 100%"></dict-select>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" code="USER_PERSON_TYPE" style="width: 100%"></dict-select>
</search-item>
</search>
@@ -72,8 +69,7 @@ layout("/layouts/platform.html"){
<template slot-scope="{row}">{{$moment(row.birthday).format('YYYY-MM-DD')}}</template>
</el-table-column>
<el-table-column prop="userState" label="在职状态" sortable width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" sortable width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" sortable width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" sortable width="120"></el-table-column>
<el-table-column prop="arrivalAtSchoolDate" label="来校年月" sortable width="120"></el-table-column>
<el-table-column prop="technicalTitle" label="技术职称" sortable width="120"></el-table-column>
<el-table-column prop="position" label="职务" sortable width="120" show-overflow-tooltip></el-table-column>
@@ -162,9 +158,8 @@ layout("/layouts/platform.html"){
{ label: "生日", value: "birthday" },
{ label: "手机号", value: "mobile" },
{ label: "在职状态", value: "userState" },
{ label: "编制类别", value: "preparedBy" },
{ label: "进站时间", value: "postDoctoralJoinDate" },
{ label: "教职工类别", value: "personType" },
{ label: "人员类型", value: "personType" },
{ label: "来校年月", value: "arrivalAtSchoolDate" },
{ label: "单位", value: "unitName" },
{ label: "单位编码", value: "unitId" },
@@ -314,3 +309,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -30,8 +30,7 @@ const MSG_FORM_TEMPLATE = {
<el-table-column prop="username" label="姓名" width="120"></el-table-column>
<el-table-column prop="sex" label="性别" width="50"></el-table-column>
<el-table-column prop="userState" label="在职状态" width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" width="120"></el-table-column>
<el-table-column prop="mobile" label="手机" width="120"></el-table-column>
<el-table-column prop="unitName" label="所属单位" show-overflow-tooltip></el-table-column>
<el-table-column prop="unionName" label="所属工会" show-overflow-tooltip></el-table-column>
@@ -93,8 +92,7 @@ const MSG_FORM_TEMPLATE = {
<el-table-column prop="username" label="姓名" width="120"></el-table-column>
<el-table-column prop="sex" label="性别" width="50"></el-table-column>
<el-table-column prop="userState" label="在职状态" width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" width="120"></el-table-column>
<el-table-column prop="mobile" label="手机" width="120"></el-table-column>
<el-table-column prop="unitName" label="所属单位" show-overflow-tooltip></el-table-column>
<el-table-column prop="unionName" label="所属工会" show-overflow-tooltip></el-table-column>
@@ -262,3 +260,4 @@ const MSG_FORM_TEMPLATE = {
this.roleList = await this.getRoleList()
}
}
@@ -38,7 +38,7 @@ layout("/layouts/platform.html"){
<div class="search-item-label">活动项目</div>
<div class="search-item-option">
<el-select v-model="pageForm.eventId" placeholder="请选择活动项目" filterable clearable
style="width: 100%" @change="doSearchS">
style="width: 100%" @change="doSearch">
<el-option
v-for="item in events"
:key="item.eventId"
@@ -49,6 +49,51 @@ layout("/layouts/platform.html"){
</div>
</div>
<div class="search-item">
<div class="search-item-label">男子女子</div>
<div class="search-item-option">
<el-select v-model="pageForm.isMenWomen" placeholder="请选择男子女子" clearable
style="width: 100%" @change="doSearch">
<el-option
v-for="item in menWomenList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">项目类型</div>
<div class="search-item-option">
<el-select v-model="pageForm.projectType" placeholder="请选择项目类型" clearable
style="width: 100%" @change="doSearch">
<el-option
v-for="item in projectTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">比赛组别</div>
<div class="search-item-option">
<el-select v-model="pageForm.competitionCategory" placeholder="请选择比赛组别" filterable clearable
style="width: 100%" @change="doSearch">
<el-option
v-for="item in groupList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
</div>
</el-card>
@@ -125,7 +170,7 @@ layout("/layouts/platform.html"){
</template>
<template #edit_func>
<el-button type="primary" @click="openAdd" v-if="awardsMode==1">临时获奖人员添加</el-button>
<el-button type="primary" @click="openAdd">临时获奖人员添加</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</template>
@@ -394,8 +439,8 @@ layout("/layouts/platform.html"){
</el-form-item>
<el-form-item prop="sex" label="性&emsp;&emsp;别">
<el-radio-group v-model="formData.sex">
<el-radio :label="'男'" border></el-radio>
<el-radio :label="'女'" border></el-radio>
<el-radio :label="'男'" border></el-radio>
<el-radio :label="'女'" border></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="unitId" label="所在单位">
@@ -431,11 +476,14 @@ layout("/layouts/platform.html"){
return {
userOptions: [],
groupList: [
{value: 1, name: "甲组"},
{value: 2, name: "乙组"},
{value: 3, name: "丙组"},
{value: 4, name: "丁组"}
groupList: [],
menWomenList: [
{id: 1, name: "男子"},
{id: 2, name: "女子"}
],
projectTypeList: [
{id: "1", name: "单项"},
{id: "2", name: "团体"}
],
dialogVisible: false,
viewData: [],
@@ -465,7 +513,9 @@ layout("/layouts/platform.html"){
{name: "第八名", id: 8}],
sexList: [{sex: "男", id: 1}, {sex: "女", id: 2}],
pageForm: {
isMenWomen: [],
isMenWomen: "",
projectType: "",
competitionCategory: "",
year: new Date().getFullYear() + "",
},
formRules: {
@@ -511,7 +561,7 @@ layout("/layouts/platform.html"){
},
async unitChange() {
const unit = this.unitOptions.find(v => v.id === this.formData.unitId)
this.$set(this.formData, "unionId", unit.id)
this.$set(this.formData, "unionId", unit.unionId)
this.$set(this.formData, "unionname", unit.unionName)
this.$set(this.formData, "unitname", unit.name)
},
@@ -522,7 +572,7 @@ layout("/layouts/platform.html"){
this.$set(this.formData, "awardsMode", this.awardsMode)
this.$set(this.formData, "identity", ['1'])
this.$set(this.formData, "status", 2)
this.$set(this.formData, "sex", "男")
this.$set(this.formData, "sex", "男")
this.dialogVisible = true
if (this.$refs['form']) {
this.$refs['form'].resetFields()
@@ -545,8 +595,14 @@ layout("/layouts/platform.html"){
pageForm.identity = JSON.stringify(this.formData.identity)
const resp = await this.$axios.post(loc() + "/doAddUser", pageForm)
if (resp.code === 0) {
await this.userChange()
this.userDetailsChange()
if (this.awardsMode == 2) {
this.unionList = await this.getUnionList({activityId: this.activityId, eventId: this.eventId})
this.userData = await this.getUnionData({activityId: this.activityId, eventId: this.eventId})
await this.unionDetailsChange()
} else {
await this.userChange()
this.userDetailsChange()
}
this.dialogVisible = false
} else {
this.notifyWarning(resp.msg)
@@ -554,21 +610,24 @@ layout("/layouts/platform.html"){
}
})
},
async yearChange() {
yearChange() {
this.activityList = []
this.events = []
this.$set(this.pageForm, "activityId", "")
this.$set(this.pageForm, "eventId", "")
const {data} = await this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year})
this.activityList = data
if (data.length > 0) {
this.pageForm.activityId = this.activityList[0].id
}
await this.doSearchS()
this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year}).then((res) => {
const data = res.data
this.activityList = data
if (data.length > 0) {
this.pageForm.activityId = this.activityList[0].id
}
this.doSearchS()
})
},
async changeActivit() {
const resp = await this.$axios.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.activityId})
this.events = resp.data
changeActivit() {
return this.$axios.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.activityId}).then((resp) => {
this.events = resp.data
})
},
async doAdd() {
@@ -802,25 +861,34 @@ layout("/layouts/platform.html"){
},
async getActivitys() {
const {data} = await this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year})
return data;
getActivitys() {
return this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year}).then((res) => {
return res.data
})
},
async doSearchS() {
this.doSearch()
await this.changeActivit()
focusGroup() {
this.$axios.post("/platform/activity/basic/event/focusGroup").then((resp) => {
if (resp.code === 0) {
this.groupList = resp.data
} else {
this.notifyWarning(resp.msg)
}
})
},
doSearchS() {
this.$set(this.pageForm, "eventId", "")
this.changeActivit().then(() => {
this.doSearch()
})
},
doSearch() {
this.pageForm.pageNumber = 1
this.pageData()
},
pageData() {
this.tabLoading = true
this.tableLoading = true
const pageForm = clone(this.pageForm)
pageForm.isMenWomen = JSON.stringify(pageForm.isMenWomen)
this.$axios.post("/platform/activity/results/input/pageData", pageForm).then(resp => {
this.tabLoading = false
if (resp.code == 0) {
this.tableData = resp.data.list;
this.pageForm.totalCount = resp.data.totalCount;
@@ -830,20 +898,16 @@ layout("/layouts/platform.html"){
type: 'error'
});
}
}).finally(() => {
this.tableLoading = false
})
},
},
async created() {
created() {
this.focusGroup()
this.yearChange()
// this.pageData()
this.activityList = await this.getActivitys()
if (this.activityList.length) {
this.pageForm.activityId = this.activityList[0].id
}
await this.changeActivit()
this.pageData()
}
})
</script>
@@ -586,13 +586,13 @@ var ACTIVITY_SPORTS_APPLY_USER = {
message = teamName + "替补最多设置" + substituteNum + "人"
break
}
const womanYdyNum = teamApplyData[i].filter((v) => ["女", "女性"].includes(v.sex) && v.identity.includes("1")).length
const womanYdyNum = teamApplyData[i].filter((v) => ["女"].includes(v.sex) && v.identity.includes("1")).length
if (restrictGirlNum > 0 && womanYdyNum < restrictGirlNum) {
msgFlag = false
message = teamName + "女运动员至少设置" + restrictGirlNum + "人"
break
}
const manYdyNum = teamApplyData[i].filter((v) => ["男", "男性"].includes(v.sex) && v.identity.includes("1")).length
const manYdyNum = teamApplyData[i].filter((v) => ["男"].includes(v.sex) && v.identity.includes("1")).length
if (restrictBoyNum > 0 && manYdyNum < restrictBoyNum) {
msgFlag = false
message = teamName + "男运动员至少设置" + restrictBoyNum + "人"
@@ -675,7 +675,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
) {
this.$notify({
title: "警告",
message: "该项目暂不支持男运动员报名",
message: "该项目暂不支持男运动员报名",
type: "warning"
})
return
@@ -689,7 +689,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
) {
this.$notify({
title: "警告",
message: "该项目暂不支持女运动员报名",
message: "该项目暂不支持女运动员报名",
type: "warning"
})
return
@@ -1,4 +1,4 @@
let ACTIVITY_SPORTS_ADD_ACTIVITY = {
let ACTIVITY_SPORTS_ADD_ACTIVITY = {
template: `
<div>
<el-steps :active="active" finish-status="success" simple>
@@ -1193,7 +1193,7 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = {
options: [{label: '男', value: '男'}, {label: '女', value: '女'}]
},
{label: '在职状态', value: 'userState', type: "select", options: userStateOptions},
{label: '教职工类别', value: 'personType', type: "select", options: personTypeOptions},
{label: '人员类型', value: 'personType', type: "select", options: personTypeOptions},
]*/
}
},
@@ -1206,3 +1206,4 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = {
this.unitOptions = this.clubOptions.concat(units)
}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -52,7 +52,7 @@ layout("/layouts/platform.html"){
</el-select>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select clearable code="USER_PERSON_TYPE" multiple placeholder="请选择人员类型" v-model="pageForm.personTypes"></dict-select>
</search-item>
<search-item label="在职状态:">
@@ -124,7 +124,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名" },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "mobile", label: "联系方式" },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
@@ -218,3 +218,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -59,7 +59,7 @@ layout("/layouts/platform.html"){
</el-select>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select clearable code="USER_PERSON_TYPE" multiple placeholder="请选择人员类型" v-model="pageForm.personTypes"></dict-select>
</search-item>
<search-item label="在职状态:">
@@ -192,7 +192,7 @@ layout("/layouts/platform.html"){
{ prop: "loginName", label: "工号" },
{ prop: "userName", label: "姓名" },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -258,3 +258,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
const EXAMINE_INFO_COMPONENT = {
const EXAMINE_INFO_COMPONENT = {
template: `
<div>
<el-tabs tab-position="top" v-model="activeName">
@@ -19,7 +19,7 @@ const EXAMINE_INFO_COMPONENT = {
<div class="process-title">社团成员变化情况</div>
<el-table :data="viewData.changeUserNum" max-height="300">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="教职工类别" prop="userState"></el-table-column>
<el-table-column label="人员类型" prop="userState"></el-table-column>
<el-table-column label="年初人员" prop="yearFirstNum"></el-table-column>
<el-table-column label="年度增加" prop="yearAddNum"></el-table-column>
<el-table-column label="年度减少" prop="yearReduceNum"></el-table-column>
@@ -196,3 +196,4 @@ const EXAMINE_INFO_COMPONENT = {
}
`
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<style></style>
@@ -16,7 +16,7 @@ layout("/layouts/platform.html"){
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select code="USER_PERSON_TYPE" placeholder="请选择人员类型" clearable v-model="pageForm.personType"></dict-select>
</search-item>
<search-item label="在职状态">
@@ -98,3 +98,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
const CLUB_INFO_MANAGE_TEMPLATE = {
const CLUB_INFO_MANAGE_TEMPLATE = {
template: `
<div>
<el-card shadow="never">
@@ -6,7 +6,7 @@ const CLUB_INFO_MANAGE_TEMPLATE = {
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select code="USER_PERSON_TYPE" placeholder="请选择人员类型" clearable v-model="pageForm.personType"></dict-select>
</search-item>
<search-item label="在职状态">
@@ -353,3 +353,4 @@ const CLUB_INFO_MANAGE_TEMPLATE = {
await this.pageData()
}
}
@@ -35,14 +35,10 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
</search>
</el-card>
<el-card shadow="never">
@@ -105,8 +101,7 @@ layout("/layouts/platform.html"){
{ label: "性别", prop: "sex" },
{ label: "出生年月", prop: "birthday" },
{ label: "在职状态", prop: "userState", sortable: true },
{ label: "教职工类别", prop: "personType", sortable: true },
{ label: '编制类别', prop: 'preparedBy', sortable: true },
{ label: "人员类型", prop: "personType", sortable: true },
{ label: "所属工会", prop: "unionName" },
{ label: "所属单位", prop: "unitName" },
],
@@ -183,3 +178,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -39,14 +39,10 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
</search>
</el-card>
<el-card shadow="never">
@@ -113,8 +109,7 @@ layout("/layouts/platform.html"){
{ label: "性别", prop: "sex" },
{ label: "出生年月", prop: "birthday" },
{ label: "在职状态", prop: "userState", sortable: true },
{ label: "教职工类别", prop: "personType", sortable: true },
{ label: '编制类别', prop: 'preparedBy', sortable: true },
{ label: "人员类型", prop: "personType", sortable: true },
{ label: "所属工会", prop: "unionName" },
{ label: "所属单位", prop: "unitName" },
{ label: "加入时间", prop: "joinTime" },
@@ -219,3 +214,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -436,8 +436,7 @@ layout("/layouts/platform.html"){
{label: "年龄", value: "age"},
{label: "婚姻状况", value: "marriage"},
{label: "在职状态", value: "userState"},
{label: "编制类别", value: "preparedBy"},
{label: "教职工类别", value: "personType"},
{label: "人员类型", value: "personType"},
],
conditionGroup: {
logic: "AND",
@@ -701,3 +700,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -43,8 +43,8 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -249,7 +249,7 @@ layout("/layouts/platform.html"){
{prop: 'username', label: '姓名', sortable: true},
{prop: 'sex', label: '性别'},
{prop: 'mobile', label: '联系电话'},
{prop: 'personType', label: '教职工类别', sortable: true},
{prop: 'personType', label: '人员类型', sortable: true},
{prop: 'userState', label: '在职状态', sortable: true},
{prop: 'unionName', label: '所属工会', sortable: true},
{prop: 'unitName', label: '所属单位', sortable: true},
@@ -460,3 +460,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -31,8 +31,7 @@ const meetingInfo = {
<el-table-column prop="userName" label="姓名" width="120"></el-table-column>
<el-table-column prop="sex" label="性别" width="50"></el-table-column>
<el-table-column prop="userState" label="在职状态" width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" width="120"></el-table-column>
<el-table-column prop="mobile" label="手机" width="120"></el-table-column>
<el-table-column prop="unitName" label="所属单位" show-overflow-tooltip></el-table-column>
<el-table-column prop="unionName" label="所属工会" show-overflow-tooltip></el-table-column>
@@ -68,3 +67,4 @@ const meetingInfo = {
}
`
}
@@ -114,8 +114,7 @@ const basicForm = {
<el-table-column prop="userName" label="姓名" width="120"></el-table-column>
<el-table-column prop="sex" label="性别" width="50"></el-table-column>
<el-table-column prop="userState" label="在职状态" width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" width="120"></el-table-column>
<el-table-column prop="mobile" label="手机" width="120"></el-table-column>
<el-table-column prop="unitName" label="所属单位" show-overflow-tooltip></el-table-column>
<el-table-column prop="unionName" label="所属工会" show-overflow-tooltip></el-table-column>
@@ -178,8 +177,7 @@ const basicForm = {
<el-table-column prop="userName" label="姓名" width="120"></el-table-column>
<el-table-column prop="sex" label="性别" width="50"></el-table-column>
<el-table-column prop="userState" label="在职状态" width="120"></el-table-column>
<el-table-column prop="personType" label="教职工类别" width="120"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" width="120"></el-table-column>
<el-table-column prop="personType" label="人员类型" width="120"></el-table-column>
<el-table-column prop="mobile" label="手机" width="120"></el-table-column>
<el-table-column prop="unitName" label="所属单位" show-overflow-tooltip></el-table-column>
<el-table-column prop="unionName" label="所属工会" show-overflow-tooltip></el-table-column>
@@ -394,3 +392,4 @@ const basicForm = {
`
}
@@ -249,24 +249,24 @@ layout("/layouts/platform.html"){
async getActivityBudgetType() {
const data = await this.$businessTool.getDictOptions("ACTIVITY_BUDGET_TYPE")
let budgetTypeOption = []
if (this.$auth.hasRoleOr(['SYSADMIN'])) {
if (this.$auth.hasPermission(['activity.budget.apply.system'])) {
this.budgetTypeOption = data
} else {
if (this.$auth.hasRoleOr(['SCHOOL_UNION_ADMIN'])) {
if (this.$auth.hasPermission(['activity.budget.apply.schoolAdmin'])) {
data.map(v => {
if (["ACTIVITY_BUDGET_TYPE_ONE"].includes(v.code)) {
budgetTypeOption.push(v)
}
})
}
if (this.$auth.hasRoleOr(['BRANCH_UNION_ADMIN', 'BRANCH_UNION_CHAIRMAN'])) {
if (this.$auth.hasPermission(['activity.budget.apply.branchAdmin'])) {
data.map(v => {
if (["ACTIVITY_BUDGET_TYPE_TWO"].includes(v.code)) {
budgetTypeOption.push(v)
}
})
}
if (this.$auth.hasRoleOr(['CLUB_PRESIDENT'])) {
if (this.$auth.hasPermission(['activity.budget.apply.clubPresident'])) {
data.map(v => {
if (["ACTIVITY_BUDGET_TYPE_THREE"].includes(v.code)) {
budgetTypeOption.push(v)
@@ -98,13 +98,54 @@ layout("/layouts/platform.html"){
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<el-dialog title="一键分配所有工会额度" :visible.sync="batchAllocateDialogVisible" width="500px">
<el-dialog title="一键分配所有工会额度" :visible.sync="batchAllocateDialogVisible" width="700px">
<el-form :model="batchAllocateForm" label-width="120px">
<el-form-item label="统一分配额度">
<el-form-item label="分配模式">
<el-radio-group v-model="batchAllocateForm.allocateMode">
<el-radio label="uniform">统一分配</el-radio>
<el-radio label="import">导入分配</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="统一分配额度" v-if="batchAllocateForm.allocateMode === 'uniform'">
<el-input-number v-model="batchAllocateForm.allocateMoney" :min="0" :precision="2"
style="width: 100%" placeholder="请输入每个工会的分配额度">
</el-input-number>
</el-form-item>
<template v-else>
<el-form-item label="导入模板">
<el-button type="primary" plain icon="el-icon-download" @click="downloadImportTemplate">下载模板</el-button>
<div class="text-secondary mt5">请按模板填写工会编码和分配额度,导入后将按工会逐条分配。</div>
</el-form-item>
<el-form-item label="上传文件">
<el-upload
name="file"
ref="importUploadRef"
:limit="1"
action="/platform/outlay/outlayManage/unionAllocate/readImportExcel"
:on-success="onImportSuccess"
:on-remove="onImportRemove"
:before-upload="beforeImportUpload"
:file-list="importFileList"
drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将Excel文件拖到此处,或<em>点击上传</em></div>
</el-upload>
</el-form-item>
<el-form-item label="导入预览" v-if="batchAllocateForm.importPreviewList.length > 0">
<el-table :data="batchAllocateForm.importPreviewList" border size="mini" max-height="260">
<el-table-column type="index" label="序号" width="60"></el-table-column>
<el-table-column prop="unionCode" label="工会编码" min-width="120"></el-table-column>
<el-table-column prop="unionName" label="工会名称" min-width="160"></el-table-column>
<el-table-column prop="allocateMoney" label="分配额度" min-width="120"></el-table-column>
<el-table-column prop="errMsg" label="校验结果" min-width="180">
<template slot-scope="{row}">
<span class="text-danger" v-if="row.errMsg">{{row.errMsg}}</span>
<span class="text-success" v-else>通过</span>
</template>
</el-table-column>
</el-table>
</el-form-item>
</template>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="batchAllocateDialogVisible = false">取 消</el-button>
@@ -137,11 +178,44 @@ layout("/layouts/platform.html"){
quarterlyList: [],
batchAllocateDialogVisible: false,
batchAllocateForm: {
allocateMoney: 0
}
allocateMode: "uniform",
allocateMoney: 0,
importPreviewList: []
},
importFileList: []
}
},
methods: {
/**
* 确认提示文案优先展示页面当前筛选季度。
* 未选择季度时再回退到系统当前自然季度,避免提示文案与用户当前查看条件不一致。
*/
getPromptQuarter() {
return this.pageForm.quarterly || this.$moment().quarter()
},
/**
* 季度记录生成、重置记录都要按页面当前筛选的年度和季度执行。
* 这里统一封装请求参数,避免前后端再次出现“提示季度”和“实际执行季度”不一致的问题。
*/
getCurrentQuarterParams() {
return {
quarterly: this.pageForm.quarterly || this.$moment().quarter(),
year: this.pageForm.year
}
},
/**
* 生成、重置、一键分配都只允许操作当前自然季度。
* 这里统一做前端入口校验,避免同类判断分散在多个按钮方法里难维护。
*/
validateCurrentQuarterAction(actionName) {
const currentQuarter = this.$moment().quarter()
const selectedQuarter = Number(this.getCurrentQuarterParams().quarterly)
if (selectedQuarter !== currentQuarter) {
this.$message.warning('当前仅允许操作第' + currentQuarter + '季度' + actionName + ',请切换后再操作')
return false
}
return true
},
doEdit(row) {
this.$confirm('确定要给【' + row.unionName + '】分配预算吗?', '提示', {
confirmButtonText: '确定',
@@ -163,13 +237,21 @@ layout("/layouts/platform.html"){
})
},
deleteAllocateRecord() {
this.$confirm('确定要重置【第' + this.$moment().quarter() + '季度】的预算记录吗?', '提示', {
if (!this.validateCurrentQuarterAction('记录重置')) {
return
}
// 重置动作以当前列表是否已有记录为前置条件,避免用户在空列表场景下误操作。
if (this.tableData.length === 0) {
this.$message.warning('当前列表无可重置记录')
return
}
this.$confirm('确定要重置【第' + this.getPromptQuarter() + '季度】的预算记录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.formLoading = true
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/deleteAllocateRecord").then((resp) => {
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/deleteAllocateRecord", this.getCurrentQuarterParams()).then((resp) => {
if (resp.code === 0) {
this.$message.success(resp.msg)
this.doSearch()
@@ -180,13 +262,16 @@ layout("/layouts/platform.html"){
})
},
doAllocateRecord() {
this.$confirm('确定要生成【第' + this.$moment().quarter() + '季度】的预算记录吗?', '提示', {
if (!this.validateCurrentQuarterAction('记录生成')) {
return
}
this.$confirm('确定要生成【第' + this.getPromptQuarter() + '季度】的预算记录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.formLoading = true
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/doAllocateRecord").then((resp) => {
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/doAllocateRecord", this.getCurrentQuarterParams()).then((resp) => {
if (resp.code === 0) {
this.$message.success(resp.msg)
this.doSearch()
@@ -197,28 +282,109 @@ layout("/layouts/platform.html"){
})
},
showBatchAllocateDialog() {
if (!this.validateCurrentQuarterAction('一键分配')) {
return
}
if (this.tableData.length === 0) {
this.$message.warning('当前没有可分配的工会记录,请先生成季度记录')
return
}
this.batchAllocateForm = {
allocateMoney: 0
const currentParams = this.getCurrentQuarterParams()
const openDialog = () => {
this.resetBatchAllocateForm()
this.batchAllocateDialogVisible = true
}
this.batchAllocateDialogVisible = true
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/hasAllocated", {
quarterly: currentParams.quarterly,
year: currentParams.year
}).then((resp) => {
if (resp.code !== 0) {
return
}
if (resp.data) {
this.$confirm('温馨提示:当前季度已分配过额度,再次分配将覆盖本季度原有分配结果,是否继续?', '温馨提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
openDialog()
}).catch(() => {
})
} else {
openDialog()
}
})
},
resetBatchAllocateForm() {
this.batchAllocateForm = {
allocateMode: "uniform",
allocateMoney: 0,
importPreviewList: []
}
this.importFileList = []
},
downloadImportTemplate() {
this.$downLoad("/platform/outlay/outlayManage/unionAllocate/downloadImportTemplate")
},
beforeImportUpload(file) {
const suffix = file.name.split(".").pop()
if (["xls", "xlsx"].indexOf(suffix) === -1) {
this.$message.warning("请上传xls或xlsx格式文件")
return false
}
return true
},
onImportSuccess(resp, file, fileList) {
this.importFileList = fileList.slice(-1)
if (resp.code === 0) {
this.$set(this.batchAllocateForm, "importPreviewList", resp.data || [])
} else {
this.$message.error(resp.msg)
this.importFileList = []
this.$set(this.batchAllocateForm, "importPreviewList", [])
}
},
onImportRemove() {
this.importFileList = []
this.$set(this.batchAllocateForm, "importPreviewList", [])
},
doBatchAllocate() {
if (!this.batchAllocateForm.allocateMoney || this.batchAllocateForm.allocateMoney <= 0) {
this.$message.warning('请输入有效的分配额度')
const currentParams = this.getCurrentQuarterParams()
if (this.batchAllocateForm.allocateMode === "uniform") {
if (!this.batchAllocateForm.allocateMoney || this.batchAllocateForm.allocateMoney <= 0) {
this.$message.warning('请输入有效的分配额度')
return
}
this.formLoading = true
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/doBatchAllocate", {
allocateMoney: this.batchAllocateForm.allocateMoney,
quarterly: currentParams.quarterly,
year: currentParams.year
}).then((resp) => {
if (resp.code === 0) {
this.$message.success(resp.msg)
this.batchAllocateDialogVisible = false
this.doSearch()
}
}).finally(() => {
this.formLoading = false
})
return
}
if (this.batchAllocateForm.importPreviewList.length === 0) {
this.$message.warning("请先上传导入文件")
return
}
const hasErrorRow = this.batchAllocateForm.importPreviewList.some((item) => item.errMsg)
if (hasErrorRow) {
this.$message.warning("导入数据存在校验未通过的记录,请修正后重新上传")
return
}
const quarter = this.$moment().quarter()
this.formLoading = true
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/doBatchAllocate", {
allocateMoney: this.batchAllocateForm.allocateMoney,
quarterly: quarter,
year: this.pageForm.year
this.$axios.post("/platform/outlay/outlayManage/unionAllocate/doImportAllocate", {
data: JSON.stringify(this.batchAllocateForm.importPreviewList),
quarterly: currentParams.quarterly,
year: currentParams.year
}).then((resp) => {
if (resp.code === 0) {
this.$message.success(resp.msg)
@@ -51,8 +51,66 @@ layout("/layouts/platform.html"){
<el-tabs class="reimbursement-tabs" v-model="activeTabName">
<el-tab-pane label="申请基本信息" name="basic">
<el-descriptions :column="2" border>
<el-descriptions-item label="经办人">{{formData.userName}}</el-descriptions-item>
<el-descriptions-item label="经费来源" span="2">
<el-form-item label="经费来源" prop="reimburseFundSource">
<el-radio-group v-model="formData.reimburseFundSource" size="medium" @change="selectFundSource">
<el-radio v-if="$auth.hasPermission('unionReimburse.xgh')"
label="UNION_REIMBURSE_FUND_SOURCE_1"
border>校工会经费</el-radio>
<el-radio v-if="$auth.hasPermission('unionReimburse.fgh')"
label="UNION_REIMBURSE_FUND_SOURCE_2"
border>分工会经费</el-radio>
<el-radio v-if="$auth.hasPermission('unionReimburse.club')"
label="UNION_REIMBURSE_FUND_SOURCE_3"
border>协会经费</el-radio>
</el-radio-group>
<!-- <span class="invoice-summary-tip" v-if="fundBalanceText">余额:{{fundBalanceText}}</span>-->
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="报销项目" :span="2">
<el-form-item label="报销项目" prop="reimburseProject">
<el-radio-group v-model="formData.reimburseProject" size="medium" @change="handleReimburseProjectChange">
<el-radio :label="item.code" border v-for="item in reimburseProjectList">
{{item.name}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="支付方式">
<el-form-item label="支付方式" prop="paymentWay">
<el-radio-group v-model="formData.paymentWay" size="medium">
<el-radio :label="item.code" border v-for="item in dict.type.UNION_REIMBURSE_PAYMENT_WAY">
{{item.name}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="工号">{{formData.loginName}}</el-descriptions-item>
<el-descriptions-item label="经办人">{{formData.userName}}</el-descriptions-item>
<el-descriptions-item label="所属协会" v-if="formData.reimburseFundSource === 'UNION_REIMBURSE_FUND_SOURCE_3'">
<el-form-item label="所属协会" prop="clubId">
<el-select clearable
placeholder="请选择协会"
style="width: 100%;"
v-model="formData.clubId"
@change="clubChange">
<el-option
:key="item.id"
:label="item.clubName"
:value="item.id"
v-for="item in clubOptions">
</el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="余额" v-if="formData.reimburseFundSource">
<el-form-item label="余额">
<el-input :value="fundBalanceText" readonly></el-input>
</el-form-item>
</el-descriptions-item>
<!-- <el-descriptions-item label="报销类别">-->
<!-- <el-form-item label="报销类别" prop="reimburseType">-->
<!-- <el-radio-group v-model="formData.reimburseType" size="medium">-->
@@ -62,24 +120,8 @@ layout("/layouts/platform.html"){
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
<el-descriptions-item label="报销项目" span="2">
<el-form-item label="报销项目" prop="reimburseProject">
<el-radio-group v-model="formData.reimburseProject" size="medium" @change="handleReimburseProjectChange">
<el-radio :label="item.code" border v-for="item in reimburseProjectList">
{{item.name}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="支付方式">
<el-form-item label="支付方式" prop="paymentWay">
<el-radio-group v-model="formData.paymentWay" size="medium">
<el-radio :label="item.code" border v-for="item in dict.type.UNION_REIMBURSE_PAYMENT_WAY">
{{item.name}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-descriptions-item>
<!-- <el-descriptions-item label="报销经费来源" span="2">
@@ -304,15 +346,6 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="活动类型" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">
<el-form-item label="活动类型" prop="activityType">
<el-select v-model="formData.activityType" placeholder="请选择活动类型" style="width: 100%">
<el-option label="分工会活动" value="分工会活动"></el-option>
<el-option label="校工会活动" value="校工会活动"></el-option>
<el-option label="社团(社团)活动" value="社团(社团)活动"></el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="活动人数" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<el-form-item label="活动人数" prop="activityNumber">
<el-input v-model="formData.activityNumber" placeholder="请输入活动人数" type="text"></el-input>
@@ -437,6 +470,8 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :span="2" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'" style="display: none;">
</el-descriptions-item>
<el-descriptions-item label="参加随行人员" :span="2"
v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
@@ -457,6 +492,8 @@ layout("/layouts/platform.html"){
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :span="2" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1' && formData.reimburseFundSource === 'UNION_REIMBURSE_FUND_SOURCE_3'" style="display: none;">
</el-descriptions-item>
<el-descriptions-item :span="2">
<template slot="label">
附件
@@ -714,7 +751,6 @@ layout("/layouts/platform.html"){
condolenceMoney: [{required: true, message: "请输入慰问金额", trigger: ["change", "blur"]}],
participants: [{required: true, message: "请填写参与随行人员", trigger: ["change", "blur"]}],
payer: [{required: true, message: "请选择付款人", trigger: ["change", "blur"]}],
activityType: [{required: true, message: "请选择活动类型", trigger: ["change", "blur"]}],
activityPlace: [{required: true, message: "请输入活动地点", trigger: ["change", "blur"]}],
activityTime: [{required: true, message: "请选择活动时间", trigger: ["change", "blur"]}],
activityNumber: [{required: true, message: "请输入活动人数", trigger: ["change", "blur"]}]
@@ -733,6 +769,7 @@ layout("/layouts/platform.html"){
reimburseProjectList: [],
reimburseProjects: [],
clubOptions: [],
fundBalanceText: '',
budgetTypeOption: [],
payerOptions: []
}
@@ -953,6 +990,7 @@ layout("/layouts/platform.html"){
this.$set(this.formData, "money", null)
} else {
this.rebuildInvoiceSummary()
this.normalizeFundBalance()
}
},
openInvoiceDialog(mode, row, index) {
@@ -1200,9 +1238,14 @@ layout("/layouts/platform.html"){
// this.$set(this.formData, "way", this.chooseType.way)
// }
// },
normalizeFundBalance() {
const fundBalance = Number(this.formData.fundBalance)
this.$set(this.formData, "fundBalance", Number.isNaN(fundBalance) ? null : fundBalance)
},
// 保存
onSave() {
this.rebuildInvoiceSummary()
this.normalizeFundBalance()
this.$confirm("您确定保存吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@@ -1221,11 +1264,17 @@ layout("/layouts/platform.html"){
return new Promise((resolve) => {
this.$refs.formRef.validate((valid) => {
if (valid) {
if (this.formData.reimburseFundSource === "UNION_REIMBURSE_FUND_SOURCE_3" && !this.formData.clubId) {
this.$message.warning("请选择协会")
resolve(false)
return
}
if (!this.validateInvoiceDetailsBeforeSubmit()) {
this.$set(this, "activeTabName", "invoice")
resolve(false)
return
}
this.normalizeFundBalance()
this.rebuildInvoiceSummary()
resolve(true)
} else {
@@ -1298,68 +1347,71 @@ layout("/layouts/platform.html"){
const project = this.descOptions.find(item => item.reimburseProject === projectCode);
return project ? project.fileDesc : '';
},
//经费来源查询
reimburseFundSourceChange() {
// 检查是否有选择经费来源
if (!this.formData.reimburseFundSource) {
this.$set(this.formData, "fundBalance", "")
return
selectFundSource(code) {
this.$set(this.formData, "reimburseFundSource", code)
if (code !== "UNION_REIMBURSE_FUND_SOURCE_3") {
this.$set(this.formData, "clubId", null)
this.$set(this.formData, "clubName", null)
} else if (this.clubOptions.length === 1) {
this.$set(this.formData, "clubId", this.clubOptions[0].id)
this.$set(this.formData, "clubName", this.clubOptions[0].clubName)
}
// 如果是社团经费来源,但没有选择具体社团,则不查询
if (this.formData.reimburseFundSource === "UNION_REIMBURSE_FUND_SOURCE_3" && !this.formData.clubId) {
this.$set(this.formData, "fundBalance", "")
return
}
// 定义API映射关系
const apiMap = {
"UNION_REIMBURSE_FUND_SOURCE_1": {
url: "/platform/unionReimburse/apply/getSchoolBudget"
},
"UNION_REIMBURSE_FUND_SOURCE_2": {
url: "/platform/unionReimburse/apply/getUnionBalance"
},
"UNION_REIMBURSE_FUND_SOURCE_3": {
url: "/platform/unionReimburse/apply/getClubBudget"
this.reimburseFundSourceChange()
},
clubChange() {
if (this.formData.clubId) {
const selectedClub = this.clubOptions.find(club => club.id === this.formData.clubId)
if (selectedClub) {
this.$set(this.formData, "clubName", selectedClub.clubName)
}
this.reimburseFundSourceChange()
return
}
this.$set(this.formData, "clubName", null)
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = "请选择协会"
},
// 经费来源查询
reimburseFundSourceChange() {
if (!this.formData.reimburseFundSource) {
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = ""
return
}
if (this.formData.reimburseFundSource === "UNION_REIMBURSE_FUND_SOURCE_3" && !this.formData.clubId) {
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = ""
return
}
const fundSource = this.formData.reimburseFundSource
const apiInfo = apiMap[fundSource]
// 如果没有匹配的API,清空经费余额并返回
if (!apiInfo) {
this.$set(this.formData, "fundBalance", "")
if (!fundSource) {
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = ""
return
}
// 构造请求参数
const params = {
reimburseFundSource: fundSource
}
// 如果是社团经费,需要传递社团ID
if (fundSource === "UNION_REIMBURSE_FUND_SOURCE_3" && this.formData.clubId) {
params.clubId = this.formData.clubId
}
// 显示加载状态
this.$set(this.formData, "fundBalance", "查询中...")
// 发送请求
this.$axios.post(apiInfo.url, params)
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = "查询中..."
this.$axios.post("/platform/unionReimburse/apply/getBudgetBalance", params)
.then(response => {
if (response.code === 0) {
// 显示经费余额(只显示数字,不显示"元")
this.$set(this.formData, "fundBalance", response.data || "0.00")
this.$set(this.formData, "fundBalance", response.data || 0)
this.fundBalanceText = (response.data || 0).toString()
} else {
this.$set(this.formData, "fundBalance", "查询失败")
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = response.msg || "查询失败"
this.$message.warning(this.fundBalanceText)
}
})
.catch(error => {
console.error("经费余额查询失败:", error)
this.$set(this.formData, "fundBalance", "查询失败")
this.$set(this.formData, "fundBalance", null)
this.fundBalanceText = "查询失败"
this.$message.error("经费余额查询失败")
})
},
@@ -1433,7 +1485,16 @@ layout("/layouts/platform.html"){
this.queryFileDesc()
this.queryCondolenceType()
//社团查询
this.$businessTool.listCLubByRole().then((res) => (this.clubOptions = res))
this.$businessTool.listClubByRole().then((res) => {
this.$set(this, "clubOptions", res || [])
if (res && res.length === 1 && !this.formData.clubId) {
this.$set(this.formData, "clubId", res[0].id)
this.$set(this.formData, "clubName", res[0].clubName)
}
if (this.formData.reimburseFundSource) {
this.reimburseFundSourceChange()
}
})
}
})
</script>
@@ -5,168 +5,248 @@ const unionReimburseInfo = {
申请信息
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
</div>
<el-descriptions :column="2" border class="flow-task-form">
<el-descriptions-item label="经办人">{{viewData.userName}}</el-descriptions-item>
<el-descriptions-item label="工号">{{viewData.loginName}}</el-descriptions-item>
<el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="工会">{{viewData.unionName}}</el-descriptions-item>
<el-descriptions-item label="报销项目">
<span v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">慰问</span>
<span v-else-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">文体活动</span>
<span v-else-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_3'">日常活动</span>
<span v-else-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_4'">专项活动</span>
<span v-else>{{ viewData.reimburseProject }}</span>
</el-descriptions-item>
<el-tabs v-model="activeTabName" style="margin-top: 10px;">
<el-tab-pane label="申请基本信息" name="basic">
<el-descriptions :column="2" border class="flow-task-form">
<el-descriptions-item label="经费来源" :span="2">
<dict-tag :options="dict.type.UNION_REIMBURSE_FUND_SOURCE"
:value="viewData.reimburseFundSource">
</dict-tag>
</el-descriptions-item>
<el-descriptions-item label="支付方式">
<dict-tag :options="dict.type.UNION_REIMBURSE_PAYMENT_WAY"
:value="viewData.paymentWay">
</dict-tag>
</el-descriptions-item>
<el-descriptions-item label="报销项目" :span="2">
<dict-tag :options="dict.type.UNION_REIMBURSE_PROJECT"
:value="viewData.reimburseProject">
</dict-tag>
</el-descriptions-item>
<el-descriptions-item label="联系方式">{{viewData.mobile}}</el-descriptions-item>
<el-descriptions-item label="支付方式">
<dict-tag :options="dict.type.UNION_REIMBURSE_PAYMENT_WAY"
:value="viewData.paymentWay">
</dict-tag>
</el-descriptions-item>
<el-descriptions-item label="付款人" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.payerName }}</span>
</el-descriptions-item>
<el-descriptions-item label="工号">{{viewData.loginName}}</el-descriptions-item>
<el-descriptions-item label="经办人">{{viewData.userName}}</el-descriptions-item>
<el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="工会">{{viewData.unionName}}</el-descriptions-item>
<el-descriptions-item label="开户行" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.bankOfDeposit }}</span>
</el-descriptions-item>
<el-descriptions-item label="所属协会" v-if="viewData.reimburseFundSource === 'UNION_REIMBURSE_FUND_SOURCE_3'">
<span>{{ viewData.clubName }}</span>
</el-descriptions-item>
<el-descriptions-item label="银行卡号" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.bankCardNumber }}</span>
</el-descriptions-item>
<el-descriptions-item label="余额" v-if="viewData.reimburseFundSource">
<span>{{ formatMoney(viewData.fundBalance) }}</span>
</el-descriptions-item>
<!-- 慰问相关字段 -->
<el-descriptions-item label="慰问对象" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceUserName }}{{ viewData.condolenceLoginName }}{{ viewData.condolenceUnitName }}</span>
</el-descriptions-item>
<el-descriptions-item label="联系方式">
<span>{{ viewData.mobile }}</span>
</el-descriptions-item>
<el-descriptions-item label="性别" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceSex }}</span>
</el-descriptions-item>
<el-descriptions-item label="付款人" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.payerName }}</span>
</el-descriptions-item>
<el-descriptions-item label="生日" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceBirthday && $moment(viewData.condolenceBirthday).isValid() ? $moment(viewData.condolenceBirthday).format('YYYY-MM-DD') : '' }}</span>
</el-descriptions-item>
<el-descriptions-item label="户名" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.bankUserName }}</span>
</el-descriptions-item>
<el-descriptions-item label="身份证号" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceIdCard }}</span>
</el-descriptions-item>
<el-descriptions-item label="开户行" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.bankOfDeposit }}</span>
</el-descriptions-item>
<el-descriptions-item label="联系方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceMobile }}</span>
</el-descriptions-item>
<el-descriptions-item label="银行卡号" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
<span>{{ viewData.bankCardNumber }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.typeName }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问对象" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceUserName }}{{ viewData.condolenceLoginName }}{{ viewData.condolenceUnitName }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.way }}</span>
</el-descriptions-item>
<el-descriptions-item label="性别" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceSex }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceMoney }}</span>
</el-descriptions-item>
<el-descriptions-item label="实际报销金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.realMoney }}</span>
</el-descriptions-item>
<el-descriptions-item label="生日" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceBirthday && $moment(viewData.condolenceBirthday).isValid() ? $moment(viewData.condolenceBirthday).format('YYYY-MM-DD') : '' }}</span>
</el-descriptions-item>
<!-- 活动相关字段 -->
<el-descriptions-item label="活动名称" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityName }}</span>
</el-descriptions-item>
<el-descriptions-item label="身份证号" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceIdCard }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">
<span>{{ viewData.activityType }}</span>
</el-descriptions-item>
<el-descriptions-item label="联系方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceMobile }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动人数" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityNumber }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.typeName }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动地点" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityPlace }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.way }}</span>
</el-descriptions-item>
<el-descriptions-item label="报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.money }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ formatMoney(viewData.condolenceMoney) }}</span>
</el-descriptions-item>
<el-descriptions-item label="实际报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.realMoney }}</span>
</el-descriptions-item>
<el-descriptions-item label="实际报销金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1' && viewData.realMoney != null">
<span>{{ formatMoney(viewData.realMoney) }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动名称" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityName }}</span>
</el-descriptions-item>
<el-descriptions-item label="发票张数">
<span>{{ viewData.invoiceNumber }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动人数" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityNumber }}</span>
</el-descriptions-item>
<el-descriptions-item label="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动地点" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityPlace }}</span>
</el-descriptions-item>
<el-descriptions-item label="结婚时间" v-if="viewData.condolenceTypeId === 'cf4ce7af322d464f8f86d818fcc00203'">
<span>{{ viewData.marryTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ formatMoney(viewData.money) }}</span>
</el-descriptions-item>
<el-descriptions-item label="生育时间" v-if="viewData.condolenceTypeId === 'c90cb10dce6542e99ae271bee6fe8cc0'">
<span>{{ viewData.fertilityTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="实际报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1' && viewData.realMoney != null">
<span>{{ formatMoney(viewData.realMoney) }}</span>
</el-descriptions-item>
<el-descriptions-item label="住院病由" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span>{{ viewData.hospitalCausation }}</span>
</el-descriptions-item>
<el-descriptions-item label="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.activityTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="住院时间" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span v-if="viewData.hospitalizationStartTime && viewData.hospitalizationEndTime">
{{ $moment(viewData.hospitalizationStartTime).format('YYYY-MM-DD') }} {{ $moment(viewData.hospitalizationEndTime).format('YYYY-MM-DD') }}
</span>
<span v-else>暂无住院时间</span>
</el-descriptions-item>
<el-descriptions-item label="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.condolenceTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="入住医院" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span>{{ viewData.hospital }}</span>
</el-descriptions-item>
<el-descriptions-item label="结婚时间" v-if="viewData.condolenceTypeId === 'cf4ce7af322d464f8f86d818fcc00203'">
<span>{{ viewData.marryTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="当年次数" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span>{{ viewData.hospitalCount }}</span>
</el-descriptions-item>
<el-descriptions-item label="生育时间" v-if="viewData.condolenceTypeId === 'c90cb10dce6542e99ae271bee6fe8cc0'">
<span>{{ viewData.fertilityTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="去逝时间" v-if="viewData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
<span>{{ viewData.deathTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="住院病由" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span>{{ viewData.hospitalCausation }}</span>
</el-descriptions-item>
<el-descriptions-item label="与被慰问人关系" v-if="viewData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
<span>{{ viewData.condolenceRelationship }}</span>
</el-descriptions-item>
<el-descriptions-item label="住院时间" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span v-if="viewData.hospitalizationStartTime && viewData.hospitalizationEndTime">
{{ $moment(viewData.hospitalizationStartTime).format('YYYY-MM-DD') }} {{ $moment(viewData.hospitalizationEndTime).format('YYYY-MM-DD') }}
</span>
<span v-else>暂无住院时间</span>
</el-descriptions-item>
<el-descriptions-item label="参加随行人员" :span="2"
v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.participants }}</span>
</el-descriptions-item>
<el-descriptions-item label="入住医院" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span>{{ viewData.hospital }}</span>
</el-descriptions-item>
<el-descriptions-item label="报销事由" :span="2">
<span>{{ viewData.paymentNotes }}</span>
</el-descriptions-item>
<el-descriptions-item label="当年次数" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
<span>{{ viewData.hospitalCount }}</span>
</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">
<span>{{ viewData.notes }}</span>
</el-descriptions-item>
<el-descriptions-item label="去逝时间" v-if="viewData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
<span>{{ viewData.deathTime | dateFormat }}</span>
</el-descriptions-item>
<el-descriptions-item label="附件" :span="2">
<file-preview v-if="viewData.files && viewData.files.length > 0" :files="viewData.files"
complete_result></file-preview>
<span v-else>暂无附件</span>
</el-descriptions-item>
</el-descriptions>
<el-descriptions-item label="与被慰问人关系" v-if="viewData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
<span>{{ viewData.condolenceRelationship }}</span>
</el-descriptions-item>
<el-descriptions-item label="参加随行人员" :span="2"
v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.participants }}</span>
</el-descriptions-item>
<el-descriptions-item label="报销事由" :span="2" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.paymentNotes }}</span>
</el-descriptions-item>
<el-descriptions-item label="备注" :span="2" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
<span>{{ viewData.notes }}</span>
</el-descriptions-item>
<el-descriptions-item label="附件" :span="2">
<file-preview v-if="viewData.files && viewData.files.length > 0"
:files="viewData.files"
complete_result></file-preview>
<span v-else>暂无附件</span>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="发票信息" name="invoice" v-if="showInvoiceTab">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="报销金额" label-width="100px">
<el-input :value="formatMoney(viewData.money)" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发票张数" label-width="100px">
<el-input :value="viewData.invoiceNumber" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="支付内容" label-width="100px">
<el-input :autosize="{ minRows: 4, maxRows: 8}"
:value="viewData.paymentNotes"
readonly
type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" label-width="100px">
<el-input :autosize="{ minRows: 3, maxRows: 6}"
:value="viewData.notes"
readonly
type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<div style="display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap;">
<div>
<div style="font-size: 14px; color: #1867b0; font-weight: 600;">发票明细列表</div>
<div style="margin-top: 8px; font-size: 12px; color: #909399;">
查看页按申请页结构展示发票明细仅用于查看不提供编辑操作
</div>
</div>
</div>
<el-table :data="viewData.invoiceDetails" border empty-text="暂无发票明细">
<el-table-column align="center" label="序号" type="index" width="70"></el-table-column>
<el-table-column label="文件名称" min-width="220">
<template slot-scope="scope">
<file-preview v-if="scope.row.invoiceFiles && scope.row.invoiceFiles.length > 0"
:files="scope.row.invoiceFiles"
complete_result></file-preview>
<span v-else>未上传</span>
</template>
</el-table-column>
<el-table-column label="发票号码" min-width="140" prop="invoiceNo"></el-table-column>
<el-table-column align="right" label="发票金额" min-width="110">
<template slot-scope="scope">
<span>{{ formatMoney(scope.row.invoiceAmount) }}</span>
</template>
</el-table-column>
<el-table-column label="销售方信息名称" min-width="180" prop="sellerName"></el-table-column>
<el-table-column label="项目名称" min-width="180" prop="itemName"></el-table-column>
<el-table-column label="备注" min-width="150" prop="remark"></el-table-column>
</el-table>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
<template>
<div class="mt10" v-if="viewData.reviewTime">
@@ -181,13 +261,13 @@ const unionReimburseInfo = {
<span v-else-if="viewData.stateId == 4" style="color: #f56c6c;">拒绝</span>
<span v-else-if="viewData.stateId == 5" style="color: #409eff;">退回</span>
<span v-else style="color: #409eff;">{{ viewData.stateId }}</span>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item label="审核意见">{{ viewData.reviewOpinion }}</el-descriptions-item>
</el-descriptions>
</div>
</template>
<slot></slot>
<slot></slot>
<snaker-chart ref="snakerChartRef"></snaker-chart>
</div>
`,
@@ -201,42 +281,69 @@ const unionReimburseInfo = {
},
data() {
return {
activeTabName: "basic",
visible: false,
viewData: {},
viewData: {
files: [],
invoiceDetails: []
},
typeName: '',
row: null
}
},
computed: {
showInvoiceTab() {
return this.viewData.reimburseProject !== "UNION_REIMBURSE_PROJECT_1"
}
},
methods: {
// 打开
onOpen(row) {
this.row = row
this.visible = true
this.activeTabName = "basic"
this.getInfo()
},
// 获取申请信息
getInfo() {
this.$axios.post('/platform/unionReimburse/apply/info', {id: this.row.id}).then((res) => {
if (res.code === 0) {
this.viewData = res.data
this.viewData = this.buildViewData(res.data)
this.typeName = res.data.typeName || ''
}
})
},
// // 获取已办任务审批记录
// getDoneTasks() {
// this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
// if (res.code === 0) {
// this.doneTasks = res.data
// }
// })
// },
//
// // 查看流程图
// openChart(){
// this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId,this.row.instanceId)
// }
// 查看页面需要给附件和发票明细补默认值,避免空数据时组件渲染异常。
buildViewData(data) {
const viewData = Object.assign({
files: [],
invoiceDetails: []
}, data || {})
if (!Array.isArray(viewData.files)) {
viewData.files = []
}
if (!Array.isArray(viewData.invoiceDetails)) {
viewData.invoiceDetails = []
}
return viewData
},
// 查看页金额统一保留两位小数,和申请页展示口径保持一致。
formatMoney(value) {
if (value === null || value === undefined || value === "") {
return ""
}
const numberValue = Number(value)
if (Number.isNaN(numberValue)) {
return value
}
return numberValue.toFixed(2)
},
// 查看流程图
openChart() {
if (!this.row || !this.$refs.snakerChartRef) {
return
}
this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId, this.row.instanceId)
}
}
}
@@ -44,7 +44,7 @@
<el-descriptions-item label="性别">
<el-form-item prop="sex">
<el-select v-model="formData.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option v-for="item in ['男','女']" :key="item" :label="item" :value="item">
<el-option v-for="item in ['男','女']" :key="item" :label="item" :value="item">
</el-option>
</el-select>
</el-form-item>
@@ -294,7 +294,8 @@ layout("/layouts/platform.html"){
<el-card class="box-card" style="height: 92vh" shadow="never">
<el-result icon="warning" title="温馨提醒" subTitle="">
<template slot="extra">
抱歉,当前时间不能申请,可申请时间为{{time}}。
<span v-if="blockMessage">{{blockMessage}}</span>
<span v-else>抱歉,当前时间不能申请,可申请时间为{{time}}。</span>
</template>
</el-result>
</el-card>
@@ -312,6 +313,7 @@ layout("/layouts/platform.html"){
taskId: GetQueryString("taskId"),
isShow: false,
time: '',
blockMessage: '',
formData: {
id: GetQueryString("bizId"),
mode: '1',
@@ -602,7 +604,14 @@ layout("/layouts/platform.html"){
async getIsCanPlay() {
this.$axios.post('/platform/difficultHelp/apply/getIsCanPlay').then(res => {
if (res.code === 0) {
this.isShow = res.data.result
// 新增申请进入页面时,优先校验当前登录人本年度是否已经申请过,已申请则直接拦截新增。
if (!this.bizId && res.data.hasCurrentYearApply) {
this.isShow = false
this.$set(this, 'blockMessage', '抱歉,您本年度已申请困难帮扶,不能重复申请。')
} else {
this.isShow = res.data.result
this.$set(this, 'blockMessage', '')
}
this.$set(this, 'time', res.data.time);
if (res.data.applyCount !== null && res.data.applyCount !== undefined && res.data.applyCount !== 0) {
this.$set(this.formData, 'applyCount', res.data.applyCount)
@@ -159,7 +159,7 @@ layout("/layouts/platform.html"){
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
{ prop: "applyTime", label: "申请时间", sortable: true },
{ prop: "applyCount", label: "申请次数", sortable: true },
{ prop: "taskName", label: "当前节点" },
{ prop: "curTaskName", label: "当前节点" },
{ prop: "instanceState", label: "流程状态" }
],
unions: [],
@@ -48,8 +48,9 @@ layout("/layouts/platform.html"){
<el-radio-button label="false">未审核</el-radio-button>
</el-radio-group>
</table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" @selection-change="handleSelectionChange"
ref="table" row-key="id" style="width: 100%">
<el-table-column type="selection" width="45"></el-table-column>
<el-table-column :index="indexMethod" header-align="center" label="序号"
type="index" width="60px"></el-table-column>
<el-table-column
@@ -130,14 +131,15 @@ layout("/layouts/platform.html"){
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
{ prop: "applyTime", label: "申请时间", sortable: true },
{ prop: "applyCount", label: "申请次数", sortable: true },
{ prop: "taskName", label: "当前节点" },
{ prop: "curTaskName", label: "当前节点" },
{ prop: "instanceState", label: "流程状态" }
],
unions: [],
units: [],
formData: {},
showApprovalForm: false
showApprovalForm: false,
selectData: [],
}
},
components: {
@@ -155,13 +157,17 @@ layout("/layouts/platform.html"){
this.$message.warning('没有待审核的数据!');
return;
}
const message = '确定要一键审核这 ' + this.tableData.length + ' 条记录吗?';
if (this.selectData.length === 0) {
this.$message.warning('请勾选待审核数据!');
return;
}
const message = '确定要一键审核这 ' + this.selectData.length + ' 条记录吗?';
this.$confirm(message, '批量审核确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.batchApprove(this.tableData);
this.batchApprove(this.selectData);
}).catch(() => {
});
@@ -279,6 +285,9 @@ layout("/layouts/platform.html"){
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
}
},
handleSelectionChange: function (val) {
this.selectData = val
},
},
async created() {
this.pageData()
@@ -215,13 +215,13 @@ layout("/layouts/platform.html"){
return total;
},
// 是否为男
// 是否为男
isMale() {
return this.formData.sex === '男性' || this.formData.sex === '男';
return this.formData.sex === '男';
},
// 是否为女
// 是否为女
isFemale() {
return this.formData.sex === '女性' || this.formData.sex === '女';
return this.formData.sex === '女';
},
},
watch: {
@@ -237,7 +237,7 @@ layout("/layouts/platform.html"){
// 监听性别变化,设置默认值
isMale(newVal) {
if (newVal) {
// 男默认设置
// 男默认设置
this.$set(this.formData, 'loverSex', '女');
this.$set(this.formData, 'withLeave', 15);
this.$set(this.formData, 'parentalLeave', 10);
@@ -245,7 +245,7 @@ layout("/layouts/platform.html"){
},
isFemale(newVal) {
if (newVal) {
// 女默认设置
// 女默认设置
this.$set(this.formData, 'loverSex', '男');
this.$set(this.formData, 'maternityLeave', 98);
this.$set(this.formData, 'extendLeave', 60);
@@ -255,7 +255,7 @@ layout("/layouts/platform.html"){
methods: {
// 计算休假时间止
calculateEndTime() {
// 如果是男,则不自动计算结束时间
// 如果是男,则不自动计算结束时间
if (this.isMale) {
return;
}
@@ -372,19 +372,19 @@ layout("/layouts/platform.html"){
}
// 根据性别设置默认值
if (this.isMale) {
// 男默认设置
// 男默认设置
this.$set(this.formData, 'loverSex', '女');
this.$set(this.formData, 'withLeave', 15);
this.$set(this.formData, 'parentalLeave', 10);
// 男默认产假和延长假为0,因为男不休产假
// 男默认产假和延长假为0,因为男不休产假
this.$set(this.formData, 'maternityLeave', 0);
this.$set(this.formData, 'extendLeave', 0);
} else if (this.isFemale) {
// 女默认设置
// 女默认设置
this.$set(this.formData, 'loverSex', '男');
this.$set(this.formData, 'maternityLeave', 98);
this.$set(this.formData, 'extendLeave', 60);
// 女默认陪产假和育儿假为0
// 女默认陪产假和育儿假为0
this.$set(this.formData, 'withLeave', 0);
this.$set(this.formData, 'parentalLeave', 0);
}
@@ -21,22 +21,22 @@ const maternityLeaveInfo = {
</el-descriptions>
<table-tool label="假期类型"></table-tool>
<el-descriptions :column="2" border class="flow-task-form">
<el-descriptions-item label="陪产假" v-if="viewData.sex === '男性' || viewData.sex === '男'">
<el-descriptions-item label="陪产假" v-if="viewData.sex === '男'">
{{viewData.withLeave}}
</el-descriptions-item>
<el-descriptions-item label="育儿假" v-if="viewData.sex === '男性' || viewData.sex === '男'">
<el-descriptions-item label="育儿假" v-if="viewData.sex === '男'">
{{viewData.parentalLeave}}
</el-descriptions-item>
<el-descriptions-item label="产假" v-if="viewData.sex === '女性' || viewData.sex === '女'">
<el-descriptions-item label="产假" v-if="viewData.sex === '女'">
{{viewData.maternityLeave}}
</el-descriptions-item>
<el-descriptions-item label="延长假" v-if="viewData.sex === '女性' || viewData.sex === '女'">
<el-descriptions-item label="延长假" v-if="viewData.sex === '女'">
{{viewData.extendLeave}}
</el-descriptions-item>
<el-descriptions-item label="多胞胎" v-if="viewData.sex === '女性' || viewData.sex === '女'">
<el-descriptions-item label="多胞胎" v-if="viewData.sex === '女'">
{{viewData.birthsLeave}}
</el-descriptions-item>
<el-descriptions-item label="难产假" v-if="viewData.sex === '女性' || viewData.sex === '女'">
<el-descriptions-item label="难产假" v-if="viewData.sex === '女'">
{{viewData.difficultLeave}}
</el-descriptions-item>
<el-descriptions-item label="寒假">{{viewData.winterLeave}}</el-descriptions-item>
@@ -84,6 +84,7 @@ layout("/layouts/platform.html"){
<el-table-column label="操作" fixed="right" width="200">
<template slot-scope="{row}">
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
<el-button @click="onDelete(row)" :loading="formLoading" size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -135,6 +136,23 @@ layout("/layouts/platform.html"){
this.$refs.infoRef.onOpen(row)
})
},
onDelete(row) {
this.$confirm("确定要删除【" + row.username + "】的变更记录吗?删除后将同步删除关联流程记录", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.formLoading = true
this.$axios.post(loc() + "/delete", {id: row.id}).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.doSearch()
}
}).finally(() => {
this.formLoading = false
})
})
},
async unionChange(val) {
this.pageForm.unitId = null
this.unitList = await this.$businessTool.listUnit(val)
@@ -75,6 +75,12 @@ layout("/layouts/platform.html"){
type="primary">导出会员缴费金额
</el-button>
<el-button @click="exportAnnualPayMemberList"
size="small"
icon="el-icon-download"
type="primary">导出年度缴费名单
</el-button>
<el-button :disabled="tableData.length==0" :loading="tableLoading" @click="clearPayRecord"
icon="el-icon-delete"
size="small"
@@ -191,6 +197,9 @@ layout("/layouts/platform.html"){
exportYearPayRecord(){
this.$downLoad('/platform/medicalMutualAid/aidFund/payRecord/exportYearPayRecord', this.pageForm)
},
exportAnnualPayMemberList() {
this.$downLoad('/platform/medicalMutualAid/aidFund/payRecord/exportAnnualPayMemberList', this.pageForm)
},
exportPayRecord() {
this.$downLoad('/platform/medicalMutualAid/aidFund/payRecord/exportPayRecord', this.pageForm)
},
@@ -40,10 +40,13 @@ layout("/layouts/platform.html"){
<el-radio-button label="true">已审核</el-radio-button>
<el-radio-button label="false">未审核</el-radio-button>
</el-radio-group>
<el-button @click="notifyUnapprovedUnionChairman" :loading="formLoading" size="small" type="primary">
一键通知未审核工会
</el-button>
</table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
ref="table" row-key="id" style="width: 100%">
ref="table" row-key="id" style="width: 100%" v-loading="tableLoading">
<el-table-column :index="indexMethod" header-align="center" label="序号"
type="index" width="60px"></el-table-column>
<el-table-column
@@ -158,6 +161,29 @@ layout("/layouts/platform.html"){
this.$refs.infoRef.onOpen(row)
})
},
notifyUnapprovedUnionChairman() {
this.$confirm("确定要通知未审核的分工会吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.formLoading = true
this.$axios.post(loc() + "/notifyUnapprovedUnionChairman", {
year: this.pageForm.year,
aidFundMemberUserType: this.pageForm.aidFundMemberUserType,
changeType: this.pageForm.changeType
}).then((res) => {
if (res.code === 0) {
const loginNames = res.data || []
this.$alert(loginNames.length ? loginNames.join("、") : "暂无需要发送通知的人员", "需要发送人的工号", {
confirmButtonText: "确定"
})
}
}).finally(() => {
this.formLoading = false
})
})
},
handleTaskAction(val) {
this.$confirm("您确定要提交吗?", "提示", {
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -102,7 +102,7 @@ layout("/layouts/platform.html"){
{ prop: "loginName", label: "工号", sortable: true },
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
// { prop: "personType", label: "教职工类别", sortable: true },
// { prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -194,3 +194,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
const COMMON_QUERY = {
const COMMON_QUERY = {
template: /*language=HTML*/ `
<search @search="doSearch">
<search-item label="姓名/工号">
@@ -27,8 +27,8 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<!-- <search-item label="编制类别">-->
@@ -99,3 +99,4 @@ const COMMON_QUERY = {
this.initData()
}
}
@@ -27,8 +27,7 @@ const INFO = {
<!-- <el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>-->
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<!-- <el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>-->
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
<!-- <el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>-->
<el-descriptions-item label="婚姻状况">{{ viewData.marriage }}</el-descriptions-item>
<el-descriptions-item label="入职时间">{{ viewData.arrivalAtSchoolDate }}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
@@ -147,3 +146,4 @@ const INFO = {
}
}
}
@@ -1,4 +1,4 @@
const MEMBER_APPLY_AUDIT_INFO = {
const MEMBER_APPLY_AUDIT_INFO = {
template: /*language=HTML*/ `
<div>
<el-tabs v-model="activeName">
@@ -25,7 +25,7 @@ const MEMBER_APPLY_AUDIT_INFO = {
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="家庭主要成员" :span="3">
@@ -125,3 +125,4 @@ const MEMBER_APPLY_AUDIT_INFO = {
}
}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -85,7 +85,7 @@ layout("/layouts/platform.html"){
{ prop: "loginName", label: "工号", sortable: true },
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
// { prop: "personType", label: "教职工类别", sortable: true },
// { prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -161,3 +161,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -120,7 +120,7 @@ layout("/layouts/platform.html"){
{ prop: "loginName", label: "工号", sortable: true },
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -225,3 +225,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<div id="member_apply">
<div id="member_apply">
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix="" class="flow-task-form">
<el-descriptions :column="3" border>
<el-descriptions-item label="工号">
@@ -90,7 +90,7 @@
disabled style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="教职工类别">
<el-descriptions-item label="人员类型">
<el-form-item prop="personType">
<dict-select v-model="formData.personType" code="USER_PERSON_TYPE"
disabled style="width: 100%"></dict-select>
@@ -464,3 +464,4 @@
}
})
</script>
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -96,7 +96,7 @@ layout("/layouts/platform.html"){
disabled style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<!--<el-descriptions-item label="教职工类别">
<!--<el-descriptions-item label="人员类型">
<el-form-item prop="personType">
<dict-select v-model="formData.personType" code="USER_PERSON_TYPE"
style="width: 100%"></dict-select>
@@ -477,3 +477,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -104,8 +104,7 @@ layout("/layouts/platform.html"){
{ prop: "loginName", label: "工号", sortable: true },
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "sign", label: "签字" },
@@ -196,3 +195,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<div id="member_apply_view">
<div id="member_apply_view">
<el-descriptions :column="3" border>
<el-descriptions-item label="工号">{{ viewData.loginname }}</el-descriptions-item>
<el-descriptions-item label="姓名">{{ viewData.username }}</el-descriptions-item>
@@ -21,7 +21,7 @@
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="家庭主要成员" :span="3">
@@ -142,3 +142,4 @@
width: 15%;
}
</style>
@@ -42,11 +42,8 @@ layout("/layouts/platform.html"){
<search-item label="在职状态">
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch" code="USER_STATE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch" code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
</el-card>
@@ -246,7 +243,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
{ prop: "userState", label: "在职状态", sortable: true },
// {prop: "preparedBy", label: "编制类别", sortable: true},
// {prop: 'personType', label: '教职工类别', sortable: true},
// {prop: 'personType', label: '人员类型', sortable: true},
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "isChanged", label: "变更状态", sortable: true },
@@ -549,3 +546,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -94,7 +94,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: 'preparedBy', label: '编制类别', sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -204,3 +204,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
const COMMON_QUERY = {
const COMMON_QUERY = {
template: /*language=HTML*/ `
<search @search="doSearch">
<search-item label="姓名/工号">
@@ -22,8 +22,8 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<!-- <search-item label="编制类别">-->
@@ -97,3 +97,4 @@ const COMMON_QUERY = {
this.initData()
}
}
@@ -30,8 +30,7 @@ const INFO = {
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<template v-if="viewData.userState == '退休'">
<el-descriptions-item label="退休日期">{{ viewData.retireDate ?
@@ -178,3 +177,4 @@ const INFO = {
}
}
}
@@ -24,8 +24,7 @@ const MEMBER_ALL_CHANGE_INFO = {
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<template v-if="viewData.userState == '退休'">
<el-descriptions-item label="退休日期">{{ viewData.retireDate ? $moment(viewData.retireDate).format("YYYY-MM-DD") : '暂无' }}</el-descriptions-item>
@@ -109,3 +108,4 @@ const MEMBER_ALL_CHANGE_INFO = {
}
}
}
@@ -139,18 +139,12 @@ const MEMBER_CHANGE = {
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="教职工类别">
<el-descriptions-item label="人员类型">
<el-form-item prop="personType">
<dict-select v-model="formData.personType" code="USER_PERSON_TYPE"
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="编制类别">
<el-form-item prop="preparedBy">
<dict-select v-model="formData.preparedBy" code="USER_PREPARED_BY_TYPE"
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="人员属性">
<el-form-item prop="userAttribute">
<dict-select v-model="formData.userAttribute" code="USER_ATTRIBUTE"
@@ -512,3 +506,4 @@ const MEMBER_CHANGE = {
}
`
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -30,8 +30,8 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<!-- <search-item label="编制类别">-->
@@ -548,7 +548,7 @@ layout("/layouts/platform.html"){
{ prop: "mobile", label: "联系电话", width: 120 },
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", width: 120, sortable: true, checked: 0 },
// { prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
@@ -847,3 +847,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
@@ -68,7 +68,7 @@ layout("/layouts/platform.html"){
{ prop: "username", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -157,3 +157,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -27,8 +27,8 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="变更类型">
@@ -135,7 +135,7 @@ layout("/layouts/platform.html"){
{prop: 'username', label: '姓名'},
{prop: 'sex', label: '性别', sortable: true, width: '100px'},
{prop: 'birthday', label: '出生年月', sortable: true},
{prop: 'personType', label: '教职工类别', sortable: true},
{prop: 'personType', label: '人员类型', sortable: true},
{prop: 'userState', label: '在职状态', sortable: true},
{prop: 'unionName', label: '所属工会', sortable: true},
{prop: 'unitName', label: '所属单位', sortable: true},
@@ -227,3 +227,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -96,7 +96,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: 'preparedBy', label: '编制类别', sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -206,3 +206,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<div id="member_change">
<div id="member_change">
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix="" class="flow-task-form">
<el-descriptions :column="3" border>
<el-descriptions-item label="工号">
@@ -131,7 +131,7 @@
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="教职工类别">
<el-descriptions-item label="人员类型">
<el-form-item prop="personType">
<dict-select v-model="formData.personType" code="USER_PERSON_TYPE"
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
@@ -530,3 +530,4 @@
}
})
</script>
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
@@ -139,7 +139,7 @@ layout("/layouts/platform.html"){
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="教职工类别">
<el-descriptions-item label="人员类型">
<el-form-item prop="personType">
<dict-select v-model="formData.personType" code="USER_PERSON_TYPE"
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
@@ -552,3 +552,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -94,8 +94,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: 'preparedBy', label: '编制类别', sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "changeTypes", label: "变更类型", sortable: true, width: 200 },
@@ -204,3 +203,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<div id="member_change_view">
<div id="member_change_view">
<el-tabs v-model="activeName">
<el-tab-pane label="基础信息" name="basicInfo">
<el-descriptions :column="3" border class="descriptions-form">
@@ -23,7 +23,7 @@
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="进校时间">{{ viewData.schoolTime }}</el-descriptions-item>
<template v-if="viewData.userState == '退休'">
@@ -163,3 +163,4 @@
width: 15%;
}
</style>
@@ -70,8 +70,7 @@ const MEMBER_INFO = {
<!-- 3 -->
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<!-- 4 -->
<el-descriptions-item label="职称">{{ viewData.professionalTitle }}</el-descriptions-item>
@@ -104,3 +103,4 @@ const MEMBER_INFO = {
}
}
};
@@ -27,12 +27,8 @@ const MEMBER_MANAGE_QUERY = {
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="更新日期">
@@ -134,3 +130,4 @@ const MEMBER_MANAGE_QUERY = {
this.initData()
}
}
@@ -154,8 +154,7 @@ const MEMBER_MANAGE_TABLE = {
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
{ prop: "birthday", label: "出生年月", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
],
@@ -257,3 +256,4 @@ const MEMBER_MANAGE_TABLE = {
})
}
}
@@ -1,4 +1,4 @@
const MEMBER_VERIFICATION_CHANGE = {
const MEMBER_VERIFICATION_CHANGE = {
template: `
<el-card shadow="never">
<div>
@@ -10,7 +10,7 @@ const MEMBER_VERIFICATION_CHANGE = {
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
<el-descriptions-item label="民族">{{ viewData.nation }}</el-descriptions-item>
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="学历">{{ viewData.education }}</el-descriptions-item>
<el-descriptions-item label="政治面貌">{{ viewData.political }}</el-descriptions-item>
<el-descriptions-item label="婚姻状况">{{ viewData.marriage || '' }}</el-descriptions-item>
@@ -94,3 +94,4 @@ const MEMBER_VERIFICATION_CHANGE = {
}
}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
@@ -58,7 +58,7 @@ layout("/layouts/platform.html"){
{ prop: "username", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -133,3 +133,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<style>
@@ -177,7 +177,7 @@ layout("/layouts/platform.html"){
v-loading="loading.userStateMember"
></div>
<div class="col-title">教职工类别</div>
<div class="col-title">人员类型</div>
<div
id="personTypeMemberChart"
style="width: 100%; height: calc(50% - 35px); box-sizing: border-box; padding: 30px 10px"
@@ -716,3 +716,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
const COMMON_QUERY = {
const COMMON_QUERY = {
template: /*language=HTML*/ `
<search @search="doSearch">
<search-item label="姓名/工号">
@@ -37,8 +37,8 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="教职工类别" v-if="!query_disable">
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型" v-if="!query_disable">
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<!-- <search-item label="编制类别">-->
@@ -125,3 +125,4 @@ const COMMON_QUERY = {
this.initData()
}
}
@@ -120,7 +120,7 @@
<!-- style="width: 100%"></dict-select>-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="教职工类别">-->
<!-- <el-descriptions-item label="人员类型">-->
<!-- <el-form-item prop="personType">-->
<!-- <dict-select v-model="formData.personType" code="USER_PERSON_TYPE"-->
<!-- style="width: 100%"></dict-select>-->
@@ -370,3 +370,4 @@
this.initUnits()
}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -97,7 +97,7 @@ layout("/layouts/platform.html"){
</div>
</div>
<div class="search-other mt20">
<div class="search-other-label">教职工类别</div>
<div class="search-other-label">人员类型</div>
<div>
<el-tag
style="margin-right: 10px;cursor: pointer"
@@ -207,7 +207,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -314,3 +314,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -126,7 +126,7 @@ layout("/layouts/platform.html"){
{ prop: "mobile", label: "联系电话", width: 120 },
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", width: 120, sortable: true, checked: 0 },
// { prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
@@ -238,3 +238,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -43,17 +43,9 @@ layout("/layouts/platform.html"){
<search-item label="在职状态">
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch" code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select
v-model="pageForm.preparedBy"
placeholder="请选择编制类别"
@change="doSearch"
code="USER_PREPARED_BY_TYPE"
></dict-select>
</search-item>
<search-item label="人员分类">
<dict-select v-model="pageForm.aidFundMemberUserType" placeholder="请选择人员分类" @change="doSearch" code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
</search-item>
@@ -128,7 +120,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别" },
{ prop: "mobile", label: "联系电话" },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
@@ -177,3 +169,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -43,8 +43,8 @@ layout("/layouts/platform.html"){
<search-item label="在职状态">
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch" code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="人员分类">
<dict-select v-model="pageForm.aidFundMemberUserType" placeholder="请选择人员分类" @change="doSearch" code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
@@ -201,3 +201,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -26,8 +26,8 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -135,7 +135,7 @@ layout("/layouts/platform.html"){
{prop: 'username', label: '姓名'},
{prop: 'sex', label: '性别'},
{prop: 'mobile', label: '联系电话'},
{prop: 'personType', label: '教职工类别'},
{prop: 'personType', label: '人员类型'},
{prop: 'userState', label: '在职状态'},
{prop: 'unionName', label: '所属工会'},
{prop: 'unitName', label: '所属单位'},
@@ -234,3 +234,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -19,12 +19,8 @@ const SCHOOL_VIEW_AND_HANDLE = {
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -140,8 +136,7 @@ const SCHOOL_VIEW_AND_HANDLE = {
{ label: "工号", prop: "loginname" },
{ label: "性别", prop: "sex" },
{ label: "在职状态", prop: "userState" },
{ label: "编制类别", prop: "preparedBy" },
{ label: "教职工类别", prop: "personType" },
{ label: "人员类型", prop: "personType" },
{ label: "所属单位", prop: "unitName" },
{ label: "是否变更", prop: "isChanged" },
// { label: "分工会状态", prop: "branchUnionChecked" },
@@ -287,3 +282,4 @@ const SCHOOL_VIEW_AND_HANDLE = {
created() {
}
}
@@ -17,12 +17,8 @@ const VIEW_CHANGE_TYPE_USER = {
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -76,8 +72,7 @@ const VIEW_CHANGE_TYPE_USER = {
{ prop: "loginname", label: "工号", sortable: true },
{ prop: "username", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "member", label: "会员", sortable: true },
@@ -117,3 +112,4 @@ const VIEW_CHANGE_TYPE_USER = {
}
}
}
@@ -1,4 +1,4 @@
const VERIFICATION_QUERY = {
const VERIFICATION_QUERY = {
template: `
<el-card>
<search @search="doSearch">
@@ -23,8 +23,8 @@ const VERIFICATION_QUERY = {
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="变更类型">
@@ -62,3 +62,4 @@ const VERIFICATION_QUERY = {
},
created() {}
}
@@ -28,14 +28,10 @@ const VERIFICATION_SET_USER_LIST = {
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="变更类型">
<dict-select v-model="pageForm.changeType" placeholder="变更类型" @change="doSearch"
code="MEMBER_CHANGE_TYPE"></dict-select>
@@ -496,3 +492,4 @@ const VERIFICATION_SET_USER_LIST = {
// this.findList()
}
}
@@ -26,12 +26,8 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
<dict-select v-model="pageForm.userState" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -43,8 +39,7 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
<el-table-column label="姓名" prop="username"></el-table-column>
<el-table-column label="性别" prop="sex"></el-table-column>
<el-table-column label="在职状态" prop="userState"></el-table-column>
<el-table-column label="编制类别" prop="preparedBy"></el-table-column>
<el-table-column label="教职工类别" prop="personType"></el-table-column>
<el-table-column label="人员类型" prop="personType"></el-table-column>
<el-table-column label="所属工会" prop="unionName"></el-table-column>
<el-table-column label="所属单位" prop="unitName"></el-table-column>
<el-table-column label="操作" fixed="right" width="80px" v-if="canBeModified">
@@ -183,3 +178,4 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
},
created() {}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
@@ -158,7 +158,7 @@ layout("/layouts/platform.html"){
{ prop: "mobile", label: "联系电话", width: 120 },
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", width: 120, sortable: true, checked: 0 },
// { prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
@@ -275,3 +275,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -63,7 +63,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-title">教职工类别</el-col>
<el-col class="query-row-title">人员类型</el-col>
<el-col class="query-row-content query-row-content-tag">
<el-tag
style="margin-right: 10px;cursor: pointer"
@@ -87,30 +87,6 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
</el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-title">编制类别</el-col>
<el-col class="query-row-content query-row-content-tag">
<el-tag
style="margin-right: 10px;cursor: pointer"
v-for="item in preparedByOptions"
:key="item.code"
:type="item.name"
:effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'"
@click="tagClick('preparedBys',item.name)">
{{ item.name }}
</el-tag>
<el-link type="danger"
v-if="preparedByOptions.length&&pageForm.preparedBys.length"
:underline="false"
@click="pageForm.preparedBys=[];doSearch()">清空
</el-link>
<el-link :underline="false"
@click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()"
type="success">全部
</el-link>
</el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-title">人员分类</el-col>
@@ -283,8 +259,8 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
unions: [],
units: [],
sexTypeOptions: [
{ code: "男", name: "男" },
{ code: "女", name: "女" }
{ code: "男", name: "男" },
{ code: "女", name: "女" }
],
pickerOptions: {
disabledDate: (time) => {
@@ -491,3 +467,4 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
}
`
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<style>
@@ -146,7 +146,7 @@ layout("/layouts/platform.html"){
</el-form-item>
</template>
</el-table-column>
<el-table-column label="教职工类别" prop="personType" >
<el-table-column label="人员类型" prop="personType" >
<template slot-scope="{row,$index}">
<el-select @change="row.payMode=null" placeholder="请选择人员类型" v-model="row.personType"
style="width: 100%" clearable>
@@ -368,3 +368,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
const MINE_PAY_INFO = {
const MINE_PAY_INFO = {
template: /*language=html*/ `
<div>
<el-descriptions title="缴费信息" :column="3" border>
@@ -7,7 +7,7 @@ const MINE_PAY_INFO = {
<el-descriptions-item label="缴费项目">{{ viewData.projectName }}</el-descriptions-item>
<el-descriptions-item label="所在工会">{{ viewData.unionname }}</el-descriptions-item>
<el-descriptions-item label="所在单位">{{ viewData.unitname }}</el-descriptions-item>
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
<el-descriptions-item label="缴费情况">
<el-tag v-if="viewData.personType">已缴费</el-tag>
<el-tag v-else type="warning">未缴费</el-tag>
@@ -123,3 +123,4 @@ const MINE_PAY_INFO = {
},
}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -76,9 +76,9 @@ layout("/layouts/platform.html"){
</search-item>
</template>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" style="width: 100%" clearable
placeholder="教职工类别" code="USER_PERSON_TYPE"></dict-select>
placeholder="人员类型" code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="在职状态">
@@ -237,7 +237,7 @@ layout("/layouts/platform.html"){
{ prop: "mobile", label: "联系电话" },
{ prop: "schoolTime", label: "入职时间" },
{ prop: "retireDate", label: "退休时间" },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionname", label: "所属工会", sortable: true },
{ prop: "unitname", label: "所属单位", sortable: true },
@@ -484,3 +484,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -98,7 +98,7 @@ layout("/layouts/platform.html"){
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="教职工类别" size="medium">
<el-form-item label="人员类型" size="medium">
<span>{{formData.personType}}</span>
</el-form-item>
</el-col>
@@ -159,7 +159,7 @@ layout("/layouts/platform.html"){
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="教职工类别" size="medium">
<el-form-item label="人员类型" size="medium">
<span>{{formData.personType}}</span>
</el-form-item>
</el-col>
@@ -335,3 +335,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -24,14 +24,10 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
</template>
</search>
`,
@@ -90,3 +86,4 @@ const COMMON_QUERY = {
this.initData()
}
}
@@ -142,8 +142,7 @@ const importAndMap = {
{ value: "mobile", label: "联系电话" },
{ value: "political", label: "政治面貌"},
{ value: "userState", label: "在职状态" },
{ value: "personType", label: "教职工类别" },
{ value: "preparedBy", label: "编制类别" },
{ value: "personType", label: "人员类型" },
{ value: "postDoctoralJoinDate", label: "进站时间" },
{ value: "unionId", label: "所属工会" },
{ value: "unitId", label: "所属单位" },
@@ -404,3 +403,4 @@ const importAndMap = {
}
`
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -21,8 +21,8 @@ layout("/layouts/platform.html"){
</search-item>
<search-item label="性别">
<el-select v-model="pageForm.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
</el-select>
</search-item>
<search-item label="年龄区间">
@@ -47,7 +47,7 @@ layout("/layouts/platform.html"){
v-for="item in dict.type.USER_EDUCATION"></el-option>
</el-select>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<el-select clearable placeholder="请选择人员类型"
style="width: 100%;"
v-model="pageForm.personType">
@@ -154,3 +154,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<style>
@@ -44,8 +44,8 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<!-- <search-item label="编制类别">-->
@@ -199,7 +199,7 @@ layout("/layouts/platform.html"){
{ prop: "username", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
// { prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
@@ -323,3 +323,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
@@ -31,8 +31,8 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<dict-select v-model="pageForm.personType" placeholder="教职工类别" @change="doSearch"
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -217,7 +217,7 @@ layout("/layouts/platform.html"){
{ prop: 'username', label: '姓名' },
{ prop: 'sex', label: '性别' },
{ prop: 'mobile', label: '联系电话' },
{ prop: 'personType', label: '教职工类别', sortable: true },
{ prop: 'personType', label: '人员类型', sortable: true },
{ prop: 'userState', label: '在职状态', sortable: true },
{ prop: 'distSpecialStaffType', label: '特别人员类型', sortable: true },
{ prop: 'personnelRelationUnionName', label: '人事关系工会', sortable: true, width: 180 },
@@ -380,3 +380,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform.html"){
#-->
@@ -48,13 +48,13 @@ layout("/layouts/platform.html"){
<search-item label="在职状态">
<dict-select v-model="pageForm.userState" style="width: 100%"
clearable
placeholder="教职工类别"
placeholder="人员类型"
code="USER_STATE"></dict-select>
</search-item>
<search-item label="教职工类别">
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" style="width: 100%"
clearable
placeholder="教职工类别"
placeholder="人员类型"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
</search>
@@ -189,7 +189,7 @@ layout("/layouts/platform.html"){
{prop: 'username', label: '姓名', sortable: true},
{prop: 'sex', label: '性别'},
{prop: 'teachNum', label: '进校时长(年)', sortable: true},
{prop: 'personType', label: '教职工类别', sortable: true},
{prop: 'personType', label: '人员类型', sortable: true},
{prop: 'userState', label: '在职状态', sortable: true},
{prop: 'unionName', label: '所属工会', sortable: true},
{prop: 'unitName', label: '所属单位', sortable: true},
@@ -340,3 +340,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
@@ -84,13 +84,6 @@ const filterUser = {
v-model="pageForm.personTypes"></dict-select>
</search-item>
<search-item label="编制类别:">
<dict-select clearable code="USER_PREPARED_BY_TYPE"
multiple
collapse-tags
placeholder="请选择编制类别"
v-model="pageForm.preparedBys"></dict-select>
</search-item>
<search-item label="在职状态:">
<dict-select clearable code="USER_STATE"
@@ -170,7 +163,6 @@ const filterUser = {
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
@@ -50,8 +50,7 @@ const selectedUser = {
{ label: "姓名", prop: "userName" },
{ label: "生日", prop: "birthday" },
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "personType", label: "人员类型", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
{ label: "单位", prop: "welfareUnitName" },
{ label: "手机号", prop: "mobile" },
@@ -95,3 +94,4 @@ const selectedUser = {
}
}
}
@@ -49,8 +49,7 @@ const unSelectedUser = {
{ label: "姓名", prop: "userName" },
{ label: "生日", prop: "birthday" },
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "personType", label: "人员类型", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
{ label: "单位", prop: "welfareUnitName" }
]
@@ -86,3 +85,4 @@ const unSelectedUser = {
}
}
}
@@ -86,13 +86,6 @@ const addUser = {
v-model="pageForm.personTypes"></dict-select>
</search-item>
<search-item label="编制类别:">
<dict-select clearable code="USER_PREPARED_BY_TYPE"
multiple
collapse-tags
placeholder="请选择编制类别"
v-model="pageForm.preparedBys"></dict-select>
</search-item>
<search-item label="在职状态:">
<dict-select clearable code="USER_STATE"
@@ -175,7 +168,6 @@ const addUser = {
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
@@ -98,16 +98,6 @@ layout("/layouts/platform.html"){
></dict-select>
</search-item>
<search-item label="编制类别:">
<dict-select
clearable
code="USER_PREPARED_BY_TYPE"
multiple
collapse-tags
placeholder="请选择编制类别"
v-model="pageForm.preparedBys"
></dict-select>
</search-item>
<search-item label="在职状态:">
<dict-select
@@ -265,7 +255,6 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "welfareUnionName", label: "所属工会", sortable: true },
{ prop: "welfareUnitName", label: "所属单位", sortable: true },
@@ -71,7 +71,7 @@ layout("/layouts/platform_h5.html"){
<van-popup v-model="showSexPicker" position="bottom">
<van-picker
show-toolbar
:columns="['男', '女']"
:columns="['男', '女']"
@confirm="onSexConfirm"
@cancel="showSexPicker=false"
></van-picker>
@@ -257,13 +257,13 @@ layout("/layouts/platform_h5.html"){
this.$set(this.formData, 'leaveDays', total);
return total;
},
// 是否为男
// 是否为男
isMale() {
return this.formData.sex === '男性' || this.formData.sex === '男';
return this.formData.sex === '男';
},
// 是否为女
// 是否为女
isFemale() {
return this.formData.sex === '女性' || this.formData.sex === '女';
return this.formData.sex === '女';
}
},
watch: {
@@ -279,7 +279,7 @@ layout("/layouts/platform_h5.html"){
// 监听性别变化,设置默认值
isMale(newVal) {
if (newVal) {
// 男默认设置
// 男默认设置
this.$set(this.formData, 'loverSex', '女');
this.$set(this.formData, 'withLeave', 15);
this.$set(this.formData, 'parentalLeave', 10);
@@ -287,7 +287,7 @@ layout("/layouts/platform_h5.html"){
},
isFemale(newVal) {
if (newVal) {
// 女默认设置
// 女默认设置
this.$set(this.formData, 'loverSex', '男');
this.$set(this.formData, 'maternityLeave', 98);
this.$set(this.formData, 'extendLeave', 60);
@@ -322,7 +322,7 @@ layout("/layouts/platform_h5.html"){
},
// 计算休假时间止
calculateEndTime() {
// 如果是男,则不自动计算结束时间
// 如果是男,则不自动计算结束时间
if (this.isMale) {
return;
}
@@ -363,8 +363,8 @@ layout("/layouts/platform_h5.html"){
const errors = [];
// 根据性别确定需要验证的字段
const isMale = this.formData.sex === '男性' || this.formData.sex === '男';
const isFemale = this.formData.sex === '女性' || this.formData.sex === '女';
const isMale = this.formData.sex === '男';
const isFemale = this.formData.sex === '女';
// 必填字段验证
if (!this.formData.loverName) {
@@ -562,17 +562,17 @@ layout("/layouts/platform_h5.html"){
// 根据性别设置默认值
if (this.isMale) {
// 男默认设置
// 男默认设置
if (!this.formData.withLeave) this.$set(this.formData, 'withLeave', 15);
if (!this.formData.parentalLeave) this.$set(this.formData, 'parentalLeave', 10);
// 男默认产假和延长假为0
// 男默认产假和延长假为0
if (!this.formData.maternityLeave) this.$set(this.formData, 'maternityLeave', 0);
if (!this.formData.extendLeave) this.$set(this.formData, 'extendLeave', 0);
} else if (this.isFemale) {
// 女默认设置
// 女默认设置
if (!this.formData.maternityLeave) this.$set(this.formData, 'maternityLeave', 98);
if (!this.formData.extendLeave) this.$set(this.formData, 'extendLeave', 60);
// 女默认陪产假和育儿假为0
// 女默认陪产假和育儿假为0
if (!this.formData.withLeave) this.$set(this.formData, 'withLeave', 0);
if (!this.formData.parentalLeave) this.$set(this.formData, 'parentalLeave', 0);
}
@@ -594,19 +594,19 @@ layout("/layouts/platform_h5.html"){
// 根据性别设置默认值
if (this.isMale) {
// 男默认设置
// 男默认设置
this.$set(this.formData, 'loverSex', '女');
this.$set(this.formData, 'withLeave', 15);
this.$set(this.formData, 'parentalLeave', 10);
// 男默认产假和延长假为0
// 男默认产假和延长假为0
this.$set(this.formData, 'maternityLeave', 0);
this.$set(this.formData, 'extendLeave', 0);
} else if (this.isFemale) {
// 女默认设置
// 女默认设置
this.$set(this.formData, 'loverSex', '男');
this.$set(this.formData, 'maternityLeave', 98);
this.$set(this.formData, 'extendLeave', 60);
// 女默认陪产假和育儿假为0
// 女默认陪产假和育儿假为0
this.$set(this.formData, 'withLeave', 0);
this.$set(this.formData, 'parentalLeave', 0);
}
@@ -18,12 +18,12 @@ const MATERNITY_LEAVE_INFO = {
</van-cell-group>
<van-cell-group title="假期类型">
<van-cell title="陪产假" v-if="viewData.sex === '男性' || viewData.sex === '男'">{{ viewData.withLeave }}</van-cell>
<van-cell title="育儿假" v-if="viewData.sex === '男性' || viewData.sex === '男'">{{ viewData.parentalLeave }}</van-cell>
<van-cell title="产假" v-if="viewData.sex === '女性' || viewData.sex === '女'">{{ viewData.maternityLeave }}</van-cell>
<van-cell title="延长假" v-if="viewData.sex === '女性' || viewData.sex === '女'">{{ viewData.extendLeave }}</van-cell>
<van-cell title="多胞胎" v-if="viewData.sex === '女性' || viewData.sex === '女'">{{ viewData.birthsLeave }}</van-cell>
<van-cell title="难产假" v-if="viewData.sex === '女性' || viewData.sex === '女'">{{ viewData.difficultLeave }}</van-cell>
<van-cell title="陪产假" v-if="viewData.sex === '男'">{{ viewData.withLeave }}</van-cell>
<van-cell title="育儿假" v-if="viewData.sex === '男'">{{ viewData.parentalLeave }}</van-cell>
<van-cell title="产假" v-if="viewData.sex === '女'">{{ viewData.maternityLeave }}</van-cell>
<van-cell title="延长假" v-if="viewData.sex === '女'">{{ viewData.extendLeave }}</van-cell>
<van-cell title="多胞胎" v-if="viewData.sex === '女'">{{ viewData.birthsLeave }}</van-cell>
<van-cell title="难产假" v-if="viewData.sex === '女'">{{ viewData.difficultLeave }}</van-cell>
<van-cell title="寒假">{{ viewData.winterLeave }}</van-cell>
<van-cell title="暑假">{{ viewData.summerLeave }}</van-cell>
<van-cell title="合计">{{ viewData.leaveDays }}</van-cell>
@@ -23,7 +23,6 @@ const INFO = {
<van-cell title="入职时间">{{ viewData.arrivalAtSchoolDate }}</van-cell>
<van-cell title="在职状态">{{ viewData.userState }}</van-cell>
<van-cell title="编制类别">{{ viewData.preparedBy || '暂无' }}</van-cell>
<van-cell title="婚姻状况">{{ viewData.marriage || '暂无' }}</van-cell>
<van-cell title="家庭住址">
<template #label>
@@ -142,19 +142,11 @@ layout("/layouts/platform_h5.html"){
<van-field
v-model="formData.personType"
name="personType"
label="教职工类别"
label="人员类型"
readonly
placeholder="请填写人员类型"
clickable
></van-field>
<van-field
v-model="formData.preparedBy"
name="preparedBy"
label="编制类别"
readonly
placeholder="请填写编制类别"
clickable
></van-field>
<van-field
v-model="formData.marriage"
name="marriage"
@@ -610,3 +602,4 @@ layout("/layouts/platform_h5.html"){
<!--#
}
#-->
@@ -13,8 +13,7 @@ const MOBILE_MEMBER_CHANGE_INFO = {
<van-cell title="所属工会">{{ viewData.unionName }}</van-cell>
<van-cell title="所属单位">{{ viewData.unitName }}</van-cell>
<van-cell title="在职状态">{{ viewData.userState }}</van-cell>
<van-cell title="编制类别">{{ viewData.preparedBy }}</van-cell>
<van-cell title="教职工类别">{{ viewData.personType }}</van-cell>
<van-cell title="人员类型">{{ viewData.personType }}</van-cell>
<van-cell title="出生日期">{{ $moment(viewData.birthday).format('YYYY-MM-DD') }}</van-cell>
<van-cell title="学历">{{ viewData.education }}</van-cell>
<van-cell title="政治面貌">{{ viewData.political }}</van-cell>
@@ -89,3 +88,4 @@ const MOBILE_MEMBER_CHANGE_INFO = {
}
}
}
@@ -1,4 +1,4 @@
const MOBILE_MEMBER_INFO = {
const MOBILE_MEMBER_INFO = {
template: /*language=HTML*/ `
<div class="detail-container">
<van-cell-group title="基本信息">
@@ -23,7 +23,7 @@ const MOBILE_MEMBER_INFO = {
<van-cell title="电子邮箱">{{ viewData.email }}</van-cell>
<van-cell title="在职状态">{{ viewData.userState }}</van-cell>
<van-cell title="教职工类别">{{ viewData.personType }}</van-cell>
<van-cell title="人员类型">{{ viewData.personType }}</van-cell>
<van-cell title="人员性质">{{ viewData.preparedBy || '暂无' }}</van-cell>
<template v-if="viewData.loginname === $store.state.user.loginnmae">
@@ -89,3 +89,4 @@ const MOBILE_MEMBER_INFO = {
}
}
}
@@ -1,4 +1,4 @@
<!--#
<!--#
layout("/layouts/platform_h5.html"){
#-->
<div id="app" v-cloak>
@@ -33,7 +33,7 @@ layout("/layouts/platform_h5.html"){
<van-tag :type="item.isPayment?'primary':'danger'">{{item.isPayment?'已缴':'未缴'}}</van-tag>
</template>
<template #label>
<div class="custom-title">教职工类别{{item.personType}}</div>
<div class="custom-title">人员类型{{item.personType}}</div>
<div class="custom-title">在职状态:{{item.userState}}</div>
<div class="custom-title">所属工会:{{item.unionname}}</div>
<div class="custom-title">所属单位:{{item.unitname}}</div>
@@ -196,3 +196,4 @@ layout("/layouts/platform_h5.html"){
<!--#
}
#-->
@@ -35,7 +35,7 @@ const mine = {
<div class="info-list">
<!-- <div class="info-item">
<van-icon name="user-o"></van-icon>
<span class="item-label">教职工类别</span>
<span class="item-label">人员类型</span>
<span class="info-value">{{ $store.state.user.personType }}</span>
</div>-->
<div class="info-item">
@@ -43,11 +43,6 @@ const mine = {
<span class="item-label">在职状态</span>
<span class="info-value">{{ $store.state.user.userState }}</span>
</div>
<div class="info-item">
<van-icon name="user-o"></van-icon>
<span class="item-label">编制类别</span>
<span class="info-value">{{ $store.state.user.preparedBy }}</span>
</div>
<div class="info-item">
<van-icon name="wap-home-o"></van-icon>
<span class="item-label">所属单位</span>
@@ -374,3 +369,4 @@ const mine = {
`
}
}