完成茶株游戏

This commit is contained in:
闵宪瑞 2024-11-21 18:05:54 +08:00
parent a3c93146d8
commit 8fd1bb3f82
11 changed files with 829 additions and 84 deletions

View File

@ -2,5 +2,5 @@
ENV = 'production'
# base api
VUE_APP_BASE_API = 'http://api.xxx'
VUE_APP_BASE_API = 'http://121.37.139.13:8080'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -10,3 +10,31 @@ export function gamesUpdateApi(data) {
data
})
}
/**
* 抽奖记录
* @param data
* @returns {AxiosPromise}
*/
export function gamesListApi(params) {
return request({
url: 'admin/game/prize/records',
method: 'GET',
params
})
}
/**
* 茶树购买记录
* @param data
* @returns {AxiosPromise}
*/
export function gamesTreeListApi(params) {
return request({
url: 'admin/game/tree/order',
method: 'GET',
params
})
}

View File

@ -146,7 +146,7 @@ export const asyncRoutes = [
const createRouter = () => new Router({
// mode: 'history', // require service support
mode: 'history',
mode: 'hash',
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})

View File

@ -54,17 +54,18 @@ const marketingRouter = {
},
{
path: 'lottery',
component: () => import('@/views/marketing/lottery/config/index'),
component: () => import('@/views/marketing/lottery/index'),
name: 'lottery',
meta: { title: '游戏管理', icon: '' },
meta: { title: '茶株管理', icon: '' },
children: [
{
path: 'config',
path: 'lotteryConfig',
component: () => import('@/views/marketing/lottery/config/index'),
name: 'config',
name: 'lotteryConfig',
meta: { title: '茶株认领', icon: '' }
},
]
},
{
@ -79,6 +80,12 @@ const marketingRouter = {
name: 'config',
meta: { title: '抽奖配置', icon: '' }
},
{
path: 'rafflelog',
component: () => import('@/views/marketing/raffle/rafflelog/index'),
name: 'rafflelog',
meta: { title: '抽奖记录', icon: '' }
},
]
},
{
@ -198,12 +205,24 @@ const marketingRouter = {
name: 'ActivityList',
meta: { title: '活动管理', icon: '' }
},
{
path: 'activityLog',
component: () => import('@/views/marketing/activity/activityLog/index'),
name: 'activityLog',
meta: { title: '预约记录', icon: '' }
},
{
path: 'venueReservation',
component: () => import('@/views/marketing/activity/venueReservation/index'),
name: 'VenueReservation',
meta: { title: '场地预约', icon: '' }
},
{
path: 'lotteryLog',
component: () => import('@/views/marketing/activity/lotteryLog/index'),
name: 'lotteryLog',
meta: { title: '认领记录', icon: '' }
},
]
},
]

View File

