960 lines
49 KiB
HTML
960 lines
49 KiB
HTML
<!--#
|
||
layout("/layouts/platform.html"){
|
||
#-->
|
||
<style>
|
||
.mb10 {
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.d .el-card__header {
|
||
padding: 10px 20px;
|
||
}
|
||
|
||
.d .el-card__body {
|
||
padding: 0;
|
||
}
|
||
|
||
.search .search-item {
|
||
width: calc((100% - 0px) / 4);
|
||
}
|
||
|
||
.search .search-item-label {
|
||
/*min-width: 70px;*/
|
||
}
|
||
|
||
.el-row-title {
|
||
margin-bottom: 20px;
|
||
font-weight: 600;
|
||
}
|
||
|
||
</style>
|
||
|
||
<div class="platform" id="app" v-cloak>
|
||
<guava ref="guava">
|
||
<template>
|
||
<el-card shadow="never">
|
||
<div class="search">
|
||
<div class="search-item">
|
||
<div class="search-item-label">活动年份</div>
|
||
<el-date-picker :clearable="false" @change="yearChange()" placeholder="选择年份"
|
||
style="width: 100%" type="year" v-model="pageForm.year"
|
||
value-format="yyyy"></el-date-picker>
|
||
</div>
|
||
<div class="search-item">
|
||
<div class="search-item-label">活动级别</div>
|
||
<div class="search-item-option">
|
||
<el-select @change="changeLevel" clearable
|
||
placeholder="请选择活动级别"
|
||
style="width: 100%" v-model="pageForm.activityLevel">
|
||
<el-option
|
||
:key="item.code"
|
||
:label="item.name"
|
||
:value="item.code"
|
||
v-for="item in activityTypeList">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
</div>
|
||
<div class="search-item">
|
||
<div class="search-item-label">活动名称</div>
|
||
<el-select @change="getData()" filterable
|
||
placeholder="请选择活动"
|
||
style="width: 100%;font-weight:bold;"
|
||
v-model="pageForm.id">
|
||
<el-option :label="item.name" :value="item.id"
|
||
v-for="item in activities"></el-option>
|
||
</el-select>
|
||
</div>
|
||
|
||
<div class="search-item">
|
||
<div class="search-item-label" v-if="pageForm.activityLevel!=='40003'">
|
||
院级工会
|
||
</div>
|
||
<div class="search-item-label" v-if="pageForm.activityLevel==='40003'">
|
||
社团名称
|
||
</div>
|
||
<div class="search-item-option">
|
||
<el-select @change="changeVVV"
|
||
@clear="changeVVV"
|
||
clearable
|
||
filterable placeholder="院级工会筛选"
|
||
style="width: 100%;font-weight:bold;" v-model="pageForm.unionid">
|
||
<el-option
|
||
:key="item.id"
|
||
:label="item.unionname"
|
||
:value="item.id"
|
||
v-for="item in unions">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!--#if(!@shiro.hasRole('H04') || !@shiro.hasRole('ghzl')){#-->
|
||
<div class="search-item">
|
||
<div class="search-item-label">报名状态</div>
|
||
<div class="search-item-option">
|
||
<el-radio-group size="medium" v-model="pageForm.applyed">
|
||
<el-radio border label="1" style="background-color: white">未报名
|
||
</el-radio>
|
||
<el-radio border label="2" style="background-color: white">已报名
|
||
</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
</div>
|
||
<!--#}#-->
|
||
|
||
<!-- <div class="search-item">
|
||
<div class="search-item-label">导入导出</div>
|
||
<div class="search-item-option">
|
||
<el-button type="primary" plain @click="openImport">导入报名人员</el-button>
|
||
<el-button @click="doExportByEnroll" plain
|
||
type="primary">导出报名信息
|
||
</el-button>
|
||
<!– <el-button @click="doExportByEnroll" icon="el-icon-printer" plain size="small"
|
||
style="position: absolute;right: 0px" type="primary">导出报名信息
|
||
</el-button>–>
|
||
</div>
|
||
</div>-->
|
||
</div>
|
||
</el-card>
|
||
|
||
<el-card class="mt10 d" shadow="never" style="padding: 20px">
|
||
<vi-title2 title="报名列表">
|
||
<template #func>
|
||
<!--#if(@shiro.hasRole('sysadmin')){#-->
|
||
<el-button @click="exportUnionNum" size="small" type="primary">导出分工会报名人数
|
||
</el-button>
|
||
<el-button @click="exportUnionUser" size="small" type="primary">导出报名人员名单
|
||
</el-button>
|
||
<!--#}#-->
|
||
<!--#if(@shiro.hasRole('ghzl')){#-->
|
||
<el-button @click="exportUnionUser" size="small" type="primary">导出报名人员名单
|
||
</el-button>
|
||
<!--#}#-->
|
||
</template>
|
||
</vi-title2>
|
||
<el-row :gutter="20" class="el-row-title" style="margin-left: 0;margin-right: 0;">
|
||
<el-col :span="2">序号</el-col>
|
||
<el-col :span="4">年度</el-col>
|
||
<el-col :span="6">
|
||
<span v-if="pageForm.activityLevel!=='40003'">分工会名称</span>
|
||
<span v-if="pageForm.activityLevel==='40003'">社团名称</span>
|
||
</el-col>
|
||
<el-col :span="6">活动名称</el-col>
|
||
<el-col :span="4">人数</el-col>
|
||
<el-col :span="2">
|
||
<!-- <el-button style="position: absolute;right: 0px" plain size="small" icon="el-icon-printer"
|
||
type="primary" @click="doExport">导 出
|
||
</el-button>-->
|
||
|
||
</el-col>
|
||
</el-row>
|
||
<el-table :data="[]" size="mini" v-if="noneData||tabLoading"
|
||
v-loading="tabLoading"></el-table>
|
||
|
||
<el-card class="box-card mb10" shadow="hover" v-else v-for="app,tabIdx in apply"
|
||
v-loading="tabLoading">
|
||
<div class="clearfix" slot="header">
|
||
<el-row :gutter="20">
|
||
<el-col :span="2">{{tabIdx + 1}}</el-col>
|
||
<el-col :span="4">{{pageForm.year}}</el-col>
|
||
<el-col :span="6">
|
||
{{isDisPlayCode?'('+app.unioncode+')':null}}{{app.unionname}}
|
||
</el-col>
|
||
<el-col :span="6">{{pageForm.activityName || '暂无'}}</el-col>
|
||
<el-col :span="2">{{app.num |money}} 人</el-col>
|
||
<el-col :span="4">
|
||
<el-button @click="$set(app,'show',!app.show)"
|
||
style="float: right; padding: 3px 5px"
|
||
type="text">{{app.show?'折叠':'展开'}}
|
||
</el-button>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
<transition name="el-fade-in-linear">
|
||
<div class="text item transition-box" style="padding: 20px 20px"
|
||
v-show="app.show">
|
||
<el-timeline v-if="pageForm.applyType===1||pageForm.applyType===3">
|
||
<!-- <el-timeline-item timestamp="领队信息" placement="top" v-if="app.leader.username!=null">
|
||
<el-card shadow="never">
|
||
<el-form label-suffix=":" label-position="right" label-width="80px"
|
||
style="margin-top: 30px">
|
||
<el-row gutter="20">
|
||
<el-col :span="4">
|
||
<el-form-item label="姓名">
|
||
{{ app.leader.username | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="性别">
|
||
{{ app.leader.sex | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="工号">
|
||
{{ app.leader.loginname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="电话">
|
||
{{ app.leader.mobile | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="单位">
|
||
{{ app.leader.unitname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
</el-timeline-item>
|
||
<el-timeline-item timestamp="教练信息" placement="top" v-if="app.coach.username!=null">
|
||
<el-card shadow="never">
|
||
<el-form label-suffix=":" label-position="right" label-width="80px"
|
||
style="margin-top: 30px">
|
||
<el-row gutter="20">
|
||
<el-col :span="4">
|
||
<el-form-item label="姓名">
|
||
{{ app.coach.username | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="性别">
|
||
{{ app.coach.sex | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="工号">
|
||
{{ app.coach.loginname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="电话">
|
||
{{ app.coach.mobile | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="单位">
|
||
{{ app.coach.unitname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
</el-timeline-item>-->
|
||
|
||
<el-timeline-item placement="top" timestamp="教职工信息">
|
||
|
||
<el-table :data="app.apply2" :key="tableKey" border size="mini"
|
||
stripe>
|
||
|
||
<el-table-column
|
||
align="center" header-align="center" label="序号"
|
||
sortable type="index"
|
||
width="100">
|
||
</el-table-column>
|
||
|
||
<el-table-column
|
||
:label="column.label"
|
||
:prop="column.prop"
|
||
:sortable="column.sortable"
|
||
:width="column.width"
|
||
align="center"
|
||
header-align="center"
|
||
v-for="column in tableColumns">
|
||
|
||
<template scope="{row}" v-if="column.prop=='team'">
|
||
<span v-if="row.team">{{ row.team }}</span>
|
||
<span v-if="!row.team">暂无</span>
|
||
</template>
|
||
<template scope="{row:{projectType}}"
|
||
v-else-if="column.prop=='projectType'">
|
||
{{projectType==1?'单项':'团体'}}
|
||
</template>
|
||
|
||
<!-- <template scope="{row:{divisionLevelLeadership}}"
|
||
v-else-if="column.prop=='divisionLevelLeadership'">
|
||
<span v-if="divisionLevelLeadership" class="text-primary">是</span>
|
||
<span v-else class="text-danger">否</span>
|
||
</template>-->
|
||
|
||
<template scope="{row}"
|
||
v-else-if="column.prop=='identity'">
|
||
<el-tag effect="light"
|
||
v-if="row.identity.includes(1)">运动员
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="success" v-if="row.identity.includes(2)">教练
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="warning" v-if="row.identity.includes(3)">领队
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="warning"
|
||
v-if="row.identity.includes(4)">处级领导
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="warning" v-if="row.identity.includes(5)">替补
|
||
</el-tag>
|
||
|
||
</template>
|
||
|
||
</el-table-column>
|
||
|
||
</el-table>
|
||
|
||
</el-timeline-item>
|
||
</el-timeline>
|
||
|
||
<el-timeline v-else-if="pageForm.applyType===2">
|
||
<el-timeline-item placement="top" timestamp="领队信息"
|
||
v-if="app.leader.username!=null">
|
||
<el-card shadow="never">
|
||
<el-form label-position="right" label-suffix=":"
|
||
label-width="80px"
|
||
style="margin-top: 30px">
|
||
<el-row gutter="20">
|
||
<el-col :span="4">
|
||
<el-form-item label="姓名">
|
||
{{ app.leader.username | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="性别">
|
||
{{ app.leader.sex | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="工号">
|
||
{{ app.leader.loginname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="电话">
|
||
{{ app.leader.mobile | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="单位">
|
||
{{ app.leader.unitname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
</el-timeline-item>
|
||
<el-timeline-item placement="top" timestamp="教练信息"
|
||
v-if="app.coach.username!=null">
|
||
<el-card shadow="never">
|
||
<el-form label-position="right" label-suffix=":"
|
||
label-width="80px"
|
||
style="margin-top: 30px">
|
||
<el-row gutter="20">
|
||
<el-col :span="4">
|
||
<el-form-item label="姓名">
|
||
{{ app.coach.username | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="性别">
|
||
{{ app.coach.sex | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="工号">
|
||
{{ app.coach.loginname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="电话">
|
||
{{ app.coach.mobile | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="单位">
|
||
{{ app.coach.unitname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
</el-timeline-item>
|
||
<el-timeline-item placement="top" timestamp="团长信息"
|
||
v-if="app.head.username!=null">
|
||
<el-card shadow="never">
|
||
<el-form label-position="right" label-suffix=":"
|
||
label-width="80px"
|
||
style="margin-top: 30px">
|
||
<el-row gutter="20">
|
||
<el-col :span="4">
|
||
<el-form-item label="姓名">
|
||
{{ app.head.username | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="性别">
|
||
{{ app.head.sex | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="工号">
|
||
{{ app.head.loginname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="电话">
|
||
{{ app.head.mobile | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="单位">
|
||
{{ app.head.unitname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
</el-timeline-item>
|
||
<el-timeline-item placement="top" timestamp="工作人员信息"
|
||
v-if="app.staff.username!=null">
|
||
<el-card shadow="never">
|
||
<el-form label-position="right" label-suffix=":"
|
||
label-width="80px"
|
||
style="margin-top: 30px">
|
||
<el-row gutter="20">
|
||
<el-col :span="4">
|
||
<el-form-item label="姓名">
|
||
{{ app.staff.username | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="性别">
|
||
{{ app.staff.sex | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="工号">
|
||
{{ app.staff.loginname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="电话">
|
||
{{ app.staff.mobile | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="单位">
|
||
{{ app.staff.unitname | str }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
</el-timeline-item>
|
||
<el-timeline-item placement="top" timestamp="教职工信息">
|
||
<el-row gutter="40">
|
||
<el-col :span="4">
|
||
<div class="search-item">
|
||
<div class="search-item-option">
|
||
<el-select @change="doEvent(app)"
|
||
clearable
|
||
filterable placeholder="请选择活动项目"
|
||
style="width: 100%"
|
||
v-model="app.eventId">
|
||
<el-option
|
||
:key="item.id"
|
||
:label="item.allName"
|
||
:value="item.eventId"
|
||
v-for="item in events">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
</div>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<div class="search-item">
|
||
<div class="search-item-option">
|
||
<el-select @change="doEventType(app)"
|
||
allow-create
|
||
clearable default-first-option
|
||
filterable placeholder="请选择项目类型"
|
||
style="width: 100%"
|
||
v-model="app.projectType">
|
||
<el-option
|
||
:key="item.id"
|
||
:label="item.name"
|
||
:value="item.id"
|
||
v-for="item in projectTypeList">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
<el-table :data="app.apply2" :key="tableKey" border class="mt10"
|
||
size="mini"
|
||
stripe>
|
||
<el-table-column
|
||
align="center" header-align="center" label="序号"
|
||
sortable type="index"
|
||
width="100">
|
||
</el-table-column>
|
||
|
||
<el-table-column
|
||
:label="column.label"
|
||
:prop="column.prop"
|
||
:sortable="column.sortable"
|
||
:width="column.width"
|
||
align="center"
|
||
header-align="center"
|
||
show-overflow-tooltip
|
||
v-for="column in tableColumns">
|
||
|
||
<template scope="{row}" v-if="column.prop=='team'">
|
||
<span v-if="row.team">{{ row.team }}</span>
|
||
<span v-if="!row.team">暂无</span>
|
||
</template>
|
||
|
||
<!-- <template scope="{row:{divisionLevelLeadership}}"
|
||
v-else-if="column.prop=='divisionLevelLeadership'">
|
||
<span v-if="divisionLevelLeadership" class="text-primary">是</span>
|
||
<span v-else class="text-danger">否</span>
|
||
</template>-->
|
||
|
||
<template scope="{row:{projectType}}"
|
||
v-else-if="column.prop=='projectType'">
|
||
{{projectType==1?'单项':'团体'}}
|
||
</template>
|
||
|
||
<template scope="{row}"
|
||
v-else-if="column.prop=='identity'">
|
||
<el-tag effect="light"
|
||
v-if="row.identity.includes(1)">运动员
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="success" v-if="row.identity.includes(2)">教练
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="warning" v-if="row.identity.includes(3)">领队
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="warning"
|
||
v-if="row.identity.includes(4)">处级领导
|
||
</el-tag>
|
||
<el-tag effect="light"
|
||
type="warning" v-if="row.identity.includes(5)">替补
|
||
</el-tag>
|
||
|
||
</template>
|
||
|
||
</el-table-column>
|
||
|
||
</el-table>
|
||
|
||
</el-timeline-item>
|
||
</el-timeline>
|
||
|
||
|
||
</div>
|
||
</transition>
|
||
|
||
</el-card>
|
||
</el-card>
|
||
</template>
|
||
</guava>
|
||
|
||
|
||
<el-dialog
|
||
:close-on-click-modal="false"
|
||
:visible.sync="importVisible"
|
||
title="导入"
|
||
width="50%"
|
||
>
|
||
<el-timeline>
|
||
<el-timeline-item placement="top" timestamp="下载模板">
|
||
<el-card>
|
||
<el-button
|
||
@click="location.href='/platform/basics/downloadTemplate?filePath=activity/ActivityApplyUser.xlsx&fileName=导入模板.xlsx'"
|
||
icon="el-icon-download" size="medium"
|
||
style="width: 200px"
|
||
type="">下载模板
|
||
</el-button>
|
||
</el-card>
|
||
</el-timeline-item>
|
||
<el-timeline-item placement="top" timestamp="上传文件">
|
||
<el-card>
|
||
<el-upload
|
||
:auto-upload="false"
|
||
:file-list="importData.fileList"
|
||
:limit="1"
|
||
:on-change="(file, fileList) => {
|
||
importData.fileList = fileHandleChange(file, fileList,{type:['xls','xlsx']})
|
||
}"
|
||
:on-remove="(file, fileList) => {
|
||
importData.fileList = fileHandleRemove(file, fileList)
|
||
}"
|
||
name="file"
|
||
ref="upload">
|
||
<el-button icon="el-icon-upload" size="medium" style="width: 200px" type="">
|
||
选择文件
|
||
</el-button>
|
||
</el-upload>
|
||
</el-card>
|
||
</el-timeline-item>
|
||
</el-timeline>
|
||
|
||
<span class="dialog-footer" slot="footer">
|
||
<el-button :disabled="importLoading" @click="importVisible = false">取 消</el-button>
|
||
<el-button :loading="importLoading" @click="doImport" type="primary">确定</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
|
||
</div>
|
||
|
||
<script>
|
||
var vue = new Vue({
|
||
el: '#app',
|
||
mixins: [initTableMixins],
|
||
data() {
|
||
return {
|
||
importData: {},
|
||
importLoading: false,
|
||
importVisible: false,
|
||
events: [],
|
||
activityTypeList: [],
|
||
noneData: true,
|
||
tabLoading: true,
|
||
activities: [],
|
||
apply: [],
|
||
apply2: [],
|
||
unions: [],
|
||
rootData: [],
|
||
tableKey: '',
|
||
pageForm: {
|
||
id: '',
|
||
unionid: '',
|
||
year: new Date().getFullYear() + '',
|
||
},
|
||
tableColumns: [
|
||
{prop: 'allName', label: '项目名称', sortable: true, width: '200px'},
|
||
// {prop: 'team', label: '所属队', sortable: true},
|
||
{prop: 'username', label: '姓名'},
|
||
{prop: 'loginname', label: '教工号'},
|
||
{prop: 'sex', label: '性别'},
|
||
/* {prop: 'divisionLevelLeadership', label: '是否处级领导', sortable: true},*/
|
||
{prop: 'unitname', label: '单位', sortable: true},
|
||
{prop: 'mobile', label: '电话'},
|
||
// {prop: 'projectType', label: '项目类型', sortable: true},
|
||
// {prop: 'identity', label: '身份', sortable: true, width: '300px'},
|
||
// {prop: 'notes', label: '备注'},
|
||
{prop: 'campus', label: '参加地点'},
|
||
],
|
||
projectTypeList: [
|
||
{id: '1', name: '单项'},
|
||
{id: '2', name: '团体'},
|
||
],
|
||
}
|
||
},
|
||
components: {
|
||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||
'info': httpVueLoader('/components/activity/school/Info.vue'),
|
||
},
|
||
filters: {
|
||
money(val) {
|
||
return val ? val : 0
|
||
},
|
||
str(val) {
|
||
return val ? val : '暂无'
|
||
}
|
||
},
|
||
watch: {
|
||
'pageForm.applyed': (val) => {
|
||
vue.changeVVV(val)
|
||
}
|
||
},
|
||
methods: {
|
||
exportUnionNum() {
|
||
window.open(loc() + '/exportUnionNum?activityId=' + this.pageForm.id + '&activityLevel=' + this.pageForm.activityLevel)
|
||
},
|
||
exportUnionUser() {
|
||
window.open("/platform/activity/common/exportXlsx?id=" + this.pageForm.id + '&unionId=' + this.pageForm.unionid)
|
||
// window.open("/platform/activity/common/exportXlsx2?id=" + this.pageForm.id+'&unionId='+this.pageForm.unionid)
|
||
},
|
||
|
||
doImport() {
|
||
if (!this.importData.fileList.length) {
|
||
this.notifyWarning("请选择文件!")
|
||
return
|
||
}
|
||
const data = new FormData();
|
||
this.importData.fileList.forEach((val) => {
|
||
data.append("file", val.raw, val.raw.name);
|
||
data.append("activityId", this.pageForm.id);
|
||
});
|
||
this.importLoading = true
|
||
$.ajax({
|
||
url: loc() + "/importUserActivitys",
|
||
type: "post",
|
||
data: data,
|
||
processData: false,
|
||
contentType: false,
|
||
success: (data) => {
|
||
if (!data.code) {
|
||
this.notifySuccess(data.msg);
|
||
this.getData();
|
||
this.importVisible = false
|
||
} else {
|
||
this.notifyWarning(data.msg)
|
||
}
|
||
this.importLoading = false
|
||
},
|
||
error: (data) => {
|
||
this.notifyWarning(data.msg)
|
||
this.importLoading = false
|
||
}
|
||
});
|
||
},
|
||
openImport() {
|
||
this.importData = {
|
||
fileList: []
|
||
}
|
||
if (!this.pageForm.id) {
|
||
this.notifyWarning("请先选择活动名称")
|
||
return
|
||
}
|
||
this.importVisible = true;
|
||
},
|
||
doExportByEnroll() {
|
||
const {id, unionid} = this.pageForm
|
||
if (unionid === "") {
|
||
this.$notify.warning({title: '警告', message: "请选择要导出的工会"});
|
||
return
|
||
}
|
||
window.open(loc() + "/doExportByEnroll?id=" + id + "&unionId=" + unionid)
|
||
},
|
||
async changeLevel() {
|
||
await this.getNearActivity()
|
||
},
|
||
doExport() {
|
||
const {id, unionid} = this.pageForm
|
||
|
||
location.href = "/platform/activity/common/exportXlsx?id=" + id
|
||
},
|
||
async yearChange() {
|
||
this.pageForm.id = null
|
||
await this.getNearActivity()
|
||
},
|
||
changeVVV() {
|
||
if (this.pageForm.unionid) {
|
||
this.apply = this.rootData.filter(v => {
|
||
return v.id === this.pageForm.unionid
|
||
})
|
||
} else {
|
||
this.apply = JSON.parse(JSON.stringify(this.rootData))
|
||
}
|
||
|
||
if (this.pageForm.applyed === '1') {
|
||
this.apply = this.apply.filter(v => {
|
||
return v.num === 0
|
||
})
|
||
} else if (this.pageForm.applyed === '2') {
|
||
this.apply = this.apply.filter(v => {
|
||
return v.num > 0
|
||
})
|
||
}
|
||
|
||
this.tableKey = new Date().getTime()
|
||
},
|
||
async getNearActivity() {
|
||
const resp = await $.get(loc() + "/getNearActivity", {
|
||
year: this.pageForm.year,
|
||
activityLevel: this.pageForm.activityLevel
|
||
})
|
||
if (resp.code === 0) {
|
||
this.activities = resp.data
|
||
if (resp.data.length) {
|
||
this.pageForm.id = resp.data[0].id
|
||
this.getData()
|
||
} else {
|
||
this.pageForm.unionid = ""
|
||
this.unionis = []
|
||
this.pageForm.id = ""
|
||
this.noneData = true
|
||
this.tabLoading = false
|
||
}
|
||
} else {
|
||
this.notifyWarning(resp.msg)
|
||
}
|
||
},
|
||
async changeActivit() {
|
||
const resp = await $.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.id})
|
||
this.events = resp
|
||
|
||
},
|
||
doEventType(app) {
|
||
const {apply, projectType} = app
|
||
if (!app.projectType) {
|
||
|
||
this.$set(app, "apply2", apply)
|
||
} else {
|
||
const arr = apply.filter(i => {
|
||
return i.projectType == projectType
|
||
})
|
||
this.$set(app, "apply2", arr)
|
||
}
|
||
},
|
||
doEvent(app) {
|
||
const {apply, eventId} = app
|
||
|
||
if (!app.eventId) {
|
||
this.$set(app, "apply2", apply)
|
||
} else {
|
||
const arr = apply.filter(i => {
|
||
return !i.unionLeader && !i.unionCoach && i.evid == eventId
|
||
})
|
||
this.$set(app, "apply2", arr)
|
||
}
|
||
},
|
||
async getData() {
|
||
this.noneData = true
|
||
this.tabLoading = true
|
||
await this.changeActivit()
|
||
const activity = this.activities.filter(v => {
|
||
return v.id === this.pageForm.id
|
||
})
|
||
|
||
this.pageForm.activityName = activity.length > 0 ? activity[0].name : null
|
||
this.pageForm.applyType = activity[0].applyType
|
||
|
||
const resp = await $.get(loc() + "/getData", this.pageForm)
|
||
this.tabLoading = false
|
||
if (resp.code === 0) {
|
||
const v = resp.data
|
||
if (v.length) {
|
||
/* if (activity[0].applyType == 2) {*/
|
||
v.forEach(x => {
|
||
|
||
const leaders = x.apply.filter(i => {
|
||
return i.unionLeader
|
||
})
|
||
|
||
x.leader = {}
|
||
if (leaders.length) {
|
||
x.leader = leaders[0]
|
||
}
|
||
|
||
const coachs = x.apply.filter(i => {
|
||
return i.unionCoach
|
||
})
|
||
|
||
x.coach = {}
|
||
if (coachs.length) {
|
||
x.coach = coachs[0]
|
||
}
|
||
|
||
const heads = x.apply.filter(i => {
|
||
return i.unionHead
|
||
})
|
||
|
||
x.head = {}
|
||
if (heads.length) {
|
||
x.head = heads[0]
|
||
}
|
||
|
||
const staffs = x.apply.filter(i => {
|
||
return i.unionStaff
|
||
})
|
||
|
||
x.staff = {}
|
||
if (staffs.length) {
|
||
x.staff = staffs[0]
|
||
}
|
||
|
||
x.apply = x.apply.filter(i => {
|
||
return !i.unionLeader && !i.unionCoach && !i.unionHead && !i.unionStaff
|
||
})
|
||
|
||
})
|
||
/*}*//* else {
|
||
v.forEach(x => {
|
||
const leaders = x.apply.filter(i => {
|
||
return i.identity.includes(3)
|
||
})
|
||
x.leader = {}
|
||
if (leaders.length) {
|
||
x.leader = leaders[0]
|
||
}
|
||
const coachs = x.apply.filter(i => {
|
||
return i.identity.includes(2)
|
||
})
|
||
|
||
x.coach = {}
|
||
if (coachs.length) {
|
||
x.coach = coachs[0]
|
||
}
|
||
|
||
x.apply = x.apply.filter(i => {
|
||
return i.identity.includes(1)
|
||
})
|
||
})
|
||
}*/
|
||
|
||
|
||
v.sort((a, b) => {
|
||
return b.num - a.num
|
||
})
|
||
this.unions = v.map(v => {
|
||
return {id: v.id, unionname: v.unionname}
|
||
})
|
||
|
||
if (this.unions.length == 1) {
|
||
this.pageForm.unionid = this.unions[0].id
|
||
}
|
||
this.rootData = JSON.parse(JSON.stringify(v))
|
||
this.rootData.forEach(x => {
|
||
x.apply2 = clone(x.apply)
|
||
})
|
||
this.noneData = false
|
||
} else {
|
||
this.unions = []
|
||
this.pageForm.unionid = ""
|
||
this.noneData = true
|
||
|
||
}
|
||
if (this.pageForm.activityLevel !== '40001' && this.rootData && this.rootData.length > 0) {
|
||
this.$set(this.rootData[0], "show", true)
|
||
}
|
||
this.apply = this.rootData
|
||
|
||
this.tableKey = new Date().getTime()
|
||
} else {
|
||
this.notifyWarning(resp.msg)
|
||
this.noneData = true
|
||
}
|
||
},
|
||
async getActivityTypeList(code) {
|
||
const {data} = await $.get("/platform/activity/basic/basic/settings/getActivityTwoLevelType", {code: code})
|
||
return data;
|
||
},
|
||
},
|
||
async created() {
|
||
await this.changeActivit()
|
||
this.activityTypeList = await this.getActivityTypeList("40000")
|
||
this.$set(this.pageForm, "activityLevel", this.activityTypeList[0].code)
|
||
await this.getNearActivity()
|
||
}
|
||
})
|
||
</script>
|
||
<!--#
|
||
}
|
||
#-->
|