453 lines
21 KiB
HTML
453 lines
21 KiB
HTML
<!--校活动秩序册 djx 2019-6-28 -->
|
|
<!--#
|
|
layout("/layouts/platform.html"){
|
|
#-->
|
|
<style>
|
|
|
|
.el-loading-mask.is-fullscreen .el-loading-spinner{
|
|
font-size: 28px;
|
|
}
|
|
.el-dialog__body{
|
|
padding: 10px 20px;
|
|
}
|
|
.el-divider--horizontal{
|
|
margin: 10px 0px 28px 0px;
|
|
}
|
|
.el-radio.is-bordered+.el-radio.is-bordered{
|
|
margin-left: 40px;
|
|
}
|
|
.el-dialog__footer{
|
|
padding:0px 20px 20px;
|
|
}
|
|
.el-card__body{
|
|
padding: 4px;
|
|
}
|
|
.el-card__header{
|
|
padding: 14px 20px;
|
|
}
|
|
|
|
</style>
|
|
<div id="app" v-cloak>
|
|
<el-row class="header navbar bg-white shadow">
|
|
<div class="btn-group tool-button mt5">
|
|
<el-input style="width:180px;" placeholder="可按活动名称查询" v-model="pageForm.searchKeyword" clearable></el-input>
|
|
</div>
|
|
|
|
<div class="btn-group tool-button mt5">
|
|
<el-select placeholder="请选择活动类型" 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>
|
|
</div>
|
|
|
|
<div class="btn-group tool-button mt5">
|
|
<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>
|
|
</div>
|
|
|
|
<div class="btn-group tool-button mt5">
|
|
<el-select placeholder="竞赛模式" v-model="pageForm.jsms" style="width: 120px;" clearable="true" filterable="true">
|
|
<el-option label="竞赛类" value="竞赛类"></el-option>
|
|
<el-option label="非竞赛类" value="非竞赛类"></el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button mt5">
|
|
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
|
</div>
|
|
|
|
<!--<div class="pull-right offscreen-right mt5">
|
|
<el-button size="medium" type="warning" @click="openAdd"><i class="ti-plus"></i>新建活动计划</el-button>
|
|
</div>-->
|
|
</el-row>
|
|
|
|
<!--表格-->
|
|
<el-row class="el-table-container">
|
|
<el-table :data="tableData" size="small">
|
|
<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" width="200" :show-overflow-tooltip="true" header-align="center" label="活动名称" prop="xhdmc"></el-table-column>
|
|
<el-table-column align="center" width="140" :show-overflow-tooltip="true" header-align="center" label="活动地点" prop="hddz"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="活动类型" prop="hdlx"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="活动类型" prop="hdxm"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="竞赛模式" prop="jsfs">
|
|
<template slot-scope="scope">
|
|
<el-tag type="primary" :disable-transitions="true" v-if="scope.row.jsfs=='竞赛类'">{{scope.row.jsfs}}</el-tag>
|
|
<el-tag type="warning" :disable-transitions="true" v-if="scope.row.jsfs=='非竞赛类'">{{scope.row.jsfs}}</el-tag>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" header-align="center" label="报名开始时间" prop="bmkssj"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="报名结束时间" prop="bmjssj"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="活动开始时间" prop="hdks"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="报名方式" prop="bmfs"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="已报名人数" prop="bmrs"></el-table-column>
|
|
<el-table-column align="center" label="操作" width="220px">
|
|
<template slot-scope="scope">
|
|
<el-button @click="exportZxc(scope)" size="mini">导出秩序册</el-button>
|
|
<el-button type="primary" @click="sendTz(scope)" size="mini">发送通知</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>
|
|
|
|
<el-dialog title="发送通知" width="50%" custom-class="ViewDialogClass" :close-on-click-modal="false" top="3%" class="dia" :visible.sync="fstzDialogVisible">
|
|
|
|
<el-divider content-position="left"><span style="color: #409eff">请选择发送方式</span></el-divider>
|
|
<el-row style="text-align: center;margin-bottom: 28px;">
|
|
<el-radio v-model="send" label="1" border size="medium">邮件发送</el-radio>
|
|
<el-radio v-model="send" label="2" border size="medium">短信发送</el-radio>
|
|
<!--<el-radio v-model="send" label="3" border size="medium">微信发送</el-radio>-->
|
|
</el-row>
|
|
|
|
<el-divider content-position="left"><span style="color: #409eff">请选择发送对象</span></el-divider>
|
|
<el-row style="text-align: center;margin-bottom: 8px;">
|
|
<el-radio v-model="sendTo" label="1" border size="medium">基层工会管理员</el-radio>
|
|
<el-radio v-model="sendTo" label="2" style="margin-left: 88px;" border size="medium">全体教职工</el-radio>
|
|
</el-row>
|
|
|
|
<el-card class="box-card" v-show="isShow">
|
|
<div slot="header" class="clearfix">
|
|
<span style="color: #e6a23c">{{title}}</span>
|
|
<el-button style="float: right;" @click="sendAll" type="primary" size="mini"><i class="el-icon-position"></i> 一键发送</el-button>
|
|
</div>
|
|
<el-row class="el-table-container">
|
|
<el-table :data="tzTableData" ref="tzTableData" :row-key="rowKey" @selection-change="changeFun" size="small" v-loading="tzloading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="white">
|
|
<el-table-column :reserve-selection="true" @selection-change="changeFun"
|
|
type="selection"
|
|
width="40">
|
|
</el-table-column>
|
|
<el-table-column label="序号" header-align="center" align="center" type="index">
|
|
<template scope="scope"><span>{{scope.$index+(tzPageForm.pageNumber - 1) * tzPageForm.pageSize + 1}}</span></template>
|
|
</el-table-column>
|
|
<el-table-column label="姓名" width="80px" prop="username" header-align="center" align="center" ></el-table-column>
|
|
<el-table-column label="性别" width="80px" prop="sex" header-align="center" align="center" ></el-table-column>
|
|
<el-table-column label="邮箱" prop="email" header-align="center" align="center" ></el-table-column>
|
|
<el-table-column label="手机" width="120px" prop="mobile" header-align="center" align="center" ></el-table-column>
|
|
<el-table-column label="单位" :show-overflow-tooltip="true" prop="name" header-align="center" align="center" ></el-table-column>
|
|
<el-table-column label="基层工会" :show-overflow-tooltip="true" prop="unionname" header-align="center" align="center" ></el-table-column>
|
|
</el-table>
|
|
</el-row>
|
|
<el-row class="el-pagination-container" style="margin-bottom: 0px;">
|
|
<el-pagination
|
|
@size-change="tzPageSizeChange"
|
|
@current-change="tzPageNumberChange"
|
|
:current-page="tzPageForm.pageNumber"
|
|
:page-sizes="[10, 20, 30, 50]"
|
|
:page-size="tzPageForm.pageSize"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="tzPageForm.totalCount">
|
|
</el-pagination>
|
|
</el-row>
|
|
</el-card>
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="fstzDialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="sendDo">发 送</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
</div>
|
|
<script>
|
|
var vue = new Vue({
|
|
el:"#app",
|
|
data:function () {
|
|
return{
|
|
pageForm:{//分页
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
totalCount: 0,
|
|
searchKeyword:"",
|
|
hdlx:"",
|
|
hdxm:"",
|
|
},
|
|
tableData:[],//表格
|
|
queryHdlx:[],
|
|
queryHdxm:[],
|
|
|
|
/*发送通知*/
|
|
fstzDialogVisible:false,
|
|
send:"",
|
|
sendTo:"",
|
|
tzTableData:[],
|
|
tzPageForm:{//分页
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
totalCount: 0,
|
|
searchKeyword:"",
|
|
},
|
|
isShow:false,
|
|
title:"",
|
|
tzloading:true,
|
|
multipleSelection:[],
|
|
temp:[],
|
|
}
|
|
},
|
|
methods:{
|
|
pageData:function () {
|
|
|
|
var self = this;
|
|
sublime.showLoadingbar();//显示loading
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/data", self.pageForm, function (data) {
|
|
sublime.closeLoadingbar();//关闭loading
|
|
if (data.code == 0) {
|
|
self.tableData = data.data.hds.list;
|
|
self.pageForm.totalCount=data.data.hds.totalCount;
|
|
self.queryHdlx = data.data.hdlx;
|
|
}
|
|
}, "json");
|
|
},
|
|
|
|
/*分页*/
|
|
pageSizeChange:function (val) {
|
|
this.pageForm.pageSize=val;
|
|
this.pageData();
|
|
},
|
|
pageNumberChange:function (val) {
|
|
this.pageForm.pageNumber=val;
|
|
this.pageData();
|
|
},
|
|
tzPageSizeChange:function (val) {
|
|
this.tzPageForm.pageSize=val;
|
|
this.tzPageData();
|
|
},
|
|
tzPageNumberChange:function (val) {
|
|
this.tzPageForm.pageNumber=val;
|
|
this.tzPageData();
|
|
},
|
|
|
|
doSearch:function () {
|
|
this.pageForm.pageNumber = 1;
|
|
this.pageData();
|
|
},
|
|
rowKey:function (row) {
|
|
return row.id;
|
|
},
|
|
|
|
changeFun:function(val) {
|
|
var self = this;
|
|
this.multipleSelection = val;
|
|
},
|
|
|
|
exportZxc:function (scope) {
|
|
var self = this;
|
|
window.location.href=base + "/platform/hd/xhdgl/hdzxc/exportZxc?id="+scope.row.id+"&bmfs="+scope.row.bmfs;
|
|
},
|
|
|
|
sendTz:function (scope) {
|
|
var self = this;
|
|
self.temp = scope.row;
|
|
self.fstzDialogVisible = true;
|
|
},
|
|
tzPageData:function () {
|
|
var self = this;
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/findUser", self.tzPageForm, function (data) {
|
|
if (data.code == 0) {
|
|
self.tzTableData = data.data.list.list;
|
|
self.tzPageForm.totalCount=data.data.list.totalCount;
|
|
setTimeout(function () {
|
|
self.tzloading = false;
|
|
},200);
|
|
}
|
|
}, "json");
|
|
},
|
|
|
|
sendDo:function () {
|
|
var self = this;
|
|
if(self.send==null || self.send=="") {
|
|
self.$message({message: "请选择发送方式!", type: 'warning'});
|
|
return;
|
|
}
|
|
if(self.sendTo==null || self.sendTo=="") {
|
|
self.$message({message: "请选择发送对象!", type: 'warning'});
|
|
return;
|
|
}
|
|
if(self.multipleSelection.length==0) {
|
|
self.$message({message: "请从下面列表中选择人员!", type: 'warning'});
|
|
return;
|
|
}
|
|
var email = new Array();
|
|
var mobile = new Array();
|
|
for(var i=0; i<self.multipleSelection.length; i++) {
|
|
email.push(self.multipleSelection[i].email);
|
|
mobile.push({
|
|
name:self.multipleSelection[i].username,
|
|
mobile:self.multipleSelection[i].mobile,
|
|
});
|
|
}
|
|
var loading = self.$loading({
|
|
lock: true,
|
|
text: '正在发送中...',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
|
|
self.$confirm("确定要发送通知吗?","温馨提示",{
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
callback:function (a,b) {
|
|
if("confirm" == a) {
|
|
if(self.send=="1") {
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/sendEmail", {id:self.temp.id,bmfs:self.temp.bmfs,email:email.toString()}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: "发送成功!",
|
|
type: 'success'
|
|
});
|
|
loading.close();
|
|
self.fstzDialogVisible = false;
|
|
}
|
|
}, "json");
|
|
}else if(self.send=="2") {
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/sendMsg", {id:self.temp.id,mobile:JSON.stringify(mobile)}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: "发送成功!",
|
|
type: 'success'
|
|
});
|
|
loading.close();
|
|
self.fstzDialogVisible = false;
|
|
}
|
|
}, "json");
|
|
}else if(self.send=="3") {
|
|
alert("暂未开放,敬请期待!");
|
|
loading.close();
|
|
}
|
|
self.$refs.tzTableData.clearSelection();
|
|
}else{
|
|
loading.close();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
sendAll:function () {
|
|
var self = this;
|
|
var str = "";
|
|
if(self.send==null || self.send=="") {
|
|
self.$message({message: "请选择发送方式!", type: 'warning'});
|
|
return;
|
|
}
|
|
if(self.sendTo == "1") {
|
|
str="确定要一键发送给所有基层工会管理员吗?";
|
|
}else if(self.sendTo == "2") {
|
|
str="确定要一键发送给所有教职工吗?";
|
|
}
|
|
var loading = self.$loading({
|
|
lock: true,
|
|
text: '正在发送中...',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
self.$confirm(str,"温馨提示",{
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
callback:function (a,b) {
|
|
if("confirm" == a) {
|
|
if(self.send=="1") {
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/sendAllEmail", {id:self.temp.id,bmfs:self.temp.bmfs,obj:self.tzPageForm.obj}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: "发送成功!",
|
|
type: 'success'
|
|
});
|
|
loading.close();
|
|
self.fstzDialogVisible = false;
|
|
}
|
|
}, "json");
|
|
}else if(self.send=="2") {
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/sendAllMsg", {id:self.temp.id,obj:self.tzPageForm.obj}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: "发送成功!",
|
|
type: 'success'
|
|
});
|
|
loading.close();
|
|
self.fstzDialogVisible = false;
|
|
}
|
|
}, "json");
|
|
}else if(self.send=="3") {
|
|
alert("暂未开放,敬请期待!");
|
|
loading.close();
|
|
}
|
|
}else{
|
|
loading.close();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
sendEmail:function (scope) {
|
|
var self = this;
|
|
var loading = self.$loading({
|
|
lock: true,
|
|
text: '正在发送中...',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
setTimeout(function () {
|
|
loading.close();
|
|
},1000);
|
|
return;
|
|
$.post(base + "/platform/hd/xhdgl/hdzxc/sendEmail", {id:scope.row.id,bmfs:scope.row.bmfs}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: "发送成功!",
|
|
type: 'success'
|
|
});
|
|
loading.close();
|
|
}
|
|
}, "json");
|
|
}
|
|
|
|
},
|
|
created:function () {
|
|
this.pageData();
|
|
},
|
|
watch:{
|
|
"pageForm.hdlx":function (obj) {
|
|
var self = this;
|
|
if(obj != "" && obj != null && obj!="undefined") {
|
|
self.pageForm.hdxm = "";
|
|
$.post(base + "/platform/hd/xhdgl/xhdxxgl/findHdXm", {id:obj}, function (data) {
|
|
if (data.code == 0) {
|
|
self.queryHdxm = data.data;
|
|
self.pageForm.hdxm = data.data[0].id;
|
|
}
|
|
}, "json");
|
|
}
|
|
},
|
|
"sendTo":function (obj) {
|
|
var self = this;
|
|
if(obj != null && obj != "") {
|
|
self.isShow = true;
|
|
}
|
|
if(obj == "1") {
|
|
self.title = "以下是基层工会管理员名单";
|
|
}else{
|
|
self.title = "以下是全体教职工名单";
|
|
}
|
|
self.tzloading = true;
|
|
self.tzPageForm.obj = obj;
|
|
self.$refs.tzTableData.clearSelection();
|
|
vue.tzPageData();
|
|
}
|
|
}
|
|
})
|
|
</script>
|
|
<!--#
|
|
}
|
|
#-->
|