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,785 @@
<!--协会活动信息管理 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 {
width: 100%;
height: 160px;
}
label {
margin-bottom: 0px;
}
.tpa {
padding: 8px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 8px;
text-align: center;
color: #a0a9b4;
width: 16%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 8px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.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;
}
.v-0x2323544 {
text-align: center;
color: rgb(180, 180, 180);
}
.v-0x345756765 {
text-align: center;
}
</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">
<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-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">
<el-button size="medium" @click="openAdd" v-if="flag!='1'"><i class="ti-plus"></i> 创建协会活动
</el-button>
</div>
<!--#}#-->
<div style=""></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="hdmc"></el-table-column>
<el-table-column align="center" width="160" :show-overflow-tooltip="true" header-align="center"
label="所属协会" prop="stmc"></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="hdxm"></el-table-column>
<el-table-column align="center" header-align="center" label="活动负责人" prop="username"
width="80px"></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="ybm"
width="68px"></el-table-column>
<el-table-column align="center" label="操作" width="300px">
<template slot-scope="scope">
<el-button size="mini" @click="doExport(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>
</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">
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center" style="font-size: 20px;background-color: #f5f5f5">
{{viewData.hdmc}}
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">主要负责人</td>
<td class="v-0x2323544">{{viewData.username}}</td>
<td class="v-0x345756765">联系电话</td>
<td class="v-0x2323544">{{viewData.phone}}</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.jfys}}</td>
<td class="v-0x345756765">成员人数</td>
<td class="v-0x2323544">{{viewData.cyrs}}</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="v-0x345756765">活动地址</td>
<td class="v-0x2323544" colspan="3">{{viewData.hddz}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">活动主要内容
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.hdnr" class="v-0x2323544"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">活动宗旨
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6">
<div v-html="viewData.hdzz" class="v-0x2323544"></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="报名人员" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column label="基层工会" prop="unionname" header-align="center"
align="center"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</transition>
</div>
<script>
let nrEditor = null
let zzEditor = null
const vue = new Vue({
el: "#app",
data: function () {
return {
/*列表*/
tableData: [],
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
hdlx: "",
hdxm: "",
},
queryHdlx: [],
queryHdxm: [],
/*新增*/
stidFlag: "",
addDialogVisible: false,
formData: {
hdxmid: "",
hdmc: "",
},
formRules: {},
hdlxOptions: [],//活动类型
hdxmOptions: [],//活动项目
stOptions: [],
fzrOptions: [],
visible: false,
addBm: [],
addHd: [],
hdjhOptions: [],
/*编辑*/
editDialogVisible: false,
editFormData: {
hdlxid: "",
hdxmid: "",
},
editFormRules: {},
editBm: [],
editHd: [],
editHdjhOptions: [],
/*查看*/
infoDialogVisible: false,
activeName: '1',
viewData: [],
bmTableData: [],
bmfs: "",
temp: [],
flag: "",
curUser: [],
editFlag: [],
isshow: true,
xqactive: "1"
}
},
methods: {
doExport(id) {
window.location.href = '/platform/hd/sthdgl/export/export?id=' + id
},
pageData: function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hd/sthdgl/hdxxgl/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.hdlxOptions = data.data.hdlx;
self.queryHdlx = data.data.hdlx;
self.stOptions = data.data.stxx;
self.curUser = data.data.curUser;
self.hdjhOptions = data.data.hdjh;
if (data.data.stid != null && data.data.stid != "") {
self.formData.stid = data.data.stid;
self.stidFlag = data.data.stid;
}
}
}, "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();
},
/*新增*/
openAdd: function () {
var self = this;
self.formData = {
hdlxid: "",
hdxmid: "",
hdmc: "",
stid: self.stidFlag,
qx: []
};
self.addDialogVisible = true;
if (self.$refs['addForm'] !== undefined) {
self.$refs['addForm'].resetFields();
}
self.$nextTick(function () {
//实例化编辑器
nrEditor = new wangEditor("#nrEditor")
nrEditor.create()
zzEditor = new wangEditor("#zzEditor")
zzEditor.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.hdnr = nrEditor.txt.text();
self.formData.hdzz = zzEditor.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/sthdgl/hdxxgl/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");
}
});
},
remoteMethod: function (obj) {
var self = this;
$.post(base + "/platform/hd/sthdgl/hdxxgl/findFzr", {obj: obj}, function (data) {
if (data.code == 0) {
self.fzrOptions = data.data;
}
}, "json");
},
selChange: 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;
}
}
},
editSelChange: 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;
}
}
},
jhSelChange: function (obj) {
var self = this;
if (obj == "" || obj == null) {
self.formData.hdmc = "";
self.formData.hdlxid = "";
self.formData.hdxmid = "";
} else {
for (var i = 0; i < self.hdjhOptions.length; i++) {
if (obj == self.hdjhOptions[i].id) {
self.formData.hdmc = 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;
}
}
}
},
editJhSelChange: function (obj) {
var self = this;
if (obj == "" || obj == null) {
self.editFormData.hdmc = 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.hdmc = 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;
}
}
}
},
/*编辑*/
openEdit: function (scope) {
var self = this;
self.editBm = [];
self.editHd = [];
self.editHdjhOptions = [];
self.editFlag = [];
$.post(base + "/platform/hd/sthdgl/hdxxgl/findSthd", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.editDialogVisible = true;
self.$nextTick(function () {
//实例化编辑器
editnrEditor = new wangEditor("#editnrEditor")
editnrEditor.create()
editzzEditor = new wangEditor("#editzzEditor")
editzzEditor.create()
if (data.data.sthd.hdnr != "" && data.data.sthd.hdnr != null) {
editnrEditor.txt.text(data.data.sthd.hdnr);
}
if (data.data.sthd.hdzz != "" && data.data.sthd.hdzz != null) {
editzzEditor.txt.text(data.data.sthd.hdzz);
}
});
self.hdxmOptions = data.data.hdxm;
self.editFormData = data.data.sthd;
if (data.data.sthd.qx != null && data.data.sthd.qx != undefined) {
this.editFormData.qx = this.editFormData.qx.split(",")
} else {
this.editFormData.qx = [];
}
self.fzrOptions = [{id: data.data.sthd.fzr, display: data.data.sthd.display}];
if (data.data.hdjh.length > 0) {
self.editHdjhOptions = data.data.hdjh;
}
self.editHdjhOptions.push({
id: data.data.sthd.jhid,
jhmc: data.data.sthd.jhmc,
hdlxid: data.data.sthd.hdlxid,
hdxmid: data.data.sthd.hdxmid
});
if (data.data.sthd.bmkssj != "" && data.data.sthd.bmkssj != null) {
self.editBm.push(data.data.sthd.bmkssj);
}
if (data.data.sthd.bmjssj != "" && data.data.sthd.bmjssj != null) {
self.editBm.push(data.data.sthd.bmjssj);
}
if (data.data.sthd.hdkssj != "" && data.data.sthd.hdkssj != null) {
self.editHd.push(data.data.sthd.hdkssj);
}
if (data.data.sthd.hdjssj != "" && data.data.sthd.hdjssj != null) {
self.editHd.push(data.data.sthd.hdjssj);
}
self.editFlag.push(data.data.sthd.hdmc);
self.editFlag.push(data.data.sthd.hdlxid);
self.editFlag.push(data.data.sthd.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.hdnr = editnrEditor.txt.text();
self.editFormData.hdzz = editzzEditor.txt.text();
self.$refs["editForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hd/sthdgl/hdxxgl/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");
}
});
},
/*查看*/
openInfo: function (scope) {
var self = this;
self.temp = scope.row;
$.post(base + "/platform/hd/sthdgl/hdxxgl/findById", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data.sthd;
self.bmTableData = data.data.cyry;
self.isshow = false;
}
}, "json");
},
/*删除*/
deleteDo: function (scope) {
var self = this;
/*if(scope.row.shjg == "1") {
self.$alert("状态为审核通过不可进行删除!","温馨提示",{
confirmButtonText: '确定',
type: 'error',
});
return;
}*/
self.$confirm("此操作将永久删除该活动, 是否继续?", "温馨提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post(base + "/platform/hd/sthdgl/hdxxgl/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");
}
}
});
},
sp: function (obj) {
var self = this;
if (obj == "3") {
self.visible = false;
self.$alert("状态为已审核不可进行此操作!", "温馨提示", {
confirmButtonText: '确定',
type: 'error',
});
return;
}
$.post(base + "/platform/hd/sthdgl/hdxxgl/spSt", {id: self.temp.id, obj: obj}, function (data) {
if (data.code == 0) {
self.$message({
message: '操作成功',
type: 'success'
});
self.pageData();
self.infoDialogVisible = false;
}
}, "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") {
$.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>
<!--#
}
#-->
@@ -0,0 +1,112 @@
<!--活动报名 lyw-->
<!--#
layout("/layouts/platform.html"){
#-->
<style>
[v-cloak] {
display: none;
}
iframe {
border: none;
width: 100%;
height: 100%;
}
.el-tabs__content {
height: 100%;
}
.el-tab-pane {
height: 100%;
}
/*.el-tabs__header{*/
/* margin-bottom: 0;*/
/*}*/
.el-tabs {
border: none;
box-shadow: none;
/*border-top: 1px solid #DCDFE6;*/
}
.el-tabs__content {
padding: 0 !important;
}
.el-tabs__item {
height: 50px;
line-height: 50px;
}
</style>
<div id="app" v-cloak style="width: 100%;height: 100%;" v-loading="loading">
<el-tabs v-model="activeName" stretch style="width: 100%;height: 100%" type="border-card">
<el-tab-pane name="first" v-if="xhdShow" :lazy="true">
<span slot="label"><i class="el-icon-trophy"></i> 校工会活动报名</span>
<iframe src="/platform/hd/xhdgl/hdbm">
</iframe>
</el-tab-pane>
<el-tab-pane name="second" v-if="fhhdShow" :lazy="true">
<span slot="label"><i class="el-icon-medal-1"></i> 院级工会活动个人报名</span>
<iframe src="/platform/hd/fhdgl/fhhdbm">
</iframe>
</el-tab-pane>
<el-tab-pane name="three" v-if="fhdtyShow" :lazy="true">
<span slot="label"><i class="el-icon-medal-1"></i> 院级工会活动统一报名</span>
<iframe src="/platform/hd/fhdgl/tybm">
</iframe>
</el-tab-pane>
<el-tab-pane name="four" v-if="sthdShow" :lazy="true">
<span slot="label"><i class="el-icon-medal"></i> 协会活动报名</span>
<iframe src="/platform/hd/sthdgl/sthdbm">
</iframe>
</el-tab-pane>
</el-tabs>
</div>
<script>
const vue = new Vue({
el: "#app",
data() {
return {
loading: true,
xhdShow: false,
fhhdShow: false,
fhdtyShow: false,
sthdShow: false,
activeName: 'first',
}
},
methods: {},
created() {
$.get(base + "/platform/hd/hdbm/getHasRole", function (data) {
if (data.code == 0) {
vue.xhdShow = data.data.xhdshow
vue.fhhdShow = data.data.fhhdshow
vue.fhdtyShow = data.data.fhdtyshow
vue.sthdShow = data.data.sthdshow
if (vue.xhdShow) {
vue.activeName = 'first'
} else if (vue.fhhdShow) {
vue.activeName = 'second'
} else if (vue.fhdtyShow) {
vue.activeName = 'three'
} else if (vue.sthdShow) {
vue.activeName = 'four'
}
}
vue.loading = false
}, "json");
},
})
</script>
<!--#
}
#-->
@@ -0,0 +1,626 @@
<!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">
<link rel="stylesheet" href="${base!}/assets/platform/plugins/myframe/css/myframe.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>
<!--umeditor-->
<!--<script type="text/javascript" charset="utf-8"
src="/assets/platform/plugins/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8"
src="/assets/platform/plugins/ueditor/ueditor.all.js"></script>
<script type="text/javascript" charset="utf-8"
src="/assets/platform/plugins/ueditor/lang/zh-cn/zh-cn.js"></script>-->
<!--echars-->
<script src="/assets/platform/js/echarts.min.js"></script>
<script src="/assets/platform/js/infographic.js"></script><!--主题-->
<script src="/assets/platform/js/westeros.js"></script><!--主题-->
<script src="/assets/platform/js/walden.js"></script><!--主题-->
<script src="/assets/platform/js/macarons.js"></script><!--主题-->
<!--viewer-->
<script src="/assets/platform/plugins/viewer/viewer.min.js"></script>
<script src="/assets/platform/plugins/viewer/jquery-viewer.min.js"></script>
<!--百度地图-->
<script type="text/javascript"
src="http://api.map.baidu.com/getscript?v=2.0&ak=CN9wyItrokzVpb2rTp3fwPEE5RgAjkQE"></script>
<script type="text/javascript"
src="https://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script>
<script type="text/javascript"
src="https://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script>
<!--# if(@shiro.getPrincipalProperty('loginTheme')!=null){ #-->
<link rel="stylesheet" href="/assets/platform/css/skins/${@shiro.getPrincipalProperty('loginTheme')}"
id="skin">
<!--# }else{ #-->
<link rel="stylesheet" href="/assets/platform/css/skins/palette.css" id="skin">
<!--# } #-->
</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;
}
.tpa {
padding: 8px;
text-align: center;
width:12%;
background-color: rgb(250,250,250);
border: 1px solid rgb(220,220,220);
}
.tpb {
padding: 8px;
text-align: center;
color: #a0a9b4;
width:16%;
border: 1px solid rgb(220,220,220);
}
.tpc {
padding: 8px;
color: #a0a9b4;
width:15%;
border: 1px solid rgb(220,220,220);
}
.el-card__body{
padding: 10px;
}
.el-input--suffix .el-input__inner{
padding-right: 0px;
}
.el-dropdown-menu__item{
padding: 0px 15px;
}
.v-modal{
background-color: transparent;
}
.el-table-container{
padding-top: 0px;
}
.v-0x2323544 {
text-align: center;
color: rgb(180, 180, 180);
}
.v-0x345756765 {
text-align: center;
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div 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>
<div style=""></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="hdmc"></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="cyrs"></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="bmrs"></el-table-column>
<el-table-column align="center" header-align="center" label="活动状态" prop="hdzt">
<template slot-scope="scope">
<el-tag type="info" v-if="scope.row.hdzt=='0'">未开始</el-tag>
<el-tag type="success" v-if="scope.row.hdzt=='1'">正在报名</el-tag>
<el-tag type="warning" v-if="scope.row.hdzt=='2'">报名结束</el-tag>
<el-tag type="success" v-if="scope.row.hdzt=='3'">正在进行</el-tag>
<el-tag type="info" v-if="scope.row.hdzt=='4'">已结束s</el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="报名状态" prop="sfbm">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.sfbm=='1'">已报名</el-tag>
<el-tag type="info" v-if="scope.row.sfbm=='0'">未报名</el-tag>
</template>
</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">
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center" style="font-size: 20px;background-color: #f5f5f5">
{{viewData.hdmc}}
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="v-0x345756765">主要负责人</td>
<td class="v-0x2323544" >{{viewData.username}}</td>
<td class="v-0x345756765">联系电话</td>
<td class="v-0x2323544" >{{viewData.phone}}</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.jfys}}</td>
<td class="v-0x345756765">成员人数</td>
<td class="v-0x2323544" >{{viewData.cyrs}}</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="v-0x345756765">活动地址</td>
<td class="v-0x2323544" colspan="3" >{{viewData.hddz}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">活动主要内容</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6"><div v-html="viewData.hdnr" class="v-0x2323544"></div></td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6" class="text-center"
style="font-size: 15px;border-top: 1px solid #e3e6f3;background-color: #f5f5f5">活动宗旨</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td colspan="6"><div v-html="viewData.hdzz" class="v-0x2323544"></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="报名人员" prop="username" header-align="center" align="center" ></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center" align="center" ></el-table-column>
<el-table-column label="基层工会" prop="unionname" header-align="center" align="center" ></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</transition>
<!-- &lt;!&ndash;查看&ndash;&gt;
<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.hdmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" >主要负责人</td>
<td class="tpb" >{{viewData.username}}</td>
<td class="tpa" >联系电话</td>
<td class="tpb" >{{viewData.phone}}</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.jfys}}</td>
<td class="tpa" >成员人数</td>
<td class="tpb">{{viewData.cyrs}}</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" >活动地址</td>
<td class="tpb" colspan="3">{{viewData.hddz}}</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.hdzz"></div></td>
</tr>
</table>
</el-card>
</el-collapse-item>
<el-collapse-item title="活动报名情况" name="2">
<el-card class="box-card">
<el-table :data="bmTableData" size="small" border :header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column label="报名人员" prop="username" header-align="center" align="center" ></el-table-column>
<el-table-column label="所属单位" prop="name" header-align="center" align="center" ></el-table-column>
<el-table-column label="基层工会" 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="infoTemp.sfbm=='0'">报名</el-button>
<el-button type="warning" @click="qxbm(infoFlag)" v-if="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:[],
/*查看*/
infoDialogVisible:false,
activeName: '1',
viewData:[],
bmTableData:[],
bmfs:"",
infoTemp:[],
infoFlag:[],
isshow:true,
xqactive:"1"
}
},
methods: {
pageData:function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post("/platform/hd/sthdgl/sthdbm/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.hds.list;
for(var i=0; i < self.tableData.length; i++) {
var bmkssj = self.tableData[i].bmkssj;
var bmjssj = self.tableData[i].bmjssj;
var hdkssj = self.tableData[i].hdkssj;
var hdjssj = self.tableData[i].hdjssj;
var now = new Date();
now = Date.parse(now);
var asacstauts=0;
if(Date.parse(bmkssj)>now)//报名开始时间大于当前时间 活动未开始
{
asacstauts=0;
}else//报名开始
{
if(Date.parse(bmjssj)<now)//报名结束时间小于当前时间 报名结束
{
if(Date.parse(hdkssj)>now)//活动开始时间大于当前时间 报名结束但是活动未开始
{
asacstauts=2;//报名结束时间大于当前时间并且活动开始日期大于当前日期 报名已结束 活动未开始
}else
{
if(Date.parse(hdjssj)<now)//活动结束时间大于当前时间 并且活动结束时间小于当前时间 活动结束
{
asacstauts=4;//活动结束
}else
{
asacstauts=3;//活动结束时间大于当前时间 正在进行
}
}
}else//报名结束时间大于等于当前时间 报名结束
{
asacstauts=1;
}
}
self.tableData[i].hdzt = asacstauts;
}
console.log(self.tableData)
self.pageForm.totalCount=data.data.hds.totalCount;
self.hdlxOptions = data.data.hdlx;
self.queryHdlx = data.data.hdlx;
}
}, "json");
},
/*分页*/
pageSizeChange:function (val) {
this.pageForm.pageSize=val;
this.pageData();
},
pageNumberChange:function (val) {
this.pageForm.pageNumber=val;
this.pageData();
},
doSearch:function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
/*查看*/
openInfo:function (scope) {
var self = this;
self.infoFlag = scope;
self.infoTemp.sfbm = scope.row.sfbm;
$.post("/platform/hd/sthdgl/sthdbm/findById", {id:scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data.sthd;
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/sthdgl/sthdbm/bmhd", {id:scope.row.id,hdrs:scope.row.cyrs}, function (data) {
if (data.code == 0) {
self.$message({
message: "报名成功!",
type: 'success'
});
self.pageData();
self.infoDialogVisible = false;
}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/sthdgl/sthdbm/qxbm", {id:scope.row.id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.infoDialogVisible = false;
}
}, "json");
}
}
});
}
},
created:function () {
this.pageData();
},
watch:{
"pageForm.hdlx":function (obj) {
var self = this;
if(obj != "" && obj != null && obj!="undefined") {
self.pageForm.hdxm = "";
$.post("/platform/hd/xhdgl/xhdxxgl/findHdXm", {id:obj}, function (data) {
if (data.code == 0) {
self.queryHdxm = data.data;
console.log(data.data)
self.pageForm.hdxm = data.data[0].id;
}
}, "json");
}
},
},
})
</script>
</body>
</html>
@@ -0,0 +1,980 @@
<!--协会活动计划 -->
<!--#
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 shadow">
<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">
<el-input placeholder="根据名称进行查询" clearable v-model="pageForm.searchKeyword">
</el-input>
</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" @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="stmc" 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)"
:disabled="(scope.row.ct>0 && scope.row.evtime==2)?true:false" size="mini">创建活动
</el-button>
<el-button type="primary" @click="openEdit(scope)" size="mini">编辑</el-button>
<el-button type="danger" @click="deleteDo(scope)"
: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>
<!-- &lt;!&ndash;编辑&ndash;&gt;
<el-dialog title="修改活动计划" width="50%" custom-class="ViewDialogClass" class="dia" :close-on-click-modal="false"
top="6%"
v-if="editDialogVisible"
:visible.sync="editDialogVisible"
>
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">请填写以下信息</span></el-divider>
<el-form class="need" :model="editFormData" label-position="top" ref="editForm" :rules="editFormRules"
size="small" label-width="86px">
<el-row>
<el-col :span="24">
<el-form-item label="计划名称">
<el-input maxlength="100" placeholder="请输入计划名称"
v-model="editFormData.jhmc" style="width: 94%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="计划时间">
<el-date-picker style="width: 88%" 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-col :span="12">
<el-form-item label="所属协会">
<el-select v-model="editFormData.stid" filterable placeholder="请选择协会" style="width: 88%">
<el-option
v-for="item in stOptions"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="活动类型">
<el-select v-model="editFormData.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="活动项目">
<el-select v-model="editFormData.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="editjhnrEditor"></div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</el-dialog>-->
<!--查看-->
<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.stid" filterable placeholder="请选择协会" style="width: 88%">
<el-option
v-for="item in stOptions"
: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.jhid" disabled placeholder="请选择活动类型" style="width: 88%">
<el-option label="选择其他" value=""></el-option>
<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.hdmc" 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="selChange" :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.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.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-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-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.cyrs" style="width: 88%"
auto-complete="off" tabindex="4" type="number"></el-input>
</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="zzEditor"></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 jhnrEditor = null
let nrEditor = null
let zzEditor = null
const vue= new Vue({
el: "#app",
data: function () {
return {
pageForm: {//分页
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
year: "",
},
tableData: [],//表格
/*新增*/
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,
stOptions: [],
hdjhOptions: [],
addBm: [],
addHd: [],
fzrOptions: [],
hdxmOptions: [],
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/sthdgl/sthdjh/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.stOptions = data.data.stxx;
} 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: "",
};
if(self.stOptions.length>0){
self.formData.stid = self.stOptions[0].id;
}
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/sthdgl/sthdjh/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/sthdgl/sthdjh/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/sthdgl/sthdjh/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");
}
});
},
remoteMethod: function (obj) {
var self = this;
$.post(base + "/platform/hd/sthdgl/hdxxgl/findFzr", {obj: obj}, function (data) {
if (data.code == 0) {
self.fzrOptions = data.data;
}
}, "json");
},
selChange: 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;
}
}
},
openHdAdd: function (scope) {
var self = this;
if (scope.row.hdcount > 0) {
self.$alert("此计划已创建活动!", "温馨提示", {
type: 'error',
closeOnPressEscape: true,
closeOnClickModal: true,
});
return;
}
self.formData = {
hdlxid: "",
hdxmid: "",
hdmc: "",
};
if (self.stOptions.length>0){
self.formData.stid = self.stOptions[0].id;
}
self.hdjhOptions = [{id: scope.row.id, jhmc: scope.row.jhmc}];
self.formData.jhid = scope.row.id;
self.formData.hdmc = 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 () {
//实例化编辑器
nrEditor = new wangEditor("#nrEditor")
nrEditor.create()
zzEditor = new wangEditor("#zzEditor")
zzEditor.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.hdnr = nrEditor.txt.text();
self.formData.hdzz = zzEditor.txt.text();
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/sthdgl/hdxxgl/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/sthdgl/sthdjh/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/sthdgl/sthdjh/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>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,583 @@
<!--协会日常活动 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{
width: 100%;
height: 360px;
}
label{
margin-bottom: 0px;
}
.tpa {
padding: 8px;
text-align: center;
width:12%;
background-color: rgb(250,250,250);
border: 1px solid rgb(220,220,220);
}
.tpb {
padding: 8px;
text-align: center;
color: #a0a9b4;
width:16%;
border: 1px solid rgb(220,220,220);
}
.tpc {
padding: 8px;
color: #a0a9b4;
width:15%;
border: 1px solid rgb(220,220,220);
}
.el-card__body{
padding: 10px;
}
.el-input--suffix .el-input__inner{
padding-right: 0px;
}
.el-dropdown-menu__item{
padding: 0px 15px;
}
</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">
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择协会" :disabled="flag=='1'?false:true" v-model="pageForm.stid" clearable="true" filterable="true">
<el-option v-for="item in stOptions" :label="item.stmc" :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">
<el-button size="medium" @click="openAdd" v-if="flag!='1'"><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" :show-overflow-tooltip="true" header-align="center" label="协会名称" prop="stmc"></el-table-column>
<el-table-column align="center" :show-overflow-tooltip="true" header-align="center" label="通知名称" prop="jhmc"></el-table-column>
<el-table-column align="center" :show-overflow-tooltip="true" header-align="center" label="通知内容" prop="jhnr"></el-table-column>
<el-table-column align="center" label="操作" width="240px">
<template slot-scope="scope">
<el-button @click="openInfo(scope)" size="mini">查看</el-button>
<el-button type="primary" v-if="flag!='1'" @click="openEdit(scope)" size="mini">编辑</el-button>
<el-button type="danger" v-if="flag!='1'" @click="deleteDo(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: 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="top" ref="addForm" :rules="formRules" size="small" label-width="86px">
<el-row>
<el-col :span="24">
<el-form-item label="协会名称">
<el-select v-model="formData.stid" disabled filterable placeholder="请选择协会" style="width: 88%">
<el-option
v-for="item in stOptions"
:label="item.stmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="通知名称">
<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-row>
<el-row>
<el-col :span="24">
<el-form-item label="通知内容">
<div id="nrEditor"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span style="float: right;margin-top: 15px">
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</div>
</transition>
<!-- &lt;!&ndash;新增&ndash;&gt;
<el-dialog title="创建活动计划" id="addDialog" class="dia" :close-on-click-modal="false"
v-if="addDialogVisible"
:visible.sync="addDialogVisible"
custom-class="ViewDialogClass" width="60%" 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" :rules="formRules" size="small" label-width="86px">
<el-row>
<el-col :span="12">
<el-form-item label="协会名称">
<el-select v-model="formData.stid" disabled filterable placeholder="请选择协会" style="width: 88%">
<el-option
v-for="item in stOptions"
:label="item.stmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="通知名称">
<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-row>
<el-row>
<el-col :span="24">
<el-form-item label="通知内容">
<div id="nrEditor"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</el-dialog>-->
<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="top" ref="editForm" :rules="editFormRules" size="small" label-width="86px">
<el-row>
<el-col :span="12">
<el-form-item label="协会名称">
<el-select v-model="editFormData.stid" filterable placeholder="请选择协会" style="width: 88%">
<el-option
v-for="item in stOptions"
:label="item.stmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="通知名称">
<el-input maxlength="100" placeholder="请输入通知名称"
v-model="editFormData.jhmc" style="width: 88%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="通知内容">
<div id="editnrEditor"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span style="float: right;margin-top: 15px">
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</div>
</transition>
<!-- &lt;!&ndash;编辑&ndash;&gt;
<el-dialog title="修改活动计划" id="editDialog" class="dia" :close-on-click-modal="false"
v-if="editDialogVisible"
:visible.sync="editDialogVisible"
custom-class="ViewDialogClass" width="60%" top="3%">
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">请确认以下信息</span></el-divider>
<el-form :model="editFormData" label-position="top" ref="editForm" :rules="editFormRules" size="small" label-width="86px">
<el-row>
<el-col :span="12">
<el-form-item label="协会名称">
<el-select v-model="editFormData.stid" filterable placeholder="请选择协会" style="width: 88%">
<el-option
v-for="item in stOptions"
:label="item.stmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="通知名称">
<el-input maxlength="100" placeholder="请输入通知名称"
v-model="editFormData.jhmc" style="width: 88%"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="通知内容">
<div id="editnrEditor"></div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</el-dialog>-->
<!--查看-->
<el-dialog title="查看" class="dia"
:visible.sync="infoDialogVisible" custom-class="ViewDialogClass" width="60%" top="3%">
<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.stmc}}日常计划</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" >通知名称</td>
<td class="tpb" >{{viewData.jhmc}}</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.jhnr"></div></td>
</tr>
</table>
</el-card>
</el-dialog>
</div>
<script>
let nrEditor = null
var vue = new Vue({
el: "#app",
data: function () {
return {
/*列表*/
tableData:[],
pageForm:{
pageNumber:1,
pageSize:10,
totalCount:0,
searchKeyword:"",
stid:"",
},
stOptions:[],
/*新增*/
addDialogVisible:false,
formData:{
},
formRules:{
},
/*编辑*/
editDialogVisible:false,
editFormData:{
},
editFormRules:{
},
/*查看*/
infoDialogVisible:false,
viewData:[],
flag:"",
stid:"",
isshow:true,
addshow:false,
editshow:false
}
},
methods: {
pageData:function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hd/sthdgl/rchdjh/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.jhs.list;
for(var i=0; i < self.tableData.length; i++) {
self.tableData[i].jhnr = self.tableData[i].jhnr.replace(/<[^>]+>|&[^>]+;/g, "");
}
self.pageForm.totalCount=data.data.jhs.totalCount;
self.stOptions = data.data.stxx;
self.flag = data.data.flag;
self.stid = data.data.stid;
if(data.data.flag != "" && data.data.flag != null) {
self.pageForm.stid = data.data.stid;
}
}
}, "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();
},
/*新增*/
openAdd:function () {
var self = this;
self.formData = {
hdxmid:"",
stid:self.stid,
};
self.addshow = true;
self.isshow=false;
self.$nextTick(function () {
//实例化编辑器
if (nrEditor==null){
nrEditor = new wangEditor("#nrEditor")
nrEditor.create()
}
});
},
doAdd:function () {
var self = this;
self.formData.jhnr = nrEditor.txt.text();
self.$refs["addForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hd/sthdgl/rchdjh/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'
});
}
}, "json");
}
});
},
/*编辑*/
openEdit:function (scope) {
var self = this;
$.post(base + "/platform/hd/sthdgl/rchdjh/findJh", {id:scope.row.id}, function (data) {
if (data.code == 0) {
self.editFormData = data.data;
self.editshow = true;
self.isshow=false;
self.$nextTick(function () {
//实例化编辑器
editnrEditor = new editnrEditor("#nrEditor")
editnrEditor.create()
if(data.data.jhnr!="" && data.data.jhnr!=null) {
editnrEditor.txt.text(data.data.jhnr);
}
});
}
}, "json");
},
doEdit:function () {
var self = this;
self.editFormData.jhnr = editnrEditor.getContent();
self.$refs["editForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hd/sthdgl/rchdjh/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");
}
});
},
/*查看*/
openInfo:function (scope) {
var self = this;
$.post(base + "/platform/hd/sthdgl/rchdjh/findById", {id:scope.row.id}, function (data) {
if (data.code == 0) {
self.viewData = data.data;
self.infoDialogVisible = true;
}
}, "json");
},
/*删除*/
deleteDo:function (scope) {
var self = this;
self.$confirm("此操作将永久删除该计划, 是否继续?","温馨提示",{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback:function (a,b) {
if("confirm" == a) {
$.post(base + "/platform/hd/sthdgl/rchdjh/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:{
},
})
</script>
<!--#
}
#-->