Files
UNION_HUTB/target/classes/views/platform/diseaseaid/aidfund/foundation.html
T
2026-09-09 09:14:28 +08:00

473 lines
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.aidFund_edit {
padding-top: 20px;
padding-left: 50px;
}
.aidFund_view {
padding-top: 20px;
padding-left: 50px;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0">
<template>
<search v-model="pageForm" @search="doSearch">
<template #before>
<div class="search-item">
<div class="search-item-label">年度:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.applyYear"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
</template>
</search>
<el-card shadow="never" class="mt10">
<table-tool label="申请列表" :app="this">
<template #func>
<el-button type="primary" plain icon="el-icon-download" size="small" @click="exportMember">
导出审核名单
</el-button>
<el-radio-group class="ml5" v-model="pageForm.isAudit" @change="doSearch" size="small"
>
<el-radio-button :label="false">全部</el-radio-button>
<el-radio-button :label="true">待我审核</el-radio-button>
</el-radio-group>
<el-button class="ml5" icon="el-icon-s-promotion" type="primary" size="small" plain
@click="batchReview">批量审核
</el-button>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table"
@selection-change="handleSelectionChange" ref="multipleTable">
<el-table-column :reserve-selection="true"
type="selection"
width="55" disabled>
</el-table-column>
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
<template scope="{row}" v-else-if="column.prop=='isJoin'">
<el-tag v-if="row.isJoin" type="success">加入基金</el-tag>
<el-tag type="danger" v-else-if="!row.isJoin">退出基金</el-tag>
</template>
<template scope="{row}" v-else-if="column.prop=='source'">
<el-tag v-if="row.source==0">个人申请</el-tag>
<el-tag type="info" v-else-if="row.source==1">批量加入</el-tag>
</template>
<template scope="{row}" v-else-if="column.prop=='applyTime'">
{{row.applyTime|date}}
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button plain size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{type:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :disabled="row.stateId > 3020"
:command="{type:'Review',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #edit>
<div class="aidFund_edit">
<el-tabs v-model="aidFundName">
<el-tab-pane label="个人信息" name="1">
<info ref="info" :userid="info.userId"></info>
</el-tab-pane>
<el-tab-pane label="变更记录" name="2">
<app_record :userid="info.userId" ref="app_record"></app_record>
</el-tab-pane>
<el-tab-pane label="分工会审核" name="3" v-if="viewData&&viewData.una">
<vi-title title="审核信息"></vi-title>
<el-form label-suffix="" label-position="left" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="姓&emsp;&emsp;名">
<span>{{ viewData.una.username }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="auditTime" label="审核时间">
<span>{{ viewData.una.auditTime|date }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="auditOpinion" label="审核意见">
<span>{{ viewData.una.auditOpinion }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="离退休干部处审核" name="3" v-if="viewData&&viewData.rea">
<vi-title title="审核信息"></vi-title>
<el-form label-suffix="" label-position="left" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="姓&emsp;&emsp;名">
<span>{{ viewData.rea.username }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="auditTime" label="审核时间">
<span>{{ viewData.rea.auditTime|date }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="auditOpinion" label="审核意见">
<span>{{ viewData.rea.auditOpinion }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="基金会审核" name="4">
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<template #view>
<div class="aidFund_view">
<el-tabs v-model="aidFundName">
<el-tab-pane label="个人信息" name="1">
<info ref="info" :userid="info.userId"></info>
</el-tab-pane>
<el-tab-pane label="变更记录" name="2">
<app_record :userid="info.userId" ref="app_record"></app_record>
</el-tab-pane>
</el-tabs>
</div>
</template>
</guava>
<el-dialog
title="批量审核"
:visible.sync="changeVisible"
width="60%">
<vi-title title="审核人员"></vi-title>
<el-form :model="formData" ref="form" :rules="formRules"
label-width="100px">
<el-table :data="selection" size="small" header-align="center" style="width: 100%">
<el-table-column prop="loginname" label="工号" header-align="center" align="center">
</el-table-column>
<el-table-column prop="username" label="姓名" header-align="center" align="center">
</el-table-column>
<el-table-column prop="sex" label="性别" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="电话" header-align="center" align="center"></el-table-column>
<el-table-column prop="unitname" label="单位" header-align="center" align="center"></el-table-column>
<el-table-column prop="isJoin" label="申请类型" header-align="center" align="center">
<template scope="{row}">
<el-tag v-if="row.isJoin" type="success">加入基金</el-tag>
<el-tag type="danger" v-else-if="!row.isJoin">退出基金</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" header-align="center" align="center">
<template scope="{row}">
<span :style="'color:'+row.stateColor">{{row.stateName}}</span>
</template>
</el-table-column>
</el-table>
<vi-title title="审核意见"></vi-title>
<el-form-item prop="auditOpinion">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="changeVisible=false">返回</el-button>
<el-button type="primary" @click="doSubmit(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
selection: [],
aidFundName: "1",
viewData: {
una: {
username: ""
}
},
info: {},
unions: [],
units: [],
changeSubmitLoading: false,
changeVisible: false,
subDis: false,
subLoading1: false,
subLoading2: false,
pageForm: {
searchName: 'username',
applyYear: new Date().getFullYear() + "",
isAudit: true,
unionid: '',
union: '',
unit: '',
personType: '',
userState: ''
},
tableColumns: [
{prop: 'loginname', label: '工号'},
{prop: 'username', label: '姓名'},
{prop: 'sex', label: '性别'},
{prop: 'mobile', label: '电话'},
{prop: 'unionname', label: '工会', sortable: true},
{prop: 'unitname', label: '单位', sortable: true},
{prop: 'isJoin', label: '申请类型', sortable: true},
{prop: 'source', label: '申请来源', sortable: true},
{prop: 'stateId', label: '状态', sortable: true},
{prop: 'applyTime', label: '申请时间', sortable: true}
],
formRules: {
auditOpinion: [{required: true, message: '请填写审核理由', trigger: ['blur', 'change']}],
}
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'info': httpVueLoader('/components/diseaseaid/aidfund/info.vue'),
'app_record': httpVueLoader('/components/diseaseaid/aidfund/AppRecord.vue'),
'search': httpVueLoader('/components/diseaseaid/aidfund/Search.vue?v=1.0.0'),
},
methods: {
exportMember() {
const {applyYear, isAudit, userState, personType, union, unit} = this.pageForm
location.href = loc() + '/exportMember?applyYear=' + applyYear
+ "&isAudit=" + isAudit
+ "&userState=" + userState
+ "&personType=" + personType
+ "&union=" + union
+ "&unit=" + unit
},
handleSelectionChange(val) {
this.selection = val
},
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'Review') {
this.openReview(data)
}
},
batchReview() {
if (!this.selection.length) {
this.$notify({
title: '警告',
message: '请先勾选需要审核的用户!',
type: 'warning'
});
return
}
this.changeVisible = true
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
doSubmit() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.subLoading2 = true
const resp = await $.post(loc() + "/doSubmits", {
id: JSON.stringify(this.selection.map(v => v.id)),
auditOpinion: this.formData.auditOpinion
})
requestLaterMsgFun(this, resp, () => {
this.pageData()
this.$refs.multipleTable.clearSelection();
}, null, () => {
this.changeVisible = false
this.subLoading2 = false
})
}
})
},
async openReview(row) {
this.info = row
const {data, code, msg} = await $.get("/platform/aid/fund/common/findOne", {id: row.id})
if (data) {
this.viewData = data
} else {
this.viewData = {}
this.$message({
message: "获取信息失败",
type: 'error'
});
}
this.formData = {
id: row.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.aidFundName = "4"
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
async openView(row) {
this.info = row
this.$refs.guava.view()
},
pageData() {
sublime.showLoadingbar();
this.tableLoading = true
this.pageForm.date = JSON.stringify(this.pageForm.dateRange)
$.post(loc() + "/pageData", this.pageForm, (data) => {
sublime.closeLoadingbar();
this.tableLoading = false
if (data.code == 0) {
this.tableData = data.data.list;
this.pageForm.totalCount = data.data.totalCount;
} else {
this.$message.error(data.msg);
}
}, "json");
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->