完成茶株游戏
This commit is contained in:
parent
a3c93146d8
commit
8fd1bb3f82
@ -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 |
@ -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
|
||||
})
|
||||
}
|
||||
|
@ -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
|
||||
})
|
||||
|
@ -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: '' }
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -126,8 +126,8 @@ export default {
|
||||
}
|
||||
},
|
||||
loginForm: {
|
||||
account: 'admin', // admin
|
||||
pwd: '123456',
|
||||
account: '',
|
||||
pwd: '',
|
||||
key: '',
|
||||
code: '',
|
||||
wxCode: ''
|
||||
|
173
src/views/marketing/activity/activityLog/index.vue
Normal file
173
src/views/marketing/activity/activityLog/index.vue
Normal 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>
|
218
src/views/marketing/activity/lotteryLog/index.vue
Normal file
218
src/views/marketing/activity/lotteryLog/index.vue
Normal 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>
|
292
src/views/marketing/raffle/rafflelog/index.vue
Normal file
292
src/views/marketing/raffle/rafflelog/index.vue
Normal 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>
|
Loading…
Reference in New Issue
Block a user