first commit
This commit is contained in:
@@ -0,0 +1,342 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.btn-group {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.el-date-editor.el-input, .el-date-editor.el-input__inner {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.el-date-editor .el-range-separator {
|
||||
width: 8%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<div style="padding-right: 10px">
|
||||
<el-card shadow="never" style="position:relative;">
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend" style="width: 80px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-select clearable filterable placeholder="请选择社团"
|
||||
v-model="pageForm.clubid">
|
||||
<el-option
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in clubOptions">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<dict-select clearable code="UserType" placeholder="请选择人员类型"
|
||||
v-model="pageForm.personType"></dict-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<dict-select clearable code="UserState" placeholder="请选择在职状态"
|
||||
v-model="pageForm.userState"></dict-select>
|
||||
</div>
|
||||
<div class="mt10">
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-date-picker
|
||||
end-placeholder="结束日期"
|
||||
format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
type="daterange"
|
||||
v-model="pageForm.birthday"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-select clearable filterable placeholder="请选择性别"
|
||||
v-model="pageForm.sex">
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-select clearable filterable placeholder="请选择所属单位"
|
||||
v-model="pageForm.unitid">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: absolute;right: 20px;top: 20px;">
|
||||
<template>
|
||||
<div class="pull-right offscreen-right">
|
||||
<el-radio-group @change="(val) => doSearch()" v-model="pageForm.radioType">
|
||||
<el-radio-button label="1">全部</el-radio-button>
|
||||
<el-radio-button label="2">已审核</el-radio-button>
|
||||
<el-radio-button label="3">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<div style="text-align: right">
|
||||
<el-button :disabled="subDis" @click="check(true)" icon="el-icon-check" plain type="success">同意
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" @click="check(false)" icon="el-icon-close" plain type="danger">拒绝
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table :data="tableData" :key="tabKey" @selection-change="handleSelectionChange"
|
||||
@sort-change="pageOrder"
|
||||
ref="multipleTable"
|
||||
row-key="id"
|
||||
style="width: 100%" v-loading="tabloading">
|
||||
<el-table-column :reserve-selection="true" v-if="pageForm.radioType !== '2'"
|
||||
:selectable="(row, index) => {return row.status === 3}"
|
||||
type="selection"
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="社团编码" prop="code" show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="社团名称" show-overflow-tooltip sortable
|
||||
prop="clubname"></el-table-column>
|
||||
<el-table-column width="100" align="center" header-align="center" label="工号" sortable
|
||||
prop="loginname"></el-table-column>
|
||||
<el-table-column width="100" align="center" header-align="center" label="姓名" sortable
|
||||
prop="username"></el-table-column>
|
||||
<el-table-column width="80" align="center" header-align="center" label="性别" prop="sex" sortable
|
||||
></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="出生年月" prop="birthday" sortable>
|
||||
</el-table-column>
|
||||
<el-table-column width="60" align="center" header-align="center" label="年龄"
|
||||
prop="birthday">
|
||||
<template scope="scope">
|
||||
<span>{{getAge(scope.row)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="120" align="center" header-align="center" label="电话"
|
||||
prop="mobile"></el-table-column>
|
||||
<el-table-column width="80" align="center" header-align="center" label="是否会员"
|
||||
prop="status">
|
||||
<template scope="scope">
|
||||
<span v-if="scope.row.status != 5">否</span>
|
||||
<span v-if="scope.row.status === 5" style="color: #236eb4">是</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="人员类型" show-overflow-tooltip
|
||||
prop="rylx"></el-table-column>
|
||||
<el-table-column width="100" align="center" header-align="center" label="在职状态"
|
||||
prop="userstate"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="所属单位" prop="unitname"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="join_time"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<!--<el-table-column align="center" header-align="center" label="审核时间" prop="join_time"
|
||||
show-overflow-tooltip>
|
||||
<template scope="scope">
|
||||
{{ formatAuditTime(scope.row) }}
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="是否缴费" prop="isjf"
|
||||
width="80">
|
||||
<template scope="scope">
|
||||
<span class="text-success" v-if="scope.row.isjf">已缴费</span>
|
||||
<span class="text-danger" v-else>未缴费</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="审核状态"
|
||||
prop="status">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status==1" type="primary">待社团审核</el-tag>
|
||||
<el-tag v-if="scope.row.status==2" type="danger">社团拒绝</el-tag>
|
||||
<el-tag v-if="scope.row.status==3" type="primary">待校工会审核</el-tag>
|
||||
<el-tag v-if="scope.row.status==4" type="danger">校工会拒绝</el-tag>
|
||||
<el-tag v-if="scope.row.status==5" type="success">审核通过</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-size="pageForm.pageSize"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:total="pageForm.totalCount"
|
||||
@current-change="pageNumberChange"
|
||||
@size-change="pageSizeChange"
|
||||
layout="total, sizes, prev, pager, next">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div>
|
||||
</guava>
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
tabKey: '',
|
||||
multipleSelection: [],
|
||||
clubOptions: [],
|
||||
tabloading: false,
|
||||
formData: {},
|
||||
tableData: [],
|
||||
pageForm: {
|
||||
searchName: "u.username",
|
||||
searchKeyword: "",
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
pageOrderName: "",
|
||||
pageOrderBy: "",
|
||||
radioType: 3,
|
||||
birthday: [],
|
||||
},
|
||||
formRules: {
|
||||
code: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
subDis: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
},
|
||||
methods: {
|
||||
formatAuditTime(row) {
|
||||
if (!row.auditlist) {
|
||||
return ''
|
||||
}
|
||||
const auditArray = JSON.parse(row.auditlist)
|
||||
const audit = auditArray.find(o => o.auditType === 'school')
|
||||
return audit === undefined ? '' : audit.auditTime
|
||||
},
|
||||
getAge(row) {
|
||||
if (row.birthday === null || row.birthday === undefined) {
|
||||
return
|
||||
}
|
||||
const birthdayTime = new Date(row.birthday).getTime()
|
||||
const nowTime = new Date().getTime()
|
||||
return Math.ceil((nowTime - birthdayTime) / 31536000000)
|
||||
},
|
||||
check(flag) {
|
||||
if (!this.multipleSelection.length) {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
message: '请先勾选需要进行审核的人员!',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.$confirm('您选择了' + this.multipleSelection.length + '个人,请确定是否' + (flag ? '同意?' : '拒绝?'), '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: (a, b) => {
|
||||
if ("confirm" === a) {
|
||||
const ids = this.multipleSelection.map(v => {
|
||||
return v.id
|
||||
})
|
||||
this.subDis = true
|
||||
$.post(base + "/platform/sys/club/sh/check", {ids: JSON.stringify(ids), flag: flag, type: 2}, (data) => {
|
||||
this.subDis = false
|
||||
if (data.code === 0) {
|
||||
this.$message({
|
||||
message: '提交成功',
|
||||
type: 'success'
|
||||
});
|
||||
this.multipleSelection = []
|
||||
this.$refs.multipleTable.clearSelection();
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
doSearch() {
|
||||
// this.tabKey = new Date().getTime()
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
}
|
||||
,
|
||||
pageOrder(column) {//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.pageData();
|
||||
}
|
||||
,
|
||||
pageNumberChange(val) {//页码更新操作
|
||||
this.pageForm.pageNumber = val;
|
||||
this.pageData();
|
||||
}
|
||||
,
|
||||
pageSizeChange(val) {//分页大小更新操作
|
||||
this.pageForm.pageSize = val;
|
||||
this.pageData();
|
||||
}
|
||||
,
|
||||
pageData() {//加载分页数据
|
||||
sublime.showLoadingbar();//显示loading
|
||||
this.tabloading = true
|
||||
this.pageForm.type = 2
|
||||
this.pageForm.birthday = this.pageForm.birthday.length > 0 ? JSON.stringify(this.pageForm.birthday) : []
|
||||
$.post(base + "/platform/sys/club/sh/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();//关闭loading
|
||||
this.tabloading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
async getMyMangeClub() {
|
||||
const {data} = await $.get("/platform/sys/club/users/getMyMangeClub")
|
||||
return data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.clubOptions = await this.getMyMangeClub()
|
||||
this.pageData();
|
||||
this.units = await getUnits()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,338 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.el-date-editor.el-input, .el-date-editor.el-input__inner {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.el-date-editor .el-range-separator {
|
||||
width: 8%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<div style="padding-right: 10px">
|
||||
|
||||
<el-card shadow="never" style="position:relative;">
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend" style="width: 80px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-select clearable filterable placeholder="请选择协会"
|
||||
v-model="pageForm.clubid">
|
||||
<el-option
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in clubOptions">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<dict-select clearable code="UserType" placeholder="请选择人员类型"
|
||||
v-model="pageForm.personType"></dict-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<dict-select clearable code="UserState" placeholder="请选择在职状态"
|
||||
v-model="pageForm.userState"></dict-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-select clearable filterable placeholder="请选择性别"
|
||||
v-model="pageForm.sex">
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="d-search-item btn-group tool-button">
|
||||
<el-select clearable filterable placeholder="请选择所属单位"
|
||||
v-model="pageForm.unitid">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="审核列表" ref="tableTool">
|
||||
<template #func>
|
||||
<el-radio-group @change="(val) => doSearch()" v-model="pageForm.radioType">
|
||||
<el-radio-button label="1">全部</el-radio-button>
|
||||
<el-radio-button label="2">已审核</el-radio-button>
|
||||
<el-radio-button label="3">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder"
|
||||
style="width: 100%" v-loading="tabloading">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--<el-table-column align="center" header-align="center" label="协会编码" prop="code" show-overflow-tooltip
|
||||
sortable></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="协会名称" show-overflow-tooltip sortable
|
||||
prop="clubname"></el-table-column>
|
||||
<el-table-column width="100" align="center" header-align="center" label="工号" sortable
|
||||
prop="loginname"></el-table-column>
|
||||
<el-table-column width="100" align="center" header-align="center" label="姓名" sortable
|
||||
prop="username"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="性别" prop="sex" sortable width="80">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" label="出生年月" prop="birthday" sortable>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column width="60" align="center" header-align="center" label="年龄"-->
|
||||
<!-- prop="birthday">-->
|
||||
<!-- <template scope="scope">-->
|
||||
<!-- <span>{{getAge(scope.row)}}</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column width="120" align="center" header-align="center" label="电话"
|
||||
prop="mobile"></el-table-column>
|
||||
<!--<el-table-column width="80" align="center" header-align="center" label="是否会员"
|
||||
prop="status">
|
||||
<template scope="scope">
|
||||
<span v-if="scope.row.status != 5">否</span>
|
||||
<span v-if="scope.row.status === 5" style="color: #236eb4">是</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
<!--<el-table-column align="center" header-align="center" label="人员类型" show-overflow-tooltip
|
||||
prop="rylx"></el-table-column>
|
||||
<el-table-column width="100" align="center" header-align="center" label="在职状态"
|
||||
prop="userstate"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="所属单位" prop="unitname"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="join_time"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<!--<el-table-column align="center" header-align="center" label="审核时间" prop="join_time"
|
||||
show-overflow-tooltip>
|
||||
<template scope="scope">
|
||||
{{ formatAuditTime(scope.row) }}
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="审核状态"
|
||||
prop="status">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status==1" type="primary">待协会审核</el-tag>
|
||||
<el-tag v-if="scope.row.status==2" type="danger">协会拒绝</el-tag>
|
||||
<el-tag v-if="scope.row.status==3" type="primary">待校工会审核</el-tag>
|
||||
<el-tag v-if="scope.row.status==4" type="danger">校工会拒绝</el-tag>
|
||||
<el-tag v-if="scope.row.status==5" type="success">审核通过</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="pageForm.radioType == 3" @click="openAudit(row)" size="mini" type="primary">审核</el-button>
|
||||
<!-- <el-button type="primary" size="mini" @click="doExportApply(row)">导出申请表</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-size="pageForm.pageSize"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:total="pageForm.totalCount"
|
||||
@current-change="pageNumberChange"
|
||||
@size-change="pageSizeChange"
|
||||
layout="total, sizes, prev, pager, next">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div></template>
|
||||
<template #edit>
|
||||
<club-user-apply-info ref="clubUserApplyInfo" handle label="协会审核">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0" label-width="120px">
|
||||
<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="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <el-form-item label="是否缴费" prop="isjf">-->
|
||||
<!-- <el-radio :label="true" border v-model="formData.isjf">已缴费</el-radio>-->
|
||||
<!-- <el-radio :label="false" border v-model="formData.isjf">未缴费</el-radio>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<el-form-item prop="auditOpinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item prop="auditSign" label="签  字">-->
|
||||
<!-- <sign prefix="club" :qz.sync="formData.auditSign"></sign>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(false)">拒绝</el-button>
|
||||
<el-button type="primary" @click="doReview(true)">通过</el-button>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</club-user-apply-info>
|
||||
</template>
|
||||
<template #view>
|
||||
<club-user-apply-info ref="applyInfo"></club-user-apply-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
tabKey: '',
|
||||
clubOptions: [],
|
||||
tabloading: false,
|
||||
formData: {
|
||||
sign: ''
|
||||
},
|
||||
tableData: [],
|
||||
pageForm: {
|
||||
searchName: "u.username",
|
||||
searchKeyword: "",
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
pageOrderName: "",
|
||||
pageOrderBy: "",
|
||||
radioType: 3,
|
||||
birthday: [],
|
||||
},
|
||||
formRules: {
|
||||
isjf: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
auditSign:[{required: true, message: '必填', trigger: ['blur', 'change']}]
|
||||
},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'club-user-apply-info': httpVueLoader('/components/club/clubUserApplyInfo.vue?v=1.0.1'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
},
|
||||
methods: {
|
||||
doExportApply(row){
|
||||
location.href = '/platform/sys/club/clubInfoManage/exportInfo?id=' + row.id
|
||||
},
|
||||
getAge(row) {
|
||||
if (row.birthday === null || row.birthday === undefined) {
|
||||
return
|
||||
}
|
||||
const birthdayTime = new Date(row.birthday).getTime()
|
||||
const nowTime = new Date().getTime()
|
||||
return Math.ceil((nowTime - birthdayTime) / 31536000000)
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.applyInfo.getInfo(row.id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openAudit(row) {
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD')
|
||||
}
|
||||
this.$refs.clubUserApplyInfo.getInfo(row.id)
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
this.$refs.guava.edit()
|
||||
},
|
||||
async doReview(flag) {
|
||||
const valid = await this.$refs.form.validate()
|
||||
if (!valid) return
|
||||
this.formData.flag = flag
|
||||
const resp = await $.post(base + "/platform/sys/club/sh/check", this.formData)
|
||||
if(resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
this.$message({message: resp.msg, type: 'success'})
|
||||
} else {
|
||||
this.$message({message: resp.msg, type: 'warning'})
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
pageOrder(column) {//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.pageData();
|
||||
},
|
||||
pageNumberChange(val) {//页码更新操作
|
||||
this.pageForm.pageNumber = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageSizeChange(val) {//分页大小更新操作
|
||||
this.pageForm.pageSize = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageData() {//加载分页数据
|
||||
sublime.showLoadingbar();//显示loading
|
||||
this.tabloading = true
|
||||
this.pageForm.type = 1
|
||||
$.post(base + "/platform/sys/club/sh/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();//关闭loading
|
||||
this.tabloading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
async getMyMangeClub() {
|
||||
const {data} = await $.get("/platform/sys/club/users/getMyMangeClub")
|
||||
return data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.clubOptions = await this.getMyMangeClub()
|
||||
this.pageData();
|
||||
this.units = await getUnits()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,802 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.w-e-text-container {
|
||||
height: 200px !important;
|
||||
}
|
||||
|
||||
input[type="file"] {
|
||||
display: none
|
||||
}
|
||||
|
||||
.el-descriptions :not(.is-bordered) .el-descriptions-item__cell {
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
.el_tab {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.el-table-container {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.el-table-container {
|
||||
padding-top: 6px;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.el-tabs__header {
|
||||
margin: 0 0 6px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.el-tabs--card > .el-tabs__header .el-tabs__item {
|
||||
border-bottom: none;
|
||||
font-weight: bold;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.el-descriptions-item__cell {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.el-form--label-top .el-form-item__label {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.el-form-item__label {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.el-form-item {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
#join_tab .el-tabs__header {
|
||||
margin: 0 0 18px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<guava ref="guava">
|
||||
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 120px;">
|
||||
<el-option label="协会名称" value="club.name"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-tabs class="el-table-container el_tab" v-model="activeName" stretch @tab-click="handleClick"
|
||||
type="card">
|
||||
<el-tab-pane :label="'可加入(申请)协会' + noJoinCount" name="false">
|
||||
</el-tab-pane>
|
||||
<el-tab-pane :label="'已加入(申请)协会' + hasJoinCount" name="true">
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder">
|
||||
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="协会编码" sortable
|
||||
prop="code"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="协会名称" prop="name"
|
||||
show-overflow-tooltip width="200px"></el-table-column>
|
||||
|
||||
<!-- <el-table-column align="center" header-align="center" label="成立时间" prop="name">-->
|
||||
<!-- <template scope="scope">-->
|
||||
<!-- <span>{{moment(scope.row.create_time).format('YYYY-MM-DD')}}</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
|
||||
<!-- <el-table-column align="center" header-align="center" label="会长" prop="hz"-->
|
||||
<!-- show-overflow-tooltip></el-table-column>-->
|
||||
|
||||
<el-table-column align="center" sortable header-align="center" label="联系人" show-overflow-tooltip
|
||||
prop="fzrname"></el-table-column>
|
||||
|
||||
<!-- <el-table-column align="center" header-align="center" label="联系人电话" show-overflow-tooltip-->
|
||||
<!-- prop="concatpersonmobile"></el-table-column>-->
|
||||
|
||||
<!--<el-table-column align="center" sortable header-align="center" label="联系人单位"
|
||||
show-overflow-tooltip
|
||||
prop="fzr_unit_name"></el-table-column>-->
|
||||
|
||||
<el-table-column align="center" sortable header-align="center" label="当前人数"
|
||||
show-overflow-tooltip
|
||||
prop="cynum"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="在职人数" show-overflow-tooltip
|
||||
prop="worknum"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="退休人数" show-overflow-tooltip
|
||||
prop="outnum"></el-table-column>
|
||||
|
||||
<el-table-column align="center" v-if="activeName=='true'" header-align="center" label="申请状态"
|
||||
sortable>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status==1" type="primary">待协会审核</el-tag>
|
||||
<el-tag v-if="scope.row.status==2" type="danger">协会拒绝</el-tag>
|
||||
<el-tag v-if="scope.row.status==3" type="primary">待校工会审核</el-tag>
|
||||
<el-tag v-if="scope.row.status==4" type="danger">校工会拒绝</el-tag>
|
||||
<el-tag v-if="scope.row.status==5" type="success">审核通过</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作" width="350px">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="openDetail(scope.row, 'view')">查看
|
||||
</el-button>
|
||||
<!-- <el-button type="primary" size="mini" v-if="activeName=='true'" @click="doExportApply(scope.row)">导出申请表</el-button>-->
|
||||
<!-- <el-button size="mini" v-if="activeName=='false'" type="primary"-->
|
||||
<!-- @click="openDetail(scope.row, 'join')">-->
|
||||
<!-- 申请加入-->
|
||||
<!-- </el-button>-->
|
||||
<el-button size="mini" type="primary" @click="openApply(scope.row)" v-if="activeName=='false'">申请</el-button>
|
||||
<el-button size="mini" v-if="activeName=='true'&&scope.row.status==1" type="danger"
|
||||
@click="doRevocation(scope.row.id)">
|
||||
撤销申请
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<el-tabs v-model="infoActive" id="join_tab">
|
||||
<el-tab-pane name="first" label="协会信息">
|
||||
<el-descriptions class="margin-top" title="" :column="3" border>
|
||||
<el-descriptions-item :span="3">
|
||||
<template slot="label">协会名称</template>
|
||||
<div v-html="detailData.name"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="成立时间">
|
||||
{{detailData.foundtime}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="协会编码">
|
||||
{{detailData.code}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="协会类型">
|
||||
{{detailData.typename}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="发起人">
|
||||
{{detailData.sponsorname}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">报名联系人</template>
|
||||
{{detailData.fzrname}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">所属单位</template>
|
||||
{{detailData.fzr_unit_name}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">联系人电话</template>
|
||||
{{detailData.concatpersonmobile}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">联系人邮箱</template>
|
||||
{{detailData.concatpersonemail}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">会费标准</template>
|
||||
{{detailData.dues_standard}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">当前人数</template>
|
||||
{{detailData.cynum}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2"></el-descriptions-item>
|
||||
<el-descriptions-item :span="3">
|
||||
<template slot="label">协会介绍</template>
|
||||
<div class="text-left" v-html="detailData.stjs"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="3">
|
||||
<template slot="label">协会宗旨</template>
|
||||
<div class="text-left" v-html="detailData.stzz"></div>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item span="1.5">-->
|
||||
<!-- <template slot="label">QQ群二维码</template>-->
|
||||
<!-- <file-upload v-if="detailData.qqgroupcode && detailData.qqgroupcode.length > 0"-->
|
||||
<!-- :files="JSON.parse(detailData.qqgroupcode)"-->
|
||||
<!-- :view="true"></file-upload>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item span="2">-->
|
||||
<!-- <template slot="label">微信群二维码</template>-->
|
||||
<!-- <file-upload v-if="detailData.wechatgroupcode && detailData.wechatgroupcode.length > 0"-->
|
||||
<!-- :files="JSON.parse(detailData.wechatgroupcode)"-->
|
||||
<!-- :view="true"></file-upload>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item span="1.5">
|
||||
<template slot="label">协会章程</template>
|
||||
<file-upload v-if="detailData.rulesfile && detailData.rulesfile.length > 0"
|
||||
:files="JSON.parse(detailData.rulesfile)"
|
||||
:view="true"></file-upload>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="2">
|
||||
<template slot="label">年度活动计划</template>
|
||||
<file-upload v-if="detailData.yearplanfile && detailData.yearplanfile.length > 0"
|
||||
:files="JSON.parse(detailData.yearplanfile)"
|
||||
:view="true"></file-upload>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="viewType === 'join'" name="second" label="个人信息">
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="top"
|
||||
label-width="120px">
|
||||
<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="sex" label="性别">
|
||||
<el-input v-model="formData.sex" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="birthday" label="出生年月">
|
||||
<el-date-picker
|
||||
v-model="formData.birthday"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
placeholder="请选择出生年月">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="birthPlace" label="出生地">
|
||||
<el-input v-model="formData.birthPlace"
|
||||
placeholder="请填写出生地"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="education" label="文化程度">
|
||||
<el-input v-model="formData.education" placeholder="请填写文化程度"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="hobby" label="爱好">
|
||||
<el-input v-model="formData.hobby" placeholder="请填写爱好"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="unitName" label="工作部门">
|
||||
<el-input v-model="formData.unitName" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="position" label="职务">
|
||||
<el-input v-model="formData.position" placeholder="请填写职务"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="mobile" label="电话">
|
||||
<el-input v-model="formData.mobile" placeholder="请填写电话"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="email" label="电子邮箱">
|
||||
<el-input v-model="formData.email" placeholder="请填写电子邮箱"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="homeAddress" label="家庭住址">
|
||||
<el-input v-model="formData.homeAddress" placeholder="请填写家庭住址"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="QQNumber" label="QQ">
|
||||
<el-input v-model="formData.QQNumber" placeholder="请填写QQ"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="bodyHeight" label="身高">
|
||||
<el-input v-model="formData.bodyHeight" placeholder="请填写身高"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="bodyWeight" label="体重">
|
||||
<el-input v-model="formData.bodyWeight" placeholder="请填写体重"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="health" label="身体状况">
|
||||
<el-input v-model="formData.health" placeholder="请填写身体状况"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="sport" label="经常从事的运动">
|
||||
<el-input v-model="formData.sport" placeholder="请填写经常从事的运动"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="medicalHistory" label="是否有过特殊病史">
|
||||
<el-radio-group v-model="formData.medicalHistory">
|
||||
<el-radio :label="true" border>是</el-radio>
|
||||
<el-radio :label="false" border>否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="joinActivity" label="是否愿意参加本协会的活动">
|
||||
<el-radio-group v-model="formData.joinActivity">
|
||||
<el-radio :label="true" border>是</el-radio>
|
||||
<el-radio :label="false" border>否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="otherThing" label="是否有特别需要说明的问题(身体或心理)">
|
||||
<el-input maxlength="500" v-model="formData.otherThing"
|
||||
placeholder="如有,请填写特别需要说明的问题"
|
||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row :gutter="20">-->
|
||||
<!-- <el-col :span="24">-->
|
||||
<!-- <el-form-item prop="remark" label="备注">-->
|
||||
<!-- <el-input maxlength="100" v-model="formData.remark" placeholder="请填写备注"-->
|
||||
<!-- type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="photo" label="两寸登记照">
|
||||
<image-Upload :height="50" :limit="1" :file-type="['png', 'jpg']" :file-size="1"
|
||||
v-model="formData.photo"></image-Upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doSubmit()" type="primary">申请加入</el-button>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<div style="width: 900px;margin:0 auto">
|
||||
<h3 style="text-align: center">{{clickRow.name}}入会申请</h3>
|
||||
<div style="display: flex;justify-content: space-between;padding: 20px 0;font-size: 16px;font-weight: bold;}">
|
||||
<div>填表时间:{{moment().format('YYYY年MM月DD日')}}</div>
|
||||
<div>编号:NO._____(自动生成)</div>
|
||||
</div>
|
||||
<el-form :model="formData"
|
||||
ref="form"
|
||||
:rules="formRules"
|
||||
label-position="top"
|
||||
class="applyForm"
|
||||
label-width="0">
|
||||
|
||||
<div style="border: 1px solid #EBEEF5; border-radius: 4px; padding: 20px; background: #fff;">
|
||||
|
||||
<el-row :gutter="20" style="margin-bottom: 20px;">
|
||||
<el-col :span="18">
|
||||
<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="sex" label="性别">
|
||||
<el-input v-model="formData.sex" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="birthday" label="出生年月">
|
||||
<el-date-picker v-model="formData.birthday" type="date" value-format="yyyy-MM-dd" style="width: 100%" placeholder="请选择"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="birthPlace" label="出生地">
|
||||
<el-input v-model="formData.birthPlace" maxlength="50" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="education" label="文化程度">
|
||||
<el-input v-model="formData.education" maxlength="20" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="hobby" label="爱好">
|
||||
<el-input v-model="formData.hobby" maxlength="50" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="unitName" label="工作部门">
|
||||
<el-input v-model="formData.unitName" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="position" label="职务">
|
||||
<el-input v-model="formData.position" maxlength="50" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
|
||||
<!-- 照片区域:右侧独立展示 -->
|
||||
<el-col :span="6" style="text-align: center; border-left: 1px solid #eee; padding-left: 20px;">
|
||||
<el-form-item prop="photo" label="两寸登记照">
|
||||
<image-Upload :limit="1"
|
||||
:file-type="['png', 'jpg','jpeg']"
|
||||
:file-size="1"
|
||||
width="100%"
|
||||
height="200"
|
||||
v-model="formData.photo"></image-Upload>
|
||||
<div style="font-size: 12px; color: #999; margin-top: 5px;">请上传免冠证件照</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider></el-divider>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="mobile" label="电话">
|
||||
<el-input v-model="formData.mobile" maxlength="20" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="email" label="电子邮箱">
|
||||
<el-input v-model="formData.email" maxlength="50" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="QQNumber" label="QQ号码">
|
||||
<el-input v-model="formData.QQNumber" maxlength="12" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="homeAddress" label="家庭住址">
|
||||
<el-input v-model="formData.homeAddress" maxlength="100" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider></el-divider>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="bodyHeight" label="身高 (cm)">
|
||||
<el-input v-model="formData.bodyHeight" maxlength="5" placeholder="如:175"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="bodyWeight" label="体重 (kg)">
|
||||
<el-input v-model="formData.bodyWeight" maxlength="5" placeholder="如:65"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="sport" label="经常从事的运动">
|
||||
<el-input v-model="formData.sport" maxlength="50" placeholder="请填写"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="medicalHistory" label="是否有过特殊病史">
|
||||
<el-radio-group v-model="formData.medicalHistory">
|
||||
<el-radio :label="true" border>是</el-radio>
|
||||
<el-radio :label="false" border>否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="joinActivity" label="是否愿意参加活动">
|
||||
<el-radio-group v-model="formData.joinActivity">
|
||||
<el-radio :label="true" border>是</el-radio>
|
||||
<el-radio :label="false" border>否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider></el-divider>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="otherThing" label="特别需要说明的问题(身体或心理)">
|
||||
<el-input type="textarea" :rows="4" maxlength="500"
|
||||
placeholder="如有特殊情况请详细说明"
|
||||
v-model="formData.otherThing"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
<!-- <el-row :gutter="20">-->
|
||||
<!-- <el-col :span="24">-->
|
||||
<!-- <el-form-item prop="remark" label="备注">-->
|
||||
<!-- <el-input maxlength="100" v-model="formData.remark" placeholder="请填写备注"-->
|
||||
<!-- type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
</el-form>
|
||||
<div style="text-align: center;margin: 20px 0">
|
||||
<el-button @click="doSubmit()" type="primary">申请加入</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
formData: {},
|
||||
formRules: {
|
||||
username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
birthday: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
birthPlace: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
education: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
hobby: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
unitName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
position: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
email: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
homeAddress: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
QQNumber: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
bodyHeight: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
bodyWeight: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
health: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sport: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
medicalHistory: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
joinActivity: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
// photo: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
infoActive: 'first',
|
||||
detailData: {},
|
||||
activeName: 'false',
|
||||
tableData: [],
|
||||
pageForm: {
|
||||
isjr: false,
|
||||
searchName: "club.name",
|
||||
searchKeyword: "",
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
pageOrderName: "",
|
||||
pageOrderBy: ""
|
||||
},
|
||||
hasJoinCount: 0,
|
||||
noJoinCount: 0,
|
||||
clickRow: {},
|
||||
viewType: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doExportApply(row){
|
||||
location.href = '/platform/sys/club/clubInfoManage/exportInfo?clubId=' + row.id
|
||||
},
|
||||
doRevocation(id) {
|
||||
this.$confirm('是否撤销申请?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" === a) {//确认后再执行
|
||||
const resp = await $.post("/platform/sys/club/sq/revocation", {id},);
|
||||
if (resp.code === 0) {
|
||||
this.$message.success('撤销申请成功!')
|
||||
await this.getCount()
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
async doSubmit() {
|
||||
const row = this.clickRow
|
||||
const valid = await this.$refs.form.validate()
|
||||
if (!valid) return
|
||||
const {code, data} = await $.post('/platform/sys/club/sq/getInClubByCurUser')
|
||||
let str = '您还没有参加协会'
|
||||
if (data && data.length > 0) {
|
||||
str = '您已经加入了'
|
||||
data.forEach((item) => {
|
||||
str += '【' + item.name + '】'
|
||||
})
|
||||
}
|
||||
str += ',请确认是否申请加入【' + row.name + '】?'
|
||||
this.$confirm(str, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" === a) {//确认后再执行
|
||||
this.formData.clubid = row.id
|
||||
const resp = await $.post("/platform/sys/club/sq/submit", this.formData);
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
await this.getCount()
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
openDetail(row, type) {
|
||||
this.viewType = type
|
||||
this.infoActive = type === 'view' ? 'first' : 'second'
|
||||
if (type === 'join') {
|
||||
this.formData = {
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
sex: "${@shiro.getPrincipalProperty('sex')}",
|
||||
birthday: "${@shiro.getPrincipalProperty('birthday')}",
|
||||
birthPlace: "${@shiro.getPrincipalProperty('birthPlace')}",
|
||||
education: "${@shiro.getPrincipalProperty('education')}",
|
||||
hobby: "${@shiro.getPrincipalProperty('hobby')}",
|
||||
unitName: "${@shiro.getPrincipalProperty('unit').getName()}",
|
||||
position: "${@shiro.getPrincipalProperty('position')}",
|
||||
mobile: "${@shiro.getPrincipalProperty('mobile')}",
|
||||
email: "${@shiro.getPrincipalProperty('email')}",
|
||||
homeAddress: "${@shiro.getPrincipalProperty('homeAddress')}",
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate()
|
||||
})
|
||||
}
|
||||
this.clickRow = row
|
||||
$.get(base + "/platform/sys/club/mange/findOne", {id: row.id}, (data) => {
|
||||
if (data.code === 0) {
|
||||
this.detailData = data.data
|
||||
this.$refs.guava.view()
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
|
||||
openApply(row) {
|
||||
this.$refs.guava.edit()
|
||||
this.clickRow = row
|
||||
this.formData = {
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
sex: "${@shiro.getPrincipalProperty('sex')}",
|
||||
birthday: "${@shiro.getPrincipalProperty('birthday')}",
|
||||
birthPlace: "${@shiro.getPrincipalProperty('birthPlace')}",
|
||||
education: "${@shiro.getPrincipalProperty('education')}",
|
||||
hobby: "${@shiro.getPrincipalProperty('hobby')}",
|
||||
unitName: "${@shiro.getPrincipalProperty('unit').getName()}",
|
||||
position: "${@shiro.getPrincipalProperty('position')}",
|
||||
mobile: "${@shiro.getPrincipalProperty('mobile')}",
|
||||
email: "${@shiro.getPrincipalProperty('email')}",
|
||||
homeAddress: "${@shiro.getPrincipalProperty('homeAddress')}",
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate()
|
||||
})
|
||||
},
|
||||
|
||||
handleClick(tab, event) {
|
||||
this.pageForm.searchKeyword = ''
|
||||
this.pageForm.isjr = tab.name
|
||||
this.tableData = []
|
||||
this.doSearch()
|
||||
},
|
||||
doSearch() {
|
||||
this.tabKey = new Date().getTime()
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
pageOrder(column) {//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.pageData();
|
||||
},
|
||||
pageNumberChange(val) {//页码更新操作
|
||||
this.pageForm.pageNumber = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageSizeChange(val) {//分页大小更新操作
|
||||
this.pageForm.pageSize = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageData() {//加载分页数据
|
||||
sublime.showLoadingbar();//显示loading
|
||||
$.post(base + "/platform/sys/club/sq/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();//关闭loading
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
async getCount() {
|
||||
const resp = await $.post('/platform/sys/club/sq/getCount')
|
||||
this.hasJoinCount = resp.data.hasJoinCount
|
||||
this.noJoinCount = resp.data.noJoinCount
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getCount()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user