commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -166,7 +166,7 @@
|
||||
:max="1000000000"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item prop="xlFlag" label="活动提醒">
|
||||
<el-switch
|
||||
v-model="form.xlFlag"
|
||||
@@ -174,7 +174,7 @@
|
||||
inactive-color="#ff4949">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>-->
|
||||
<el-col v-if="form.activityLevel===40003||(form.activityLevel===40001&&is_club)"
|
||||
:span="8">
|
||||
<el-form-item prop="belongClubId" label="活动所属协会">
|
||||
@@ -1191,12 +1191,6 @@ module.exports = {
|
||||
keys.forEach(key => {
|
||||
$("#" + key).html("")
|
||||
editors[key] = new E('#' + key)
|
||||
editors[key].config.excludeMenus = [
|
||||
'video',
|
||||
'image',
|
||||
'link',
|
||||
'code',
|
||||
]
|
||||
editors[key].config.onchange = (html) => {
|
||||
this.form[key] = html
|
||||
}
|
||||
@@ -1293,4 +1287,4 @@ module.exports = {
|
||||
.restrictTotalTeam .el-form-item__label {
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -116,7 +116,7 @@ module.exports = {
|
||||
{prop: 'identity', label: '身份', sortable: true},
|
||||
// {prop: 'divisionLevelLeadership', label: '是否处级领导', sortable: true},
|
||||
{prop: 'status', label: '状态', sortable: true},
|
||||
{prop: 'awardsMode', label: '项目类型'},
|
||||
// {prop: 'awardsMode', label: '项目类型'},
|
||||
{prop: 'allName', label: '报名项目'},
|
||||
],
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
<el-form label-suffix=":" style="padding: 20px 0" label-width="120px">
|
||||
<el-form-item class="item-center">{{ viewData.name }}</el-form-item>
|
||||
|
||||
|
||||
<el-row gutter="60">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人">
|
||||
<span v-if="viewData.username">
|
||||
@@ -60,7 +62,18 @@
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动内容">{{ viewData.activityContent }}</el-form-item>
|
||||
<el-form-item label="活动内容">
|
||||
<span style="white-space: pre-line">
|
||||
{{ viewData.activityContent }}
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="!viewData.isEnrollSystem">
|
||||
<el-form-item label="活动考核内容">
|
||||
<span style="white-space: pre-line">
|
||||
{{ viewData.activityExamineContent }}
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
@@ -197,32 +210,7 @@
|
||||
</el-form>
|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="新闻稿件" name="4" v-if="!viewData.isEnrollSystem">
|
||||
<el-descriptions class="margin-top" :column="3" border>
|
||||
<el-descriptions-item span="3">
|
||||
<template slot="label">新闻稿件说明</template>
|
||||
{{ viewData.newsRemark }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="3">
|
||||
<template slot="label">图片</template>
|
||||
<file-upload v-if="viewData.picFiles && viewData.picFiles.length > 0"
|
||||
:files="viewData.picFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="3">
|
||||
<template slot="label">附件</template>
|
||||
<file-upload v-if="viewData.newsFiles && viewData.newsFiles.length > 0"
|
||||
:files="viewData.newsFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
<el-tab-pane label="活动总结" name="5" v-if="!viewData.isEnrollSystem">
|
||||
<el-tab-pane label="活动总结" name="4" v-if="!viewData.isEnrollSystem">
|
||||
<el-form ref="form" label-width="120px">
|
||||
<el-form-item prop="activitySummary" label="活动总结">
|
||||
{{ viewData.activitySummary }}
|
||||
@@ -320,8 +308,6 @@ module.exports = {
|
||||
data.billFiles = JSON.parse(data.billFiles)
|
||||
data.photoFiles = JSON.parse(data.photoFiles)
|
||||
data.otherFiles = JSON.parse(data.otherFiles)
|
||||
data.picFiles = JSON.parse(data.picFiles)
|
||||
data.newsFiles = JSON.parse(data.newsFiles)
|
||||
this.userData = clone(data.tissuePersonList)
|
||||
data.unionUserNumberLimit = JSON.parse(data.unionUserNumberLimit)
|
||||
data.location = JSON.parse(data.location)
|
||||
|
||||
@@ -53,7 +53,6 @@ module.exports = {
|
||||
},
|
||||
methods: {
|
||||
async openView(welfareId, userId) {
|
||||
this.dialogVisible = true
|
||||
this.loading = true
|
||||
const {
|
||||
code,
|
||||
@@ -67,6 +66,12 @@ module.exports = {
|
||||
this.$message.warning('您还没有选择福利套餐')
|
||||
return
|
||||
}
|
||||
if (Object.keys(data).length === 0){
|
||||
this.dialogVisible = false
|
||||
this.$message.warning('暂无物流信息')
|
||||
return
|
||||
}
|
||||
this.dialogVisible = true
|
||||
this.courierNumberInfoData = data
|
||||
const keys = Object.keys(this.courierNumberInfoData)
|
||||
this.activeName = keys && keys[0]
|
||||
|
||||
@@ -1,7 +1,21 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.tag {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
background-color: #1867b0;
|
||||
color: #fff;
|
||||
font-size: 10px;
|
||||
top: 1px;
|
||||
border-radius: 6px;
|
||||
right: -8px;
|
||||
padding: 1px 7px;
|
||||
transform: rotate(17deg);
|
||||
/*z-index: 999;*/
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<m-page-loading v-if="mLoading"></m-page-loading>
|
||||
<van-nav-bar title="活动列表" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
|
||||
@@ -15,7 +29,6 @@ layout("/mobile/platform.html"){
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="margin: 60px auto 0 auto">
|
||||
<van-list :finished="finished" :finished-text="tableData.length>0?'没有更多了':''">
|
||||
<div v-for="o in tableData" class="list-card" @click="openInfo(o.id,o.applyEndTime,o.applyType)">
|
||||
@@ -31,20 +44,18 @@ layout("/mobile/platform.html"){
|
||||
{{moment(o.applyStartTime).format('YYYY/MM/DD HH:mm')}} 至
|
||||
{{moment(o.applyEndTime).format('YYYY/MM/DD HH:mm')}}
|
||||
</span>
|
||||
|
||||
</van-cell>
|
||||
<van-cell :border="false" title="活动时间">
|
||||
<span style="font-size: 12px">
|
||||
{{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至
|
||||
{{moment(o.endTime).format('YYYY/MM/DD HH:mm')}}
|
||||
</span>
|
||||
|
||||
</van-cell>
|
||||
<van-cell :border="false" title="活动状态">
|
||||
<van-tag type="danger" v-if="moment(o.applyEndTime).valueOf() <moment().valueOf()">报名结束
|
||||
</van-tag>
|
||||
<van-tag type="success" v-else-if="moment(o.applyEndTime).valueOf() >moment().valueOf()">报名中
|
||||
</van-tag>
|
||||
<van-tag type="warning" v-if="moment(o.applyStartTime).valueOf() > moment().valueOf()">未开始</van-tag>
|
||||
<van-tag type="primary" v-else-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()">报名中</van-tag>
|
||||
<van-tag type="success" v-else-if="moment(o.startTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.endTime).valueOf()">进行中</van-tag>
|
||||
<van-tag type="danger" v-else-if="moment().valueOf() > moment(o.endTime).valueOf()">活动结束</van-tag>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
@@ -55,7 +66,6 @@ layout("/mobile/platform.html"){
|
||||
description="暂无数据">
|
||||
</van-empty>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -66,7 +76,9 @@ layout("/mobile/platform.html"){
|
||||
return {
|
||||
activityList: [
|
||||
{text: '全部', value: 1},
|
||||
{text: '未开始', value: 5},
|
||||
{text: '报名中', value: 2},
|
||||
{text: '进行中', value: 4},
|
||||
{text: '已结束', value: 3},
|
||||
],
|
||||
pageForm: {
|
||||
@@ -76,6 +88,11 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
formChange() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.pageData()
|
||||
},
|
||||
async getActivityData() {
|
||||
const {data} = await $.post("/platform/activity/apply/activityData", {
|
||||
year: this.pageForm.year,
|
||||
@@ -94,7 +111,7 @@ layout("/mobile/platform.html"){
|
||||
async created() {
|
||||
this.mLoading = true
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.$set(this.pageForm, "isActivity", 2)
|
||||
this.$set(this.pageForm, "isActivity", 1)
|
||||
await this.getActivityData()
|
||||
this.mLoading = false
|
||||
|
||||
@@ -105,4 +122,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -62,7 +62,9 @@
|
||||
|
||||
<van-cell title="活动内容" v-if="o.projectTypeCode!=='50004'">
|
||||
<template #label>
|
||||
{{o.activityContent}}
|
||||
<span style="white-space: pre-line">
|
||||
{{o.activityContent}}
|
||||
</span>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell title="签到点位" v-if="o.needSign">
|
||||
@@ -73,4 +75,4 @@
|
||||
</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-cell-group>
|
||||
|
||||
@@ -83,27 +83,61 @@ layout("/mobile/platform.html"){
|
||||
height="200"
|
||||
:src="FILE_DOMAIN + '/fileStreamPreview?id=' + o.cover"
|
||||
></van-image>
|
||||
<!-- <van-image-->
|
||||
<!-- fit="cover"-->
|
||||
<!-- width="100%"-->
|
||||
<!-- height="200"-->
|
||||
<!-- :src="'https://zhghydd.cpu.edu.cn/file_server/fileStreamPreview?id=' + o.cover"-->
|
||||
<!-- ></van-image>-->
|
||||
<div class="activity_content">
|
||||
<div class="activity_name van-ellipsis">
|
||||
<van-icon name="fire" color="red"></van-icon>
|
||||
<span style="margin-left: 10px;">{{o.name}}</span>
|
||||
<div style="margin-left: 10px;width: calc(100% - 26px);text-overflow: ellipsis;overflow: hidden;white-space: nowrap">
|
||||
{{o.name}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="activity_bottom">
|
||||
<div class="left" style="width: 100%">
|
||||
<van-icon name="clock" size="1em"></van-icon>
|
||||
<span style="margin-left: 10px;">
|
||||
报名时间:{{o.applyStartTime}}至{{o.applyEndTime}}
|
||||
<!-- {{moment(o.activityStartTime).format('YYYY/MM/DD HH:mm')}} 至-->
|
||||
<!-- {{moment(o.activityEndTime).format('YYYY/MM/DD HH:mm')}}-->
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div class="right">-->
|
||||
<!-- <span v-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()"-->
|
||||
<!-- style="color: forestgreen">-->
|
||||
<!-- 报名中-->
|
||||
<!-- </span>-->
|
||||
<!-- <span v-else-if="moment(o.applyEndTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.startTime).valueOf()"-->
|
||||
<!-- style="color: #ee1919">-->
|
||||
<!-- 报名结束-->
|
||||
<!-- </span>-->
|
||||
<!-- <span v-else-if="moment(o.startTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.endTime).valueOf()"-->
|
||||
<!-- style="color: forestgreen">-->
|
||||
<!-- 活动进行中-->
|
||||
<!-- </span>-->
|
||||
<!-- <span v-else-if="moment().valueOf() > moment(o.endTime).valueOf()"-->
|
||||
<!-- style="color: #ee1919">-->
|
||||
<!-- 活动结束-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
|
||||
<div class="activity_bottom">
|
||||
<div class="left">
|
||||
<van-icon name="clock" size="1em"></van-icon>
|
||||
<span style="margin-left: 10px;">
|
||||
{{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至
|
||||
{{moment(o.endTime).format('YYYY/MM/DD HH:mm')}}
|
||||
</span>
|
||||
活动时间:{{o.startTime}}
|
||||
<!-- {{moment(o.activityStartTime).format('YYYY/MM/DD HH:mm')}} 至-->
|
||||
<!-- {{moment(o.activityEndTime).format('YYYY/MM/DD HH:mm')}}-->
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="right">
|
||||
<span v-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()"
|
||||
<span v-if="moment(o.applyStartTime).valueOf() > moment().valueOf()"
|
||||
style="color: forestgreen">
|
||||
未开始报名
|
||||
</span>
|
||||
<span v-else-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()"
|
||||
style="color: forestgreen">
|
||||
报名中
|
||||
</span>
|
||||
@@ -121,6 +155,19 @@ layout("/mobile/platform.html"){
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div class="activity_content" style="font-size: 12px; color: #c4bebe;">-->
|
||||
<!-- <div class="left">-->
|
||||
<!-- <van-icon name="clock" size="1em"></van-icon>-->
|
||||
<!-- <span style="margin-left: 5px;">-->
|
||||
<!-- {{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至-->
|
||||
<!-- {{moment(o.endTime).format('YYYY/MM/DD HH:mm')}}-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -157,6 +204,7 @@ layout("/mobile/platform.html"){
|
||||
activityLevelList: [],
|
||||
activityStatusList: [
|
||||
{text: '全部', value: 1},
|
||||
{text: '未开始', value: 5},
|
||||
{text: '报名中', value: 2},
|
||||
{text: '进行中', value: 3},
|
||||
{text: '已结束', value: 4}
|
||||
@@ -196,6 +244,11 @@ layout("/mobile/platform.html"){
|
||||
},
|
||||
//跳转页面
|
||||
openReg(o) {
|
||||
console.log(o)
|
||||
if (moment(o.applyStartTime).valueOf() > moment().valueOf()) {
|
||||
this.$toast('活动未开始报名')
|
||||
return;
|
||||
}
|
||||
if (o.projectTypeCode === '50004') {
|
||||
window.location.href = '/mobile/activity/Sports/list/activityEventList?id=' + o.id
|
||||
} else {
|
||||
@@ -203,9 +256,10 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
async init() {
|
||||
this.$set(this.pageForm, "activityStatus", 2)
|
||||
this.$set(this.pageForm, "activityStatus", 1)
|
||||
this.$set(this.pageForm, "year", new Date().getFullYear())
|
||||
const {data} = await $.get("/platform/activity/basic/basic/settings/getActivityTwoLevelType", {code: 40000})
|
||||
this.activityLevelList = []
|
||||
this.activityLevelList.push({value: null, text: "全部类别"})
|
||||
data.forEach(v => {
|
||||
this.activityLevelList.push({value: v.code, text: v.name})
|
||||
@@ -221,10 +275,9 @@ layout("/mobile/platform.html"){
|
||||
window.addEventListener('pageshow', e => {
|
||||
if (e.persisted || (window.performance && window.performance.navigation.type === 2)) {
|
||||
vue.init()
|
||||
vue.onRefresh()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -42,13 +42,13 @@ layout("/mobile/platform.html"){
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar :title="title" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
<van-nav-bar :title="title" @click-left="history.back()" fixed left-arrow
|
||||
placeholder></van-nav-bar>
|
||||
|
||||
<!--#include("/mobile/activity/unionActivity/common/activityInfo.html"){}#-->
|
||||
|
||||
<van-cell-group inset class="mt5">
|
||||
<van-cell title="报名人员" class="regCell">
|
||||
<van-cell-group class="mt5" inset>
|
||||
<van-cell class="regCell" title="报名人员">
|
||||
<template #label>
|
||||
<div>
|
||||
<span v-if="o.userNumberLimit===1">
|
||||
@@ -61,9 +61,10 @@ layout("/mobile/platform.html"){
|
||||
<div class="mt5" v-loading="tagCloseable">
|
||||
<div v-if="registerList && registerList.length>0">
|
||||
<template v-for="item in registerList">
|
||||
<van-tag type="primary" :closeable="tagCloseable" size="medium"
|
||||
:color="themeColor"
|
||||
@close="removeRegUser(item)">
|
||||
<van-tag :closeable="tagCloseable" :color="themeColor"
|
||||
@close="removeRegUser(item)"
|
||||
size="medium"
|
||||
type="primary">
|
||||
{{item.userName}}
|
||||
</van-tag>
|
||||
</template>
|
||||
@@ -76,17 +77,17 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
<div class="mt5" style="text-align: right"
|
||||
v-if="moment(o.applyStartTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.applyEndTime).valueOf()">
|
||||
<van-button v-if="tagCloseable" size="mini" type="info"
|
||||
@click="openUserActionSheet" :color="themeColor">选择报名人员
|
||||
<van-button :color="themeColor" @click="openUserActionSheet" size="mini"
|
||||
type="info" v-if="tagCloseable">选择报名人员
|
||||
</van-button>
|
||||
</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<van-action-sheet v-model="userActionSheet" title="选择报名人员" class="userActionPopup">
|
||||
<van-search v-model="searchKey" @search="onSearchUser" show-action
|
||||
placeholder="请输入姓名搜索">
|
||||
<van-action-sheet class="userActionPopup" title="选择报名人员" v-model="userActionSheet">
|
||||
<van-search @search="onSearchUser" placeholder="请输入姓名搜索" show-action
|
||||
v-model="searchKey">
|
||||
<template #action>
|
||||
<div @click="onSearchUser(searchKey)">搜索</div>
|
||||
</template>
|
||||
@@ -123,16 +124,25 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<div style="margin: 20px 20px 10px 20px"
|
||||
v-if="moment(o.applyStartTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.applyEndTime).valueOf()">
|
||||
<van-button v-if="tagCloseable" @click="doSave()" style="border-radius: 10px" block
|
||||
<van-button :color="themeColor" @click="doSave()" block style="border-radius: 10px"
|
||||
type="info"
|
||||
:color="themeColor">
|
||||
v-if="tagCloseable">
|
||||
提 交
|
||||
</van-button>
|
||||
<van-button v-else="!tagCloseable" @click="tagCloseable = true" style="border-radius: 10px"
|
||||
block type="info"
|
||||
:color="themeColor">
|
||||
修 改
|
||||
</van-button>
|
||||
<template v-else="!tagCloseable">
|
||||
<van-button :color="themeColor" @click="tagCloseable = true"
|
||||
block style="border-radius: 10px"
|
||||
type="info">
|
||||
修 改
|
||||
</van-button>
|
||||
<van-button
|
||||
@click="doCancel"
|
||||
block color="red" style="border-radius: 10px;margin-top: 10px"
|
||||
type="info">
|
||||
取消报名
|
||||
</van-button>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- <div style="margin: 20px 20px 10px 20px" v-if="tagCloseable">-->
|
||||
@@ -169,6 +179,32 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async doCancel() {
|
||||
const confirm = await this.$dialog.confirm({
|
||||
title: '提示',
|
||||
message: '您确认要取消报名吗?',
|
||||
})
|
||||
const loading = this.$toast.loading({
|
||||
message: '取消中...',
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
duration: 0
|
||||
})
|
||||
if (confirm === 'confirm') {
|
||||
const resp = await $.post('/mobile/activity/unionActivity/doSingleCancelRegister', {activityId: this.activityId})
|
||||
if (resp.code === 0) {
|
||||
setTimeout(() => {
|
||||
loading.close()
|
||||
this.$toast.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
window.history.back()
|
||||
}, 400)
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
async getRegisterUser() {
|
||||
const resp = await $.get('/mobile/activity/myActivity/selectRegisterList', {activityId: this.activityId})
|
||||
if (resp.code === 0) {
|
||||
@@ -209,6 +245,7 @@ layout("/mobile/platform.html"){
|
||||
searchUserAdd(item) {
|
||||
const {id, userName} = item
|
||||
this.registerList.push({id, userName})
|
||||
this.$toast.success("添加成功")
|
||||
},
|
||||
async removeRegUser(item) {
|
||||
if (this.userId === item.id) {
|
||||
@@ -304,11 +341,14 @@ layout("/mobile/platform.html"){
|
||||
personIds: JSON.stringify(this.registerList.map(v => v.id))
|
||||
}
|
||||
const resp = await $.post('/mobile/activity/unionActivity/doSaveUnionRegister', params)
|
||||
loading.close()
|
||||
|
||||
if (resp.code === 0) {
|
||||
await this.getRegisterUser()
|
||||
await this.getHasRegUserNum()
|
||||
this.$toast.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
loading.close()
|
||||
this.$toast.success(resp.msg)
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
@@ -337,4 +377,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -135,15 +135,14 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-pagination
|
||||
@size-change="(val)=>{pageForm.pageSize = val;pageData()}"
|
||||
@current-change="(val)=>{pageForm.pageNumber = val;pageData()}"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount">
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:total="pageForm.totalCount"
|
||||
@current-change="pageNumberChange"
|
||||
@size-change="pageSizeChange"
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
</el-pagination>
|
||||
</el-card>
|
||||
</div>
|
||||
@@ -166,7 +165,7 @@ layout("/layouts/platform.html"){
|
||||
<el-form-item label="基础类型代码" prop="code" label-width="110px">
|
||||
<el-input maxlength="100" placeholder="请输入基础类型名称" v-model="formData.code"
|
||||
type="text"
|
||||
></el-input>
|
||||
:disabled="checkData.code==50000||checkData.code==40000||checkData.code=='jcsjgl'"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="基础类型备注" prop="note" label-width="110px">
|
||||
<el-input maxlength="100" placeholder="请输入基础类型备注" v-model="formData.note"
|
||||
@@ -262,8 +261,7 @@ layout("/layouts/platform.html"){
|
||||
async handleNodeClick(data, node) {
|
||||
this.checkData = data
|
||||
this.checkNode = node
|
||||
console.log(this.checkData)
|
||||
this.pageData()
|
||||
this.doSearch()
|
||||
},
|
||||
async loadTree(flush) {
|
||||
this.treeLoading = true
|
||||
@@ -277,7 +275,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
if (flush && resp.code === 0) {
|
||||
this.checkData = resp.data[0]
|
||||
this.pageData();
|
||||
this.doSearch();
|
||||
}
|
||||
},
|
||||
async openBasicType() {
|
||||
@@ -298,7 +296,7 @@ layout("/layouts/platform.html"){
|
||||
this.loading = false
|
||||
if(resp.code===0){
|
||||
this.basicTypeDialog = false
|
||||
this.pageData();
|
||||
this.doSearch();
|
||||
this.loadTree(true)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
@@ -314,7 +312,7 @@ layout("/layouts/platform.html"){
|
||||
this.loading = false
|
||||
this.basicTypeDialog = false
|
||||
if(resp.code===0){
|
||||
this.pageData();
|
||||
this.doSearch();
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
@@ -340,7 +338,7 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.pageData()
|
||||
this.doSearch()
|
||||
this.loadTree(true)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
@@ -359,4 +357,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -49,6 +49,11 @@ layout("/layouts/platform.html"){
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="d-search-item btn-group tool-button mr10">
|
||||
<el-input placeholder="请输入名称/编号" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch" style="width:100%"></el-input>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
@@ -407,23 +412,25 @@ layout("/layouts/platform.html"){
|
||||
return
|
||||
}
|
||||
|
||||
let msg = "确定要勾选的项目赋年龄限制吗?"
|
||||
if (this.pageForm.ageDate == null) {
|
||||
this.$notify({
|
||||
title: '警告',
|
||||
message: '请选择需要赋值的时间段',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
msg = "您没有在左侧填写年龄限制,现将您勾选的项目年龄清空,请确认"
|
||||
/* this.$notify({
|
||||
title: '警告',
|
||||
message: '请选择需要赋值的时间段',
|
||||
type: 'warning'
|
||||
});
|
||||
return*/
|
||||
}
|
||||
const confirm = await this.$confirm('确定要勾选的项目赋年龄限制吗?', '提示', {
|
||||
const confirm = await this.$confirm(msg, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const data = await $.post(loc() + "/doAssignmentDate", {
|
||||
startAgeDate: this.pageForm.ageDate[0],
|
||||
endAgeDate: this.pageForm.ageDate[1],
|
||||
startAgeDate: this.pageForm.ageDate ? this.pageForm.ageDate[0] : '',
|
||||
endAgeDate: this.pageForm.ageDate ? this.pageForm.ageDate[1] : '',
|
||||
eventIds: JSON.stringify(this.multipleSelection.map(v => v.id))
|
||||
})
|
||||
this.$notify.success({title: '成功', message: data.msg});
|
||||
@@ -452,19 +459,19 @@ layout("/layouts/platform.html"){
|
||||
//查询比赛组别
|
||||
async focusGroup() {
|
||||
const resp = await $.post(loc() + "/focusGroup")
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.groupList = resp.data
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
|
||||
//查询运动类型
|
||||
async exerciseType() {
|
||||
const resp = await $.post(loc() + "/exerciseType")
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.exerciseTypeList = resp.data
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -472,9 +479,9 @@ layout("/layouts/platform.html"){
|
||||
//查询距离
|
||||
async focusDistance() {
|
||||
const resp = await $.post(loc() + "/focusDistance")
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.distanceList = resp.data;
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -482,9 +489,9 @@ layout("/layouts/platform.html"){
|
||||
//根据运动id查询下面有哪些具体的运动项目
|
||||
async changeExercise_typeList() {
|
||||
const resp = await $.post(loc() + "/changeExercise_typeList", {exerciseType: this.formData.exerciseType})
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.exerciseTypeList2 = resp.data
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -546,10 +553,10 @@ layout("/layouts/platform.html"){
|
||||
this.loading = true
|
||||
const resp = await $.post(loc() + "/doAdd", this.formData)
|
||||
this.loading = false
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
@@ -577,10 +584,10 @@ layout("/layouts/platform.html"){
|
||||
async switchChange(data) {
|
||||
this.formData = data
|
||||
const resp = await $.post(loc() + "/doEdit", this.formData)
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.pageData()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -644,10 +651,10 @@ layout("/layouts/platform.html"){
|
||||
this.loading = true
|
||||
const resp = await $.post(loc() + "/doEdit", this.formData)
|
||||
this.loading = true
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
@@ -690,9 +697,9 @@ layout("/layouts/platform.html"){
|
||||
this.$set(row, "loading", true)
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id});
|
||||
this.$set(row, "loading", false)
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-tabs v-model="indexActive" type="card" style="box-shadow: none">
|
||||
<el-tab-pane :name="0">
|
||||
<span slot="label"><i class="el-icon-school"></i> 院级工会信息</span>
|
||||
<span slot="label"><i class="el-icon-school"></i> 分工会信息</span>
|
||||
|
||||
<el-card shadow="never" style="width: 100%;">
|
||||
<div class="btn-group tool-button mt5">
|
||||
@@ -405,7 +405,7 @@ layout("/layouts/platform.html"){
|
||||
label="单位"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="unionname"
|
||||
label="院级工会"
|
||||
label="分工会"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="rolename"
|
||||
label="用户角色"
|
||||
@@ -497,7 +497,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--新建工会-->
|
||||
<el-dialog
|
||||
title="新建院级工会"
|
||||
title="新建分工会"
|
||||
:visible.sync="addDialogVisible" width="40%">
|
||||
|
||||
<el-form :model="formData" ref="addForm" :rules="formRules" size="small" label-width="100px">
|
||||
@@ -511,8 +511,8 @@ layout("/layouts/platform.html"){
|
||||
v-model="formData.unioncode"
|
||||
auto-complete="off" tabindex="4" type="text"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item prop="dwcode" label="院级工会编号">-->
|
||||
<!-- <el-input maxlength="100" placeholder="院级工会编号"-->
|
||||
<!-- <el-form-item prop="dwcode" label="分工会编号">-->
|
||||
<!-- <el-input maxlength="100" placeholder="分工会编号"-->
|
||||
<!-- v-model="formData.dwcode" clearable-->
|
||||
<!-- auto-complete="off" tabindex="4" type="text"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
@@ -551,7 +551,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--编辑工会-->
|
||||
<el-dialog
|
||||
title="修改院级工会"
|
||||
title="修改分工会"
|
||||
:visible.sync="editDialogVisible" width="40%">
|
||||
|
||||
<el-form :model="formData" ref="editForm" :rules="formRules" size="small" label-width="100px">
|
||||
@@ -566,8 +566,8 @@ layout("/layouts/platform.html"){
|
||||
v-model="formData.unioncode"
|
||||
auto-complete="off" tabindex="4" type="text"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item prop="dwcode" label="院级工会编号">-->
|
||||
<!-- <el-input maxlength="100" placeholder="院级工会编号"-->
|
||||
<!-- <el-form-item prop="dwcode" label="分工会编号">-->
|
||||
<!-- <el-input maxlength="100" placeholder="分工会编号"-->
|
||||
<!-- v-model="formData.dwcode" clearable-->
|
||||
<!-- auto-complete="off" tabindex="4" type="text"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
@@ -1477,4 +1477,4 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</template>
|
||||
<template>
|
||||
<div v-if="checkNode.level===1 || checkNode.level===2" style="padding:0 10px">
|
||||
<div v-if="checkNode.level===1" style="padding:0 10px">
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
@@ -203,7 +203,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="checkNode.level===3 || checkNode.level===4" style="padding:0 10px">
|
||||
<div v-if="checkNode.level===2" style="padding:0 10px">
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input placeholder="请输入内容" clearable v-model="userPageForm.searchKeyword"
|
||||
@@ -379,6 +379,7 @@ layout("/layouts/platform.html"){
|
||||
pageOrderName: "",
|
||||
pageOrderBy: ""
|
||||
},
|
||||
loading: false,
|
||||
filterText: '',
|
||||
defaultProps: {
|
||||
children: 'child',
|
||||
@@ -450,7 +451,7 @@ layout("/layouts/platform.html"){
|
||||
this.checkNode = node
|
||||
if (node.level === 1) {
|
||||
this.doSearch()
|
||||
} else if (node.level === 3) {
|
||||
} else if (node.level === 2) {
|
||||
this.doUserSearch()
|
||||
}
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" class="platform" v-cloak>
|
||||
<div class="platform" id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
@@ -15,10 +15,10 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-label">年  度</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy" style="width: 100%"
|
||||
placeholder="选择年">
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
type="year" v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
@@ -27,14 +27,14 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-label">活动名称</div>
|
||||
<div class="search-item-option">
|
||||
<!--<el-input v-model="pageForm.name" placeholder="请输入活动名称" clearable></el-input>-->
|
||||
<el-select v-model="pageForm.activityId" placeholder="请选择活动名称"
|
||||
filterable clearable
|
||||
style="width: 100%">
|
||||
<el-select clearable filterable
|
||||
placeholder="请选择活动名称" style="width: 100%"
|
||||
v-model="pageForm.activityId">
|
||||
<el-option
|
||||
v-for="item in activities"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
:value="item.id"
|
||||
v-for="item in activities">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@@ -52,30 +52,30 @@ layout("/layouts/platform.html"){
|
||||
:value="v">
|
||||
</el-option>
|
||||
</el-select>-->
|
||||
<el-select v-model="pageForm.activityLevel" placeholder="请选择活动级别"
|
||||
clearable
|
||||
style="width: 100%">
|
||||
<el-select clearable placeholder="请选择活动级别"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.activityLevel">
|
||||
<el-option
|
||||
v-for="item in activityTypeList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
:value="item.code"
|
||||
v-for="item in activityTypeList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div class="search-item" style="width: 80vw">
|
||||
<div class="search-item-label">一键查询</div>
|
||||
<div class="search-item-option">
|
||||
<el-radio-group v-model="pageForm.query" @change="doSearch">
|
||||
<el-radio-button v-for="it in queryOptions" :label="it.key"
|
||||
:key="it.key">
|
||||
<el-radio-group @change="doSearch" v-model="pageForm.query">
|
||||
<el-radio-button :key="it.key" :label="it.key"
|
||||
v-for="it in queryOptions">
|
||||
{{it.value}}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
@@ -84,64 +84,74 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="活动列表" :app="this">
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="活动列表">
|
||||
<template #func>
|
||||
<el-button type="primary" icon="el-icon-edit-outline" size="small"
|
||||
@click="openAdd">
|
||||
<el-button @click="openAdd" icon="el-icon-edit-outline" size="small"
|
||||
type="primary">
|
||||
创建活动
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
|
||||
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize"
|
||||
class="vi-table">
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
|
||||
v-loading="tableLoading">
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
:sortable="column.sortable">
|
||||
v-for="column in tableColumns">
|
||||
|
||||
<template v-if="column.prop=='events'" scope="{row}">
|
||||
<template scope="{row}" v-if="column.prop=='events'">
|
||||
<span>{{row.allName}}</span>
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.prop=='gameStyle'" scope="{row}">
|
||||
<template scope="{row}" v-else-if="column.prop=='gameStyle'">
|
||||
<span>{{activity.school.gameStyle[row.gameStyle]}}</span>
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.prop=='foundUnit'" scope="{row}">
|
||||
<template scope="{row}" v-else-if="column.prop=='foundUnit'">
|
||||
<span v-if="row.activityLevel===40001">校工会</span>
|
||||
<span v-if="row.activityLevel===40002">{{row.unionname}}</span>
|
||||
<span v-if="row.activityLevel===40003">{{row.clubName}}</span>
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.prop=='startTime'" scope="{row}">
|
||||
<template scope="{row}" v-else-if="column.prop=='startTime'">
|
||||
{{moment(row.startTime).format('YYYY-MM-DD')}} -
|
||||
{{moment(row.endTime).format('YYYY-MM-DD')}}
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.prop=='state'"
|
||||
scope="{row:{close,applyStartTime,applyEndTime,startTime,endTime,isSave}}">
|
||||
<template scope="{row}" v-else-if="column.prop=='isDisabled'">
|
||||
<el-switch
|
||||
@change="(val)=>{activityStatusChange(row,val)}"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
v-model="row.isDisabled">
|
||||
</el-switch>
|
||||
</template>
|
||||
|
||||
<template
|
||||
scope="{row:{close,applyStartTime,applyEndTime,startTime,endTime,isSave}}"
|
||||
v-else-if="column.prop=='state'">
|
||||
<div v-html="activity.school.getStatus(close,applyStartTime,applyEndTime,startTime,endTime,isSave)"></div>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作" width="150px">
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
prop="userOnline" width="150px">
|
||||
<template scope="{row}">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button size="mini" :loading="row.loading">
|
||||
<el-button :loading="row.loading" size="mini">
|
||||
<i class="ti-settings"></i>
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
@@ -155,9 +165,9 @@ layout("/layouts/platform.html"){
|
||||
<el-dropdown-item :command="{type:'view',row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item :command="{type:'export',row}">
|
||||
导出名单docx
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'export',row}" v-if="row.applyType===1">
|
||||
导出名单docx
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'exportXlsx',row}">
|
||||
导出名单
|
||||
</el-dropdown-item>
|
||||
@@ -178,25 +188,27 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #edit_func>
|
||||
<el-button type="primary" @click="doSave">保 存</el-button>
|
||||
<el-button type="primary" @click="doOperate">提 交</el-button>
|
||||
<el-button @click="doSave" type="primary">保 存</el-button>
|
||||
<el-button @click="doOperate" type="primary">提 交</el-button>
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<add-activity :form="formData" ref="activity" @flip="flip" @flush="flush"
|
||||
:is_club="is_club"
|
||||
:is_union="is_union" :is_sysadmin="is_sysadmin" :is_a06="is_A06"
|
||||
:is_h10="is_h10"
|
||||
:unionid="'${@shiro.getPrincipalProperty('unit').getUnionid()}'"></add-activity>
|
||||
<add-activity :form="formData" :is_a06="is_A06" :is_club="is_club" :is_h10="is_h10"
|
||||
:is_sysadmin="is_sysadmin"
|
||||
:is_union="is_union"
|
||||
:unionid="'${@shiro.getPrincipalProperty('unit').getUnionid()}'"
|
||||
@flip="flip"
|
||||
@flush="flush"
|
||||
ref="activity"></add-activity>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
</template>
|
||||
|
||||
<send-msg ref="sendMsg" :url="url"></send-msg>
|
||||
<send-msg :url="url" ref="sendMsg"></send-msg>
|
||||
|
||||
<open-qr-code ref="openQRCode" :url="url"></open-qr-code>
|
||||
<open-qr-code :url="url" ref="openQRCode"></open-qr-code>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
@@ -241,6 +253,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'startTime', label: '活动日期', sortable: true},
|
||||
{prop: 'state', label: '活动状态', sortable: true},
|
||||
{prop: 'applyNum', label: '已报名人数', sortable: true},
|
||||
{prop: 'isDisabled', label: '是否开启', sortable: true},
|
||||
{prop: 'foundDate', label: '创建时间', sortable: true},
|
||||
],
|
||||
pageForm: {
|
||||
@@ -264,6 +277,18 @@ layout("/layouts/platform.html"){
|
||||
'open-qr-code': httpVueLoader('/components/plugins/OpenQRCode.vue'),
|
||||
},
|
||||
methods: {
|
||||
async activityStatusChange(row, val) {
|
||||
const resp = await $.get('/platform/activity/school/info/mange/activityStatusChange', {
|
||||
id: row.id,
|
||||
isDisabled: val
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
},
|
||||
flip() {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
|
||||
@@ -69,7 +69,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label" v-if="pageForm.activityLevel!=='40003'">
|
||||
院级工会
|
||||
分工会
|
||||
</div>
|
||||
<div class="search-item-label" v-if="pageForm.activityLevel==='40003'">
|
||||
协会名称
|
||||
@@ -77,7 +77,7 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-option">
|
||||
<el-select style="width: 100%;font-weight:bold;"
|
||||
v-model="pageForm.unionid"
|
||||
placeholder="院级工会筛选"
|
||||
placeholder="分工会筛选"
|
||||
filterable clearable
|
||||
@change="changeVVV" @clear="changeVVV">
|
||||
<el-option
|
||||
|
||||
@@ -319,12 +319,6 @@ layout("/layouts/platform.html"){
|
||||
keys.forEach(key => {
|
||||
$("#" + key).html("")
|
||||
editors[key] = new E('#' + key)
|
||||
editors[key].config.excludeMenus = [
|
||||
'video',
|
||||
'image',
|
||||
'link',
|
||||
'code',
|
||||
]
|
||||
editors[key].config.onchange = (html) => {
|
||||
this.formData[key] = html
|
||||
}
|
||||
|
||||
@@ -102,12 +102,6 @@ layout("/layouts/platform.html"){
|
||||
keys.forEach(key => {
|
||||
$("#" + key).html("")
|
||||
editors[key] = new E('#' + key)
|
||||
editors[key].config.excludeMenus = [
|
||||
'video',
|
||||
'image',
|
||||
'link',
|
||||
'code',
|
||||
]
|
||||
editors[key].config.onchange = (html) => {
|
||||
this.formData[key] = html
|
||||
}
|
||||
|
||||
@@ -102,12 +102,6 @@ layout("/layouts/platform.html"){
|
||||
keys.forEach(key => {
|
||||
$("#" + key).html("")
|
||||
editors[key] = new E('#' + key)
|
||||
editors[key].config.excludeMenus = [
|
||||
'video',
|
||||
'image',
|
||||
'link',
|
||||
'code',
|
||||
]
|
||||
editors[key].config.onchange = (html) => {
|
||||
this.formData[key] = html
|
||||
}
|
||||
|
||||
@@ -102,12 +102,6 @@ layout("/layouts/platform.html"){
|
||||
keys.forEach(key => {
|
||||
$("#" + key).html("")
|
||||
editors[key] = new E('#' + key)
|
||||
editors[key].config.excludeMenus = [
|
||||
'video',
|
||||
'image',
|
||||
'link',
|
||||
'code',
|
||||
]
|
||||
editors[key].config.onchange = (html) => {
|
||||
this.formData[key] = html
|
||||
}
|
||||
|
||||
@@ -38,45 +38,45 @@
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never" style="min-height: calc(100vh - 70px);position: relative">
|
||||
<el-form :model="formData" ref="addForm" :rules="formRules" label-width="130px"
|
||||
label-suffix=":">
|
||||
<el-form :model="formData" :rules="formRules" label-suffix=":" label-width="170px"
|
||||
ref="addForm">
|
||||
<el-tabs tab-position="top" v-model="activeName">
|
||||
<el-tab-pane label="活动基础信息" name="1">
|
||||
<vi-title title="填写活动信息"></vi-title>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="name" label="活动名称">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="活动名称" prop="name">
|
||||
<el-input maxlength="50" placeholder="请填写活动名称"
|
||||
v-model="formData.name"
|
||||
type="text"></el-input>
|
||||
type="text"
|
||||
v-model="formData.name"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="activityCode" label="活动编号">
|
||||
<el-input maxlength="50" disabled
|
||||
v-model="formData.activityCode"
|
||||
type="text"></el-input>
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="活动编号" prop="activityCode">
|
||||
<el-input disabled maxlength="50"
|
||||
type="text"
|
||||
v-model="formData.activityCode"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="projectTypeCode" label="活动项目类型">
|
||||
<el-select v-model="formData.projectTypeCode"
|
||||
placeholder="请选择活动类型"
|
||||
style="width: 100%;">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="活动项目类型" prop="projectTypeCode">
|
||||
<el-select placeholder="请选择活动类型"
|
||||
style="width: 100%;"
|
||||
v-model="formData.projectTypeCode">
|
||||
<el-option
|
||||
v-for="item in projectType"
|
||||
:key="item.id"
|
||||
:label="item.name+' ('+item.code+')'"
|
||||
:value="item.code">
|
||||
:value="item.code"
|
||||
v-for="item in projectType">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="isEnrollSystem" label="是否用于报名">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="是否用于报名" prop="isEnrollSystem">
|
||||
<el-radio-group v-model="formData.isEnrollSystem">
|
||||
<el-radio-button :label="true">活动报名</el-radio-button>
|
||||
<el-radio-button :label="false">活动管理</el-radio-button>
|
||||
@@ -84,108 +84,109 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="address" label="活动地址">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="活动地址" prop="address">
|
||||
<el-input maxlength="50" placeholder="请填写活动地址"
|
||||
v-model="formData.address"
|
||||
type="text"></el-input>
|
||||
type="text"
|
||||
v-model="formData.address"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="userId" label="联系人">
|
||||
<el-select v-model="formData.userId" placeholder="请选择联系人"
|
||||
filterable
|
||||
remote
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="联系人" prop="userId">
|
||||
<el-select :loading="selectLoading" :remote-method="remoteMethod"
|
||||
@change="userChang"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择联系人"
|
||||
remote
|
||||
reserve-keyword
|
||||
:remote-method="remoteMethod"
|
||||
:loading="selectLoading"
|
||||
style="width: 100%" @change="userChang">
|
||||
style="width: 100%" v-model="formData.userId">
|
||||
<el-option
|
||||
v-for="item in userList"
|
||||
:key="item.userId"
|
||||
:label="item.userName+'-'+item.loginName+'-'+item.unitName"
|
||||
:value="item.userId">
|
||||
:value="item.userId"
|
||||
v-for="item in userList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="mobile" label="联系方式">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="联系方式" prop="mobile">
|
||||
<el-input maxlength="50" placeholder="请填写联系方式"
|
||||
v-model="formData.mobile"
|
||||
type="text"></el-input>
|
||||
type="text"
|
||||
v-model="formData.mobile"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12" v-if="formData.isEnrollSystem === true">
|
||||
<el-form-item prop="plannedDate" label="活动计划时间">
|
||||
<el-col :lg="12" :xl="12" :xs="24"
|
||||
v-if="formData.isEnrollSystem === true">
|
||||
<el-form-item label="活动计划时间" prop="plannedDate">
|
||||
<!--<el-input maxlength="50" placeholder="活动计划时间"
|
||||
v-model="formData.plannedDate"></el-input>-->
|
||||
<el-date-picker
|
||||
@change="plannedDateChange"
|
||||
end-placeholder="结束日期"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
style="width: 100%"
|
||||
v-model="formData.plannedDate"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期" @change="plannedDateChange">
|
||||
v-model="formData.plannedDate" value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="time" label="实际活动时间">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="实际活动时间" prop="time">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="formData.time"
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm"
|
||||
end-placeholder="结束日期"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期">
|
||||
style="width: 100%"
|
||||
type="daterange"
|
||||
v-model="formData.time"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item
|
||||
:rules="[{required:[1,2].includes(formData.signUpMethod),message:'请选择报名日期',trigger:['change','blur']}]"
|
||||
label="报名日期"
|
||||
prop="applyTime2">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="formData.applyTime2"
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm"
|
||||
end-placeholder="结束时间"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间">
|
||||
style="width: 100%"
|
||||
type="datetimerange"
|
||||
v-model="formData.applyTime2"
|
||||
value-format="yyyy-MM-dd HH:mm">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="peopleNum" label="活动人数">
|
||||
<el-input maxlength="10" placeholder="请填写活动人数"
|
||||
:disabled="[1,2].includes(formData.signUpMethod)"
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="活动人数" prop="peopleNum">
|
||||
<el-input :disabled="[1,2].includes(formData.signUpMethod)" maxlength="10"
|
||||
placeholder="请填写活动人数"
|
||||
v-model="formData.peopleNum"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12">
|
||||
<el-form-item prop="groupId" label="参加人员范围">
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="参加人员范围" prop="groupId">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 99%">
|
||||
<el-select prop="groupId" placeholder="参加人员范围"
|
||||
v-model="formData.groupId"
|
||||
<el-select clearable filterable
|
||||
placeholder="参加人员范围"
|
||||
prop="groupId"
|
||||
style="width: 99%;"
|
||||
clearable
|
||||
filterable>
|
||||
<el-option v-for="item in activityGroupList"
|
||||
:label="item.groupName"
|
||||
:value="item.groupId"></el-option>
|
||||
v-model="formData.groupId">
|
||||
<el-option :label="item.groupName"
|
||||
:value="item.groupId"
|
||||
v-for="item in activityGroupList"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div>
|
||||
@@ -199,11 +200,25 @@
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :lg="12" :xl="12" :xs="24" v-if="formData.isEnrollSystem === true">
|
||||
<el-form-item prop="signUpMethod" label="报名方式">
|
||||
<el-radio-group v-model="formData.signUpMethod"
|
||||
@change="signUpMethodChange">
|
||||
<!-- <el-radio :label="null">无需报名</el-radio>-->
|
||||
|
||||
|
||||
<el-col :lg="12" :xl="12" :xs="12">
|
||||
<el-form-item label="是否推送移动端" prop="isPushHome">
|
||||
<el-radio-group size="medium" v-model="formData.isPushHome">
|
||||
<el-radio-button :label="0">不推送</el-radio-button>
|
||||
<el-radio-button :label="1">推送列表</el-radio-button>
|
||||
<el-radio-button :label="2">推送大图</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :lg="12" :xl="12" :xs="12"
|
||||
v-if="formData.isEnrollSystem === true">
|
||||
<el-form-item label="报名方式" prop="signUpMethod">
|
||||
<el-radio-group @change="signUpMethodChange"
|
||||
v-model="formData.signUpMethod">
|
||||
<!--<el-radio :label="null">无需报名</el-radio>-->
|
||||
<el-radio :label="1">个人报名</el-radio>
|
||||
<el-radio :label="3">组队报名</el-radio>
|
||||
<el-radio :label="2" v-if="type===40001">分工会报名</el-radio>
|
||||
@@ -211,23 +226,12 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item prop="xlFlag" label="活动提醒">
|
||||
<el-switch
|
||||
v-model="formData.xlFlag"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :xs="12" :lg="12" :xl="12"
|
||||
<el-col :lg="12" :xl="12" :xs="12"
|
||||
v-if="[1,2,3].includes(formData.signUpMethod)">
|
||||
<el-form-item prop="userNumberLimit" label="报名人数限制">
|
||||
<el-form-item label="报名人数限制" prop="userNumberLimit">
|
||||
<el-radio-group v-model="formData.userNumberLimit">
|
||||
<el-radio :label="1"
|
||||
:disabled="formData.signUpMethod===2">
|
||||
<el-radio :disabled="formData.signUpMethod===2"
|
||||
:label="1">
|
||||
总人数限制
|
||||
</el-radio>
|
||||
<el-radio :label="2" v-if="type===40001">分工会人数限制
|
||||
@@ -236,93 +240,105 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :lg="12" :xl="12"
|
||||
<el-col :lg="12" :xl="12" :xs="12"
|
||||
v-if="[3].includes(formData.signUpMethod)">
|
||||
<el-form-item prop="totalUserNumberLimit" label="组队人数">
|
||||
<el-input-number v-model="formData.teamNum" :min="1"
|
||||
:max="2000"
|
||||
<el-form-item label="组队人数" prop="totalUserNumberLimit">
|
||||
<el-input-number :max="2000" :min="1"
|
||||
:precision="0"
|
||||
v-model="formData.teamNum"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="12" :lg="12" :xl="12"
|
||||
<el-col :lg="12" :xl="12" :xs="12"
|
||||
v-if="[1,2,3].includes(formData.signUpMethod) && formData.userNumberLimit===1">
|
||||
<el-form-item prop="totalUserNumberLimit" label="总人数限制">
|
||||
<el-input-number v-model="formData.totalUserNumberLimit"
|
||||
:min="1" :max="2000"
|
||||
:precision="0"
|
||||
<el-form-item label="总人数限制" prop="totalUserNumberLimit">
|
||||
<el-input-number :max="2000"
|
||||
:min="1" :precision="0"
|
||||
v-model="formData.totalUserNumberLimit"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24"
|
||||
v-if="[1,2,3].includes(formData.signUpMethod) && formData.userNumberLimit===2">
|
||||
<el-form-item prop="unionUserNumberLimit" label="分工会人数限制">
|
||||
<el-form-item label="分工会人数限制" prop="unionUserNumberLimit">
|
||||
<vi-title2 title="分段设置">
|
||||
<template #func>
|
||||
<el-button size="small" type="primary" @click="unionLimitQuickSetting">
|
||||
<el-button @click="unionLimitQuickSetting" size="small"
|
||||
type="primary">
|
||||
应用分段设置
|
||||
</el-button>
|
||||
</template>
|
||||
</vi-title2>
|
||||
<el-row v-for="(item,index) in unionUserNumCalc" :gutter="20" class="mb5">
|
||||
<el-row :gutter="20" class="mb5"
|
||||
v-for="(item,index) in unionUserNumCalc">
|
||||
<el-col :span="7">
|
||||
<el-input-number v-model="item.startNum" :precision="0" :step="1" :min="1"
|
||||
placeholder="请输入最小人数"
|
||||
style="width: 100%"></el-input-number>
|
||||
<el-input-number :min="1" :precision="0"
|
||||
:step="1" placeholder="请输入最小人数"
|
||||
style="width: 100%"
|
||||
v-model="item.startNum"></el-input-number>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-input-number v-model="item.endNum" :precision="0" :step="1" :min="1"
|
||||
placeholder="请输入最大人数"
|
||||
style="width: 100%"></el-input-number>
|
||||
<el-input-number :min="1" :precision="0"
|
||||
:step="1" placeholder="请输入最大人数"
|
||||
style="width: 100%"
|
||||
v-model="item.endNum"></el-input-number>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input-number v-model="item.resultNum" :precision="0" :step="1" :min="1"
|
||||
placeholder="请输入限制人数"
|
||||
style="width: 100%"></el-input-number>
|
||||
<el-input-number :min="1" :precision="0"
|
||||
:step="1" placeholder="请输入限制人数"
|
||||
style="width: 100%"
|
||||
v-model="item.resultNum"></el-input-number>
|
||||
</el-col>
|
||||
<el-col :span="4" class="text-right">
|
||||
<el-button icon="el-icon-plus"
|
||||
@click="unionUserNumCalc.push({})"></el-button>
|
||||
<el-button icon="el-icon-minus" @click="unionUserNumCalc.splice(index,1)"
|
||||
:disabled="unionUserNumCalc.length===1"></el-button>
|
||||
<el-button @click="unionUserNumCalc.push({})"
|
||||
icon="el-icon-plus"></el-button>
|
||||
<el-button :disabled="unionUserNumCalc.length===1"
|
||||
@click="unionUserNumCalc.splice(index,1)"
|
||||
icon="el-icon-minus"></el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="mt10">
|
||||
<div v-for="(item,index) in unionUserNumCalcTips" class="text-danger">
|
||||
<div class="text-danger"
|
||||
v-for="(item,index) in unionUserNumCalcTips">
|
||||
<span class="mr10">({{index+1}}).</span> {{item}}
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<vi-title2 title="比例设置" class="mt20">
|
||||
<vi-title2 class="mt20" title="比例设置">
|
||||
<template #func>
|
||||
一键比例:
|
||||
<el-input-number v-model="unionUserNumOneKeyRatio" :precision="0" :step="1"
|
||||
:min="0"
|
||||
<el-input-number :max="100"
|
||||
:min="0" :precision="0" :step="1"
|
||||
placeholder="请输入一键比例"
|
||||
size="small"
|
||||
:max="100"></el-input-number>
|
||||
<el-button size="small" type="primary" @click="applyScaleSettings"
|
||||
class="ml5">应用比例设置
|
||||
v-model="unionUserNumOneKeyRatio"></el-input-number>
|
||||
<el-button @click="applyScaleSettings" class="ml5"
|
||||
size="small" type="primary">
|
||||
应用比例设置
|
||||
</el-button>
|
||||
</template>
|
||||
</vi-title2>
|
||||
<el-table :data="formData.unionUserNumberLimit" max-height="500px">
|
||||
<el-table-column prop="unionname" label="分工会"></el-table-column>
|
||||
<el-table-column prop="teacherCount" label="人数"></el-table-column>
|
||||
<el-table-column prop="ratio" label="比例(%)">
|
||||
<el-table :data="formData.unionUserNumberLimit"
|
||||
max-height="500px">
|
||||
<el-table-column label="分工会"
|
||||
prop="unionname"></el-table-column>
|
||||
<el-table-column label="人数"
|
||||
prop="teacherCount"></el-table-column>
|
||||
<el-table-column label="比例(%)" prop="ratio">
|
||||
<template scope="{row}">
|
||||
<el-input-number v-model="row.ratio" :precision="0" :step="1" :min="0"
|
||||
:max="100"></el-input-number>
|
||||
<el-input-number :max="100" :min="0"
|
||||
:precision="0" :step="1"
|
||||
v-model="row.ratio"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="limitNum" label="限制人数">
|
||||
<el-table-column label="限制人数" prop="limitNum">
|
||||
<template scope="{row}">
|
||||
<el-input-number v-model="row.limitNum" :precision="0" :step="1"
|
||||
:min="0"
|
||||
:max="row.teacherCount"
|
||||
@change="calSummaryCount"></el-input-number>
|
||||
<el-input-number :max="row.teacherCount"
|
||||
:min="0" :precision="0" :step="1"
|
||||
@change="calSummaryCount"
|
||||
v-model="row.limitNum"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -362,8 +378,8 @@
|
||||
|
||||
<el-col :span="12" v-if="[1,2,3].includes(formData.signUpMethod)">
|
||||
<el-form-item label="是否需要签到">
|
||||
<el-radio-group v-model="formData.needSign"
|
||||
@change="(val)=>{formData.needSign?initMap():null}">
|
||||
<el-radio-group @change="(val)=>{formData.needSign?initMap():null}"
|
||||
v-model="formData.needSign">
|
||||
<el-radio :label="true">需要</el-radio>
|
||||
<el-radio :label="false">不需要</el-radio>
|
||||
</el-radio-group>
|
||||
@@ -372,11 +388,11 @@
|
||||
|
||||
<el-col :span="12" v-if="formData.needSign">
|
||||
<el-form-item label="签到半径(m)">
|
||||
<el-input-number v-model="formData.rangeMeter"
|
||||
@change="rangeMeterChange"
|
||||
:precision="0" :step="1"
|
||||
<el-input-number :max="1000"
|
||||
:min="50"
|
||||
:max="1000"></el-input-number>
|
||||
:precision="0" :step="1"
|
||||
@change="rangeMeterChange"
|
||||
v-model="formData.rangeMeter"></el-input-number>
|
||||
<!-- <el-button type="primary" @click="marker.setMap(null);">清除点位</el-button>-->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -385,48 +401,43 @@
|
||||
<el-col :span="24" v-show="formData.needSign">
|
||||
<el-form-item label="活动签到点位">
|
||||
<el-card shadow="never">
|
||||
<div style="width: 100%;height: 300px"
|
||||
id="signMap"></div>
|
||||
<div id="signMap"
|
||||
style="width: 100%;height: 300px"></div>
|
||||
</el-card>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="activityContent" label="活动内容">
|
||||
<el-form-item label="活动内容" prop="activityContent">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="7"
|
||||
placeholder="请输入活动内容"
|
||||
type="textarea"
|
||||
v-model="formData.activityContent">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" v-if="formData.isEnrollSystem === false">
|
||||
<el-form-item prop="activityExamineContent" label="活动考核内容">
|
||||
<el-form-item label="活动考核内容" prop="activityExamineContent">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="7"
|
||||
placeholder="请输入活动考核内容"
|
||||
type="textarea"
|
||||
v-model="formData.activityExamineContent">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" v-if="formData.signUpMethod!=null">
|
||||
<el-form-item prop="cover" label="封面图">
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
:action="FILE_UPLOAD_ADDRESS"
|
||||
:show-file-list="false"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload">
|
||||
<img v-if="formData.cover"
|
||||
:src="FILE_DOMAIN + '/fileStreamPreview?id=' + formData.cover"
|
||||
class="avatar">
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||
</el-upload>
|
||||
<el-form-item label="封面图" prop="cover">
|
||||
|
||||
<image-Upload ref="imageUpload" :height="200"
|
||||
:width="200" :limit="1"
|
||||
:file-type="['png','jpg']"
|
||||
:file-size="10"
|
||||
v-model="formData.cover"></image-Upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -439,10 +450,10 @@
|
||||
<el-divider content-position="left">购置物品及价格</el-divider>
|
||||
|
||||
<div style="padding-left: 10px">
|
||||
<el-tooltip class="item" effect="dark" content="点击添加购置物品及价格"
|
||||
<el-tooltip class="item" content="点击添加购置物品及价格" effect="dark"
|
||||
placement="top">
|
||||
<el-button icon="el-icon-plus" circle
|
||||
@click="formData.goods.push({})"
|
||||
<el-button @click="formData.goods.push({})" circle
|
||||
icon="el-icon-plus"
|
||||
type="primary"></el-button>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
@@ -450,62 +461,62 @@
|
||||
|
||||
|
||||
<el-form-item>
|
||||
<el-table :data="formData.goods" border size="mini" style="width: 100%"
|
||||
height="320px">
|
||||
<el-table :data="formData.goods" border height="200" size="mini"
|
||||
style="width: 100%">
|
||||
|
||||
<el-table-column sortable type="index" width="100" label="序号"
|
||||
align="center" header-align="center">
|
||||
<el-table-column align="center" header-align="center" label="序号" sortable
|
||||
type="index" width="100">
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="物品名称" align="center"
|
||||
header-align="center">
|
||||
<el-table-column align="center" header-align="center" label="物品名称"
|
||||
prop="name">
|
||||
<template slot-scope="{row}">
|
||||
<el-input maxlength="50" placeholder="物品名称"
|
||||
v-model="row.name"
|
||||
type="text"></el-input>
|
||||
type="text"
|
||||
v-model="row.name"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" label="预算费用" align="center"
|
||||
header-align="center">
|
||||
<el-table-column align="center" header-align="center" label="预算费用"
|
||||
prop="price">
|
||||
<template slot-scope="{row}">
|
||||
<el-input maxlength="50" placeholder="预算费用"
|
||||
v-model="row.price"
|
||||
type="number" @input="blur"></el-input>
|
||||
<el-input @input="blur" maxlength="50"
|
||||
placeholder="预算费用"
|
||||
type="number" v-model="row.price"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="actualPrice" label="实际费用" align="center"
|
||||
header-align="center">
|
||||
<el-table-column align="center" header-align="center" label="实际费用"
|
||||
prop="actualPrice">
|
||||
<template slot-scope="{row}">
|
||||
<el-input maxlength="50" placeholder="实际费用"
|
||||
v-model="row.actualPrice"
|
||||
type="number" @input="blur"></el-input>
|
||||
<el-input @input="blur" maxlength="50"
|
||||
placeholder="实际费用"
|
||||
type="number" v-model="row.actualPrice"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center"
|
||||
<el-table-column align="center" fixed="right" fixed="right"
|
||||
header-align="center"
|
||||
width="80px"
|
||||
fixed="right">
|
||||
label="操作"
|
||||
width="80px">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="danger" icon="el-icon-delete" circle
|
||||
:disabled="formData.goods.length==0"
|
||||
@click="delNotesItem(scope)"></el-button>
|
||||
<el-button :disabled="formData.goods.length==0" @click="delNotesItem(scope)" circle
|
||||
icon="el-icon-delete"
|
||||
type="danger"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<el-divider content-position="left" class="dia"><span
|
||||
<el-divider class="dia" content-position="left"><span
|
||||
style="color: #3ea1ec;">附件</span>
|
||||
</el-divider>
|
||||
<el-row :gutter="40">
|
||||
|
||||
<el-col :xs="24" :lg="12" :xl="12" class="mb25">
|
||||
<el-form-item prop="billFiles" label="发票">
|
||||
<el-col :lg="12" :xl="12" :xs="24" class="mb25">
|
||||
<el-form-item label="发票" prop="billFiles">
|
||||
<file-upload :files.sync="formData.billFiles"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :lg="12" :xl="12" class="mb25">
|
||||
<el-form-item prop="photoFiles" label="照片">
|
||||
<el-col :lg="12" :xl="12" :xs="24" class="mb25">
|
||||
<el-form-item label="照片" prop="photoFiles">
|
||||
<file-upload :files.sync="formData.photoFiles"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
@@ -513,9 +524,9 @@
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :xs="24" :lg="12" :xl="12" class="mb25">
|
||||
<el-form-item prop="otherFiles" label="其他">
|
||||
<el-row>
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="其他" prop="otherFiles">
|
||||
<file-upload :files.sync="formData.otherFiles"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
@@ -525,36 +536,36 @@
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="活动人员信息" name="3" v-if="formData.isEnrollSystem === false">
|
||||
<table-tool label="活动人员信息" :app="this">
|
||||
<table-tool :app="this" label="活动人员信息">
|
||||
<template #func>
|
||||
<el-button icon="el-icon-plus" @click="openAddUser"
|
||||
<el-button @click="openAddUser" icon="el-icon-plus"
|
||||
type="primary">添加活动人员
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table border stripe :data="userData" size="small"
|
||||
v-loading="userTabLoading" height="500">
|
||||
<el-table :data="userData" border height="500" size="small"
|
||||
stripe v-loading="userTabLoading">
|
||||
<el-table-column
|
||||
type="index" label="序号" header-align="center" align="center"
|
||||
align="center" header-align="center" label="序号" type="index"
|
||||
width="100">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in userColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable">
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in userColumns">
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作"
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
prop="userOnline"
|
||||
width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button type="danger" size="mini"
|
||||
@click="delUser(row)">删除
|
||||
<el-button @click="delUser(row)" size="mini"
|
||||
type="danger">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -562,98 +573,66 @@
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
|
||||
<!-- <el-tab-pane label="新闻稿件" name="4" v-if="formData.isEnrollSystem === false">-->
|
||||
<!-- <el-row :gutter="20">-->
|
||||
<!-- <el-col :span="24">-->
|
||||
<!-- <el-form-item prop="newsRemark" label="新闻稿件说明">-->
|
||||
<!-- <el-input v-model="formData.newsRemark" type="textarea" rows="4"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :lg="24" :sm="24">-->
|
||||
<!-- <el-form-item label="图片上传" prop="picFiles">-->
|
||||
<!-- <file-upload :files.sync="formData.picFiles" card :max="10"-->
|
||||
<!-- :type="['jpg', 'png', 'jpeg']">-->
|
||||
<!-- <template #el-upload__tip>-->
|
||||
<!-- </template>-->
|
||||
<!-- </file-upload>-->
|
||||
<!-- <div class="el-upload__tip">请上传jpg、png、jpeg格式的图片,最多不超过10张</div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
|
||||
<!-- <el-col :lg="24" :sm="24">-->
|
||||
<!-- <el-form-item label="附件上传" prop="newsFiles">-->
|
||||
<!-- <file-upload :files.sync="formData.newsFiles" card :max="10"-->
|
||||
<!-- :type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']">-->
|
||||
<!-- <template #el-upload__tip>-->
|
||||
<!-- </template>-->
|
||||
<!-- </file-upload>-->
|
||||
<!-- <div class="el-upload__tip">可上传照片、视频、文档等资料,视频只能上传MP4格式</div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-tab-pane>-->
|
||||
|
||||
|
||||
<el-tab-pane label="活动总结" name="5" v-if="formData.isEnrollSystem === false">
|
||||
<el-form-item prop="activitySummary" label="活动总结">
|
||||
<el-tab-pane label="活动总结" name="4" v-if="formData.isEnrollSystem === false">
|
||||
<el-form-item label="活动总结" prop="activitySummary">
|
||||
<el-input
|
||||
:disabled="!formData.time || Date.now() < Date.parse(formData.time[1])"
|
||||
type="textarea"
|
||||
:rows="5"
|
||||
placeholder="请输入活动内容"
|
||||
type="textarea"
|
||||
v-model="formData.activitySummary">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-alert
|
||||
class="mb20"
|
||||
style="margin-left: 130px"
|
||||
v-if="!formData.time || Date.now() < Date.parse(formData.time[1])"
|
||||
show-icon
|
||||
style="margin-left: 130px"
|
||||
title="活动结束后可输入活动总结"
|
||||
type="info">
|
||||
type="info"
|
||||
v-if="!formData.time || Date.now() < Date.parse(formData.time[1])">
|
||||
</el-alert>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
<div style="padding: 20px;text-align: center;">
|
||||
<el-button type="primary" @click="operation" style="width: 300px">确 定</el-button>
|
||||
<el-button @click="operation" style="width: 300px" type="primary">确 定</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
</guava>
|
||||
|
||||
<el-dialog title="添加人员" :visible.sync="dialogVisible" width="40%" :close-on-click-modal="false">
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="dialogVisible" title="添加人员" width="40%">
|
||||
|
||||
<el-form :model="formData" label-width="100px">
|
||||
<el-form-item prop="userId" label="参加人员">
|
||||
<el-select v-model="formData.tissuePersonList" placeholder="请选择参加人员"
|
||||
multiple
|
||||
<el-form-item label="参加人员" prop="userId">
|
||||
<el-select :loading="selectLoading" :remote-method="remoteMethod"
|
||||
filterable
|
||||
multiple
|
||||
placeholder="请选择参加人员"
|
||||
remote
|
||||
:remote-method="remoteMethod"
|
||||
:loading="selectLoading"
|
||||
style="width: 100%">
|
||||
style="width: 100%"
|
||||
v-model="formData.tissuePersonList">
|
||||
<el-option
|
||||
v-for="item in userList"
|
||||
:disabled="userData.map(v=>v.userId).includes(item.userId)"
|
||||
:key="item.userId"
|
||||
:label="item.userName+'-'+item.loginName+'-'+item.unitName"
|
||||
:value="item.userId">
|
||||
:value="item.userId"
|
||||
v-for="item in userList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<span class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="doAddUser">确 定</el-button>
|
||||
<el-button @click="doAddUser" type="primary">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<drawer-user-scope
|
||||
:group_id.sync="formData.groupId"
|
||||
@group_change="getActivityGroup"
|
||||
ref="drawerUserScope"
|
||||
:group_id.sync="formData.groupId"
|
||||
></drawer-user-scope>
|
||||
|
||||
</div>
|
||||
@@ -913,6 +892,8 @@
|
||||
signUpMethod: null,
|
||||
rangerMeter: 100,
|
||||
isEnrollSystem: true,
|
||||
isPushHome: 0,
|
||||
isIntegral: false,
|
||||
}
|
||||
const {data} = await $.get('/platform/activity/apply/generateActivityCode', {activity_type: type})
|
||||
this.$set(this.formData, 'activityCode', data)
|
||||
@@ -932,8 +913,6 @@
|
||||
if (data.billFiles && data.billFiles.length > 0) data.billFiles = JSON.parse(data.billFiles)
|
||||
if (data.photoFiles && data.photoFiles.length > 0) data.photoFiles = JSON.parse(data.photoFiles)
|
||||
if (data.otherFiles && data.otherFiles.length > 0) data.otherFiles = JSON.parse(data.otherFiles)
|
||||
if (data.picFiles && data.picFiles.length > 0) data.picFiles = JSON.parse(data.picFiles)
|
||||
if (data.newsFiles && data.newsFiles.length > 0) data.newsFiles = JSON.parse(data.newsFiles)
|
||||
if (data.applyStartTime) data.applyTime2 = [data.applyStartTime, data.applyEndTime]
|
||||
if (data.startTime) data.time = [data.startTime, data.endTime]
|
||||
if (data.startPlannedDate) data.plannedDate = [data.startPlannedDate, data.endPlannedDate]
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" class="platform" v-cloak>
|
||||
<div class="platform" id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
@@ -21,11 +21,11 @@
|
||||
<div class="search-item-label">活动时间</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy"
|
||||
type="year"
|
||||
placeholder="选择年">
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,57 +33,57 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">活动名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-input v-model="pageForm.name" placeholder="请输入活动名称"
|
||||
clearable></el-input>
|
||||
<el-input clearable placeholder="请输入活动名称"
|
||||
v-model="pageForm.name"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item" v-if="type==1">
|
||||
<div class="search-item-label">工会名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionId" placeholder="请选择工会" filterable
|
||||
clearable
|
||||
style="width: 100%">
|
||||
<el-select clearable filterable placeholder="请选择工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId">
|
||||
<el-option
|
||||
v-for="item in unionList"
|
||||
:key="item.id"
|
||||
:label="item.unionname"
|
||||
:value="item.id">
|
||||
:value="item.id"
|
||||
v-for="item in unionList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="pageData">搜索
|
||||
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="活动列表" :app="this">
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="活动列表">
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
|
||||
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize"
|
||||
class="vi-table">
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
|
||||
v-loading="tableLoading">
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
:sortable="column.sortable">
|
||||
v-for="column in tableColumns">
|
||||
|
||||
<template v-if="column.prop=='time'" scope="{row}">
|
||||
<template scope="{row}" v-if="column.prop=='time'">
|
||||
<span>
|
||||
{{moment(row.startTime).format('YYYY-MM-DD')}} - {{moment(row.endTime).format('YYYY-MM-DD')}}
|
||||
</span>
|
||||
@@ -92,27 +92,38 @@
|
||||
{{row.applyStartTime}}-{{row.applyEndTime}}
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.prop=='projectTypeName'" scope="{row}">
|
||||
<template scope="{row}" v-else-if="column.prop=='projectTypeName'">
|
||||
{{row.projectTypeName}}({{row.projectTypeCode}})
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.prop=='tussueName'" scope="{row}">
|
||||
<template scope="{row}" v-else-if="column.prop=='isDisabled'">
|
||||
<el-switch
|
||||
:active-value="true"
|
||||
:inactive-value="false"
|
||||
@change="(val)=>{activityStatusChange(row.id,row.isDisabled == 1?1:0)}"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
v-model="row.isDisabled">
|
||||
</el-switch>
|
||||
</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='tussueName'">
|
||||
<span v-if="row.type==40002">{{row.unionname?row.unionname:'暂无'}}</span>
|
||||
<span v-if="row.type==40003">{{row.clubName?row.clubName:'暂无'}}</span>
|
||||
<span v-if="row.type==40001">校工会</span>
|
||||
</template>
|
||||
<template v-else-if="column.prop=='state'" scope="{row}">
|
||||
<template scope="{row}" v-else-if="column.prop=='state'">
|
||||
{{row.state===1?'未审核':row.state===2?'审核不通过':'审核通过'}}
|
||||
</template>
|
||||
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作" width="150px">
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
prop="userOnline" width="150px">
|
||||
<template scope="{row}">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button size="mini" :loading="row.loading">
|
||||
<el-button :loading="row.loading" size="mini">
|
||||
<i class="ti-settings"></i>
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
@@ -155,9 +166,9 @@
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<send-msg ref="sendMsg" :url="url"></send-msg>
|
||||
<send-msg :mobile_url="mobileUrl" :url="url" ref="sendMsg"></send-msg>
|
||||
|
||||
<open-qr-code ref="openQRCode" :url="url"></open-qr-code>
|
||||
<open-qr-code :url="url" ref="openQRCode"></open-qr-code>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -172,6 +183,7 @@
|
||||
userTabLoading: false,
|
||||
dialogVisible: false,
|
||||
url: "",
|
||||
mobileUrl: "",
|
||||
userData: [],
|
||||
userList: [],
|
||||
unionList: [],
|
||||
@@ -190,6 +202,7 @@
|
||||
{prop: 'time', label: '活动日期'},
|
||||
{prop: 'time2', label: '报名日期', width: '300'},
|
||||
{prop: 'applyTime', label: '创建时间', sortable: true},
|
||||
{prop: 'isDisabled', label: '是否开启'},
|
||||
{prop: 'state', label: '审核状态', sortable: true},
|
||||
|
||||
],
|
||||
@@ -213,11 +226,24 @@
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue?v=1.0.0'),
|
||||
'send-msg': httpVueLoader('/components/plugins/SendMsgByGroupId.vue'),
|
||||
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue'),
|
||||
'send-msg': httpVueLoader('/components/plugins/SendMsgByGroupId.vue?v=' + new Date().getTime()),
|
||||
'open-qr-code': httpVueLoader('/components/plugins/OpenQRCode.vue'),
|
||||
},
|
||||
methods: {
|
||||
async activityStatusChange(id, isDisabled) {
|
||||
|
||||
const resp = await $.get('/platform/activity/info/mange/activityStatusChange', {
|
||||
id: id,
|
||||
isDisabled: isDisabled
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
},
|
||||
dropdownCommand(command) {
|
||||
const {type, row} = command
|
||||
if (type === 'view') {
|
||||
@@ -237,31 +263,21 @@
|
||||
openCode(row) {
|
||||
this.$refs.openQRCode.openCode("/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod)
|
||||
},
|
||||
async sendMsg(row) {
|
||||
|
||||
if (!row.groupId){
|
||||
this.$message.error("请选择参加人员后才能通知推送!")
|
||||
return
|
||||
sendMsg(row) {
|
||||
if (row.signUpMethod === 1 || row.signUpMethod === 3) {
|
||||
this.mobileUrl = "/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod
|
||||
} else if (row.signUpMethod === 2) {
|
||||
if (type === 40001) {
|
||||
this.url = "/platform/activity/applyUser/school"
|
||||
} else if (type === 40002) {
|
||||
this.url = "/platform/activity/applyUser/union"
|
||||
} else {
|
||||
this.url = "/platform/activity/applyUser/club"
|
||||
}
|
||||
}
|
||||
|
||||
const confirm = await this.$confirm('确定要通知提醒参加人员吗? 确认后会有短信推送!', '提示', {type: 'warning'})
|
||||
if (confirm !== 'confirm') return
|
||||
const resp = await $.get('/platform/activity/info/mange/doSendMsg',{
|
||||
activityId:row.id,
|
||||
msgUrl:"/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod,
|
||||
groupId:row.groupId
|
||||
});
|
||||
|
||||
if (resp.code === 0){
|
||||
this.$message.success("发送成功")
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
console.log(row)
|
||||
|
||||
// // this.url = `<a href="` + (APP_DOMAIN + "/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod) + `">点击参与</a>`
|
||||
// this.url = "/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod
|
||||
// this.$refs.sendMsg.openDialog(row.groupId)
|
||||
this.$refs.sendMsg.openDialog(row.groupId, "文化活动")
|
||||
},
|
||||
async remoteMethod(query) {
|
||||
if (query) {
|
||||
|
||||
@@ -353,12 +353,6 @@
|
||||
keys.forEach(key => {
|
||||
$("#" + key).html("")
|
||||
editors[key] = new E('#' + key)
|
||||
editors[key].config.excludeMenus = [
|
||||
'video',
|
||||
'image',
|
||||
'link',
|
||||
'code',
|
||||
]
|
||||
editors[key].config.onchange = (html) => {
|
||||
this.formData[key] = html
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div id="app" class="platform" v-cloak>
|
||||
<div class="platform" id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
@change="getActivityByYearOrType"
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy"
|
||||
type="year"
|
||||
placeholder="选择年">
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
@@ -21,13 +21,13 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">活动名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.activityId" placeholder="请选择活动" filterable
|
||||
style="width: 100%">
|
||||
<el-select filterable placeholder="请选择活动" style="width: 100%"
|
||||
v-model="pageForm.activityId">
|
||||
<el-option
|
||||
v-for="item in activityList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
:value="item.id"
|
||||
v-for="item in activityList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@@ -36,14 +36,14 @@
|
||||
<div class="search-item" v-if="type==40002||type==40001">
|
||||
<div class="search-item-label">工会名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionId" placeholder="请选择工会" filterable
|
||||
clearable
|
||||
style="width: 100%">
|
||||
<el-select clearable filterable placeholder="请选择工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId">
|
||||
<el-option
|
||||
v-for="item in unionList"
|
||||
:key="item.id"
|
||||
:label="item.unionname"
|
||||
:value="item.id">
|
||||
:value="item.id"
|
||||
v-for="item in unionList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@@ -52,12 +52,12 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">姓名/工号</div>
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入姓名/工号" clearable
|
||||
v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="姓名/工号"
|
||||
style="width: 80px;">
|
||||
<el-input @keyup.enter.native="doSearch" clearable
|
||||
placeholder="请输入姓名/工号"
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="姓名/工号" slot="prepend"
|
||||
style="width: 80px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginanme"></el-option>
|
||||
</el-select>
|
||||
@@ -66,36 +66,45 @@
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="pageData">搜索
|
||||
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="人员列表" :app="this">
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="人员列表">
|
||||
<template #func>
|
||||
<el-button icon="el-icon-s-promotion" type="primary" @click="doExport">导出
|
||||
<el-button @click="doExport" icon="el-icon-s-promotion" type="primary">导出
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
|
||||
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize"
|
||||
class="vi-table">
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
|
||||
v-loading="tableLoading">
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
sortable>
|
||||
align="center"
|
||||
header-align="center"
|
||||
sortable
|
||||
v-for="column in tableColumns">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
v-if="${@shiro.hasRole('sysadmin')}"
|
||||
width="100">
|
||||
<template scope="{row}">
|
||||
<el-button @click="doDelete(row)" size="mini" type="danger">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
@@ -133,6 +142,22 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doDelete(row) {
|
||||
this.$confirm('您确认要取消报名吗?', '提示', {type: 'warning'}).then(async () => {
|
||||
const resp = await $.post('/mobile/activity/unionActivity/doSingleCancelRegister', {
|
||||
activityId: this.pageForm.activityId,
|
||||
applyUserId: row.applyUserId,
|
||||
id: row.atpId
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
async doExport() {
|
||||
const {activityId, unionId} = this.pageForm
|
||||
window.open("/platform/activity/info/mange/doExportUser?id=" + activityId +
|
||||
@@ -174,4 +199,4 @@
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -356,7 +356,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
@@ -364,7 +364,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
async getHonorNum() {
|
||||
const evaluateNum = await HonorApi.getEvaluateNum(1800)
|
||||
const evaluateNum = await HonorApi.getEvaluateNum(1800, this.pageForm.year)
|
||||
this.honorTypeList.map(v => {
|
||||
if (v.code === "H1100") {
|
||||
v.num = evaluateNum.gr
|
||||
|
||||
@@ -351,7 +351,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
async getHonorNum() {
|
||||
const evaluateNum = await HonorApi.getEvaluateNum(1600)
|
||||
const evaluateNum = await HonorApi.getEvaluateNum(1600, this.pageForm.year)
|
||||
this.honorTypeList.map(v => {
|
||||
if (v.code === "H1100") {
|
||||
v.num = evaluateNum.gr
|
||||
|
||||
@@ -778,7 +778,7 @@ layout("/layouts/platform.html"){
|
||||
} else {
|
||||
this.$set(this.formData, 'userName', this.formData.userName)
|
||||
}
|
||||
this.formData.userId=data.username
|
||||
this.formData.userId=data.userId
|
||||
this.$set(this.formData, "unionId", data.unionId)
|
||||
this.$set(this.formData, "political", data.political)
|
||||
this.$set(this.formData, "position", data.position)
|
||||
|
||||
@@ -9,6 +9,10 @@ layout("/layouts/platform.html"){
|
||||
.btn-group {
|
||||
margin-right: 6px;
|
||||
}
|
||||
th {
|
||||
min-width: 190px;
|
||||
text-align: center !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ layout("/layouts/platform.html"){
|
||||
this.doSearch()
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
|
||||
@@ -346,7 +346,7 @@ layout("/layouts/platform.html"){
|
||||
address: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
activity_card_name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
activity_card_number: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
// sign: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sign: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
},
|
||||
formRules: {
|
||||
idea: [{required: true, message: '请填写意见', trigger: ['blur', 'change']}],
|
||||
sign: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sign: [{required: true, message: '请签字', trigger: ['blur', 'change']}],
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
},
|
||||
formRules: {
|
||||
idea: [{required: true, message: '请填写意见', trigger: ['blur', 'change']}],
|
||||
sign: [{required: true, message: '请填写意见', trigger: ['blur', 'change']}],
|
||||
sign: [{required: true, message: '请签字', trigger: ['blur', 'change']}],
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<el-dropdown-item :command="{type:'view',data:row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="[1010,1000].includes(row.state_id)"
|
||||
<el-dropdown-item v-if="[1000,1005,1015,1025,1045].includes(row.state_id)"
|
||||
:command="{type:'edit',data:row}">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
|
||||
@@ -478,7 +478,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.id = id
|
||||
await this.activityChange(id);
|
||||
}
|
||||
this.dialogVisible = true
|
||||
this.dialogVisible = false
|
||||
await this.getUserClub();
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user