@ -7,8 +7,6 @@
<el-form-item>
<el-button @click="getDataList()">查询</el-button>
<el-button v-hasPermi="['admin:video:save']" type="primary" @click="addOrUpdateHandle()">新增视频鉴赏</el-button>
<el-button v-hasPermi="['admin:video:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
</el-form-item>
</el-form>
<el-table
@ -16,12 +14,6 @@
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
@ -127,6 +119,20 @@
align="center"
label="排序">
</el-table-column>
<el-table-column
prop="visit"
header-align="center"
align="center"
label="是否关联商品">
<template slot-scope="scope">
<router-link v-if="scope.row.productId" :to="{path: '/store/list/creatProduct/' + scope.row.productId + '/1'}">
<el-link type="primary" ></el-link>
</router-link>
<span v-else></span>
</template>
</el-table-column>
<el-table-column
prop="createTime"
header-align="center"
@ -163,15 +169,13 @@
:visible.sync="videoVisible"
width="30%"
>
<video width="500" height="300" :src="videoPath.imageInput" autoplay="autoplay" type="video/mp4"></video>
<video width="500" height="300" :src="videoPath.imageInput" autoplay="autoplay" type="video/mp4" controls></video>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="videoVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import AddOrUpdate from '@/views/content/video/video-add-and-update.vue'
@ -179,10 +183,7 @@ import {videoDeleteApi, videoListApi, videoUpdateApi} from "@/api/video";
import video from "@/views/content/video/index.vue";
export default {
computed: {
video() {
return video
}
},
video() {return video}},
data () {
return {
videoVisible:false,

View File

@ -3,6 +3,7 @@
<el-dialog
:title="!dataForm.id ? '添加' : '修改'"
:close-on-click-modal="false"
:before-close="handleClose"
:visible.sync="visible">
<!-- 新增和创建表单表单 -->
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataSubmit()" label-width="100px">
@ -16,43 +17,40 @@
<!-- <el-input v-model="dataForm.authorType" placeholder="作者类型1管理员2游客"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="上传视频" prop="imageInput">
<div class="upLoadPicBox" @click="modalPicTap('1')" >
<div v-if="dataForm.imageInput" class="pictrue">
<video style="width: 50px;height: 50px" :src="dataForm.imageInput"></video>
</div>
<div v-else class="upLoad">
<i class="el-icon-camera cameraIconfont"/>
</div>
</div>
<div style="width: 300px;height: 300px">
<div class="upLoadPicBox" @click="modalPicTap('1')" >
<div v-if="dataForm.imageInput" class="pictrue">
<video width="300" height="300" :src="dataForm.imageInput" type="video/mp4" autoplay="false" controls> </video>
</div>
<div v-else class="upLoad">
<i class="el-icon-camera cameraIconfont"/>
</div>
</div>
</div>
</el-form-item>
<el-form-item label="视频简介" prop="synopsis">
<el-input v-model="dataForm.synopsis" placeholder="视频简介"></el-input>
</el-form-item>
<!-- <el-form-item label="视频分享标题" prop="shareTitle">-->
<!-- <el-input v-model="dataForm.shareTitle" placeholder="视频分享标题"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="视频分享简介" prop="shareSynopsis">-->
<!-- <el-input v-model="dataForm.shareSynopsis" placeholder="视频分享简介"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="原文链接" prop="url">-->
<!-- <el-input v-model="dataForm.url" placeholder="原文链接"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否隐藏" prop="hide">-->
<!-- <el-select v-model="dataForm.hide" placeholder="是否隐藏">-->
<!-- <el-option label="是" :value=1></el-option>-->
<!-- <el-option label="否" :value=0></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="详细内容" prop="content">
<Tinymce v-model="dataForm.content"></Tinymce>
</el-form-item>
<el-form-item label="商品关联" prop="productId">
<el-button v-if="dataForm.productId === undefined " type="primary" round size="small" @click="store()">点击关联商品</el-button>
<span v-else>商品编号{{dataForm.productId}},商品名称{{dataForm.storeName}}</span>
<el-form-item label="关联商品" prop="productId">
<el-button v-if="storeList.length == 0" type="primary" round size="small" @click="store()">点击关联商品</el-button>
<el-table
v-else
:data="storeList"
style="width: 100%">
<el-table-column prop="id" label="商品编号" width="80">
</el-table-column>
<el-table-column prop="storeName" label="商品名称"></el-table-column>
<el-table-column width="80" label="操作">
<el-button type="text" size="small" @click="del">移除</el-button>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="是否热门" prop="isHot">
<el-switch
@ -161,11 +159,12 @@
<script>
import Tinymce from '@/components/Tinymce/index'
import {videoCreateApi, videoDetailApi, videoUpdateApi} from "@/api/video";
import {productLstApi} from "@/api/store";
import {productDetailApi, productLstApi} from "@/api/store";
export default {
components: {Tinymce },
data() {
return {
storeList:[],
tableData: {
data: [],
total: 0
@ -179,43 +178,32 @@ export default {
},
storeVisible: false,
visible: false,
dataForm: {},
dataForm: {
title:"",
imageInput:"",
synopsis:"",
content:"",
sort:1,
isHot:false,
isBanner:false,
hide:false,
},
dataRule: {
title: [
{required: true, message: '视频标题 为必填项', trigger: 'blur'}
],
author: [
{required: true, message: '视频作者 为必填项', trigger: 'blur'}
],
authorType: [
{required: true, message: '作者类型1管理员2游客 为必填项', trigger: 'blur'}
{required: true, message: '视频标题不能为空', trigger: 'blur'}
],
imageInput: [
{required: true, message: '视频图片 为必填项', trigger: 'blur'}
{required: true, message: '视频封面图片不能为空', trigger: 'blur'}
],
synopsis: [
{required: true, message: '视频简介 为必填项', trigger: 'blur'}
{required: true, message: '视频简介不能为空', trigger: 'blur'}
],
shareTitle: [
{required: true, message: '视频分享标题 为必填项', trigger: 'blur'}
],
shareSynopsis: [
{required: true, message: '视频分享简介 为必填项', trigger: 'blur'}
],
sort: [
{required: true, message: '排序 为必填项', trigger: 'blur'}
],
url: [
{required: true, message: '原文链接 为必填项', trigger: 'blur'}
],
status: [
{required: true, message: '状态 为必填项', trigger: 'blur'}
{required: true, message: '排序 不能为空', trigger: 'blur'}
],
hide: [
{required: true, message: '是否隐藏为必填项', trigger: 'blur'}
],
isHot: [
{required: true, message: '是否热门为必填项', trigger: 'blur'}
],
@ -225,20 +213,36 @@ export default {
content: [
{required: true, message: '视频详细内容 为必填项', trigger: 'blur'}
],
}
}
},
methods: {
delStore(){
this.dataForm.productId = undefined
this.$message.success("关联商品已经删除!");
del(){
this.storeList = []
this.dataForm.productId = ""
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done()
this.storeList = []
this.tableFrom = {
title:"",
imageInput:"",
synopsis:"",
content:"",
sort:1,
isHot:false,
isBanner:false,
hide:false,
}
})
.catch(_ => {
});
},
//
handleSave(row){
this.dataForm.productId = row.id
this.dataForm.storeName = row.storeName
console.log(row)
this.storeList.push(row)
this.storeVisible = false
},
store(){
@ -264,6 +268,7 @@ export default {
modalPicTap(tit, num, i, status) {
const _this = this;
this.$modalUpload(function (img) {
if (tit === '1' && !num) {
_this.dataForm.imageInput = img[0].sattDir
}
@ -276,6 +281,12 @@ export default {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
videoDetailApi({id:id}).then(res => {
//
if (res.productId){
productDetailApi(res.productId).then(res =>{
this.storeList.push(res)
})
}
this.dataForm = res;
})
}
@ -285,6 +296,9 @@ export default {
dataSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.storeList.length > 0){
this.dataForm.productId = this.storeList[0].id
}
if (this.dataForm.id){
videoUpdateApi(this.dataForm).then(res => {
this.visible = false

View File

@ -126,8 +126,8 @@ export default {
}
},
loginForm: {
account: 'admin', // admin
pwd: '123456',
account: '',
pwd: '',
key: '',
code: '',
wxCode: ''

View File

@ -0,0 +1,173 @@
<template>
<div class="divBox">
<el-card class="box-card">
<div class="clearfix">
<div class="container">
<el-form size="small" label-width="100px" >
<el-form-item label="手机号:" class="width100">
<el-input v-model="tableFrom.account" placeholder="请输入订单号" class="selWidth" size="small" clearable>
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
</el-input>
</el-form-item>
<el-form-item label="奖品名:" class="width100">
<el-input v-model="tableFrom.productName" placeholder="请输入奖品名" class="selWidth" size="small" clearable>
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
</el-input>
</el-form-item>
</el-form>
</div>
</div>
</el-card>
<div class="mt20"></div>
<el-table
v-loading="dataListLoading"
:data="dataList"
style="width: 100%;">
<el-table-column
prop="account"
header-align="center"
align="center"
label="获奖人手机">
</el-table-column>
<el-table-column
width="150"
prop="avatar"
header-align="center"
align="center"
label="获奖人头像">
<template slot-scope="scope">
<div class="demo-image__preview">
<el-image
style="width: 36px; height: 36px"
:src="scope.row.avatar"
:preview-src-list="[scope.row.avatar]"
/>
</div>
</template>
</el-table-column>
<el-table-column
prop="productImage"
header-align="center"
align="center"
label="奖品图">
<template slot-scope="scope">
<div class="demo-image__preview">
<el-image
style="width: 36px; height: 36px"
:src="scope.row.productImage"
:preview-src-list="[scope.row.productImage]"
/>
</div>
</template>
</el-table-column>
<el-table-column
width="180"
prop="productName"
header-align="center"
align="center"
label="奖品名">
</el-table-column>
<el-table-column
prop="productPrice"
header-align="center"
align="center"
label="奖品价值">
</el-table-column>
<el-table-column
width="180"
prop="productNum"
header-align="center"
align="center"
label="奖品份数">
</el-table-column>
<el-table-column
width="180"
prop="createTime"
header-align="center"
align="center"
label="抽奖时间">
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="tableFrom.page"
:page-sizes="[10, 20, 50, 100]"
:page-size="tableFrom.limit"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</div>
</template>
<script>
import {
activityDeleteApi,
activityListApi,
activityLogListApi,
activityPlaceListApi, activityPlaceUpdateApi,
ebactivityUpdateApi
} from "@/api/activity"
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update.vue"
import {gamesListApi, gamesUpdateApi} from "@/api/games";
export default {
data() {
return {
dataList:[],
tableFrom:{
page: 1,
limit: 20,
keywords: '',
}
}
},
components: {
},
mounted() {
this.getDataList()
},
methods: {
seachList() {
this.tableFrom.page = 1
this.getDataList()
},
mobile(row){
this.mobileVisible = true
this.mobileFrom = row
},
getDataList(){
this.dataListLoading = true
gamesListApi(this.tableFrom).then(res =>{
console.log(res)
this.dataList = res.list
this.totalPage = res.total
this.tableFrom.limit = res.total
this.tableFrom.page = res.page
this.dataListLoading = false
})
},
sizeChangeHandle(val) {
this.tableFrom.limit = val
this.getDataList()
},
currentChangeHandle(page) {
this.tableFrom.page = page
this.getDataList()
},
}
}
</script>
<style lang="sass" scoped>
</style>

View File

@ -0,0 +1,218 @@
<!--茶株记录-->
<template>
<div class="divBox">
<el-card class="box-card">
<div class="clearfix">
<div class="container">
<el-form size="small" label-width="100px">
<el-form-item label="手机号:" class="width100">
<el-input v-model="tableFrom.account" placeholder="请输入手机号" class="selWidth" size="small" clearable>
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList"/>
</el-input>
</el-form-item>
<el-form-item label="订单号:" class="width100">
<el-input v-model="tableFrom.orderNo" placeholder="请输入订单号" class="selWidth" size="small" clearable>
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList"/>
</el-input>
</el-form-item>
<el-form-item label="购买时间:" class="width100">
<el-date-picker v-model="timeVal" value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small"
type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 220px;"
@change="onchangeTime"/>
</el-form-item>
<el-form-item label="订单状态:" class="width100">
<el-radio-group v-model="tableFrom.payStatus" type="button" @change="seachList">
<el-radio-button label="">全部</el-radio-button>
<el-radio-button :label=0>未支付</el-radio-button>
<el-radio-button :label=1>已支付</el-radio-button>
</el-radio-group>
</el-form-item>
</el-form>
</div>
</div>
</el-card>
<div class="mt20"></div>
<el-table
v-loading="dataListLoading"
:data="dataList"
style="width: 100%;">
<el-table-column
width="260"
prop="orderId"
header-align="center"
align="center"
label="订单号">
</el-table-column>
<el-table-column
prop="account"
header-align="center"
align="center"
label="获奖人手机">
</el-table-column>
<el-table-column
prop="avatar"
header-align="center"
align="center"
label="获奖人头像">
<template slot-scope="scope">
<div class="demo-image__preview">
<el-image
style="width: 36px; height: 36px"
:src="scope.row.avatar"
:preview-src-list="[scope.row.avatar]"
/>
</div>
</template>
</el-table-column>
<el-table-column
prop="productImage"
header-align="center"
align="center"
label="奖品图">
<template slot-scope="scope">
<div class="demo-image__preview">
<el-image
style="width: 36px; height: 36px"
:src="scope.row.productImage"
:preview-src-list="[scope.row.productImage]"
/>
</div>
</template>
</el-table-column>
<el-table-column
prop="productName"
header-align="center"
align="center"
label="茶株名称">
</el-table-column>
<el-table-column
prop="buyNum"
header-align="center"
align="center"
label="购买件数">
</el-table-column>
<el-table-column
prop="payPrice"
header-align="center"
align="center"
label="支付金额">
</el-table-column>
<el-table-column
width="180"
prop="createTime"
header-align="center"
align="center"
label="购买时间">
</el-table-column>
<el-table-column
width="180"
prop="payStatus"
header-align="center"
align="center"
label="支付状态">
<template slot-scope="scope">
<span v-if="scope.row.payStatus ===0">待支付</span>
<span v-if="scope.row.payStatus ===1">已支付</span>
</template>
</el-table-column>
<el-table-column
width="180"
prop="payTime"
header-align="center"
align="center"
label="付款时间">
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="tableFrom.page"
:page-sizes="[10, 20, 50, 100]"
:page-size="tableFrom.limit"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</div>
</template>
<script>
import {
activityDeleteApi,
activityListApi,
activityLogListApi,
activityPlaceListApi, activityPlaceUpdateApi,
ebactivityUpdateApi
} from "@/api/activity"
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update.vue"
import {gamesListApi, gamesTreeListApi, gamesUpdateApi} from "@/api/games";
export default {
data() {
return {
dataList: [],
tableFrom: {
page: 1,
limit: 20,
account: "",
orderNo: "",
payStatus: "",
},
timeVal: [],
}
},
components: {},
mounted() {
this.getDataList()
},
methods: {
onchangeTime (e) {
this.timeVal = e;
this.tableFrom.beginDate = this.timeVal[0]
this.tableFrom.endDate = this.timeVal[1]
this.tableFrom.page = 1
this.getDataList();
},
seachList() {
this.tableFrom.page = 1
this.getDataList()
},
mobile(row) {
this.mobileVisible = true
this.mobileFrom = row
},
getDataList() {
this.dataListLoading = true
gamesTreeListApi(this.tableFrom).then(res => {
console.log(res)
this.dataList = res.list
this.totalPage = res.total
this.tableFrom.limit = res.total
this.tableFrom.page = res.page
this.dataListLoading = false
})
},
sizeChangeHandle(val) {
this.tableFrom.limit = val
this.getDataList()
},
currentChangeHandle(page) {
this.tableFrom.page = page
this.getDataList()
},
}
}
</script>
<style lang="sass" scoped>
</style>

View File

@ -0,0 +1,292 @@
<template>
<div class="divBox">
<el-card class="box-card">
<div class="clearfix">
<div class="container">
<el-form size="small" label-width="100px" >
<!-- <el-form-item label="预约状态:">-->
<!-- <el-radio-group v-model="tableFrom.status" type="button" @change="seachList">-->
<!-- <el-radio-button label="all">全部</el-radio-button>-->
<!-- <el-radio-button label="unPaid">待确认 </el-radio-button>-->
<!-- <el-radio-button label="unPaid">预约成功 </el-radio-button>-->
<!-- <el-radio-button label="unPaid">预约取消 </el-radio-button>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<el-form-item label="预约人:" class="width100">
<el-input v-model="tableFrom.keywords" placeholder="请输入预约人" class="selWidth" size="small" clearable>
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
</el-input>
</el-form-item>
<el-form-item label="手机号:" class="width100">
<el-input v-model="tableFrom.keywords" placeholder="请输入订单号" class="selWidth" size="small" clearable>
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
</el-input>
</el-form-item>
</el-form>
</div>
</div>
</el-card>
<div class="mt20">
<!-- <cards-data :cardLists="cardLists" v-if="checkPermi(['admin:order:list:data'])"></cards-data> -->
</div>
<el-table
v-loading="dataListLoading"
:data="dataList"
style="width: 100%;">
<el-table-column
width="80"
prop="id"
header-align="center"
align="center"
label="预约编号111111">
</el-table-column> <el-table-column
width="150"
prop="userName"
header-align="center"
align="center"
label="预约人">
</el-table-column>
<el-table-column
prop="cellPhone"
header-align="center"
align="center"
label="预约手机号">
</el-table-column>
<el-table-column
width="180"
prop="createDate"
header-align="center"
align="center"
label="报名时间">
</el-table-column>
<el-table-column
prop="attendNum"
header-align="center"
align="center"
label="参与人数">
</el-table-column>
<el-table-column
width="180"
prop="subscribeDate"
header-align="center"
align="center"
label="预约指定日期">
</el-table-column>
<el-table-column
prop="remark"
header-align="center"
align="center"
label="备注">
</el-table-column>
<el-table-column
prop="registerStatus"
header-align="center"
align="center"
label="预约状态">
<template slot-scope="scope">
<div class="demo-image__preview">
<el-tag v-if="scope.row.status == 0">待确认</el-tag>
<el-tag type="success" v-else-if="scope.row.status ==1">预约成功</el-tag>
<el-tag type="danger" v-else-if="scope.row.status ==2">预约取消</el-tag>
<el-tag v-else>类型错误</el-tag>
</div>
</template>
</el-table-column>
<el-table-column
width="180"
prop="cancelData"
header-align="center"
align="center"
label="取消时间">
<template slot-scope="scope">
<div class="demo-image__preview">
<span v-if="scope.row.cancelData === null"> - </span>
<span v-else>{{ scope.row.cancelData }}</span>
</div>
</template>
</el-table-column>
<el-table-column
prop="cancelReason"
header-align="center"
align="center"
label="取消原因">
<template slot-scope="scope">
<div class="demo-image__preview">
<span v-if="scope.row.cancelReason === null"> - </span>
<span v-else>{{ scope.row.cancelReason }}</span>
</div>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button v-if="scope.row.status == 0" type="text" size="small" @click="mobile(scope.row)">电话联系</el-button>
<!-- <el-button v-hasPermi="['admin:activity:update']" type="text" size="small"-->
<!-- @click="activityLog(scope.row.id)">预约记录-->
<!-- </el-button>-->
<!-- <el-button v-hasPermi="['admin:activity:delete']" type="text" size="small"-->
<!-- @click="deleteHandle(scope.row.id)">删除-->
<!-- </el-button>-->
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="tableFrom.page"
:page-sizes="[10, 20, 50, 100]"
:page-size="tableFrom.limit"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- <el-dialog-->
<!-- title="电话联系"-->
<!-- :close-on-click-modal="false"-->
<!-- :visible.sync="mobileVisible"-->
<!-- width="30%"-->
<!-- center-->
<!-- >-->
<!-- <div style="width: 100%">-->
<!-- <div style="text-align: center;font-size: 26px;font-weight: 700">预约人{{this.mobileFrom.userName}}</div>-->
<!-- <div style="text-align: center;font-size: 26px;font-weight: 700">联系方式{{this.mobileFrom.cellPhone}}</div>-->
<!-- </div>-->
<!-- <span slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="userok" >确认预约</el-button>-->
<!-- <el-button type="primary" @click="usererror">取消预约</el-button>-->
<!-- </span>-->
<!-- </el-dialog>-->
<el-dialog title="电话联系" :visible.sync="mobileVisible" center>
<div style="width: 100%">
<div style="text-align: center;font-size: 26px;font-weight: 700">预约人{{this.mobileFrom.userName}}</div>
<div style="text-align: center;font-size: 26px;font-weight: 700">联系方式{{this.mobileFrom.cellPhone}}</div>
</div>
<el-dialog
width="30%"
title="取消原因"
:visible.sync="innerVisible"
append-to-body>
<el-input
type="textarea"
placeholder="请输入内容"
v-model="mobileFrom.cancelReason"
maxlength="30"
show-word-limit
>
</el-input>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="usererror">确定取消</el-button>
</div>
</el-dialog>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="userok" >确认预约</el-button>
<el-button type="primary" @click="innerVisible = true">取消预约</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
activityDeleteApi,
activityListApi,
activityLogListApi,
activityPlaceListApi, activityPlaceUpdateApi,
ebactivityUpdateApi
} from "@/api/activity"
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update.vue"
export default {
data() {
return {
dataListLoading: false,
innerVisible: false,
mobileVisible: false,
dataList:[],
mobileFrom:{},
tableFrom:{
page: 1,
limit: 20,
keywords: '',
}
}
},
components: {
},
mounted() {
this.getDataList()
},
methods: {
seachList() {
this.tableFrom.page = 1
this.getDataList()
},
userok(){
this.mobileFrom.status = 1
activityPlaceUpdateApi(this.mobileFrom).then(res =>{
this.$message.success('预约成功!')
this.mobileVisible = false
this.getDataList()
})
},
usererror(){
this.mobileFrom.status = 2
activityPlaceUpdateApi(this.mobileFrom).then(res =>{
this.$message.success('取消成功!')
this.mobileVisible = false
this.innerVisible = false
this.getDataList()
})
},
mobile(row){
this.mobileVisible = true
this.mobileFrom = row
},
getDataList(){
this.dataListLoading = true
activityPlaceListApi(this.tableFrom).then(res =>{
console.log(res)
this.dataList = res.list
this.totalPage = res.total
this.tableFrom.limit = res.total
this.tableFrom.page = res.page
this.dataListLoading = false
})
},
sizeChangeHandle(val) {
this.tableFrom.limit = val
this.getDataList()
},
currentChangeHandle(page) {
this.tableFrom.page = page
this.getDataList()
},
}
}
</script>
<style lang="sass" scoped>
</style>