first commit

This commit is contained in:
2026-09-09 09:14:28 +08:00
commit 5343198112
5199 changed files with 1052895 additions and 0 deletions
@@ -0,0 +1,246 @@
<template>
<div>
<el-table :data="records" style="width: 100%" row-key="id"
@expand-change="onExpand">
<el-table-column type="expand">
<template slot-scope="{row}">
<el-form class="demo-table-expand" v-loading="row.loading"
label-position="right" label-suffix="" label-width="120px">
<template v-if="row.info&&row.info.applyAudit">
<vi-title title="本人签字"></vi-title>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="row.info.applyAudit.data"
style="width: 300px; height: 100px"
:src="row.info.applyAudit.data"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</template>
<template v-if="row.info&&row.info.unionAudit">
<vi-title title="基层工会审核信息"></vi-title>
<el-row :gutter="20" v-if="row.info&&row.info.unionAudit">
<el-col :span="12">
<el-form-item label="审核人员">
<span>{{ row.info.unionAudit.username }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间">
<span>{{ row.info.unionAudit.auditTime |date }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="审核意见">
<span>{{ row.info.unionAudit.auditOpinion }}</span>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="row.info.unionAudit.auditSign"
style="width: 300px; height: 100px"
:src="row.info.unionAudit.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-col>
</el-row>
<el-row v-else type="flex" justify="center">
<el-form-item label="暂无审核信息">
</el-form-item>
</el-row>
</template>
<template v-if="row.info&&row.info.retirementAudit">
<vi-title title="离退休干部处审核信息"></vi-title>
<el-row :gutter="20" v-if="row.info&&row.info.retirementAudit">
<el-col :span="12">
<el-form-item label="审核人员">
<span>{{ row.info.retirementAudit.username }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间">
<span>{{ row.info.retirementAudit.auditTime |date }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="审核意见">
<span>{{ row.info.retirementAudit.auditOpinion }}</span>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="row.info.retirementAudit.auditSign"
style="width: 300px; height: 100px"
:src="row.info.retirementAudit.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-col>
</el-row>
<el-row v-else type="flex" justify="center">
<el-form-item label="暂无审核信息">
</el-form-item>
</el-row>
</template>
<template v-if="row.info&&row.info.fundAudit">
<vi-title title="校工会审核信息"></vi-title>
<el-row :gutter="20" v-if="row.info&&row.info.fundAudit">
<el-col :span="12">
<el-form-item label="审核人员">
<span>{{ row.info.fundAudit.username }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间">
<span>{{ row.info.fundAudit.auditTime|date }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="审核意见">
<span>{{ row.info.fundAudit.auditOpinion }}</span>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="row.info.fundAudit.auditSign"
style="width: 300px; height: 100px"
:src="row.info.fundAudit.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-col>
</el-row>
<el-row v-else type="flex" justify="center">
<el-form-item label="暂无审核信息">
</el-form-item>
</el-row>
</template>
</el-form>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="序号"
type="index"></el-table-column>
<el-table-column label="申请人" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column label="申请时间" prop="applyTime" header-align="center"
align="center">
<template scope="{row:{applyTime}}">
{{ applyTime|date }}
</template>
</el-table-column>
<el-table-column label="变更类型" prop="isJoin" header-align="center"
align="center">
<template scope="{row:{isJoin}}">
<el-tag type="success" v-if="isJoin">加入</el-tag>
<el-tag type="danger" v-else-if="!isJoin">退出</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" prop="stateId" header-align="center"
align="center">
<template scope="{row}">
<span :style="'color:'+row.stateColor">{{ row.stateName }}</span>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
module.exports = {
components: {},
props: {
records: {type: Array, default: []},
userid: {type: String, default: ""},
},
data() {
return {
loading: true,
}
},
filters: {
date(value) {
return value ? moment(value).format('YYYY-MM-DD') : ''
}
},
watch: {
userid(val) {
this.getAppRecords()
}
},
methods: {
async onExpand(row, expandedRows) {
if (!expandedRows.includes(row)) {
return
}
this.$set(row, "loading", true)
const resp = await $.get("/platform/aid/fund/common/findChangeApplyInfo", {id: row.id})
requestLaterFun(resp, (data) => {
this.$set(row, "info", data)
}, () => {
this.$set(row, "info", {})
}, () => {
this.$set(row, "loading", false)
})
},
async getAppRecords() {
this.loading = true
if (!this.userid && this.records.length) {
this.loading = false
return
} else if (!this.userid) {
this.records = []
this.loading = false
return
}
const resp = await $.get("/platform/aid/fund/common/appRecords", {userId: this.userid})
requestLaterFun(resp, (data) => {
this.records = data
}, () => {
this.$notify.error({
title: '错误',
message: '获取申请记录失败'
});
}, () => {
this.loading = false
})
},
},
}
</script>
<style>
.is-flex {
display: flex;
}
.is-flex .el-form-item {
width: 50%;
}
</style>
@@ -0,0 +1,95 @@
<template>
<div>
<el-table :data="records" style="width: 100%" row-key="id"
@expand-change="onExpand">
<el-table-column align="center" header-align="center" label="序号"
type="index"></el-table-column>
<el-table-column label="缴费年份" prop="year" header-align="center"
align="center"></el-table-column>
<el-table-column label="缴费金额" prop="money" header-align="center"
align="center">
<template scope="{row:{money}}">
<el-tag>{{ money }}</el-tag>
</template>
</el-table-column>
<el-table-column label="是否扣款" prop="payed" header-align="center"
align="center">
<template scope="{row:{payed}}">
<el-tag type="success" v-if="payed">已扣款</el-tag>
<el-tag type="info" v-else-if="!payed">未扣款</el-tag>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
module.exports = {
components: {},
props: {
records: {type: Array, default: []},
userid: {type: String, default: ""},
},
data() {
return {
loading: true,
}
},
filters: {
date(value) {
return value ? moment(value).format('YYYY-MM-DD') : ''
}
},
watch: {
userid(val) {
this.getPayRecords()
}
},
methods: {
async onExpand(row, expandedRows) {
if (!expandedRows.includes(row)) {
return
}
},
async getPayRecords() {
this.loading = true
if (!this.userid && this.records.length) {
this.loading = false
return
} else if (!this.userid) {
this.records = []
this.loading = false
return
}
const resp = await $.get("/platform/aid/fund/common/getPayRecords", {userId: this.userid})
requestLaterFun(resp, (data) => {
this.records = data
}, () => {
this.$notify.error({
title: '错误',
message: '获取申请记录失败'
});
}, () => {
this.loading = false
})
}
}
}
</script>
<style>
.is-flex {
display: flex;
}
.is-flex .el-form-item {
width: 50%;
}
</style>
@@ -0,0 +1,136 @@
<template>
<el-card shadow="never">
<div class="search">
<slot name="before"></slot>
<div class="search-item" v-if="has_year">
<div class="search-item-label">年度</div>
<div class="search-item-option">
<el-date-picker
v-model="value.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年" @change="doSearch">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-option" style="width: 100%">
<el-input placeholder="请输入内容" clearable v-model="value.searchKeyword"
@keyup.enter.native="doSearch" style="width: 100%">
<el-select v-model="value.searchName" slot="prepend" style="width:100px;">
<el-option label="姓名" value="username"></el-option>
<el-option label="工号" value="loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">在职状态</div>
<div class="search-item-option">
<dict-select v-model="value.userState" style="width: 100%" clearable
placeholder="在职状态"
code="userState"></dict-select>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">人员类型</div>
<div class="search-item-option">
<dict-select v-model="value.personType" style="width: 100%" clearable
placeholder="人员类型"
code="UserType"></dict-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属工会</div>
<div class="search-item-option">
<el-select v-model="value.union" style="width: 100%" filterable clearable
placeholder="请选择" @change="getUnits">
<el-option
v-for="item in unions"
:key="item.id"
:label="item.unionname"
: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="value.unit" style="width: 100%" filterable clearable
placeholder="请选择">
<el-option
v-for="item in units"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<slot name="rear"></slot>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
</template>
<script>
module.exports = {
components: {
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
},
props: {
value: {type: Object},
has_year: {
type: Boolean,
default: false
},
},
model: {
prop: 'value',
event: 'search'
},
data() {
return {
searchMore: false,
units: [],
unions: [],
}
},
methods: {
doSearch() {
this.$emit("search", this.value)
},
async getUnits() {
this.$set(this.value, "unit", "")
this.units = await getUnits(this.value.union)
},
},
async created() {
this.getUnits()
this.unions = await getUnions()
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,132 @@
<template>
<div class="aidFund_view">
<el-form label-suffix="" label-position="left" style="padding: 20px 0">
<vi-title title="基本资料"></vi-title>
<el-row gutter="20">
<el-col :span="8">
<el-form-item prop="username" label="姓&emsp;&emsp;名">
{{ viewData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="loginname" label="工&emsp;&emsp;号">
{{ viewData.loginname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="sex" label="性&emsp;&emsp;别">
{{ viewData.sex }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="sex" label="出生日期">
{{ viewData.sex }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="nation" label="民&emsp;&emsp;族">
{{ viewData.nation }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="position" label="职&emsp;&emsp;务">
{{ viewData.position }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="jobTitle" label="职&emsp;&emsp;称">
{{ viewData.jobTitle }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="political" label="政治面貌">
{{ viewData.political }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="mobile" label="联系方式">
{{ viewData.mobile }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="unitname" label="所在部门">
{{ viewData.unitname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="unionname" label="所在工会">
{{ viewData.unionname }}
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
module.exports = {
props: {
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '审核'
},
userid: {
type: String,
default: ''
},
panes: {
type: Array,
default: []
},
},
data() {
return {
aidFundName: "1",
viewData: {},
loading: true,
}
},
watch: {
userid(val) {
this.getInfo()
}
},
methods: {
hasPane(name) {
if (!this.handle) {
return true
}
return this.panes.includes(name)
},
async getInfo() {
this.loading = true
const {data, code, msg} = await $.get("/platform/aid/fund/common/findOneUser", {userId:this.userid})
this.loading = false
if (data) {
this.aidFundName = this.handle ? "999" : "1"
this.viewData = data
} else {
this.viewData = {}
this.$message({
message: "获取信息失败",
type: 'error'
});
}
},
},
}
</script>
<style>
.aidFund_view .el-timeline {
padding-left: 0;
}
</style>