first commit

This commit is contained in:
2026-09-09 09:14:28 +08:00
commit 5343198112
5199 changed files with 1052895 additions and 0 deletions
@@ -0,0 +1,883 @@
<!--分会活动信息管理 djx 2019-07-08-->
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.dia .el-dialog__body {
padding: 10px 20px;
}
.el-form--label-top .el-form-item__label {
padding: 0px;
}
.el-form {
margin-left: 30px;
}
.el-form-item__label {
line-height: 20px;
font-size: 14px;
}
.el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
margin-bottom: 8px;
}
.el-divider--horizontal {
margin: 16px 0px;
}
.editor {
height: 160px;
}
label {
margin-bottom: 0px;
}
.el-card__body {
padding: 10px;
}
.el-input--suffix .el-input__inner {
padding-right: 0px;
}
.el-dropdown-menu__item {
padding: 0px 15px;
}
.el-date-editor .el-range-separator {
padding: 0px;
}
.el-range-editor.el-input__inner {
padding: 3px 6px;
}
.el-date-editor .el-range-input {
width: 42%;
}
.el-date-editor .el-range__close-icon {
width: 18px;
}
#query .el-card__body {
padding: 10px;
}
.el-card__body {
padding: 10px 20px 0px;
}
.bmqk .el-card__body {
padding: 10px 20px;
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
}
#first .el-card__body {
padding: 0px;
}
.el-table-container {
padding-top: 0px;
padding-left: 5px;
padding-right: 5px;
}
.v-0x2323544 {
text-align: center;
color: rgb(180, 180, 180);
}
.v-0x345756765 {
text-align: center;
}
.v-0x2392939 {
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="isshow">
<!--快捷查询-->
<el-row class="header navbar bg-white shadow">
<span>基础查询:</span>
<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" v-if="curr == '1'">
<el-select placeholder="请选择院级工会" v-model="pageForm.unionid" style="width: 180px;" clearable="true"
filterable="true">
<el-option v-for="item in unionOptions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="loading = true,doSearch()"></el-button>
</div>
<el-row style="margin-bottom: 5px">
<div class="btn-group tool-button mt5">
<span>一键查询:</span>
</div>
<div class="btn-group tool-button mt5">
<el-button size="medium" @click="loading = true;pageForm.zt='未开启';pageData()">未开启
</el-button>
</div>
<div class="btn-group tool-button mt5">
<el-button size="medium" @click="loading = true;pageForm.zt='报名中';pageData()">报名中
</el-button>
</div>
<div class="btn-group tool-button mt5">
<el-button size="medium" @click="loading = true;pageForm.zt='报名结束';pageData()">报名结束
</el-button>
</div>
<div class="btn-group tool-button mt5">
<el-button size="medium" @click="loading = true;pageForm.zt='活动进行中';pageData()">
正在进行
</el-button>
</div>
<div class="btn-group tool-button mt5">
<el-button size="medium" @click="loading = true;pageForm.zt='活动结束';pageData()">已结束
</el-button>
</div>
</el-row>
<!--表格-->
<el-row class="el-table-container">
<el-table :data="tableData" size="small" v-loading="loading" element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading" element-loading-background="white">
<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="160" :show-overflow-tooltip="true" header-align="center"
label="分会活动名称" prop="fhdmc"></el-table-column>
<el-table-column align="center" width="160" :show-overflow-tooltip="true" header-align="center"
label="院级工会" prop="unionname"></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="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="zt">
<template slot-scope="scope">
<el-tag type="info" v-if="scope.row.zt=='未开启'">{{scope.row.zt}}</el-tag>
<el-tag type="warning" v-if="scope.row.zt=='报名中'">{{scope.row.zt}}</el-tag>
<el-tag type="parimay" v-if="scope.row.zt=='报名结束'">{{scope.row.zt}}</el-tag>
<el-tag type="success" v-if="scope.row.zt=='活动进行中'">{{scope.row.zt}}</el-tag>
<el-tag type="danger" v-if="scope.row.zt=='活动结束'">{{scope.row.zt}}</el-tag>
<el-tag type="danger" v-if="scope.row.sdjs=='1'">活动结束</el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="已报名人数" prop="bmrs"
width="80px"></el-table-column>
<el-table-column align="center" label="操作" width="240px">
<template slot-scope="scope">
<el-button size="mini" @click="exporthdhymd(scope.row.id)">导出</el-button>
<el-button @click="openInfo(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-row>
</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=true">
<i class="el-icon-arrow-left"></i>
返回
</div>
<el-tabs v-model="xqactive">
<el-tab-pane label="活动详细信息" name="1">
<table class="table table-bordered" style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);" class="text-center">
<td colspan="6" style="font-size: 20px;background-color: #f5f5f5">{{viewData.fhdmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动类型</td>
<td class="v-0x2323544" >{{viewData.hdlx}}</td>
<td class="v-0x345756765">活动项目</td>
<td class="v-0x2323544" >{{viewData.hdxm}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动地点</td>
<td class="v-0x2323544" >{{viewData.hddz}}</td>
<td class="v-0x345756765">活动年份</td>
<td class="v-0x2323544" >{{viewData.hdnf}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动经费预算</td>
<td class="v-0x2323544" >{{viewData.jfys}}</td>
<td class="v-0x345756765">是否推送日历</td>
<td class="v-0x2323544" >
<div v-if="viewData.sfrl==1"></div>
<div v-else></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">主办院级工会</td>
<td class="v-0x2323544" >{{viewData.unionname}}</td>
<td class="v-0x345756765">人数限制</td>
<td class="v-0x2323544" >{{viewData.hdrs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">报名开始时间</td>
<td class="v-0x2323544" >{{viewData.bmkssj}}</td>
<td class="v-0x345756765">报名截止时间</td>
<td class="v-0x2323544" >{{viewData.bmjssj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动开始时间</td>
<td class="v-0x2323544" >{{viewData.hdks}}</td>
<td class="v-0x345756765">活动结束时间</td>
<td class="v-0x2323544" >{{viewData.hdjs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">报名办法
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.bmbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">活动内容
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.hdnr"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">奖励办法
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.jlbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">其他注意事项
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.zysx"></div>
</td>
</tr>
</table>
</el-tab-pane>
<el-tab-pane label="活动报名情况" name="2">
<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 label="职工号" prop="loginname" 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="mobile" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column label="院级工会" prop="unionname" header-align="center"
align="center"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</transition>
</div>
<script>
let E = window.wangEditor
let bmEditor = null
let nrEditor = null
let jlEditor = null
let zysxEditor = null
let editbmEditor = null
let editnrEditor = null
let editjlEditor = null
let editzysxEditor = null
const vue = new Vue({
el: "#app",
data: function () {
return {
/*列表*/
tableData: [],
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
hdlx: "",
hdxm: "",
zt: "",
unionid: "",
},
queryHdlx: [],
queryHdxm: [],
loading: true,
/*新增*/
addDialogVisible: false,
formData: {
hdxmid: "",
fhdmc: "",
},
hdlxOptions: [],//活动类型
hdxmOptions: [],//活动项目
unionOptions: [],
addBm: [],
addHd: [],
hdjhOptions: [],
fzrOptions: [],
/*编辑*/
editDialogVisible: false,
editFormData: {
hdlxid: "",
hdxmid: "",
},
editFormRules: {},
editBm: [],
editHd: [],
editHdjhOptions: [],
disabled: false,
/*查看*/
infoDialogVisible: false,
activeName: '1',
viewData: [],
bmTableData: [],
bmfs: "",
editFlag: [],
unionidFlag: "",
curr: "",
xqactive: "1",
isshow: true,
formRules: {
fhdmc: [{required: true, message: '请填写活动名称', trigger: ['blur', 'change']}],
hddz: [{required: true, message: '请填写活动地址', trigger: ['blur', 'change']}],
jfys: [{required: true, message: '请选择活动经费预算', trigger: ['blur', 'change']}],
unionid: [{required: true, message: '请选择院级工会', trigger: ['blur', 'change']}],
addBm: [{required: true, message: '请填写报名日期', trigger: ['blur', 'change']}],
addHd: [{required: true, message: '请填写活动日期', trigger: ['blur', 'change']}],
},
}
},
methods: {
pageData: function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hd/fhdgl/fhdxxgl/data", self.pageForm).then(data => {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.hds.list;
self.pageForm.totalCount = data.data.hds.totalCount;
self.hdlxOptions = data.data.hdlx;
self.queryHdlx = data.data.hdlx;
self.unionOptions = data.data.unions;
self.hdjhOptions = data.data.hdjh;
self.pageForm.zt = "";
if (data.data.flag != null && data.data.flag != "") {
self.unionidFlag = data.data.flag;
}
self.curr = data.data.curr;
self.loading = false;
} else {
self.loading = false;
}
});
},
/*分页*/
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();
},
/*新增*/
openAdd: function () {
var self = this;
self.fzrOptions = [];
self.formData = {
hdlxid: "",
hdxmid: "",
fhdmc: "",
unionid: self.unionidFlag,
qx: []
};
self.addDialogVisible = true;
self.$nextTick(function () {
//实例化编辑器
bmEditor = new wangEditor("#bmEditor")
bmEditor.create()
jsEditor = new wangEditor("#jsEditor")
jsEditor.create()
jlEditor = new wangEditor("#jlEditor")
jlEditor.create()
zysxEditor = new wangEditor("#zysxEditor")
zysxEditor.create()
hdtzEditor = new wangEditor("#hdtzEditor")
hdtzEditor.create()
nrEditor = new wangEditor("#nrEditor")
nrEditor.create()
});
},
doAdd: function () {
var self = this;
if (self.addBm) {
self.formData.bmkssj = self.addBm[0];
self.formData.bmjssj = self.addBm[1];
}
if (self.addHd) {
self.formData.hdkssj = self.addHd[0];
self.formData.hdjssj = self.addHd[1];
}
if (self.formData.hdkssj < self.formData.bmkssj || self.formData.hdkssj < self.formData.bmjssj) {
self.$alert("活动开始日期需在活动报名截止之后!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.formData.bmbf = bmEditor.txt.text();
self.formData.hdnr = nrEditor.txt.text();
self.formData.jlbf = jlEditor.txt.text();
self.formData.zysx = zysxEditor.txt.text();
self.formData.qx = self.formData.qx.toString();
self.$refs["addForm"].validate(function (valid) {
if (valid) {
const loading = self.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/hd/fhdgl/fhdxxgl/addDo", self.formData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.addDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
loading.close()
}, "json");
}
});
},
/*编辑*/
openEdit: function (scope) {
var self = this;
self.editBm = [];
self.editHd = [];
self.editFlag = [];
self.editHdjhOptions = [];
if (moment().format("YYYY-MM-DD HH:mm:ss") >= scope.row.hdkssj) {
self.disabled = true;
} else {
self.disabled = false;
}
$.post(base + "/platform/hd/fhdgl/fhdxxgl/findHd", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.editDialogVisible = true;
self.$nextTick(function () {
//实例化编辑器
editbmEditor = new wangEditor("#editbmEditor")
editbmEditor.create()
editnrEditor = new wangEditor("#editnrEditor")
editnrEditor.create()
editjlEditor = new wangEditor("#editjlEditor")
editjlEditor.create()
editzysxEditor = new wangEditor("#editzysxEditor")
editzysxEditor.create()
if (data.data.fhd.bmbf != "" && data.data.fhd.bmbf != null) {
editbmEditor.txt.html(data.data.fhd.bmbf);
}
if (data.data.fhd.hdnr != "" && data.data.fhd.hdnr != null) {
editnrEditor.txt.html(data.data.fhd.hdnr);
}
if (data.data.fhd.jlbf != "" && data.data.fhd.jlbf != null) {
editjlEditor.txt.html(data.data.fhd.jlbf);
}
if (data.data.fhd.zysx != "" && data.data.fhd.zysx != null) {
editzysxEditor.txt.html(data.data.fhd.zysx);
}
});
self.hdxmOptions = data.data.hdxm;
self.editFormData = data.data.fhd;
if (data.data.fhd.qx != null && data.data.fhd.qx != undefined) {
self.editFormData.qx = self.editFormData.qx.split(",")
} else {
self.editFormData.qx = [];
}
self.fzrOptions = [{id: data.data.fhd.fzr, display: data.data.fhd.display}];
if (data.data.hdjh.length > 0) {
self.editHdjhOptions = data.data.hdjh;
}
self.editHdjhOptions.push({
id: data.data.fhd.jhid,
jhmc: data.data.fhd.jhmc,
hdlxid: data.data.fhd.hdlxid,
hdxmid: data.data.fhd.hdxmid
});
if (data.data.fhd.bmkssj != "" && data.data.fhd.bmkssj != null) {
self.editBm.push(data.data.fhd.bmkssj);
}
if (data.data.fhd.bmjssj != "" && data.data.fhd.bmjssj != null) {
self.editBm.push(data.data.fhd.bmjssj);
}
if (data.data.fhd.hdkssj != "" && data.data.fhd.hdkssj != null) {
self.editHd.push(data.data.fhd.hdkssj);
}
if (data.data.fhd.hdjssj != "" && data.data.fhd.hdjssj != null) {
self.editHd.push(data.data.fhd.hdjssj);
}
self.editFlag.push(data.data.fhd.fhdmc);
self.editFlag.push(data.data.fhd.hdlxid);
self.editFlag.push(data.data.fhd.hdxmid);
}
}, "json");
},
doEdit: function () {
var self = this;
if (self.editBm) {
self.editFormData.bmkssj = self.editBm[0];
self.editFormData.bmjssj = self.editBm[1];
}
if (self.editHd) {
self.editFormData.hdkssj = self.editHd[0];
self.editFormData.hdjssj = self.editHd[1];
}
self.editFormData.bmbf = editbmEditor.txt.html();
self.editFormData.hdnr = editnrEditor.txt.html();
self.editFormData.jlbf = editjlEditor.txt.html();
self.editFormData.zysx = editzysxEditor.txt.html();
self.editFormData.qx = self.editFormData.qx.toString();
self.$refs["editForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hd/fhdgl/fhdxxgl/editDo", self.editFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.editDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
selChange: function (obj) {
var self = this;
if (obj == "" || obj == null) {
self.formData.fhdmc = "";
self.formData.hdlxid = "";
self.formData.hdxmid = "";
} else {
for (var i = 0; i < self.hdjhOptions.length; i++) {
if (obj == self.hdjhOptions[i].id) {
self.formData.fhdmc = self.hdjhOptions[i].jhmc;
if (self.hdjhOptions[i].hdlxid != null && self.hdjhOptions[i].hdlxid != "") {
self.formData.hdlxid = self.hdjhOptions[i].hdlxid;
}
if (self.hdjhOptions[i].hdxmid != null && self.hdjhOptions[i].hdxmid != "") {
setTimeout(function () {
self.formData.hdxmid = self.hdjhOptions[i].hdxmid;
}, 80)
}
return;
}
}
}
},
editSelChange: function (obj) {
var self = this;
if (obj == "" || obj == null) {
self.editFormData.fhdmc = self.editFlag[0];
self.editFormData.hdlxid = self.editFlag[1];
self.editFormData.hdxmid = self.editFlag[2];
} else {
for (var i = 0; i < self.editHdjhOptions.length; i++) {
if (obj == self.editHdjhOptions[i].id) {
self.editFormData.fhdmc = self.editHdjhOptions[i].jhmc;
if (self.editHdjhOptions[i].hdlxid != null && self.editHdjhOptions[i].hdlxid != "") {
self.editFormData.hdlxid = self.editHdjhOptions[i].hdlxid;
}
if (self.editHdjhOptions[i].hdxmid != null && self.editHdjhOptions[i].hdxmid != "") {
setTimeout(function () {
self.editFormData.hdxmid = self.editHdjhOptions[i].hdxmid;
}, 80)
}
return;
}
}
}
},
remoteMethod: function (obj) {
var self = this;
$.post(base + "/platform/hd/fhdgl/fhdxxgl/findFzr", {obj: obj}, function (data) {
if (data.code == 0) {
self.fzrOptions = data.data;
}
}, "json");
},
selFzrChange: function (obj) {
var self = this;
for (var i = 0; i < self.fzrOptions.length; i++) {
if (self.fzrOptions[i].id == obj) {
vue.$set(self.formData, 'phone', self.fzrOptions[i].mobile)
return;
}
}
},
editSelFzrChange: function (obj) {
var self = this;
for (var i = 0; i < self.fzrOptions.length; i++) {
if (self.fzrOptions[i].id == obj) {
vue.$set(self.editFormData, 'phone', self.fzrOptions[i].mobile)
return;
}
}
},
/*查看*/
openInfo: function (scope) {
var self = this;
$.post(base + "/platform/hd/fhdgl/fhdxxgl/findById", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data.fhd;
self.bmTableData = data.data.cyry;
self.isshow = false;
}
}, "json");
},
/*删除*/
deleteDo: function (scope) {
var self = this;
if (scope.row.hdkssj <= moment().format("YYYY-MM-DD")) {
self.$alert("此活动已开始,不能删除!", "温馨提示", {
type: 'error',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.$confirm("此操作将永久删除该活动, 是否继续?", "温馨提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post(base + "/platform/hd/fhdgl/fhdxxgl/deleteDo", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
exporthdhymd(id) {
window.location.href = '/platform/hd/fhdgl/fhdxxgl/exporthdhymd?id=' + id
}
},
created: function () {
this.pageData();
},
watch: {
"formData.hdlxid": function (obj) {
var self = this;
if (obj != "" && obj != null && obj != "undefined") {
self.formData.hdxmid = "";
$.post(base + "/platform/hd/xhdgl/xhdxxgl/findHdXm", {id: obj}, function (data) {
if (data.code == 0) {
self.hdxmOptions = data.data;
self.formData.hdxmid = data.data[0].id;
}
}, "json");
}
},
"editFormData.hdlxid": function (obj) {
var self = this;
if (obj != "" && obj != null && obj != "undefined") {
self.editFormData.hdxmid = "";
$.post(base + "/platform/hd/xhdgl/xhdxxgl/findHdXm", {id: obj}, function (data) {
if (data.code == 0) {
self.hdxmOptions = data.data;
var flag = 0;
for (var i = 0; i < data.data.length; i++) {
if (data.data[i].id == self.editFlag[2]) {
flag = 1;
break;
} else {
flag = 2;
}
}
if (flag == 2) {
self.editFormData.hdxmid = data.data[0].id;
} else {
self.editFormData.hdxmid = self.editFlag[2];
}
}
}, "json");
}
},
"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");
}
},
},
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,628 @@
<!DOCTYPE html>
<html lang="${lang,escape}">
<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>
.dia .el-dialog__body {
padding: 10px 20px;
}
.el-form--label-top .el-form-item__label {
padding: 0px;
}
.el-form {
margin-left: 30px;
}
.el-form-item__label {
line-height: 20px;
font-size: 14px;
}
.el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
margin-bottom: 8px;
}
.el-divider--horizontal {
margin: 16px 0px;
}
.editor {
width: 100%;
height: 160px;
}
label {
margin-bottom: 0px;
}
.el-card__body {
padding: 10px;
}
.el-input--suffix .el-input__inner {
padding-right: 0px;
}
.el-dropdown-menu__item {
padding: 0px 15px;
}
.bmqk .el-card__body {
padding: 10px 20px;
}
.v-modal{
background-color: transparent;
}
.navbar{
margin-bottom: 0px;
}
.el-table-container{
padding-top: 0px;
}
.v-0x2323544 {
text-align: center;
color: rgb(180, 180, 180);
}
.v-0x345756765 {
text-align: center;
}
.v-0x2392939 {
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="isshow">
<!--快捷查询-->
<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="请选择活动类型" 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 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="160" :show-overflow-tooltip="true" header-align="center"
label="院工会活动名称" prop="fhdmc"></el-table-column>
<el-table-column align="center" width="160" :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" width="200" header-align="center" label="基层工会"-->
<!-- prop="unionname"></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="bmrs"
width="80px"></el-table-column>
<el-table-column align="center" header-align="center" label="活动人数" prop="hdrs"
width="68px"></el-table-column>
<el-table-column align="center" label="操作" width="180px">
<template slot-scope="scope">
<el-button @click="openInfo(scope)" size="mini">查看</el-button>
<el-button type="primary" @click="bmhd(scope)" size="mini" v-if="scope.row.sfbm=='0'">报名</el-button>
<el-button type="danger" @click="qxbm(scope)" size="mini" v-if="scope.row.sfbm>'0'">取消报名
</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="!isshow">
<div class="text-primary pointer" style="font-size: 20px" @click="isshow=true">
<i class="el-icon-arrow-left"></i>
返回
</div>
<el-tabs v-model="xqactive">
<el-tab-pane label="活动详细信息" name="1">
<table class="table table-bordered" style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);" class="text-center">
<td colspan="6" style="font-size: 20px;background-color: #f5f5f5">{{viewData.fhdmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动类型</td>
<td class="v-0x2323544" >{{viewData.hdlx}}</td>
<td class="v-0x345756765">活动项目</td>
<td class="v-0x2323544" >{{viewData.hdxm}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动地点</td>
<td class="v-0x2323544" >{{viewData.hddz}}</td>
<td class="v-0x345756765">活动年份</td>
<td class="v-0x2323544" >{{viewData.hdnf}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动经费预算</td>
<td class="v-0x2323544" >{{viewData.jfys}}</td>
<td class="v-0x345756765">是否推送日历</td>
<td class="v-0x2323544" >
<div v-if="viewData.sfrl==1"></div>
<div v-else></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">主办院级工会</td>
<td class="v-0x2323544" >{{viewData.unionname}}</td>
<td class="v-0x345756765">人数限制</td>
<td class="v-0x2323544" >{{viewData.hdrs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">报名开始时间</td>
<td class="v-0x2323544" >{{viewData.bmkssj}}</td>
<td class="v-0x345756765">报名截止时间</td>
<td class="v-0x2323544" >{{viewData.bmjssj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动开始时间</td>
<td class="v-0x2323544" >{{viewData.hdks}}</td>
<td class="v-0x345756765">活动结束时间</td>
<td class="v-0x2323544" >{{viewData.hdjs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">报名办法
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.bmbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">活动内容
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.hdnr"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">奖励办法
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.jlbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">其他注意事项
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.zysx"></div>
</td>
</tr>
</table>
</el-tab-pane>
<el-tab-pane label="活动报名情况" name="2">
<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 label="职工号" prop="loginname" 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="mobile" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column label="院级工会" prop="unionname" header-align="center"
align="center"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</transition>
<!--查看-->
<el-dialog title="查看" class="dia"
:visible.sync="infoDialogVisible" custom-class="ViewDialogClass" width="70%" top="3%">
<el-collapse v-model="activeName" accordion>
<el-collapse-item title="活动详细信息" name="1">
<el-card>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="6" style="font-size: 18px;">{{viewData.fhdmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">活动类型</td>
<td class="tpb">{{viewData.hdlx}}</td>
<td class="tpa">活动项目</td>
<td class="tpb">{{viewData.hdxm}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">活动地点</td>
<td class="tpb">{{viewData.hddz}}</td>
<td class="tpa">活动年份</td>
<td class="tpb">{{viewData.hdnf}}</td>
<!--<td class="tpa" >活动经费预算</td>
<td class="tpb">{{viewData.jfys}}</td>-->
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">主办基层工会</td>
<td class="tpb">{{viewData.unionname}}</td>
<td class="tpa">活动人数</td>
<td class="tpb">{{viewData.hdrs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">报名开始时间</td>
<td class="tpb">{{viewData.bmkssj}}</td>
<td class="tpa">报名截止时间</td>
<td class="tpb">{{viewData.bmjssj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">活动开始时间</td>
<td class="tpb">{{viewData.hdks}}</td>
<td class="tpa">活动结束时间</td>
<td class="tpb">{{viewData.hdjs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="6">报名办法</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div v-html="viewData.bmbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="6">活动内容</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div v-html="viewData.hdnr"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="6">奖励办法</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div v-html="viewData.jlbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="6">其他注意事项</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div v-html="viewData.zysx"></div>
</td>
</tr>
</table>
</el-card>
</el-collapse-item>
<el-collapse-item title="活动报名情况" name="2">
<el-card class="box-card bmqk">
<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 label="职工号" prop="loginname" 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="mobile" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属单位" width="172px" prop="name" header-align="center"
align="center"></el-table-column>
<!--<el-table-column label="基层工会" width="172px" prop="unionname" header-align="center" align="center" ></el-table-column>-->
</el-table>
</el-row>
</el-card>
</el-collapse-item>
</el-collapse>
<span slot="footer" class="dialog-footer">
<el-button @click="infoDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="bmhd(infoFlag)" v-if="flag!='1'&&infoTemp.sfbm=='0'">报名</el-button>
<el-button type="warning" @click="qxbm(infoFlag)" v-if="flag!='1'&&infoTemp.sfbm>'0'">取消报名</el-button>
</span>
</el-dialog>
</div>
<script>
new Vue({
el: "#app",
data: function () {
return {
/*列表*/
tableData: [],
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
hdlx: "",
hdxm: "",
},
queryHdlx: [],
queryHdxm: [],
flag: "",
/*查看*/
infoDialogVisible: false,
activeName: '1',
viewData: [],
bmTableData: [],
infoTemp: [],
infoFlag: [],
isshow:true,
xqactive:"1"
}
},
methods: {
pageData: function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post("/platform/hd/fhdgl/fhhdbm/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;
self.flag = data.data.flag;
}
}, "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) {
var self = this;
self.infoFlag = scope;
self.infoTemp.sfbm = scope.row.sfbm;
$.post("/platform/hd/fhdgl/fhhdbm/findById", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data.fhd;
self.bmTableData = data.data.cyry;
self.isshow = false;
}
}, "json");
},
/*报名*/
bmhd: 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/fhdgl/fhhdbm/bmhd", {
id: scope.row.id,
hdrs: scope.row.hdrs
}, function (data) {
if (data.code == 0) {
self.$message({
message: "报名成功!",
type: 'success'
});
self.pageData();
self.isshow = true;
} else if (data.code == -1) {
setTimeout(function () {
self.$alert("您已经报名此活动,不能重复报名!", "温馨提示", {
type: 'error',
closeOnPressEscape: true,
closeOnClickModal: true,
});
}, 200);
} else if (data.code == -2) {
setTimeout(function () {
self.$alert("抱歉,此活动报名人数已满!", "温馨提示", {
type: 'error',
closeOnPressEscape: true,
closeOnClickModal: true,
});
}, 200);
}
}, "json");
}
}
});
},
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/fhdgl/fhhdbm/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;
self.pageForm.hdxm = data.data[0].id;
}
}, "json");
}
},
},
})
</script>
</body>
</html>
@@ -0,0 +1,969 @@
<!--分会活动计划 djx 2019-07-08 -->
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-divider--horizontal {
margin: 16px 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-card__body {
padding: 0px;
}
.el-dialog__body {
padding: 10px;
}
.el-date-editor .el-range-separator {
padding: 0px;
}
.el-range-editor.el-input__inner {
padding: 3px 6px;
}
.el-date-editor .el-range-input {
width: 42%;
}
.el-date-editor .el-range__close-icon {
width: 18px;
}
.el-form-item__label {
line-height: 20px;
font-size: 14px;
}
.el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
margin-bottom: 8px;
}
.el-col-12 {
width: 50%;
margin-bottom: 15px;
}
.el-divider--horizontal {
margin: 30px 0px;
}
.el-divider--horizontal {
margin: 30px 0px;
}
.el-select-dropdown {
z-index: 99999999 !important;
}
.el-picker-panel {
z-index: 99999999 !important;
}
.el-date-picker {
z-index: 99999999 !important;
}
.el-popper{
z-index: 99999999 !important;
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="isshow">
<el-row class="header navbar bg-white">
<div class="btn-group tool-button mt5">
<el-input placeholder="根据名称进行查询" clearable v-model="pageForm.searchKeyword">
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-date-picker v-model="pageForm.year" value-format="yyyy" type="year"
placeholder="选择年度时间"></el-date-picker>
</div>
<div class="btn-group tool-button mt5" v-if="curr == '1'">
<el-select placeholder="请选择院级工会" v-model="pageForm.unionid" style="width: 180px;" clearable="true"
filterable="true">
<el-option v-for="item in unionOptions" :label="item.unionname"
:value="item.id"></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>
<!--#if(@shiro.hasRole('sysadmin')){#-->
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="openAdd"><i class="ti-plus"></i>新建活动计划</el-button>
</div>
<!--#}else{#-->
<div class="pull-right offscreen-right mt5" v-if="curr!='1'">
<el-button size="medium" @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 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="计划名称" prop="jhmc" header-align="center" align="center"></el-table-column>
<el-table-column label="计划预计时间" prop="jhsj" 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="unionname" header-align="center" align="center"></el-table-column>-->
<el-table-column label="计划状态" prop="jhzt" header-align="center" align="center">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.ct>0 && scope.row.evtime==2">已执行</el-tag>
<el-tag type="danger" v-else>未执行</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="340" header-align="center" align="center">
<template slot-scope="scope">
<el-button @click="openInfo(scope)" size="mini">查看</el-button>
<el-button type="primary" @click="openHdAdd(scope)" v-if="curr!='1'"
:disabled="(scope.row.ct>0 && scope.row.evtime==2)?true:false" size="mini">创建活动
</el-button>
<el-button type="primary" @click="openEdit(scope)" v-if="curr!='1'" size="mini">编辑</el-button>
<el-button type="danger" @click="deleteDo(scope)" v-if="curr!='1'"
:disabled="(scope.row.ct>0 && scope.row.evtime==2)?true:false" 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>
</div>
</transition>
<transition name="el-zoom-in-center">
<div style="padding: 40px;margin-left: 150px;margin-right: 150px" v-show="addshow">
<div class="text-primary pointer" style="font-size: 20px" @click="isshow=true,addshow=false">
<i class="el-icon-arrow-left"></i>
返回
</div>
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">请输入活动年度计划信息</span></el-divider>
<el-form :model="formData" label-position="left" ref="addForm" :rules="formRules" size="small"
label-width="86px">
<el-row>
<el-col :span="12">
<el-form-item label="计划名称" prop="jhmc">
<el-input maxlength="100" placeholder="请输入计划名称"
v-model="formData.jhmc" style="width: 88%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划时间" prop="jhsj">
<el-date-picker style="width: 88%" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
v-model="formData.jhsj" type="date" placeholder="请选择计划时间"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="活动类型" prop="hdlxid">
<el-select v-model="formData.hdlxid" filterable placeholder="请选择活动类型" style="width: 88%">
<el-option
v-for="item in hdlxOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="活动项目" prop="hdxmid">
<el-select v-model="formData.hdxmid" filterable placeholder="请选择活动项目" style="width: 88%">
<el-option
v-for="item in hdxmOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="计划内容">
<div id="jhnrEditor" ></div>
</el-form-item>
</el-form>
<span style="float: right;margin-top: 15px" >
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</div>
</transition>
<transition name="el-zoom-in-center">
<div style="padding: 40px;margin-left: 150px;margin-right: 150px" v-show="editshow">
<div class="text-primary pointer" style="font-size: 20px" @click="isshow=true,editshow=false">
<i class="el-icon-arrow-left"></i>
返回
</div>
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">请输入活动年度计划信息</span></el-divider>
<el-form :model="editFormData" label-position="left" ref="editForm" :rules="editFormRules"
size="small" label-width="86px">
<el-row>
<el-col :span="12">
<el-form-item label="计划名称" prop="jhmc">
<el-input maxlength="100" placeholder="请输入计划名称"
v-model="editFormData.jhmc" style="width: 100%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划时间" prop="jhsj">
<el-date-picker style="width: 100%" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
v-model="editFormData.jhsj" type="date" placeholder="请选择计划时间"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="活动类型" prop="hdlxid">
<el-select v-model="editFormData.hdlxid" filterable placeholder="请选择活动类型" style="width: 100%">
<el-option
v-for="item in hdlxOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="活动项目" prop="hdxmid">
<el-select v-model="editFormData.hdxmid" filterable placeholder="请选择活动项目" style="width: 100%">
<el-option
v-for="item in hdxmOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="计划内容">
<div id="editjhnrEditor"></div>
</el-form-item>
</el-form>
<span style="float: right;margin-top: 15px">
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</div>
</transition>
<!--查看-->
<el-dialog title="查看" width="60%" custom-class="ViewDialogClass" :visible.sync="infoDialogVisible" top="6%">
<el-card>
<table style="width: 100%" class="table table-bordered">
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center" style="font-size: 20px;background-color: #f5f5f5">
{{viewData.jhmc}}
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td >计划预计时间</td>
<td colspan="2">{{viewData.jhsj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td >活动类型</td>
<td colspan="2">{{viewData.hdlx}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td >活动项目</td>
<td colspan="2">{{viewData.hdxm}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td >计划状态</td>
<td v-if="viewData.ct>0 && viewData.evtime==2">已执行</td>
<td v-else>未执行</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="2" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">计划内容</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="2" v-html="viewData.jhnr"></td>
</tr>
</table>
</el-card>
</el-dialog>
<el-dialog title="新增" id="addDialog" class="dia" :close-on-click-modal="false"
v-if="addHdDialogVisible"
:visible.sync="addHdDialogVisible"
custom-class="ViewDialogClass" width="66%" top="3%">
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">此功能进行活动创建,各个院级工会上报人员名单</span>
</el-divider>
<el-form :model="formData" label-position="top" ref="addForm" size="small" label-width="86px">
<el-row>
<el-col :span="8">
<el-form-item label="计划名称">
<el-select v-model="formData.jhid" disabled placeholder="请选择计划" style="width: 88%">
<el-option
v-for="item in hdjhOptions"
:label="item.jhmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动名称">
<el-input maxlength="100" placeholder="请输入活动名称"
v-model="formData.fhdmc" style="width: 88%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动地址">
<el-input maxlength="100" placeholder="请输入活动地址"
v-model="formData.hddz" style="width: 88%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="主要负责人">
<el-select v-model="formData.fzr" @change="selFzrChange" :remote-method="remoteMethod"
filterable remote placeholder="请根据教工号、姓名、单位查询" style="width: 88%">
<el-option
v-for="item in fzrOptions"
:key="item.id"
:label="item.display"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话">
<el-input maxlength="100" placeholder="请输入联系电话"
v-model="formData.phone" style="width: 88%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动经费预算">
<el-input maxlength="100" placeholder="请输入活动经费预算"
v-model="formData.jfys" style="width: 88%"
auto-complete="off" tabindex="4" type="number">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="活动类型">
<el-select v-model="formData.hdlxid" filterable placeholder="请选择活动类型" style="width: 88%">
<el-option
v-for="item in hdlxOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动项目">
<el-select v-model="formData.hdxmid" filterable placeholder="请选择活动项目" style="width: 88%">
<el-option
v-for="item in hdxmOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="院级工会">
<el-select v-model="formData.unionid" filterable
:disabled="(unionidFlag!=null&&unionidFlag!='')?true:false" placeholder="请选择院级工会"
style="width: 88%">
<el-option
v-for="item in unionOptions"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="报名日期">
<el-date-picker
style="width: 96%"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
v-model="addBm"
type="daterange"
range-separator="至"
start-placeholder="报名开始日期"
end-placeholder="报名结束日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动日期">
<el-date-picker
style="width: 96%"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
v-model="addHd"
type="datetimerange"
range-separator="至"
start-placeholder="活动开始日期"
end-placeholder="活动结束日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动人数">
<el-input maxlength="100" placeholder="请输入活动人数"
v-model="formData.hdrs" style="width: 88%"
auto-complete="off" tabindex="4" type="number"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="是否推送日历">
<el-radio-group v-model="formData.sfrl">
<el-radio label="1"></el-radio>
<el-radio label="2"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="推送人员">
<el-checkbox-group v-model="formData.qx">
<el-checkbox label="H11">校活动管理员</el-checkbox>
<el-checkbox label="H04">院级工会管理员</el-checkbox>
<el-checkbox label="H01">会员用户</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="活动内容">
<div id="nrEditor"></div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="报名办法">
<div id="bmEditor"></div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="奖励办法">
<div id="jlEditor"></div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="注意事项">
<div id="zysxEditor"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addHdDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doHdAdd">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
let E = window.wangEditor
let jhnrEditor = null
let editjhnrEditor = null
let bmEditor = null
let jlEditor = null
let zysxEditor = null
let nrEditor = null
const vue = new Vue({
el: "#app",
data: function () {
return {
pageForm: {//分页
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
year: "",
unionid: "",
},
tableData: [],//表格
flag: "",
/*新增*/
addDialogVisible: false,
formData: {},
hdlxOptions: [],
formRules: {
jhmc: [
{required: true, message: '请输入计划名称', trigger: ['blur', 'change']}
],
jhsj: [
{type: 'string',required: true, message: '请选择计划时间', trigger: ['blur', 'change']}
],
hdlxid: [
{required: true, message: '请选择活动类型', trigger: ['blur', 'change']}
],
hdxmid: [
{required: true, message: '请选择活动项目', trigger: ['blur', 'change']}
],
},
/*编辑*/
editDialogVisible: false,
editFormData: {},
editFormRules: {
jhmc: [
{required: true, message: '请输入计划名称', trigger: ['blur', 'change']}
],
jhsj: [
{type: 'string',required: true, message: '请选择计划时间', trigger: ['blur', 'change']}
],
hdlxid: [
{required: true, message: '请选择活动类型', trigger: ['blur', 'change']}
],
hdxmid: [
{required: true, message: '请选择活动项目', trigger: ['blur', 'change']}
],
},
/*查看*/
infoDialogVisible: false,
viewData: [],
/*新增活动*/
addHdDialogVisible: false,
unionOptions: [],
hdxmOptions: [],
addHd: [],
addBm: [],
fzrOptions: [],
hdjhOptions: [],
unionidFlag: "",
curr: "",
addshow:false,
editshow:false,
isshow:true,
}
},
methods: {
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//表格展示数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hd/fhdgl/fhhdjh/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.hdjh.list;
self.pageForm.totalCount = data.data.hdjh.totalCount;
self.hdlxOptions = data.data.hdlx;
self.unionOptions = data.data.unions;
if (data.data.flag != null && data.data.flag != "") {
self.unionidFlag = data.data.flag;
}
self.curr = data.data.curr;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
/*新增*/
openAdd: function () {
var self = this;
self.formData = {
hdlxid: "",
hdxmid: "",
};
self.addshow = true;
self.isshow = false;
if (self.$refs['addForm'] !== undefined) {
self.$refs['addForm'].resetFields();
}
self.$nextTick(function () {
//实例化编辑器
if (jhnrEditor==null){
jhnrEditor = new wangEditor("#jhnrEditor")
jhnrEditor.create()
}
});
},
doAdd: function () {
var self = this;
self.formData.jhnr = jhnrEditor.txt.text();
self.$refs["addForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hd/fhdgl/fhhdjh/addDo", self.formData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.addshow = false;
self.isshow=true;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
/*编辑*/
openEdit: function (scope) {
var self = this;
$.post(base + "/platform/hd/fhdgl/fhhdjh/findJh", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.editFormData = data.data.hdjh;
self.editshow = true;
self.isshow=false;
if (self.$refs['editForm'] !== undefined) {
self.$refs['editForm'].resetFields();
}
self.$nextTick(function () {
//实例化编辑器
editjhnrEditor = new wangEditor("#editjhnrEditor")
editjhnrEditor.create()
if (data.data.hdjh.jhnr != "" && data.data.hdjh.jhnr != null) {
editjhnrEditor.txt.html(data.data.hdjh.jhnr);
}
});
}
}, "json");
},
doEdit: function () {
var self = this;
self.editFormData.jhnr = editjhnrEditor.txt.text();
self.$refs["editForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hd/fhdgl/fhhdjh/editDo", self.editFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.editshow = false;
self.isshow=true;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
selFzrChange: function (obj) {
var self = this;
for (var i = 0; i < self.fzrOptions.length; i++) {
if (self.fzrOptions[i].id == obj) {
self.formData.phone = self.fzrOptions[i].mobile;
return;
}
}
},
remoteMethod: function (obj) {
var self = this;
$.post(base + "/platform/hd/fhdgl/fhdxxgl/findFzr", {obj: obj}, function (data) {
if (data.code == 0) {
self.fzrOptions = data.data;
}
}, "json");
},
openHdAdd: function (scope) {
var self = this;
if (scope.row.hdcount > 0) {
self.$alert("此计划已创建活动!", "温馨提示", {
type: 'error',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.fzrOptions = [];
self.formData = {
hdlxid: "",
hdxmid: "",
fhdmc: "",
unionid: self.unionidFlag,
qx:[]
};
self.hdjhOptions = [{id: scope.row.id, jhmc: scope.row.jhmc}];
self.formData.jhid = scope.row.id;
self.formData.fhdmc = scope.row.jhmc;
if (scope.row.hdlxid != null && scope.row.hdlxid != "") {
self.formData.hdlxid = scope.row.hdlxid;
}
if (scope.row.hdxmid != null && scope.row.hdxmid != "") {
setTimeout(function () {
self.formData.hdxmid = scope.row.hdxmid;
}, 80)
}
self.addHdDialogVisible = true;
self.$nextTick(function () {
bmEditor = new wangEditor("#bmEditor")
bmEditor.create()
nrEditor = new wangEditor("#nrEditor")
nrEditor.create()
jlEditor = new wangEditor("#jlEditor")
jlEditor.create()
zysxEditor = new wangEditor("#zysxEditor")
zysxEditor.create()
});
},
doHdAdd: function () {
var self = this;
if (self.addBm) {
self.formData.bmkssj = self.addBm[0];
self.formData.bmjssj = self.addBm[1];
}
if (self.addHd) {
self.formData.hdkssj = self.addHd[0];
self.formData.hdjssj = self.addHd[1];
}
if (self.formData.hdkssj < self.formData.bmkssj || self.formData.hdkssj < self.formData.bmjssj) {
self.$alert("活动开始日期需在活动报名截止之后!", "温馨提示", {
type: 'warning',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.formData.bmbf = bmEditor.txt.text();
self.formData.hdnr = nrEditor.txt.text();
self.formData.jlbf = jlEditor.txt.text();
self.formData.zysx = zysxEditor.txt.text();
self.formData.qx=self.formData.qx.toString();
self.$refs["addForm"].validate(function (valid) {
if (valid) {
const loading = self.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/hd/fhdgl/fhdxxgl/addDo", self.formData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.addHdDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
loading.close();
}, "json");
}
});
},
/*查看*/
openInfo: function (scope) {
var self = this;
$.post(base + "/platform/hd/fhdgl/fhhdjh/findById", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data.hdjh;
self.infoDialogVisible = true;
}
}, "json");
},
/*删除*/
deleteDo: function (scope) {
var self = this;
if (scope.row.ct > 0 && scope.row.evtime == 2) {
self.$alert("此计划已执行,不能删除!", "温馨提示", {
type: 'error',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.$confirm("此操作将永久删除该计划, 是否继续?", "温馨提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post(base + "/platform/hd/fhdgl/fhhdjh/deleteDo", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
}
},
created: function () {
this.pageData();
},
watch: {
"formData.hdlxid": function (obj) {
var self = this;
if (obj != "" && obj != null && obj != "undefined") {
self.formData.hdxmid = "";
$.post(base + "/platform/hd/xhdgl/xhdxxgl/findHdXm", {id: obj}, function (data) {
if (data.code == 0) {
self.hdxmOptions = data.data;
self.formData.hdxmid = data.data[0].id;
}
}, "json");
}
},
"editFormData.hdlxid": function (obj) {
var self = this;
if (obj != "" && obj != null && obj != "undefined") {
self.editFormData.hdxmid = "";
$.post(base + "/platform/hd/xhdgl/xhdxxgl/findHdXm", {id: obj}, function (data) {
if (data.code == 0) {
self.hdxmOptions = data.data;
self.editFormData.hdxmid = data.data[0].id;
}
}, "json");
}
},
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,593 @@
<!DOCTYPE html>
<html lang="${lang,escape}">
<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;
}
.v-0x2323544 {
text-align: center;
color: rgb(180, 180, 180);
}
.v-0x345756765 {
text-align: center;
}
.v-0x2392939 {
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div style="padding: 10px" v-show="isshow">
<!--快捷查询-->
<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="请选择活动类型" 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 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="160" :show-overflow-tooltip="true" header-align="center" label="院工会活动名称" prop="fhdmc"></el-table-column>
<el-table-column align="center" width="160" :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="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="bmrs" width="80px"></el-table-column>
<el-table-column align="center" header-align="center" label="活动人数" prop="hdrs" width="68px"></el-table-column>
<el-table-column align="center" label="操作" width="200px">
<template slot-scope="scope">
<el-button @click="openInfo(scope)" size="mini">查看</el-button>
<el-button type="primary" @click="openBm(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>
</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=true">
<i class="el-icon-arrow-left"></i>
返回
</div>
<el-tabs v-model="xqactive">
<el-tab-pane label="活动详细信息" name="1">
<table class="table table-bordered" style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);" class="text-center">
<td colspan="6" style="font-size: 20px;background-color: #f5f5f5">{{viewData.fhdmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动类型</td>
<td class="v-0x2323544" >{{viewData.hdlx}}</td>
<td class="v-0x345756765">活动项目</td>
<td class="v-0x2323544" >{{viewData.hdxm}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动地点</td>
<td class="v-0x2323544" >{{viewData.hddz}}</td>
<td class="v-0x345756765">活动年份</td>
<td class="v-0x2323544" >{{viewData.hdnf}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动经费预算</td>
<td class="v-0x2323544" >{{viewData.jfys}}</td>
<td class="v-0x345756765">是否推送日历</td>
<td class="v-0x2323544" >
<div v-if="viewData.sfrl==1"></div>
<div v-else></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">主办院级工会</td>
<td class="v-0x2323544" >{{viewData.unionname}}</td>
<td class="v-0x345756765">人数限制</td>
<td class="v-0x2323544" >{{viewData.hdrs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">报名开始时间</td>
<td class="v-0x2323544" >{{viewData.bmkssj}}</td>
<td class="v-0x345756765">报名截止时间</td>
<td class="v-0x2323544" >{{viewData.bmjssj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">活动开始时间</td>
<td class="v-0x2323544" >{{viewData.hdks}}</td>
<td class="v-0x345756765">活动结束时间</td>
<td class="v-0x2323544" >{{viewData.hdjs}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">报名办法
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.bmbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">活动内容
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.hdnr"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">奖励办法
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.jlbf"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5"
colspan="6">其他注意事项
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpc" colspan="6">
<div class="v-0x2392939 v-0x2323544" v-html="viewData.zysx"></div>
</td>
</tr>
</table>
</el-tab-pane>
<el-tab-pane label="活动报名情况" name="2">
<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 label="职工号" prop="loginname" 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="mobile" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column label="院级工会" prop="unionname" header-align="center"
align="center"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</transition>
<el-dialog title="统一报名" class="dia" :close-on-click-modal="false"
:visible.sync="bmDialogVisible" custom-class="ViewDialogClass" width="70%" top="3%">
<el-row>
<div class="btn-group tool-button mt5">
<el-input style="width:180px;" size="mini" placeholder="可按姓名、工号查询" v-model="bmPageForm.searchKeyword" clearable></el-input>
<el-button type="primary" size="mini" icon="el-icon-search" @click="bmSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-label style="color: #409EFF">【{{temp.fhdmc}}】人数限制为<span style="color: red">{{temp.hdrs}}</span>人,目前已报名人数为<span style="color: red">{{temp.bmrs}}</span></el-label>
</div>
</el-row>
<el-row>
<el-table :row-key="rowKey" ref="bmTable" @selection-change="handleSelectionChange" :data="tybmTableData" size="small">
<el-table-column :reserve-selection="true" type="selection" width="46"></el-table-column>
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(bmPageForm.pageNumber - 1) * bmPageForm.pageSize + 1}} </span></template>
</el-table-column>
<el-table-column label="姓名" prop="username" header-align="center" align="center" ></el-table-column>
<el-table-column label="教工号" prop="loginname" header-align="center" align="center" ></el-table-column>
<el-table-column label="单位" width="240px" prop="name" header-align="center" align="center" ></el-table-column>
<el-table-column label="电话" prop="mobile" header-align="center" align="center" ></el-table-column>
<el-table-column label="性别" prop="sex" header-align="center" align="center" ></el-table-column>
</el-table>
</el-row>
<!--分页-->
<el-row class="el-pagination-container">
<el-pagination
background
@size-change="bmpageSizeChange"
@current-change="bmpageNumberChange"
:current-page="bmPageForm.pageNumber"
:page-sizes="[5, 10, 15, 20]"
:page-size="bmPageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="bmPageForm.totalCount">
</el-pagination>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="bmDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="bmDo">报 名</el-button>
</span>
</el-dialog>
</div>
<script>
new Vue({
el: "#app",
data: function () {
return {
/*列表*/
tableData:[],
pageForm:{
pageNumber:1,
pageSize:10,
totalCount:0,
searchKeyword:"",
hdlx:"",
hdxm:"",
},
queryHdlx:[],
queryHdxm:[],
/*查看*/
infoDialogVisible:false,
activeName: '1',
viewData:[],
bmTableData:[],
bmDialogVisible:false,
bmPageForm:{
pageNumber:1,
pageSize:10,
totalCount:0,
searchKeyword:"",
id:"",
},
tybmTableData:[],
multipleSelection:[],
temp:[],
isshow:true,
xqactive:"1"
}
},
methods: {
pageData:function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post("/platform/hd/fhdgl/tybm/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();
},
bmpageSizeChange:function (val) {
this.bmPageForm.pageSize=val;
this.bmPageData();
},
bmpageNumberChange:function (val) {
this.bmPageForm.pageNumber=val;
this.bmPageData();
},
doSearch:function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
bmSearch:function () {
this.bmPageData();
},
rowKey:function (row) {
var self = this;
return row.id;
},
handleSelectionChange:function (val) {
this.multipleSelection = val;
},
/*查看*/
openInfo:function (scope) {
var self = this;
$.post("/platform/hd/fhdgl/fhhdbm/findById", {id:scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data.fhd;
self.bmTableData = data.data.cyry;
self.isshow = false;
}
}, "json");
},
openBm:function (scope) {
var self = this;
self.temp = scope.row;
self.bmPageForm.id=scope.row.id;
self.multipleSelection=[];
self.bmPageData();
self.bmDialogVisible = true;
},
bmPageData:function () {
var self = this;
$.post("/platform/hd/fhdgl/tybm/findUser", self.bmPageForm, function (data) {
if (data.code == 0) {
self.tybmTableData = data.data.user.list;
self.bmPageForm.totalCount=data.data.user.totalCount;
}
}, "json");
},
/*报名*/
bmDo:function () {
var self = this;
if(self.temp.bmrs >= self.temp.hdrs) {
self.$alert("抱歉,此活动报名人数已满!","温馨提示",{
type:'error',
closeOnPressEscape:true,
closeOnClickModal:true,
});
return;
}
if((self.multipleSelection.length + self.temp.bmrs) > self.temp.hdrs) {
self.$alert("<span>该活动人数限制为<span style='color: red'>"+self.temp.hdrs+"</span>人,当前已报名<span style='color: red'>"+self.temp.bmrs+"</span>人,您已选择<span style='color: red'>"+self.multipleSelection.length+"</span>人</span></span>","温馨提示",{
dangerouslyUseHTMLString:true,
type:'warning',
closeOnPressEscape:true,
closeOnClickModal:true,
});
return;
}
var array = new Array();
for(var i = 0; i < self.multipleSelection.length; i++) {
array.push({
id:self.multipleSelection[i].id,
unionid:self.multipleSelection[i].unionid,
});
}
self.$confirm("您确定要批量报名吗?","温馨提示",{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback:function (a,b) {
if("confirm" == a) {
$.post("/platform/hd/fhdgl/tybm/tybm", {id:self.bmPageForm.id,userid:JSON.stringify(array)}, function (data) {
if (data.code == 0) {
self.$message({
message: "报名成功!",
type: 'success'
});
self.bmDialogVisible = false;
setTimeout(function () {
self.$refs.bmTable.clearSelection();
},500)
self.pageData();
}
}, "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;
self.pageForm.hdxm = data.data[0].id;
}
}, "json");
}
},
},
})
</script>
</body>
</html>