Files
UNION_HUTB/target/classes/views/platform/hd/xhdgl/hdbmindex.html
T
2026-09-09 09:14:28 +08:00

1063 lines
50 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
<meta name="description" content="${AppName!}">
<title>${AppName!}</title>
<meta charset="UTF-8">
<!-- import CSS -->
<link rel="stylesheet" href="/assets/platform/plugins/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/platform/plugins/element-ui/lib/theme-chalk/index.css">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<link rel="stylesheet" href="/assets/platform/fonts/themify-icons.css">
<link rel="stylesheet" href="/assets/platform/fonts/font-awesome.min.css">
<link rel="stylesheet" href="/assets/platform/css/common.css">
<link rel="stylesheet" href="/assets/platform/css/main.css">
<link rel="stylesheet" href="/assets/platform/css/elmain.css">
<link rel="stylesheet" href="/assets/platform/css/panel.css">
<link rel="stylesheet" href="/assets/platform/css/dialogview.css">
<link rel="stylesheet" href="/assets/platform/css/pic.css">
<!-- import Vue before Element -->
<script src="/assets/platform/plugins/vue/vue.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<link rel="stylesheet" type="text/css" href="/assets/platform/plugins/viewer/viewer.min.css">
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<!--<script src="/assets/platform/plugins/element-ui/lib/index.js"></script>-->
<script src="/assets/platform/plugins/jquery/jquery-1.11.1.min.js"></script>
<script src="/assets/platform/plugins/slimscroll/jquery.slimscroll.min.js"></script>
<!-- pjax是异步加载html片段的工具,模拟前端路由机制 -->
<script src="/assets/platform/plugins/pjax/jquery.pjax.js"></script>
<script src="/assets/platform/plugins/bootstrap/js/bootstrap.js"></script>
<!-- Array数组增加findIndex等方法,TreeTable用得到,兼容IE8 -->
<script src="/assets/platform/plugins/polyfill/polyfill.js"></script>
<!--FlexPaper预览插件-->
<script src="/assets/platform/plugins/flexPaper/flexpaper_flash.js"></script>
<script src="/assets/platform/plugins/flexPaper/flexpaper_flash_debug.js"></script>
<!-- 时间日期处理工具类 -->
<script src="/assets/platform/plugins/moment/moment.min.js"></script>
<!-- 浏览器通知 -->
<script src="/assets/platform/plugins/push/push.min.js"></script>
<script src="/assets/platform/js/main.js"></script>
<script src="/assets/platform/js/offscreen.js"></script>
<!--editor-->
<script src="https://s1.bdstatic.com/r/www/cache/ecom/etpl/3-2-0/etpl.js"></script>
<link href="/assets/platform/plugins/umeditor/themes/default/css/umeditor.css" type="text/css"
rel="stylesheet">
<script type="text/javascript" charset="utf-8"
src="/assets/platform/plugins/umeditor/umeditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="/assets/platform/plugins/umeditor/umeditor.js"></script>
<script type="text/javascript" src="/assets/platform/plugins/umeditor/lang/zh-cn/zh-cn.js"></script>
<link rel="stylesheet" href="/assets/platform/plugins/myframe/css/myframe.css">
<!--viewer-->
<script src="/assets/platform/plugins/viewer/viewer.min.js"></script>
<script src="/assets/platform/plugins/viewer/jquery-viewer.min.js"></script>
</head>
<body style="background-color: white">
<style>
.el-divider--horizontal {
margin: 12px 0px 14px 0px;
}
.dia .el-dialog__body {
padding: 10px 20px;
}
.editor {
width: 100%;
height: 120px;
}
.el-form {
margin-left: 30px;
}
.need .el-form-item__label {
line-height: 20px;
font-size: 14px;
}
.need .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
margin-bottom: 8px;
}
.need .el-form--label-top .el-form-item__label {
padding: 0px;
}
.el-transfer-panel {
width: 40%;
min-height: 100%;
}
.el-transfer-panel__filter {
margin: 5px;
}
.el-transfer {
height: 400px;
}
.el-transfer-panel .el-transfer-panel__footer {
text-align: right;
}
.el-dialog__footer {
padding: 2px 20px 20px;
}
.el-message-box {
width: 450px;
}
.el-checkbox {
margin-right: 0px;
}
.el-transfer-panel__list.is-filterable {
height: 320px;
}
.bmqk .el-card__body {
padding: 10px 20px;
}
.el-transfer-panel {
text-align: left;
}
.v-modal {
background-color: transparent;
}
.el-table-container {
padding-top: 0px;
}
.navbar {
margin-bottom: 0px;
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="tbshow">
<el-row class="header navbar bg-white">
<div class="btn-group tool-button mt5">
<el-input style="width:180px;" placeholder="可按活动名称查询" v-model="pageForm.searchKeyword"
clearable></el-input>
<el-select placeholder="请选择活动类型" filterable v-model="pageForm.hdlx" style="width: 160px;"
clearable="true"
filterable="true">
<el-option v-for="item in queryHdlx" :label="item.name" :value="item.id"></el-option>
</el-select>
<el-select placeholder="请选择活动项目" v-model="pageForm.hdxm" style="width: 160px;" clearable="true"
filterable="true">
<el-option v-for="item in queryHdxm" :label="item.name" :value="item.id"></el-option>
</el-select>
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
</el-row>
<!--表格-->
<el-row class="el-table-container">
<el-table
:data="tableData"
size="small"
>
<el-table-column label="序号" header-align="center" align="center" type="index">
<template scope="scope">
<span>{{scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1}}</span>
</template>
</el-table-column>
<el-table-column label="活动名称" width="200" :show-overflow-tooltip="true" prop="xhdmc"
header-align="center"
align="center"></el-table-column>
<el-table-column label="活动地点" width="140" :show-overflow-tooltip="true" prop="hddz"
header-align="center"
align="center"></el-table-column>
<el-table-column label="活动类型" prop="hdlx" header-align="center" align="center"></el-table-column>
<el-table-column label="活动项目" prop="hdxm" header-align="center" align="center"></el-table-column>
<el-table-column label="报名开始时间" prop="bmkssj" header-align="center"
align="center"></el-table-column>
<el-table-column label="报名截止时间" prop="bmjssj" header-align="center"
align="center"></el-table-column>
<el-table-column label="活动开始时间" prop="kssj" header-align="center" align="center"></el-table-column>
<el-table-column align="center" header-align="center" label="报名方式" prop="bmfs">
<template slot-scope="scope">
<el-lable v-if="scope.row.bmfs!='名额分配'">{{scope.row.bmfs}}</el-lable>
<el-lable v-else>院级工会报名</el-lable>
</template>
</el-table-column>
<el-table-column label="报名状态" prop="bmzt" header-align="center" align="center">
<template slot-scope="scope">
<el-tag type="warning" v-if="scope.row.bmzt=='报名待审核'&&scope.row.cc!='1'">报名待审核</el-tag>
<el-tag type="primary" v-if="scope.row.bmzt=='未报名'&&scope.row.cc!='1'">未报名</el-tag>
<el-tag type="success" v-if="scope.row.bmzt=='报名通过'&&scope.row.cc!='1'">报名通过</el-tag>
<el-tag type="info" v-if="scope.row.bmzt=='报名驳回'&&scope.row.cc!='1'">报名驳回</el-tag>
<el-tag type="info" v-if="scope.row.cc=='1'">报名取消</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="220px" header-align="center" align="center">
<template slot-scope="scope">
<el-button @click="openInfo(scope,1)" size="mini">查看</el-button>
<el-button size="mini"
v-if="(scope.row.bmfs=='院级工会报名' || scope.row.bmfs=='名额分配')&&flag != '1'"
type="primary"
@click="openBm(scope)">报名
</el-button>
<el-button size="mini" v-if="scope.row.bmfs=='个人报名'&&(scope.row.cc=='1'||scope.row.cc=='2')"
type="primary"
@click="handleCommand(scope,11)">报名
</el-button>
<el-button size="mini" v-if="scope.row.cc!='1'&&scope.row.bmfs=='个人报名'&&scope.row.cc!='2'"
type="warning"
@click="qxbm(scope)">取消报名
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<!--分页-->
<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, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="bmshow">
<div class="text-primary pointer" style="font-size: 20px" @click="tbshow=true,bmshow=false">
<i class="el-icon-arrow-left"></i>
返回
</div>
<el-divider content-position="left">
<span style="color: rgb(121, 187, 255)">
请选择参加【{{temp.xhdmc}}】的名单,注:<span v-if="temp.bmfs=='名额分配'&&fpme!=null">总人数<span
style="color: red">{{fpme.hdrs}}</span></span><span
v-if="temp.manrs!=''&&temp.manrs!=null">男队人数<span style="color: red">{{temp.manrs}}</span>人,</span>
<span v-if="temp.womenrs!=''&&temp.womenrs!=null">女队人数<span style="color:red;">{{temp.womenrs}}</span>人,</span>
<span v-if="temp.hdrs!=''&&temp.hdrs!=null&&temp.bmfs!='名额分配'">需报名人数<span
style="color: red">{{temp.hdrs}}</span></span>
</span>
</el-divider>
<div style="margin: 14px 0px 8px 0px;color:red" v-if="temp.bmfs=='名额分配'&&fpme!=null">
报名要求:{{fpme.bmyq}}
</div>
<div style="width: 100%;text-align: center">
<el-transfer
filterable
:props="{key:'id',label:'display'}"
:titles="['院级可报人员名单','已选择']"
v-model="selUsers"
@right-check-change="rightChange"
@change="right"
:data="ryData">
<el-button @click="caozuo(11)" class="transfer-footer" slot="right-footer" size="small"
type="primary">
运动员(参与者)
</el-button>
<el-button @click="caozuo(10)" class="transfer-footer" slot="right-footer" size="small"
type="success">
教练
</el-button>
<el-button @click="caozuo(9)" class="transfer-footer" slot="right-footer" size="small"
type="warning">
领队
</el-button>
</el-transfer>
</div>
<el-table border :data="ryTableData" max-height="240px" height="240px" size="mini" style="margin-top: 14px;"
:default-sort="{prop:'rysf',order:'ascending'}"
:header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope">
<span>{{scope.$index + (ryPageForm.pageNumber - 1) * ryPageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="姓名" prop="username"></el-table-column>
<el-table-column align="center" header-align="center" label="教工号" prop="loginname"></el-table-column>
<el-table-column align="center" :show-overflow-tooltip="true" width="180" header-align="center"
label="单位"
prop="name"></el-table-column>
<el-table-column align="center" header-align="center" label="电话" prop="mobile"></el-table-column>
<el-table-column align="center" header-align="center" label="性别" width="52px"
prop="sex"></el-table-column>
<el-table-column align="center" header-align="center" label="身份" width="148px" prop="rysf"
:sort-method="sortChange">
<template slot-scope="scope">
<el-tag v-if="scope.row.rysf=='9'" @close="handleClose(scope,scope.$index)" size="mini"
effect="dark" type="warning" closable>领队
</el-tag>
<el-tag v-if="scope.row.rysf=='10'" @close="handleClose(scope,scope.$index)" size="small"
effect="dark" type="success" closable>教练
</el-tag>
<el-tag v-if="scope.row.rysf=='11'" @close="handleClose(scope,scope.$index)" size="mini"
effect="dark" closable>运动员(参与者)
</el-tag>
</template>
</el-table-column>
</el-table>
<span style="float: right;">
<el-button type="primary" @click="doBm">提 交</el-button>
</span>
</div>
</transition>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="isshow">
<div class="text-primary pointer" style="font-size: 20px" @click="isshow=false,tbshow=true">
<i class="el-icon-arrow-left"></i>
返回
<div style="float: right;margin-right: 20px">
<el-button v-if="(infoTemp.bmfs=='院级工会报名' || infoTemp.bmfs=='名额分配')&&flag != '1'" type="primary"
@click="openBm(infoFlag)">报名
</el-button>
<el-button v-if="infoTemp.bmfs=='个人报名'&&(infoTemp.cc=='1'||infoTemp.cc=='2')" type="primary"
@click="handleCommand(infoFlag,11)">报名
</el-button>
<el-button v-if="infoTemp.cc!='1'&&infoTemp.bmfs=='个人报名'&&infoTemp.cc!='2'" type="warning"
@click="qxbm(infoFlag)">取消报名
</el-button>
</div>
</div>
<el-tabs v-model="xqactive" style="margin-right: 20px;margin-left: 20px">
<el-tab-pane label="活动详细信息" name="1">
<table class="table table-bordered">
<tr>
<td colspan="6" class="text-center" style="font-size: 20px;background-color: #f5f5f5">
{{viewData.xhdmc}}
</td>
</tr>
<tr>
<td>活动地点</td>
<td colspan="2">{{viewData.hddz}}</td>
<td>主办单位</td>
<td colspan="2">{{viewData.unit}}</td>
</tr>
<tr>
<td>活动类型</td>
<td>{{viewData.hdlx}}</td>
<td>活动项目</td>
<td>{{viewData.hdxm}}</td>
<td>活动经费预算</td>
<td>{{viewData.jfys}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td>报名开始时间</td>
<td>{{viewData.bmkssj}}</td>
<td>报名截止时间</td>
<td>{{viewData.bmjssj}}</td>
<td>活动年份</td>
<td>{{viewData.hdnf}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td>活动开始时间</td>
<td>{{viewData.hdks}}</td>
<td>活动结束时间</td>
<td>{{viewData.hdjs}}</td>
<td>组合方式</td>
<td>{{viewData.zhfs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td>颁奖模式</td>
<td>{{viewData.bjms}}</td>
<td>竞赛模式</td>
<td>{{viewData.jsfs}}</td>
<td>报名方式</td>
<td v-if="viewData.bmfs!='名额分配'">{{viewData.bmfs}}</td>
<td v-else>院级工会报名</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">报名办法
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.bmbf"></div>
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">竞赛办法
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.jsbf"></div>
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">奖励办法
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.jlbf"></div>
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">其他注意事项
</td>
</tr>
<tr v-show="viewData.jsfs=='竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.zysx"></div>
</td>
</tr>
<tr v-show="viewData.jsfs=='非竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">活动通知
</td>
</tr>
<tr v-show="viewData.jsfs=='非竞赛类'" style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.hdtz"></div>
</td>
</tr>
</table>
</el-tab-pane>
<el-tab-pane label="活动工作人员列表" name="2">
<el-table :data="gzryListTableData" size="small" border
:header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column label="人员身份" prop="shmc" header-align="center"
align="center"></el-table-column>
<el-table-column label="姓名" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center"
align="center"></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="活动报名情况" name="3">
<el-table :data="bmTableData" size="small" border
:header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column label="序号" type="index" index="1" header-align="center"
align="center"></el-table-column>
<el-table-column v-if="bmfs == '院级工会报名' || bmfs == '名额分配'" label="报名单位" width="220"
prop="unionname" header-align="center" align="center"></el-table-column>
<el-table-column v-if="bmfs == '院级工会报名' || bmfs == '名额分配'" label="报名人员" prop="cyry"
header-align="center" align="center"></el-table-column>
<el-table-column v-if="bmfs == '个人报名'" label="职工号" prop="loginname" header-align="center"
align="center"></el-table-column>
<el-table-column v-if="bmfs == '个人报名'" label="姓名" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column v-if="bmfs == '个人报名'" label="性别" prop="sex" header-align="center"
align="center"></el-table-column>
<el-table-column v-if="bmfs == '个人报名'" label="单位" width="240px" prop="name"
header-align="center" align="center"></el-table-column>
<el-table-column v-if="bmfs == '个人报名'" label="联系电话" prop="mobile" header-align="center"
align="center"></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="活动获奖情况" name="4">
<el-table :data="hjTableData" size="small" border
:header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column v-if="hdms == '团体'" label="获奖单位" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column v-if="hdms == '个人'" label="获奖人" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column v-if="hdms == '个人'" label="获奖人单位" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column label="获奖信息" prop="mc" header-align="center" align="center"></el-table-column>
<el-table-column label="奖品名称" prop="jpmc" header-align="center" align="center">
<template slot-scope="scope">
<el-label v-if="scope.row.jpmc!='' && scope.row.jpmc!=null">{{scope.row.jpmc}}
</el-label>
<el-label v-else>无(现金奖励)</el-label>
</template>
</el-table-column>
<el-table-column label="金额" prop="money" header-align="center" align="center"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
<div style="float: right;margin-right: 20px">
<el-button v-if="(infoTemp.bmfs=='院级工会报名' || infoTemp.bmfs=='名额分配')&&flag != '1'" type="primary"
@click="openBm(infoFlag)">报名
</el-button>
<el-button v-if="infoTemp.bmfs=='个人报名'&&(infoTemp.cc=='1'||infoTemp.cc=='2')" type="primary"
@click="handleCommand(infoFlag,11)">报名
</el-button>
<el-button v-if="infoTemp.cc!='1'&&infoTemp.bmfs=='个人报名'&&infoTemp.cc!='2'" type="warning"
@click="qxbm(infoFlag)">取消报名
</el-button>
</div>
</div>
</transition>
</div>
<script>
var vue = new Vue({
el: "#app",
data: function () {
return {
pageForm: {//分页
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
hdlx: "",
hdxm: "",
},
tableData: [],//表格
queryHdlx: [],
queryHdxm: [],
/*院级工会管理员报名*/
bMDialogVisible: false,
temp: [],
ryData: [],
ryTableData: [],
selUsers: [],
ryPageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
},
flag: "",
user: [],
hdid: "",
dropDownIsShow: true,
fpme: [],
rightSelData: [],
/*查看*/
infoDialogVisible: false,
activeName: '1',
viewData: [],
gzryListTableData: [],
bmTableData: [],
hjTableData: [],
bmfs: "",
hdms: "",
infoTemp: [],
infoFlag: [],
titleTemp: "",
isshow: false,
xqactive: "1",
bmshow: false,
tbshow: true
}
},
methods: {
sortChange: function (a, b) {
},
pageData: function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post("/platform/hd/xhdgl/hdbm/data", self.pageForm, function (data) {
console.log(data)
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.hds.list;
self.pageForm.totalCount = data.data.hds.totalCount;
self.flag = data.data.flag;
self.user = data.data.user;
self.queryHdlx = data.data.hdlx;
}
}, "json");
},
/*分页*/
pageSizeChange: function (val) {
this.pageForm.pageSize = val;
this.pageData();
},
pageNumberChange: function (val) {
this.pageForm.pageNumber = val;
this.pageData();
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
/*查看*/
openInfo: function (scope, obj) {
var self = this;
if (obj == 1) {
self.titleTemp = "查看";
} else {
self.titleTemp = "报名";
}
self.infoFlag = scope;
self.infoTemp.bmfs = scope.row.bmfs;
self.infoTemp.cc = scope.row.cc;
self.bmfs = scope.row.bmfs;
self.hdms = scope.row.bjms;
$.post("/platform/hd/xhdgl/xhdxxgl/findById", {
id: scope.row.id,
bmfs: scope.row.bmfs,
bjms: scope.row.bjms
}, function (data) {
if (data.code == 0) {
self.viewData = data.data.xhd;
self.bmTableData = data.data.cyry;
self.hjTableData = data.data.hj;
self.gzryListTableData = data.data.gzry;
self.isshow = true;
self.tbshow = false;
}
}, "json");
},
/*院级工会管理员报名*/
openBm: function (scope) {
var self = this;
self.temp = scope.row;
if (scope.row.bmzt == "报名通过") {
self.$alert("已经报名此活动!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.rightSelData = [];
self.selUsers = [];
self.ryTableData = [];
/*查询人员名单*/
$.post("/platform/hd/xhdgl/hdbm/getBmRy", {hdid: scope.row.id}, function (data) {
if (data.code == 0) {
self.ryData = data.data.users;
if (data.data.ry != null && data.data.ry.length > 0) {
self.ryTableData = data.data.ry;
}
if (scope.row.bmfs != "名额分配") {
self.bmshow = true;
self.isshow = false;
self.tbshow = false;
}
}
}, "json");
if (scope.row.bmfs == "名额分配") {
var flag = 0;
$.post("/platform/hd/xhdgl/hdbm/findGhHdrs", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.fpme = data.data;
if (self.fpme == null) {
flag = 1;
}
}
}, "json");
setTimeout(function () {
if (flag == 1) {
self.$alert("您所在的院级工会暂未进行名额分配!", "温馨提示", {type: 'warning',});
return;
}
if (self.flag == "2") {
setTimeout(function () {
self.$alert(self.fpme.bmyq, "报名要求", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
callback: function () {
setTimeout(function () {
self.bmshow = true;
self.isshow = false;
self.tbshow = false;
}, 200);
}
});
}, 20)
} else {
self.bmshow = true;
self.isshow = false;
self.tbshow = false;
}
}, 80)
}
},
caozuo: function (obj) {
var self = this;
var rs = 0;
if (self.temp.bmfs == "名额分配") {
if (self.fpme == null) {
self.$alert("此活动暂未进行名额分配!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
} else {
rs = self.fpme.hdrs;
}
} else {
rs = self.temp.hdrs;
}
if (self.rightSelData == 0) {
self.$message({
message: "请在右侧列表中选择人员!",
type: 'warning'
});
return;
}
if ((self.rightSelData.length > rs) || (self.ryTableData.length >= rs) || ((self.ryTableData.length + self.rightSelData.length) > rs)) {
self.$alert("<span>当前活动需报名人数为<span style='color: red'>" + rs + "</span>人</span>", "温馨提示", {
dangerouslyUseHTMLString: true,
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
const loading = self.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
console.log(loading)
$.post("/platform/hd/xhdgl/hdbm/findById", {id: self.rightSelData.toString()}, function (data) {
if (data.code == 0) {
for (var i = 0; i < data.data.length; i++) {
data.data[i].rysf = obj;
self.ryTableData.push(data.data[i]);
}
for (var d = 0; d < self.rightSelData.length; d++) {
for (var j = 0; j < self.ryData.length; j++) {
if (self.rightSelData[d] == self.ryData[j].id) {
self.ryData.splice(j, 1);
}
}
}
self.rightSelData = [];
self.ryPageForm.totalCount = self.ryTableData.length;
setTimeout(() => {
loading.close()
}, 500)
}
}, "json");
},
handleClose: function (obj, index) {
var self = this;
self.ryData.push({id: obj.row.id, display: obj.row.display});
for (var i = 0; i < self.ryTableData.length; i++) {
if (obj.row.id == self.ryTableData[i].id) {
self.ryTableData.splice(i, 1);
return;
}
}
},
rightChange: function (obj) {
var self = this;
self.rightSelData = obj;
},
right: function (obj, pos) {
if (pos == "left") {
this.rightSelData = [];
}
},
/*报名提交*/
doBm: function () {
var self = this;
try {
if (self.temp.bmfs == "名额分配") {
if (self.fpme == null) {
self.$alert("此活动暂未进行名额分配!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
if (self.ryTableData.length != self.fpme.hdrs) {
self.$alert("请选择正确的人数进行报名!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
} else {
var manCount = 0;
var womenCount = 0;
var other = 0;
for (var i = 0; i < self.ryTableData.length; i++) {
if (self.ryTableData[i].rysf == "11") {
if (self.ryTableData[i].sex == "男") {
manCount++;
} else if (self.ryTableData[i].sex == "女") {
womenCount++;
}
} else if (self.ryTableData[i].rysf == "9" || self.ryTableData[i].rysf == "10") {
other++;
}
}
if (self.temp.zhfs == "男女组") {
if (self.temp.manrs != manCount || self.temp.womenrs != womenCount || self.ryTableData.length != self.temp.hdrs) {
self.$alert("<span>男队人数需<span style='color: red'>" + self.temp.manrs + "</span>人,当前<span style='color: red'>" + manCount + "</span>人,女队人数需<span style='color: red'>" + self.temp.womenrs + "</span>人,当前<span style='color: red'>" + womenCount + "</span>人<br/>领队及教练需<span style='color: red'>" + (self.temp.hdrs - (self.temp.manrs * 1 + self.temp.womenrs * 1)) + "</span>人,当前<span style='color: red'>" + other + "</span>人</span>", "温馨提示", {
dangerouslyUseHTMLString: true,
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
} else if (self.temp.zhfs == "普通组") {
if (self.ryTableData.length != self.temp.hdrs) {
self.$alert("<span>报名人数需<span style='color: red'>" + self.temp.hdrs + "</span>人,当前<span style='color: red'>" + self.ryTableData.length + "</span>人(运动员<span style='color: red'>" + (manCount * 1 + womenCount * 1) + "</span>人,领队及教练<span style='color: red'>" + other + "</span>人)</span>", "温馨提示", {
dangerouslyUseHTMLString: true,
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
}
}
var array = new Array();
for (var i = 0; i < self.ryTableData.length; i++) {
array.push(
{
hdid: self.temp.id,
userid: self.ryTableData[i].id,
rysfid: self.ryTableData[i].rysf,
unionid: self.ryTableData[i].unionid,
rylx: "1",
shzt: "1",
qxbm: "0",
}
);
}
self.$confirm("您确定要批量报名吗?", "温馨提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post("/platform/hd/xhdgl/hdbm/bmDo", {
array: JSON.stringify(array),
hdid: self.temp.id
}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.bMDialogVisible = false;
self.infoDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
} catch (e) {
console.log(e)
}
},
/*个人报名*/
handleCommand: function (scope, command) {
var self = this;
//先判断用户自己是否已报名
if ((scope.row.bmzt == "已报名" || scope.row.bmzt == "报名待审核") && scope.row.cc != '1') {
self.$alert("您已经报名此活动!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
self.dropDownIsShow = false;
return;
}
//判断当前活动是男女组还是普通组
if (scope.row.zhfs == "男女组") {
if (self.sex == "男") {
if (scope.row.boy == scope.row.manrs) {
self.$alert("当前活动男队人数名额已满!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
self.dropDownIsShow = false;
return;
}
}
if (self.sex == "女") {
if (scope.row.girl == scope.row.womenrs) {
self.$alert("当前活动女队人数名额已满!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
self.dropDownIsShow = false;
return;
}
}
}
if (scope.row.hdrs == scope.row.bmrs) {
self.$alert("当前活动人数名额已满!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
self.dropDownIsShow = false;
return;
}
self.$confirm("您确定要报名此活动吗?", "温馨提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post("/platform/hd/xhdgl/hdbm/grBmDo", {
hdid: scope.row.id,
userid: self.user.id,
rysfid: command,
unionid: self.user.unionid,
rylx: "1",
shzt: "1",
qxbm: "0"
}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.infoDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
clickGrBm: function (scope) {
var self = this;
self.hdid = scope.row.id;
},
qxbm: function (scope) {
var self = this;
if (moment().format("YYYY-MM-DD") > scope.row.bmjssj) {
self.$alert("当前活动报名已结束,不能取消!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.$confirm("您是否要取消此活动的报名?", "温馨提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post("/platform/hd/xhdgl/hdbm/qxbm", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.infoDialogVisible = false;
}
}, "json");
}
}
});
}
},
created: function () {
this.pageData();
},
watch: {
"pageForm.hdlx": function (obj) {
var self = this;
if (obj != "" && obj != null && obj != "undefined") {
self.pageForm.hdxm = "";
$.post("/platform/hd/xhdgl/xhdxxgl/findHdXm", {id: obj}, function (data) {
if (data.code == 0) {
self.queryHdxm = data.data;
console.log(data.data)
self.pageForm.hdxm = data.data[0].id;
}
}, "json");
}
},
}
})
</script>
</body>
</html>