1.活动列表增加小程序链接,点击可复制

This commit is contained in:
王创世 2025-04-24 16:06:55 +08:00
parent 8c0c4516a8
commit 4e6662d69b

View File

@ -2,24 +2,14 @@
<t-card title="活动列表" :bordered="false">
<div class="form-step-container">
<!-- <t-button @click="add">新增</t-button>-->
<!-- <t-tabs v-model="tabIndex" @change="tabIndexChange">-->
<!-- <t-tab-panel value="1" label="协会活动" :destroyOnHide="false"></t-tab-panel>-->
<!-- <t-tab-panel value="2" label="调查问卷" :destroyOnHide="false"></t-tab-panel>-->
<!-- <t-tab-panel value="3" label="公益捐赠" :destroyOnHide="false"></t-tab-panel>-->
<!-- <t-tab-panel value="4" label="学习培训" :destroyOnHide="false"></t-tab-panel>-->
<!-- </t-tabs>-->
<t-table
rowKey="index"
:data="list"
:columns="columns"
:stripe="false"
:bordered="false"
:hover="true"
size="large"
table-layout="auto"
cellEmptyContent="-"
:pagination="pagination"
>
<!-- <t-tabs v-model="tabIndex" @change="tabIndexChange">-->
<!-- <t-tab-panel value="1" label="协会活动" :destroyOnHide="false"></t-tab-panel>-->
<!-- <t-tab-panel value="2" label="调查问卷" :destroyOnHide="false"></t-tab-panel>-->
<!-- <t-tab-panel value="3" label="公益捐赠" :destroyOnHide="false"></t-tab-panel>-->
<!-- <t-tab-panel value="4" label="学习培训" :destroyOnHide="false"></t-tab-panel>-->
<!-- </t-tabs>-->
<t-table rowKey="index" :data="list" :columns="columns" :stripe="false" :bordered="false" :hover="true"
size="large" table-layout="auto" cellEmptyContent="-" :pagination="pagination">
<!-- <template #activity_image="{ row }">-->
<!-- <div style="text-align: center;">-->
<!-- <t-image-->
@ -29,71 +19,71 @@
<!-- />-->
<!-- </div>-->
<!-- </template>-->
<template #wechatUrl="{ row }">
<div style="cursor: pointer;color: blue;" @click="copyUrl(row)">pages/packageB/event/event_info?id={{ row.id }}</div>
</template>
<template #start="{ row }">
<div>{{ row.activity_start_time }}</div>
<div>-</div>
<div>{{ row.activity_end_time }}</div>
</template>
<template #sign="{ row }">
<div v-if="row.activity_type==1||row.activity_type==4">
<div v-if="row.activity_type == 1 || row.activity_type == 4">
<div>{{ row.signup_start_time }}</div>
<div>-</div>
<div>{{ row.signup_end_time }}</div>
</div>
<div v-if="row.activity_type!=1&&row.activity_type!=4">
<div v-if="row.activity_type != 1 && row.activity_type != 4">
-
</div>
</template>
<template #top="{ row }">
<t-button theme="success" size="small" v-if="row.weigh==0" @click="topNews(row)">点击置顶</t-button>
<t-button theme="warning" size="small" v-if="row.weigh>0" @click="topNewsDel(row)">取消置顶</t-button>
<t-button theme="success" size="small" v-if="row.weigh == 0" @click="topNews(row)">点击置顶</t-button>
<t-button theme="warning" size="small" v-if="row.weigh > 0" @click="topNewsDel(row)">取消置顶</t-button>
</template>
<template #money="{ row }">
<div v-if="row.activity_type==4">
<div v-if="row.money>0">
<div v-if="row.activity_type == 4">
<div v-if="row.money > 0">
<span></span>
<span>{{ row.money }}</span>
</div>
<div v-if="row.money==0">
<div v-if="row.money == 0">
<span>免费</span>
</div>
</div>
<div v-if="row.activity_type!=4">
<div v-if="row.activity_type != 4">
-
</div>
</template>
<template #qr_code="{ row }">
<div style="text-align: center;">
<vue-qr v-if="row.if_sign==2"
:text="$store.state.user.apiUrl+'?type=1&id='+row.id+'&association_id=1'"
width="100"
height="100"
></vue-qr>
<vue-qr v-if="row.if_sign == 2" :text="$store.state.user.apiUrl + '?type=1&id=' + row.id + '&association_id=1'"
width="100" height="100"></vue-qr>
</div>
<div v-if="row.activity_type!=4 && row.activity_type!=1 && row.if_sign==1">
<div v-if="row.activity_type != 4 && row.activity_type != 1 && row.if_sign == 1">
-
</div>
</template>
<template #activity_type="{ row }">
<div style="text-align: center;">
<span v-if="row.activity_type==1">协会活动</span>
<span v-if="row.activity_type==2">调查问卷</span>
<span v-if="row.activity_type==3">公益捐赠</span>
<span v-if="row.activity_type==4">学习培训</span>
<span v-if="row.activity_type == 1">协会活动</span>
<span v-if="row.activity_type == 2">调查问卷</span>
<span v-if="row.activity_type == 3">公益捐赠</span>
<span v-if="row.activity_type == 4">学习培训</span>
</div>
</template>
<template #select="{ row }">
<t-space size="24px">
<t-button v-if="row.activity_type==1" @click="openInfo(row)">报名详情</t-button>
<t-button v-if="row.activity_type==2" theme="default" @click="openQuestionnairefind(row)">新增题目
<t-button v-if="row.activity_type == 1" @click="openInfo(row)">报名详情</t-button>
<t-button v-if="row.activity_type == 2" theme="default" @click="openQuestionnairefind(row)">新增题目
</t-button>
<t-button v-if="row.activity_type==2" theme="primary" @click="openQuestionnaireUpdate(row)">编辑题目
<t-button v-if="row.activity_type == 2" theme="primary" @click="openQuestionnaireUpdate(row)">编辑题目
</t-button>
<t-button v-if="row.activity_type==2" theme="success" @click="openQuestionnaireMode(row)">问卷统计
<t-button v-if="row.activity_type == 2" theme="success" @click="openQuestionnaireMode(row)">问卷统计
</t-button>
<t-button v-if="row.activity_type==3" @click="openJuanMode(row)">捐赠详情</t-button>
<t-button v-if="row.activity_type==4" @click="openJuanMode(row)">付费详情</t-button>
<t-button v-if="row.activity_type == 3" @click="openJuanMode(row)">捐赠详情</t-button>
<t-button v-if="row.activity_type == 4" @click="openJuanMode(row)">付费详情</t-button>
<t-button theme="warning" @click="edit(row)">编辑</t-button>
<t-popconfirm content="确认删除吗" @confirm="del(row)">
<t-button theme="danger">删除</t-button>
@ -102,19 +92,15 @@
</template>
</t-table>
<div style="margin-top: 30px">
<t-pagination
:total="pagination.total"
:page-size="pagination.size"
@current-change="onCurrentChange"
:showPageSize="false"
></t-pagination>
<t-pagination :total="pagination.total" :page-size="pagination.size" @current-change="onCurrentChange"
:showPageSize="false"></t-pagination>
</div>
</div>
<t-dialog header="报名详情" :confirmBtn="null" :visible="infoMode" :onClose="onCloseMy" width="65%" top="50px">
<div style="height: 650px;overflow-y: scroll;">
<div style="text-align: right">
<t-button @click="exportList(0)">
<CloudDownloadIcon slot="icon"/>
<CloudDownloadIcon slot="icon" />
导出
</t-button>
<!-- <t-dropdown :options="options">
@ -124,136 +110,118 @@
</t-button>
</t-dropdown> -->
</div>
<div v-if="infoIfAuditing==2">
<div v-if="infoIfAuditing == 2">
<t-tabs v-model="InfotabIndex" @change="InfotabIndexChange">
<t-tab-panel value="2" label="已通过" :destroyOnHide="false"></t-tab-panel>
<t-tab-panel value="1" label="待审核" :destroyOnHide="false"></t-tab-panel>
<t-tab-panel value="3" label="已拒绝" :destroyOnHide="false"></t-tab-panel>
</t-tabs>
</div>
<t-table
rowKey="index"
:data="info_list"
:columns="info_columns"
:stripe="false"
:bordered="false"
:hover="true"
size="large"
table-layout="auto"
cellEmptyContent="-"
>
<t-table rowKey="index" :data="info_list" :columns="info_columns" :stripe="false" :bordered="false"
:hover="true" size="large" table-layout="auto" cellEmptyContent="-">
<template #nikename="{ row }">
<a :href="$store.state.user.apiUrl+'/dist/#/user/user_info?id='+row.member_id"
target="_blank">{{ row.nikename }}</a>
<a :href="$store.state.user.apiUrl + '/dist/#/user/user_info?id=' + row.member_id" target="_blank">{{
row.nikename }}</a>
</template>
<template #sign="{ row }">
<t-tag v-if="row.sign==1" theme="success">已签到</t-tag>
<t-tag v-if="row.sign==2" theme="warning">未签到</t-tag>
<t-tag v-if="row.sign == 1" theme="success">已签到</t-tag>
<t-tag v-if="row.sign == 2" theme="warning">未签到</t-tag>
</template>
<template #photo_image="{ row }">
<img v-if="row.photo_image!=''&&row.photo_image!=null" :src="$store.state.user.apiUrl+row.photo_image"
style="width: 50px;height: 50px">
<div v-if="row.photo_image==''||row.photo_image==null"></div>
<img v-if="row.photo_image != '' && row.photo_image != null" :src="$store.state.user.apiUrl + row.photo_image"
style="width: 50px;height: 50px">
<div v-if="row.photo_image == '' || row.photo_image == null"></div>
</template>
<template #select="{ row }">
<div v-if="infoIfAuditing==2&&InfotabIndex==1">
<t-popconfirm content="确认要拒绝吗?" @confirm="updateType(row,3)">
<div v-if="infoIfAuditing == 2 && InfotabIndex == 1">
<t-popconfirm content="确认要拒绝吗?" @confirm="updateType(row, 3)">
<t-button theme="danger" variant="base">拒绝</t-button>
</t-popconfirm>
<t-popconfirm content="确认要通过吗?" @confirm="updateType(row,2)">
<t-popconfirm content="确认要通过吗?" @confirm="updateType(row, 2)">
<t-button theme="success" style="margin-left: 15px">通过</t-button>
</t-popconfirm>
</div>
</template>
</t-table>
<div style="margin-top: 30px">
<t-pagination
:total="info_pagination.total"
:page-size="info_pagination.size"
@current-change="onCurrentChangeInfo"
:showPageSize="false"
></t-pagination>
<t-pagination :total="info_pagination.total" :page-size="info_pagination.size"
@current-change="onCurrentChangeInfo" :showPageSize="false"></t-pagination>
</div>
</div>
</t-dialog>
<t-dialog header="问卷统计" :confirmBtn="null" :visible="QuestionnaireMode" :onClose="onCloseMy" width="65%"
top="50px">
<t-dialog header="问卷统计" :confirmBtn="null" :visible="QuestionnaireMode" :onClose="onCloseMy" width="65%" top="50px">
<div style="height: 600px;overflow-y: scroll;">
<div style="display: flex; justify-content: space-between;">
<div style="font-size: 18px;font-weight: 600;color: #e60000;margin: 15px 0px"></div>
<div>
<t-button @click="exportList(1)">
<CloudDownloadIcon slot="icon"/>
<CloudDownloadIcon slot="icon" />
导出
</t-button>
</div>
</div>
<table class="layui-table" v-for="(item,index) in questionnaireDaAnList" style="margin: 10px 0px">
<table class="layui-table" v-for="(item, index) in questionnaireDaAnList" style="margin: 10px 0px">
<thead>
<tr>
<th class="my-fw-bold my-fs-14">
<span>{{ index + 1 }}</span>
<span v-if="item.type==1">单选题</span>
<span v-if="item.type==2">多选题</span>
<span v-if="item.type==3">问答题</span>
</th>
<th class="my-fw-bold my-fs-14">{{ item.title }}</th>
<th class="my-fw-bold my-fs-14" v-if="item.type!=3">票数</th>
<th class="my-fw-bold my-fs-14" v-if="item.type==3">答题数{{ item.quantity }}</th>
</tr>
<tr>
<th class="my-fw-bold my-fs-14">
<span>{{ index + 1 }}</span>
<span v-if="item.type == 1">单选题</span>
<span v-if="item.type == 2">多选题</span>
<span v-if="item.type == 3">问答题</span>
</th>
<th class="my-fw-bold my-fs-14">{{ item.title }}</th>
<th class="my-fw-bold my-fs-14" v-if="item.type != 3">票数</th>
<th class="my-fw-bold my-fs-14" v-if="item.type == 3">答题数{{ item.quantity }}</th>
</tr>
</thead>
<tbody>
<tr v-if="item.type!=3" v-for="(d,i) in item.option">
<td style="text-align: center">{{ d.name }}</td>
<td>{{ d.val }}</td>
<td>{{ d.num }}</td>
</tr>
<tr v-if="item.type==3" v-for="(d,i) in item.list">
<td style="text-align: center">-</td>
<td style="text-align: center" :colspan="2">{{ d.option }}</td>
</tr>
<tr v-if="item.type != 3" v-for="(d, i) in item.option">
<td style="text-align: center">{{ d.name }}</td>
<td>{{ d.val }}</td>
<td>{{ d.num }}</td>
</tr>
<tr v-if="item.type == 3" v-for="(d, i) in item.list">
<td style="text-align: center">-</td>
<td style="text-align: center" :colspan="2">{{ d.option }}</td>
</tr>
</tbody>
</table>
</div>
</t-dialog>
<t-dialog :header="getType==3?'捐赠详情':'付费详情'" :confirmBtn="null" :visible="JuanMode" :onClose="onCloseMy"
width="65%" top="50px">
<t-dialog :header="getType == 3 ? '捐赠详情' : '付费详情'" :confirmBtn="null" :visible="JuanMode" :onClose="onCloseMy" width="65%"
top="50px">
<div style="height: 600px;overflow-y: scroll;">
<table class="layui-table" style="margin: 10px 0px">
<thead>
<tr>
<th class="my-fw-bold my-fs-14">
<span>{{ getType == 3 ? '捐赠人' : '付费姓名' }}</span>
</th>
<th class="my-fw-bold my-fs-14">金额</th>
<th class="my-fw-bold my-fs-14">{{ getType == 3 ? '捐赠时间' : '付费时间' }}</th>
</tr>
<tr>
<th class="my-fw-bold my-fs-14">
<span>{{ getType == 3 ? '捐赠人' : '付费姓名' }}</span>
</th>
<th class="my-fw-bold my-fs-14">金额</th>
<th class="my-fw-bold my-fs-14">{{ getType == 3 ? '捐赠时间' : '付费时间' }}</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in JuanModeList">
<td style="text-align: center">{{ item.nikename }}</td>
<td style="text-align: center">{{ item.money }}</td>
<td style="text-align: center">{{ item.createtime }}</td>
</tr>
<tr v-for="(item, index) in JuanModeList">
<td style="text-align: center">{{ item.nikename }}</td>
<td style="text-align: center">{{ item.money }}</td>
<td style="text-align: center">{{ item.createtime }}</td>
</tr>
</tbody>
</table>
<div style="margin-top: 30px">
<t-pagination
:total="JuanTotal"
:page-size="15"
@current-change="onJuanChange"
:showPageSize="false"
></t-pagination>
<t-pagination :total="JuanTotal" :page-size="15" @current-change="onJuanChange"
:showPageSize="false"></t-pagination>
</div>
</div>
</t-dialog>
<t-dialog header="新增题目" :visible="questionnaireAddMode" :onClose="onCloseMy" @confirm="onSubmitQuestionnaire"
width="45%" top="20px">
width="45%" top="20px">
<div style="height: 600px;overflow-y: scroll;">
<t-form>
<t-card v-for="(item,index) in questionnaireData" style="margin-bottom: 10px">
<t-card v-for="(item, index) in questionnaireData" style="margin-bottom: 10px">
<template>
<t-form-item label="类型">
<t-radio-group v-model="item.type">
@ -268,18 +236,18 @@
<t-form-item label="题目">
<t-input v-model="item.title" placeholder="请输入题目"></t-input>
</t-form-item>
<t-form-item :label="op.name" v-for="(op,opi) in item.option" v-if="item.type!=3">
<t-form-item :label="op.name" v-for="(op, opi) in item.option" v-if="item.type != 3">
<t-input v-model="op.val" placeholder="请输入选项答案"></t-input>
<t-button @click="delOptionItem(index,opi)" theme="danger" size="small" variant="base"
style="margin-left: 20px">X
<t-button @click="delOptionItem(index, opi)" theme="danger" size="small" variant="base"
style="margin-left: 20px">X
</t-button>
</t-form-item>
<div style="text-align: center" v-if="item.type!=3">
<div style="text-align: center" v-if="item.type != 3">
<t-button @click="addOption(index)" theme="primary" variant="base">添加一个选项</t-button>
</div>
<div style="position:absolute;right: 20px;top: 20px">
<t-button @click="delOptionTop(index)" theme="danger" size="small" variant="base"
style="margin-left: 20px">删除题目
style="margin-left: 20px">删除题目
</t-button>
</div>
</template>
@ -292,11 +260,10 @@
</div>
</t-dialog>
<t-dialog header="编辑题目" :visible="questionnaireUpdateMode" :confirmBtn="null" :onClose="onCloseMy"
@confirm="onCloseMy"
width="45%" top="20px">
@confirm="onCloseMy" width="45%" top="20px">
<div style="height: 600px;overflow-y: scroll;">
<t-form>
<t-card v-for="(item,index) in questionnaire" style="margin-bottom: 10px">
<t-card v-for="(item, index) in questionnaire" style="margin-bottom: 10px">
<template>
<t-form-item label="类型">
<t-radio-group v-model="item.type">
@ -311,17 +278,17 @@
<t-form-item label="题目">
<t-input v-model="item.title" placeholder="请输入题目"></t-input>
</t-form-item>
<t-form-item v-for="(op,opi) in item.option" :label="op.name" v-if="item.type!=3">
<t-form-item v-for="(op, opi) in item.option" :label="op.name" v-if="item.type != 3">
<t-input v-model="op.val" placeholder="请输入选项答案"></t-input>
<t-button @click="delUpdateOptionItem(index,opi)" theme="danger" size="small" variant="base"
style="margin-left: 20px">X
<t-button @click="delUpdateOptionItem(index, opi)" theme="danger" size="small" variant="base"
style="margin-left: 20px">X
</t-button>
</t-form-item>
<div style="text-align: center" v-if="item.type!=3">
<div style="text-align: center" v-if="item.type != 3">
<t-button @click="addOption(index)" theme="primary" variant="base">添加一个选项</t-button>
</div>
<div style="position:absolute;right: 20px;top: 20px">
<t-popconfirm content="确认删除吗" @confirm="delUpdateOptionTop(index,item)">
<t-popconfirm content="确认删除吗" @confirm="delUpdateOptionTop(index, item)">
<t-button theme="danger" size="small" variant="base" style="margin-left: 20px">删除题目</t-button>
</t-popconfirm>
</div>
@ -340,18 +307,18 @@
<script lang="ts">
import store from "@/store";
import {Editor, Toolbar} from '@wangeditor/editor-for-vue';
import {CloudDownloadIcon} from "tdesign-icons-vue";
import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
import { CloudDownloadIcon } from "tdesign-icons-vue";
import VueQr from 'vue-qr'
import axios from "axios";
import {toInteger} from "lodash";
import { toInteger } from "lodash";
export default {
components: {Editor, Toolbar, CloudDownloadIcon, VueQr},
components: { Editor, Toolbar, CloudDownloadIcon, VueQr },
data() {
return {
questionnaireData: [{
type: 1, title: '', wight: 0, option: [{name: 'A', val: ""}, {name: 'B', val: ""}]
type: 1, title: '', wight: 0, option: [{ name: 'A', val: "" }, { name: 'B', val: "" }]
}],
InfotabIndex: '1',
tabIndex: '1',
@ -386,13 +353,13 @@ export default {
infoId: 0,
info_list: [],
info_columns: [
{colKey: 'photo_image', title: '形象照', align: 'center'},
{colKey: 'nikename', title: '姓名', align: 'center'},
{colKey: 'phone', title: '手机号', align: 'center'},
{colKey: 'position_name', title: '职位', align: 'center'},
{colKey: 'application_time', title: '报名时间', align: 'center'},
{colKey: 'sign', title: '是否签到', align: 'center'},
{colKey: 'select', title: '操作', width: 200, align: 'center'},
{ colKey: 'photo_image', title: '形象照', align: 'center' },
{ colKey: 'nikename', title: '姓名', align: 'center' },
{ colKey: 'phone', title: '手机号', align: 'center' },
{ colKey: 'position_name', title: '职位', align: 'center' },
{ colKey: 'application_time', title: '报名时间', align: 'center' },
{ colKey: 'sign', title: '是否签到', align: 'center' },
{ colKey: 'select', title: '操作', width: 200, align: 'center' },
],
info_pagination: {
page: 1,
@ -469,7 +436,7 @@ export default {
value: 1,
onClick: () => {
const token = store.state.user.token;
window.open(store.state.user.apiUrl + '/api/excel_controller/applicationexport?id=' + this.infoId + "&token=" + token+"&type=4");
window.open(store.state.user.apiUrl + '/api/excel_controller/applicationexport?id=' + this.infoId + "&token=" + token + "&type=4");
},
},
{
@ -477,7 +444,7 @@ export default {
value: 2,
onClick: () => {
const token = store.state.user.token;
window.open(store.state.user.apiUrl + '/api/excel_controller/applicationexport?id=' + this.infoId + "&token=" + token+"&type=2");
window.open(store.state.user.apiUrl + '/api/excel_controller/applicationexport?id=' + this.infoId + "&token=" + token + "&type=2");
},
},
{
@ -485,7 +452,7 @@ export default {
value: 3,
onClick: () => {
const token = store.state.user.token;
window.open(store.state.user.apiUrl + '/api/excel_controller/applicationexport?id=' + this.infoId + "&token=" + token+"&type=3");
window.open(store.state.user.apiUrl + '/api/excel_controller/applicationexport?id=' + this.infoId + "&token=" + token + "&type=3");
},
},
],
@ -503,56 +470,56 @@ export default {
this.association = JSON.parse(store.state.user.association);
}
this.editorConfig.MENU_CONF.uploadImage.meta.association_id = this.association.association_id;
var tab=this.$route.name.slice(-1);
var tab = this.$route.name.slice(-1);
this.tabIndex = toInteger(tab);
if(tab==1){
this.columns=[
{colKey: 'id', title: '活动ID', align: 'center', width: 150,},
{colKey: 'activity_name', title: '活动标题', align: 'center', width: 150,},
{colKey: 'activity_type', title: '活动类别', width: 140, align: 'center'},
{colKey: 'qr_code', title: '签到二维码', width: 150, align: 'center'},
{colKey: 'start', title: '活动时间', align: 'center'},
{colKey: 'sign', title: '报名时间', align: 'center'},
if (tab == 1) {
this.columns = [
{ colKey: 'wechatUrl', title: '小程序链接', align: 'center', width: 150 },
{ colKey: 'activity_name', title: '活动标题', align: 'center', width: 150, },
{ colKey: 'activity_type', title: '活动类别', width: 140, align: 'center' },
{ colKey: 'qr_code', title: '签到二维码', width: 150, align: 'center' },
{ colKey: 'start', title: '活动时间', align: 'center' },
{ colKey: 'sign', title: '报名时间', align: 'center' },
// {colKey: 'money', title: '', align: 'center'},
{colKey: 'activity_location', title: '活动地点', align: 'center'},
{colKey: 'application_count_type', title: '待审核', align: 'center'},
{colKey: 'top', title: '置顶', align: 'center'},
{colKey: 'select', title: '操作', width: 200, align: 'center'},
{ colKey: 'activity_location', title: '活动地点', align: 'center' },
{ colKey: 'application_count_type', title: '待审核', align: 'center' },
{ colKey: 'top', title: '置顶', align: 'center' },
{ colKey: 'select', title: '操作', width: 200, align: 'center' },
];
}else if(tab==2){
this.columns=[
{colKey: 'id', title: '活动ID', align: 'center', width: 150,},
{colKey: 'activity_name', title: '活动标题', align: 'center', width: 150,},
{colKey: 'activity_type', title: '活动类别', width: 200, align: 'center'},
{colKey: 'qr_code', title: '签到二维码', width: 200, align: 'center'},
{colKey: 'start', title: '活动时间', align: 'center'},
{colKey: 'activity_location', title: '活动地点', align: 'center'},
{colKey: 'top', title: '置顶', align: 'center'},
{colKey: 'select', title: '操作', width: 200, align: 'center'},
} else if (tab == 2) {
this.columns = [
{ colKey: 'wechatUrl', title: '小程序链接', align: 'center', width: 150 },
{ colKey: 'activity_name', title: '活动标题', align: 'center', width: 150, },
{ colKey: 'activity_type', title: '活动类别', width: 200, align: 'center' },
{ colKey: 'qr_code', title: '签到二维码', width: 200, align: 'center' },
{ colKey: 'start', title: '活动时间', align: 'center' },
{ colKey: 'activity_location', title: '活动地点', align: 'center' },
{ colKey: 'top', title: '置顶', align: 'center' },
{ colKey: 'select', title: '操作', width: 200, align: 'center' },
];
}else if(tab==3){
this.columns=[
{colKey: 'id', title: '活动ID', align: 'center', width: 150,},
{colKey: 'activity_name', title: '活动标题', align: 'center', width: 250,},
{colKey: 'activity_type', title: '活动类别', width: 200, align: 'center'},
} else if (tab == 3) {
this.columns = [
{ colKey: 'wechatUrl', title: '小程序链接', align: 'center', width: 150 },
{ colKey: 'activity_name', title: '活动标题', align: 'center', width: 250, },
{ colKey: 'activity_type', title: '活动类别', width: 200, align: 'center' },
// {colKey: 'qr_code', title: '', width: 200, align: 'center'},
{colKey: 'start', title: '活动时间', align: 'center'},
{colKey: 'activity_location', title: '活动地点', align: 'center'},
{colKey: 'top', title: '置顶', align: 'center'},
{colKey: 'select', title: '操作', width: 200, align: 'center'},
{ colKey: 'start', title: '活动时间', align: 'center' },
{ colKey: 'activity_location', title: '活动地点', align: 'center' },
{ colKey: 'top', title: '置顶', align: 'center' },
{ colKey: 'select', title: '操作', width: 200, align: 'center' },
];
}else{
this.columns=[
{colKey: 'id', title: '活动ID', align: 'center', width: 150,},
{colKey: 'activity_name', title: '活动标题', align: 'center', width: 150,},
{colKey: 'activity_type', title: '活动类别', width: 200, align: 'center'},
{colKey: 'qr_code', title: '签到二维码', width: 200, align: 'center'},
{colKey: 'start', title: '活动时间', align: 'center'},
{colKey: 'sign', title: '报名时间', align: 'center'},
{colKey: 'money', title: '付费金额', align: 'center'},
{colKey: 'activity_location', title: '活动地点', align: 'center'},
{colKey: 'top', title: '置顶', align: 'center'},
{colKey: 'select', title: '操作', width: 200, align: 'center'},
} else {
this.columns = [
{ colKey: 'wechatUrl', title: '小程序链接', align: 'center', width: 150 },
{ colKey: 'activity_name', title: '活动标题', align: 'center', width: 150, },
{ colKey: 'activity_type', title: '活动类别', width: 200, align: 'center' },
{ colKey: 'qr_code', title: '签到二维码', width: 200, align: 'center' },
{ colKey: 'start', title: '活动时间', align: 'center' },
{ colKey: 'sign', title: '报名时间', align: 'center' },
{ colKey: 'money', title: '付费金额', align: 'center' },
{ colKey: 'activity_location', title: '活动地点', align: 'center' },
{ colKey: 'top', title: '置顶', align: 'center' },
{ colKey: 'select', title: '操作', width: 200, align: 'center' },
];
}
this.getList();
@ -560,7 +527,7 @@ export default {
methods: {
updateType(d, type) {
this.$request
.post('/application/updateType', {id: d.id, type: type,activity_id: this.infoId,member_id:d.member_id})
.post('/application/updateType', { id: d.id, type: type, activity_id: this.infoId, member_id: d.member_id })
.then((res) => {
if (res.code == 1) {
this.$message.success('审核成功');
@ -587,7 +554,7 @@ export default {
topNewsDel(row) {
console.log(row);
this.$request
.post('/common/listcancel', {id: row.id, type: 'activity'})
.post('/common/listcancel', { id: row.id, type: 'activity' })
.then((res) => {
if (res.code == 1) {
this.$message.success('取消置顶成功');
@ -604,7 +571,7 @@ export default {
topNews(row) {
console.log(row);
this.$request
.post('/common/listtopping', {id: row.id, type: 'activity'})
.post('/common/listtopping', { id: row.id, type: 'activity' })
.then((res) => {
if (res.code == 1) {
this.$message.success('置顶成功');
@ -680,7 +647,7 @@ export default {
} else {
this.$message.error(res.msg);
}
this.openQuestionnaireUpdate({id: item.activity_id});
this.openQuestionnaireUpdate({ id: item.activity_id });
})
.catch((e) => {
console.log(e);
@ -736,7 +703,7 @@ export default {
} else {
this.$message.error(res.msg);
}
this.openQuestionnaireUpdate({id: d.activity_id});
this.openQuestionnaireUpdate({ id: d.activity_id });
})
.catch((e) => {
console.log(e);
@ -744,7 +711,7 @@ export default {
},
addQuestionnaire() {
var newItem = {
type: 1, title: '', wight: 0, option: [{name: 'A', val: ""}, {name: 'B', val: ""}]
type: 1, title: '', wight: 0, option: [{ name: 'A', val: "" }, { name: 'B', val: "" }]
};
this.questionnaireData.push(newItem);
},
@ -813,7 +780,7 @@ export default {
.then((res) => {
console.log(res);
if (res.code == 1) {
this.info_list = res.data.ret==null?[]:res.data.ret;
this.info_list = res.data.ret == null ? [] : res.data.ret;
this.info_pagination.total = res.data.count;
}
@ -831,22 +798,22 @@ export default {
this.infoId = d.id;
this.infoIfAuditing = d.if_auditing;
//this.InfotabIndex='2';
if(d.if_auditing==1){
this.InfotabIndex='2';
}else{
this.InfotabIndex='1';
if (d.if_auditing == 1) {
this.InfotabIndex = '2';
} else {
this.InfotabIndex = '1';
}
if (d.if_auditing != 2) {
this.info_columns = this.info_columns.filter(column => column.colKey !== 'sign');
} else {
this.info_columns = [
{colKey: 'photo_image', title: '形象照', align: 'center'},
{colKey: 'nikename', title: '姓名', align: 'center'},
{colKey: 'phone', title: '手机号', align: 'center'},
{colKey: 'position_name', title: '职位', align: 'center'},
{colKey: 'application_time', title: '报名时间', align: 'center'},
{colKey: 'sign', title: '是否签到', align: 'center'},
{colKey: 'select', title: '操作', width: 200, align: 'center'},
{ colKey: 'photo_image', title: '形象照', align: 'center' },
{ colKey: 'nikename', title: '姓名', align: 'center' },
{ colKey: 'phone', title: '手机号', align: 'center' },
{ colKey: 'position_name', title: '职位', align: 'center' },
{ colKey: 'application_time', title: '报名时间', align: 'center' },
{ colKey: 'sign', title: '是否签到', align: 'center' },
{ colKey: 'select', title: '操作', width: 200, align: 'center' },
];
}
this.openInfoDo();
@ -854,12 +821,12 @@ export default {
formatResponseVideo(res) {
console.log(res);
this.activity_video = res.data.url;
return {url: res.data.fullurl};
return { url: res.data.fullurl };
},
formatResponse(res) {
console.log(res);
this.addForm.activity_image = res.data.url;
return {url: res.data.fullurl};
return { url: res.data.fullurl };
},
onCreated(editor) {
this.editor = Object.seal(editor);
@ -867,7 +834,7 @@ export default {
del(d) {
console.log(d);
this.$request
.post('/activity/del', {id: d.id})
.post('/activity/del', { id: d.id })
.then((res) => {
if (res.code == 1) {
this.$message.success(res.msg);
@ -924,7 +891,7 @@ export default {
},
getList() {
this.$request
.post("/activity", {page: this.pagination.page, size: this.pagination.size, activity_type: this.tabIndex})
.post("/activity", { page: this.pagination.page, size: this.pagination.size, activity_type: this.tabIndex })
.then((res) => {
console.log(res);
if (res.code == 1) {
@ -1029,6 +996,22 @@ export default {
}
},
copyUrl(row){
//
const text = `pages/packageB/event/event_info?id=${row.id}`;
// textarea
const textarea = document.createElement('textarea');
textarea.value = text;
textarea.style.position = 'fixed';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
//
textarea.select();
document.execCommand('copy');
//
document.body.removeChild(textarea);
this.$message.success('复制成功');
}
}
}
</script>
@ -1037,11 +1020,22 @@ export default {
display: none;
}
.layui-table-mend, .layui-table-tool, .layui-table-patch, .layui-table-click, .layui-table-hover, .layui-table-header, .table-total-wrapper, .layui-table-total td, .layui-table thead tr, .layui-table tbody tr:hover td, .layui-table.layui-table-even tr:nth-child(2n) td {
.layui-table-mend,
.layui-table-tool,
.layui-table-patch,
.layui-table-click,
.layui-table-hover,
.layui-table-header,
.table-total-wrapper,
.layui-table-total td,
.layui-table thead tr,
.layui-table tbody tr:hover td,
.layui-table.layui-table-even tr:nth-child(2n) td {
background-color: #fafafa !important;
}
.layui-table td, .layui-table th {
.layui-table td,
.layui-table th {
position: relative;
padding: 10px;
height: 50px;