first commit

This commit is contained in:
2026-09-23 09:38:39 +08:00
commit 98a8b8cace
6257 changed files with 1266718 additions and 0 deletions
@@ -0,0 +1,234 @@
<template>
<div>
<el-table :data="records" row-key="id" style="width: 100%"
@expand-change="onExpand">
<el-table-column type="expand">
<template slot-scope="{row}">
<el-form v-loading="row.loading" class="demo-table-expand"
label-position="right" label-suffix=":" label-width="120px">
<template v-if="row.info&&row.info.unionAudit">
<vi-title title="部门工会审核信息"></vi-title>
<el-row v-if="row.info&&row.info.unionAudit" :gutter="20">
<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-col>
<el-col :span="24" v-if="row.info.unionAudit.auditSign">
<el-form-item label="签字">
<img :src="row.info.unionAudit.auditSign" style="width: 300px;height: 75px;">
</el-form-item>
</el-col>
</el-row>
<el-row v-else justify="center" type="flex">
<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 v-if="row.info&&row.info.retirementAudit" :gutter="20">
<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-col>
</el-row>
<el-row v-else justify="center" type="flex">
<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 v-if="row.info&&row.info.fundAudit" :gutter="20">
<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-col>
<el-col :span="24" v-if="row.info.fundAudit.auditSign">
<el-form-item label="签字">
<img :src="row.info.fundAudit.auditSign" style="width: 300px;height: 75px;">
</el-form-item>
</el-col>
</el-row>
<el-row v-else justify="center" type="flex">
<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 align="center" header-align="center" label="申请人"
prop="username"></el-table-column>
<el-table-column align="center" header-align="center" label="申请时间"
prop="applyTime">
<template scope="{row:{applyTime}}">
{{ applyTime|date }}
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="变更类型"
prop="isJoin">
<template scope="{row:{isJoin}}">
<el-tag v-if="isJoin" type="success">加入</el-tag>
<el-tag v-else-if="!isJoin" type="danger">退出</el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="状态"
prop="stateId">
<template scope="{row}">
<span :style="'color:'+row.stateColor">{{ row.stateName }}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作">
<template scope="{row}">
<el-button type="primary" @click="exportApply(row.id)" size="mini">导出申请表</el-button>
</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
})
},
exportApply(id) {
window.open('/platform/aid/fund/common/exportApply?id=' + id)
}
},
}
</script>
<style>
.is-flex {
display: flex;
}
.is-flex .el-form-item {
width: 50%;
}
</style>
@@ -0,0 +1,95 @@
<template>
<div>
<el-table :data="records" row-key="id" style="width: 100%"
@expand-change="onExpand">
<el-table-column align="center" header-align="center" label="序号"
type="index"></el-table-column>
<el-table-column align="center" header-align="center" label="缴费年份"
prop="year"></el-table-column>
<el-table-column align="center" header-align="center" label="缴费金额"
prop="money">
<template scope="{row:{money}}">
<el-tag>{{ money }}</el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="是否扣款"
prop="payed">
<template scope="{row:{payed}}">
<el-tag v-if="payed" type="success">已扣款</el-tag>
<el-tag v-else-if="!payed" type="info">未扣款</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,189 @@
<template>
<el-card shadow="never">
<div class="search">
<slot name="before"></slot>
<div v-if="has_year" class="search-item">
<div class="search-item-label">年度:</div>
<div class="search-item-option">
<el-date-picker
v-model="value.year"
placeholder="选择年"
style="width: 100%" type="year"
value-format="yyyy" @change="doSearch">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-option" style="width: 100%">
<el-input v-model="value.searchKeyword" clearable placeholder="请输入内容"
style="width: 100%" @keyup.enter.native="doSearch">
<el-select slot="prepend" v-model="value.searchName" 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.personType" clearable code="UserType"
placeholder="人员类型"
style="width: 100%" @change="doSearch"></dict-select>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select v-model="value.union" clearable filterable placeholder="请选择"
style="width: 100%" @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" clearable filterable placeholder="请选择"
style="width: 100%" @change="doSearch">
<el-option
v-for="item in units"
: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">
<dict-select v-model="value.userState" clearable code="userState"
placeholder="在职状态"
style="width: 100%" @change="doSearch"></dict-select>
</div>
</div>
<div v-if="is_join" class="search-item">
<div class="search-item-label">变更类型:</div>
<div class="search-item-option">
<el-select v-model="value.isJoin" clearable filterable placeholder="请选择"
style="width: 100%" @change="doSearch">
<el-option
v-for="item in changeType"
: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 icon="el-icon-search" type="primary" @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
},
is_join: {
type: Boolean,
default: false
},
judgment_hgh: {type: Boolean, default: false},
ltxgbc: {type: Boolean, default: false},
unionid: {type: String, default: ""},
},
model: {
prop: 'value',
event: 'search'
},
data() {
return {
searchMore: false,
units: [],
unions: [],
JoinType: [
{
id: "1",
name: '加入基金'
},
{
id: "0",
name: '退出基金'
}
],
changeType: [
{id: 1, name: '会员新增'},
{id: 2, name: '工号变更'},
{id: 3, name: '会员退休'},
{id: 4, name: '自愿退出'},
{id: 5, name: '会员去世'},
{id: 6, name: '离职'}
]
}
},
methods: {
doSearch() {
this.$emit("search", this.value)
},
async getUnits() {
this.$set(this.value, "unit", "")
this.units = await getUnits(this.value.union)
},
},
async created() {
// if (!this.judgment_hgh) {
// this.unions = await getUnionList(this.unionid)
// this.value.union = this.unions[0].id
// } else {
// this.unions = await getUnionList()
// }
this.unions = await getUnionList()
this.getUnits()
this.doSearch()
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,142 @@
<template>
<div class="aidFund_view">
<el-form label-position="left" label-suffix=":" style="padding: 20px 0">
<vi-title title="基本资料"></vi-title>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="姓&emsp;&emsp;名" prop="username">
{{ viewData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工&emsp;&emsp;号" prop="loginname">
{{ viewData.loginname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性&emsp;&emsp;别" prop="sex">
{{ viewData.sex }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出生年月" prop="birthday">
{{ viewData.birthday }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工作时间" prop="workDate">
{{ viewData.workDate }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入校时间" prop="schoolTime">
{{ viewData.schoolTime }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="民&emsp;&emsp;族" prop="nation">
{{ viewData.nation }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职&emsp;&emsp;务" prop="position">
{{ viewData.position }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职&emsp;&emsp;称" prop="jobTitle">
{{ viewData.jobTitle }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="政治面貌" prop="political">
{{ viewData.political }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系方式" prop="mobile">
{{ viewData.mobile }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在部门" prop="unitname">
{{ viewData.unitname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在工会" prop="unionname">
{{ 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>