添加活动预约
This commit is contained in:
parent
2c84b6bc43
commit
0829c8bf7a
@ -60,3 +60,38 @@ export function activityListApi(params) {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* ebactivity预约日志记录
|
||||
* @param pram
|
||||
*/
|
||||
export function activityLogListApi(params) {
|
||||
return request({
|
||||
url: 'admin/activity/records',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* ebactivity场地预约
|
||||
* @param pram
|
||||
*/
|
||||
export function activityPlaceListApi(params) {
|
||||
return request({
|
||||
url: 'admin/place/list',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* ebactivity预约修改
|
||||
* @param pram
|
||||
*/
|
||||
export function activityPlaceUpdateApi(data) {
|
||||
return request({
|
||||
url: `admin/place/update?id=${data.id}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
@ -38,6 +38,17 @@ const marketingRouter = {
|
||||
hidden: true,
|
||||
component: () => import('@/views/marketing/coupon/list/creatCoupon')
|
||||
},
|
||||
{
|
||||
path: 'list/saveTree/:id?',
|
||||
name: 'treeAdd',
|
||||
meta: {
|
||||
title: '茶树添加',
|
||||
noCache: true,
|
||||
activeMenu: `/marketing/coupon/list`
|
||||
},
|
||||
hidden: true,
|
||||
component: () => import('@/views/marketing/coupon/list/createTree')
|
||||
},
|
||||
{
|
||||
path: 'list',
|
||||
component: () => import('@/views/marketing/coupon/list/index'),
|
||||
@ -52,6 +63,21 @@ const marketingRouter = {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'lottery',
|
||||
component: () => import('@/views/marketing/lottery/config/index'),
|
||||
name: 'lottery',
|
||||
meta: { title: '游戏管理', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'config',
|
||||
component: () => import('@/views/marketing/lottery/config/index'),
|
||||
name: 'config',
|
||||
meta: { title: '茶株认领', icon: '' }
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'bargain',
|
||||
component: () => import('@/views/marketing/bargain/index'),
|
||||
@ -157,33 +183,27 @@ const marketingRouter = {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'lottery',
|
||||
component: () => import('@/views/marketing/lottery/config/index'),
|
||||
name: 'lottery',
|
||||
meta: { title: '抽奖管理', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'config',
|
||||
component: () => import('@/views/marketing/lottery/config/index'),
|
||||
name: 'config',
|
||||
meta: { title: '抽奖配置', icon: '' }
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'activity',
|
||||
component: () => import('@/views/marketing/activity/activityList/index'),
|
||||
component: () => import('@/views/marketing/activity/index'),
|
||||
name: 'activity',
|
||||
meta: { title: '活动', icon: '' },
|
||||
meta: { title: '预约', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'activityList',
|
||||
component: () => import('@/views/marketing/activity/activityList/index'),
|
||||
name: 'activityList',
|
||||
name: 'ActivityList',
|
||||
meta: { title: '活动管理', icon: '' }
|
||||
},
|
||||
{
|
||||
path: 'venueReservation',
|
||||
component: () => import('@/views/marketing/activity/venueReservation/index'),
|
||||
name: 'VenueReservation',
|
||||
meta: { title: '场地预约', icon: '' }
|
||||
},
|
||||
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
]
|
||||
|
@ -9,7 +9,7 @@ $yellow:#FEC171;
|
||||
$panGreen: #30B08F;
|
||||
|
||||
$base-menu-color:#ffffff; //默认字体颜色
|
||||
$base-menu-color-active:#f4f4f5;
|
||||
$base-menu-color-active:#f4f4f5;
|
||||
$base-menu-background:#001529; //默认背景色
|
||||
$base-logo-title-color: #ffffff; //默认logo_title字体颜色
|
||||
|
||||
|
@ -9,9 +9,9 @@
|
||||
|
||||
<el-form-item label="活动类型" prop="cid">
|
||||
<el-select v-model="dataForm.cid" placeholder="请选择活动类型">
|
||||
<el-option label="活动预约" value="0"></el-option>
|
||||
<el-option label="采茶预约" value="1"></el-option>
|
||||
<el-option label="其他预约" value="2"></el-option>
|
||||
<el-option label="活动预约" value="746"></el-option>
|
||||
<el-option label="采茶预约" value="752"></el-option>
|
||||
<el-option label="其他预约" value="753"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@ -48,6 +48,7 @@
|
||||
|
||||
<el-form-item label="开始时间" prop="beginTime">
|
||||
<el-date-picker
|
||||
value-format="yyyy-MM-dd hh:mm:ss" format="yyyy-MM-dd hh:mm:ss"
|
||||
v-model="dataForm.beginTime"
|
||||
type="datetime"
|
||||
placeholder="开始时间">
|
||||
@ -56,6 +57,7 @@
|
||||
|
||||
<el-form-item label="截至时间" prop="endTime">
|
||||
<el-date-picker
|
||||
value-format="yyyy-MM-dd hh:mm:ss" format="yyyy-MM-dd hh:mm:ss"
|
||||
v-model="dataForm.endTime"
|
||||
type="datetime"
|
||||
placeholder="截至时间">
|
||||
@ -107,8 +109,6 @@ export default {
|
||||
isHot: 0,
|
||||
isBanner: 0,
|
||||
content: '',
|
||||
createTime: '',
|
||||
updateTime: '',
|
||||
beginTime: '',
|
||||
endTime: ''
|
||||
},
|
||||
@ -169,12 +169,6 @@ export default {
|
||||
content: [
|
||||
{required: true, message: '活动内容 为必填项', trigger: 'blur'}
|
||||
],
|
||||
createTime: [
|
||||
{required: true, message: '创建时间 为必填项', trigger: 'blur'}
|
||||
],
|
||||
updateTime: [
|
||||
{required: true, message: '更新时间 为必填项', trigger: 'blur'}
|
||||
],
|
||||
beginTime: [
|
||||
{required: true, message: '开始时间 为必填项', trigger: 'blur'}
|
||||
],
|
||||
|
@ -9,21 +9,14 @@
|
||||
<el-button v-hasPermi="['admin:activity:save']" type="primary" @click="addOrUpdateHandle()">新增活动</el-button>
|
||||
|
||||
|
||||
<!-- <el-button v-hasPermi="['autogencode:ebactivity:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
|
||||
<!-- <el-button v-hasPermi="['autogencode:ebactivity:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
v-loading="dataListLoading"
|
||||
|
||||
style="width: 100%;">
|
||||
|
||||
<!-- <el-table-column-->
|
||||
<!-- prop="id"-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- align="center"-->
|
||||
<!-- label="活动编号">-->
|
||||
<!-- </el-table-column>-->
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
prop="cid"
|
||||
header-align="center"
|
||||
@ -31,9 +24,9 @@
|
||||
label="活动类型">
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<span v-if="scope.row.cid == 0">活动预约</span>
|
||||
<span v-else-if="scope.row.cid == 1">采茶预约</span>
|
||||
<span v-else-if="scope.row.cid == 2">其他预约</span>
|
||||
<span v-if="scope.row.cid == 746">活动预约</span>
|
||||
<span v-else-if="scope.row.cid ==752">采茶预约</span>
|
||||
<span v-else-if="scope.row.cid == 753">其他预约</span>
|
||||
<span v-else>类型错误</span>
|
||||
</div>
|
||||
</template>
|
||||
@ -41,59 +34,59 @@
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
width="150"
|
||||
prop="title"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="标题">
|
||||
prop="title"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="标题">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="imageInput"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="图片">
|
||||
prop="imageInput"
|
||||
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.imageInput"
|
||||
:preview-src-list="[scope.row.imageInput]"
|
||||
style="width: 36px; height: 36px"
|
||||
:src="scope.row.imageInput"
|
||||
:preview-src-list="[scope.row.imageInput]"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="activityAddr"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="地址">
|
||||
prop="activityAddr"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="地址">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="activityNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动人数">
|
||||
prop="activityNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动人数">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="activityPrice"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="费用">
|
||||
prop="activityPrice"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="费用">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="content"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动内容">
|
||||
prop="content"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动内容">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
width="300"
|
||||
prop="beginTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="开始时间 - 结束时间">
|
||||
prop="beginTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="开始时间 - 结束时间">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.beginTime}} - {{scope.row.endTime}}
|
||||
{{ scope.row.beginTime }} - {{ scope.row.endTime }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -123,8 +116,6 @@
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column
|
||||
prop="sort"
|
||||
header-align="center"
|
||||
@ -132,41 +123,168 @@
|
||||
label="排序">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
||||
<el-button v-hasPermi="['admin:activity:update']" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">预约记录</el-button>
|
||||
<el-button v-hasPermi="['admin:activity:delete']" type="text" size="small" @click="deleteHandle(scope.row.id)">删除</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">
|
||||
@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>
|
||||
<!-- 表单弹窗, 新增数据和修改数据-->
|
||||
<!-- 表单弹窗, 新增数据和修改数据-->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
|
||||
|
||||
<el-dialog
|
||||
title="活动预约记录"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="logVisible"
|
||||
width="80%"
|
||||
>
|
||||
<el-table
|
||||
:data="logList"
|
||||
style="width: 100%;">
|
||||
<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
|
||||
prop="createDate"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="报名时间">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="registerDate"
|
||||
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.registerStatus == 1">报名成功</el-tag>
|
||||
<el-tag type="warning" v-else-if="scope.row.registerStatus ==4">已取消</el-tag>
|
||||
<el-tag v-else>类型错误</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
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 type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</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
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
@current-change="handleCurrentChange"
|
||||
:total="this.logParams.total">
|
||||
</el-pagination>
|
||||
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="logVisibles = false">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import {activityDeleteApi, activityListApi, ebactivityUpdateApi} from "@/api/activity"
|
||||
import {activityDeleteApi, activityListApi, activityLogListApi, ebactivityUpdateApi} from "@/api/activity"
|
||||
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update"
|
||||
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
data() {
|
||||
return {
|
||||
dataListLoading: false,
|
||||
logVisible: false,
|
||||
dataList: [],
|
||||
logList: [],
|
||||
logParams: {
|
||||
activityId:"",
|
||||
limit:10,
|
||||
page:1,
|
||||
total:1,
|
||||
},
|
||||
tableFrom: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
@ -180,15 +298,35 @@ export default {
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
mounted () {
|
||||
mounted() {
|
||||
this.getDataList()
|
||||
},
|
||||
methods:{
|
||||
changeStatus($event,val,type){
|
||||
if (type ==='banner'){
|
||||
methods: {
|
||||
//活动记录
|
||||
activityLog(id){
|
||||
this.logParams.activityId = id
|
||||
this.logVisible = true
|
||||
activityLogListApi(this.logParams).then(res =>{
|
||||
this.logParams.limit = res.limit
|
||||
this.logParams.page = res.page
|
||||
this.logParams.total = res.total
|
||||
this.logList = res.list
|
||||
})
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.logParams.page = val
|
||||
activityLogListApi(this.logParams).then(res =>{
|
||||
this.logParams.limit = res.limit
|
||||
this.logParams.page = res.page
|
||||
this.logParams.total = res.total
|
||||
this.logList = res.list
|
||||
})
|
||||
},
|
||||
changeStatus($event, val, type) {
|
||||
if (type === 'banner') {
|
||||
val.isBanner = $event
|
||||
}
|
||||
if (type ==='hot'){
|
||||
if (type === 'hot') {
|
||||
val.isHot = $event
|
||||
}
|
||||
ebactivityUpdateApi(val).then(res => {
|
||||
@ -196,34 +334,34 @@ export default {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
addOrUpdateHandle (id) {
|
||||
addOrUpdateHandle(id) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init(id)
|
||||
})
|
||||
},
|
||||
deleteHandle(id){
|
||||
deleteHandle(id) {
|
||||
this.$confirm('确定删除当前数据?').then(() => {
|
||||
activityDeleteApi({id:id}).then(data => {
|
||||
activityDeleteApi({id: id}).then(data => {
|
||||
this.$message.success('删除成功')
|
||||
this.getDataList()
|
||||
})
|
||||
})
|
||||
},
|
||||
sizeChangeHandle(val){
|
||||
sizeChangeHandle(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getDataList ()
|
||||
this.getDataList()
|
||||
},
|
||||
currentChangeHandle(page){
|
||||
currentChangeHandle(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getDataList ()
|
||||
this.getDataList()
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle (val) {
|
||||
selectionChangeHandle(val) {
|
||||
// this.dataListSelections = val
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
getDataList() {
|
||||
this.dataListLoading = true
|
||||
activityListApi(this.tableFrom).then(res => {
|
||||
// TODO 获取数据列表
|
||||
@ -236,7 +374,7 @@ export default {
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
15
src/views/marketing/activity/index.vue
Normal file
15
src/views/marketing/activity/index.vue
Normal file
@ -0,0 +1,15 @@
|
||||
<template>
|
||||
<div>
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
|
||||
</style>
|
296
src/views/marketing/activity/venueReservation/index.vue
Normal file
296
src/views/marketing/activity/venueReservation/index.vue
Normal file
@ -0,0 +1,296 @@
|
||||
<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="预约编号">
|
||||
</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"
|
||||
|
||||
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>
|
223
src/views/marketing/coupon/list/createTree.vue
Normal file
223
src/views/marketing/coupon/list/createTree.vue
Normal file
@ -0,0 +1,223 @@
|
||||
<template>
|
||||
<div class="add-game-tree-item">
|
||||
<el-form :model="form" :rules="rules" ref="formRef" label-width="120px" class="game-form">
|
||||
<el-form-item label="茶株标题" prop="productName">
|
||||
<el-input v-model="form.productName" placeholder="请输入茶株标题"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="茶株副标题" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入茶株副标题"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="茶株图" prop="productImage">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1','pi5')">
|
||||
<div v-if="form.productImage" class="pictrue"><img :src="form.productImage"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="茶株价格" prop="productPrice">
|
||||
<el-input-number v-model="form.productPrice" :min="0" :precision="2" placeholder="请输入茶株价格"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="发放数量" prop="allNum">
|
||||
<el-input-number v-model="form.allNum" :min="0" placeholder="请输入发放数量"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="果实数" prop="fruitNum">
|
||||
<el-input-number v-model="form.fruitNum" :min="0" placeholder="请输入果实数"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="种植位置" prop="treePlace">
|
||||
<el-input v-model="form.treePlace" placeholder="请输入种植位置"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="养护人" prop="gardener">
|
||||
<el-input v-model="form.gardener" placeholder="请输入养护人"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="土壤" prop="soil">
|
||||
<el-input v-model="form.soil" placeholder="请输入土壤类型"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="湿度" prop="humidity">
|
||||
<el-input v-model="form.humidity" placeholder="请输入湿度"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="内容" prop="content">
|
||||
<el-input type="textarea" v-model="form.content" placeholder="请输入内容"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="小苗阶段图" prop="smallImage">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1','pi1')">
|
||||
<div v-if="form.smallImage" class="pictrue"><img :src="form.smallImage"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="成长阶段图" prop="growImage">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1','pi2')">
|
||||
<div v-if="form.growImage" class="pictrue"><img :src="form.growImage"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="成熟阶段图" prop="bigImage">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1','pi3')">
|
||||
<div v-if="form.bigImage" class="pictrue"><img :src="form.bigImage"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="热门新品图" prop="hotImage">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1','pi4')">
|
||||
<div v-if="form.hotImage" class="pictrue"><img :src="form.hotImage"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="热门显示天数" prop="hotDay">
|
||||
<el-input-number v-model="form.hotDay" :min="0" :max="30" placeholder="请输入热门显示天数"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {marketingGameInfoListApi} from "@/api/marketing";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isDisabled: this.$route.params.isDisabled === '1',
|
||||
form: {
|
||||
title: '',
|
||||
productName: '',
|
||||
productImage: '',
|
||||
productPrice: 0.00,
|
||||
allNum: 0,
|
||||
fruitNum: 0,
|
||||
treePlace: '',
|
||||
gardener: '',
|
||||
soil: '',
|
||||
humidity: '',
|
||||
content: '',
|
||||
smallImage: '',
|
||||
growImage: '',
|
||||
bigImage: '',
|
||||
hotImage: '',
|
||||
hotDay: 0,
|
||||
},
|
||||
rules: {
|
||||
title: [{ required: true, message: '请输入商品副标题', trigger: 'blur' }],
|
||||
productId: [
|
||||
{ required: true, message: '请输入商品编号', trigger: 'blur' },
|
||||
{ type: 'number', message: '商品编号必须是数字', trigger: 'blur' },
|
||||
],
|
||||
productName: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
|
||||
productImage: [{ required: true, message: '请输入商品图链接', trigger: 'blur' }],
|
||||
productPrice: [
|
||||
{ required: true, message: '请输入商品价值', trigger: 'blur' },
|
||||
{ type: 'number', message: '商品价值必须是数字', trigger: 'blur' },
|
||||
],
|
||||
allNum: [
|
||||
{ required: true, message: '请输入总共数量', trigger: 'blur' },
|
||||
{ type: 'number', message: '总共数量必须是数字', trigger: 'blur' },
|
||||
],
|
||||
outNum: [
|
||||
{ required: true, message: '请输入支出数量', trigger: 'blur' },
|
||||
{ type: 'number', message: '支出数量必须是数字', trigger: 'blur' },
|
||||
],
|
||||
fruitNum: [
|
||||
{ required: true, message: '请输入果实数', trigger: 'blur' },
|
||||
{ type: 'number', message: '果实数必须是数字', trigger: 'blur' },
|
||||
],
|
||||
treePlace: [{ required: true, message: '请输入种植地点', trigger: 'blur' }],
|
||||
gardener: [{ required: true, message: '请输入养护人', trigger: 'blur' }],
|
||||
soil: [{ required: true, message: '请输入土壤类型', trigger: 'blur' }],
|
||||
humidity: [{ required: true, message: '请输入湿度', trigger: 'blur' }],
|
||||
content: [{ required: true, message: '请输入活动内容', trigger: 'blur' }],
|
||||
smallImage: [{ required: true, message: '请输入小苗阶段图链接', trigger: 'blur' }],
|
||||
growImage: [{ required: true, message: '请输入成长阶段图链接', trigger: 'blur' }],
|
||||
bigImage: [{ required: true, message: '请输入成熟阶段图链接', trigger: 'blur' }],
|
||||
hotImage: [{ required: true, message: '请输入热门新品图链接', trigger: 'blur' }],
|
||||
hotDay: [
|
||||
{ required: true, message: '请输入热门新品显示天数', trigger: 'blur' },
|
||||
{ type: 'number', message: '热门新品显示天数必须是数字', trigger: 'blur' },
|
||||
],
|
||||
status: [{ required: true, message: '请选择状态', trigger: 'change' }],
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
if ( this.$route.params.id ) {
|
||||
console.log( this.$route.params.id)
|
||||
marketingGameInfoListApi({id: this.$route.params.id}).then(res =>{
|
||||
console.log(res)
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getDataFrom() {
|
||||
|
||||
},
|
||||
modalPicTap(tit, num) {
|
||||
const _this = this;
|
||||
this.$modalUpload(function (img) {
|
||||
if (tit === '1') {
|
||||
switch (num) {
|
||||
case 'pi1':
|
||||
_this.form.smallImage = img[0].sattDir;
|
||||
break;
|
||||
case 'pi2':
|
||||
_this.form.growImage = img[0].sattDir;
|
||||
break;
|
||||
case 'pi3':
|
||||
_this.form.bigImage = img[0].sattDir;
|
||||
break;
|
||||
case 'pi4':
|
||||
_this.form.hotImage = img[0].sattDir;
|
||||
break;
|
||||
case 'pi5':
|
||||
_this.form.productImage = img[0].sattDir;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, tit, 'content');
|
||||
},
|
||||
submitForm() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs.formRef.resetFields();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.game-form {
|
||||
width: 80%;
|
||||
margin: 20px auto;
|
||||
}
|
||||
</style>
|
@ -1,55 +1,209 @@
|
||||
<template>
|
||||
<div class="divBox">
|
||||
<el-table ref="selection" :data="specsData">
|
||||
<el-table-column label="序号" type="index" min-width="80"/>
|
||||
<el-table-column label="图片" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div class="acea-row .row-middle .row-center-wrapper">
|
||||
<div class="pictrue pictrueTab" v-if="scope.row.productImage" @click="modalPicTap('dan', scope.$index)">
|
||||
<img v-lazy="scope.row.productImage" />
|
||||
</div>
|
||||
<div class="upLoad pictrueTab acea-row row-center-wrapper" v-else>
|
||||
<i class="el-icon-picture-outline" style="font-size: 24px"></i>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>规则</span>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<div class="container">
|
||||
<el-form :model="specsData.rule" label-width="120px" class="stage-form">
|
||||
<!-- <el-form-item label="ID" prop="id">-->
|
||||
<!-- <el-input v-model="specsData.rule.id" disabled></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="小苗阶段" prop="smallStage">
|
||||
<el-input v-model="specsData.rule.smallStage" placeholder="请输入小苗阶段"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="成长阶段" prop="growStage">
|
||||
<el-input v-model="specsData.rule.growStage" placeholder="请输入成长阶段"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="成熟阶段" prop="bigStage">
|
||||
<el-input v-model="specsData.rule.bigStage" placeholder="请输入成熟阶段"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="每次浇水量" prop="everyWater">
|
||||
<el-input-number v-model="specsData.rule.everyWater" :min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="每次施肥量" prop="everyManure">
|
||||
<el-input-number v-model="specsData.rule.everyManure" :min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="每次施肥阶梯" prop="everyManureStair">-->
|
||||
<!-- <el-input v-model="specsData.rule.everyManureStair" placeholder="请输入每次施肥阶梯"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="每次光照" prop="everySunlight">
|
||||
<el-input-number v-model="specsData.rule.everySunlight" :min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="每次光照阶梯" prop="everySunlightStair">
|
||||
<!-- 动态光照阶梯 -->
|
||||
|
||||
|
||||
<el-table :data="specsData.rule.everySunlightStair" style="width: 100%" border>
|
||||
<el-table-column prop="begin" label="阳光最低区间">
|
||||
<template #default="scope">
|
||||
<el-input-number
|
||||
v-model="scope.row.begin"
|
||||
:min="0"
|
||||
placeholder="最低值"
|
||||
@change="validateRules"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="end" label="阳光最高区间">
|
||||
<template #default="scope">
|
||||
<el-input-number
|
||||
v-model="scope.row.end"
|
||||
:min="0"
|
||||
placeholder="最高值"
|
||||
@change="validateRules"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sunlight" label="阳光值">
|
||||
<template #default="scope">
|
||||
<el-input-number
|
||||
v-model="scope.row.sunlight"
|
||||
:min="0"
|
||||
placeholder="阳光值"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-button type="primary" @click="addRule" class="mt10">添加规则</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="总浇水量" prop="waterTotal">
|
||||
<el-input-number v-model="specsData.rule.waterTotal" :min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<div class="mt20"></div>
|
||||
<div slot="header" class="clearfix">
|
||||
<router-link :to=" { path: '/marketing/coupon/list/saveTree' } ">
|
||||
<el-button size="small" type="primary" >添加茶株</el-button>
|
||||
</router-link>
|
||||
</div>
|
||||
<div class="mt20">
|
||||
<!-- <cards-data :cardLists="cardLists" v-if="checkPermi(['admin:order:list:data'])"></cards-data> -->
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
:data="specsData.items"
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
width="80"
|
||||
prop="gameId"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="茶株编号">
|
||||
</el-table-column>
|
||||
<el-table-column label="名称" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.productName }}</div>
|
||||
</template>
|
||||
<el-table-column
|
||||
width="150"
|
||||
prop="title"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="领养标题">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="productImage"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="茶株封面">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="奖品" min-width="80">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <div>{{ scope.row.type | typeName }}</div>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="提示语" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.message }}</div>
|
||||
</template>
|
||||
<el-table-column
|
||||
|
||||
prop="gardener"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="养护人">
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
:controls="false"
|
||||
v-model="scope.row.total"
|
||||
:max="9999999999"
|
||||
:min="0"
|
||||
:precision="0"
|
||||
class="priceBox"
|
||||
></el-input-number>
|
||||
</template>
|
||||
<el-table-column
|
||||
prop="soil"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="土壤">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
||||
prop="humidity"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="湿度">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="smallImage"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="树苗图">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="growImage"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="成长图">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bigImage"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="成熟图">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="奖品概率" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.lotteryRate }}</div>
|
||||
</template>
|
||||
<el-table-column
|
||||
prop="allNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="领养总数">
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="80">
|
||||
|
||||
<el-table-column
|
||||
prop="allNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="已领养数量">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="fruitNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="果实数量">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="treePlace"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="种植地点">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="bigImage"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="成熟图">
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="创建时间">
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a class="submission mr15" @click="editGoods(scope.$index)">编辑</a>
|
||||
<router-link :to=" { path: '/marketing/coupon/list/saveTree/'+ scope.row.id } ">
|
||||
<el-button type="text" size="small" class="mr10" >详情</el-button>
|
||||
</router-link>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -60,57 +214,44 @@
|
||||
import {marketingGameInfoListApi, marketingGameListApi} from "@/api/marketing";
|
||||
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
tableFrom: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
cid:747
|
||||
},
|
||||
modalPic: false,
|
||||
isChoice: '单选',
|
||||
picTit: '',
|
||||
specsData:[]
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: {},
|
||||
dataListLoading: false,
|
||||
gameFrom: {},
|
||||
specsData: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.getDataList()
|
||||
},
|
||||
|
||||
methods:{
|
||||
methods: {
|
||||
// 列表
|
||||
getList() {
|
||||
marketingGameListApi(this.tableFrom).then(res => {
|
||||
this.listLoading = false
|
||||
// res.list[0].id
|
||||
getDataList() {
|
||||
marketingGameListApi({cid: 748}).then(res => {
|
||||
this.dataListLoading = false
|
||||
this.getInfo(res.list[0].id)
|
||||
}).catch(res => {
|
||||
this.listLoading = false
|
||||
this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
getInfo(id){
|
||||
marketingGameInfoListApi({id:id}).then(res =>{
|
||||
this.specsData = res.rule.items
|
||||
getInfo(id) {
|
||||
marketingGameInfoListApi({id: id}).then(res => {
|
||||
console.log(res)
|
||||
this.specsData = res
|
||||
|
||||
if (this.specsData.rule.everySunlightStair === null) {
|
||||
this.specsData.rule.everySunlightStair = []
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 点击商品图
|
||||
modalPicTap(tit, index) {
|
||||
const _this = this
|
||||
this.$modalUpload(function(img) {
|
||||
if(img.length >= 2) return this.$message.warning("最多选择1张图片!");
|
||||
_this.specsData[index].productImage = img[0].sattDir
|
||||
|
||||
|
||||
|
||||
},tit, 'store')
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped>
|
||||
|
||||
.pictrue {
|
||||
width: 58px;
|
||||
@ -120,6 +261,7 @@ export default {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -1,320 +1,15 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card :bordered="false" shadow="never" class="ivu-mt">
|
||||
<el-form
|
||||
ref="tableFrom"
|
||||
:model="tableFrom"
|
||||
:label-width="labelWidth"
|
||||
:label-position="labelPosition"
|
||||
@submit.native.prevent
|
||||
>
|
||||
<el-scope.row :gutter="24">
|
||||
<el-col>
|
||||
<el-form-item label="活动类型:" clearable>
|
||||
<el-select
|
||||
style="width: 200px"
|
||||
v-model="tableFrom.factor"
|
||||
placeholder="请选择活动类型"
|
||||
clearable
|
||||
@change="userSearchs"
|
||||
>
|
||||
<el-option value="1" label="积分抽取"></el-option>
|
||||
<!-- <el-option value="2">余额</el-option> -->
|
||||
<el-option value="3" label="订单支付"></el-option>
|
||||
<el-option value="4" label="订单评价"></el-option>
|
||||
<!-- <el-option value="5">关注公众号</el-option> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="活动状态:" clearable>
|
||||
<el-select
|
||||
style="width: 200px"
|
||||
v-model="tableFrom.start_status"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
@change="userSearchs"
|
||||
>
|
||||
<el-option value="0" label="未开始"></el-option>
|
||||
<el-option value="1" label="进行中"></el-option>
|
||||
<el-option value="-1" label="已结束"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col>
|
||||
<el-form-item label="上架状态:">
|
||||
<el-select
|
||||
style="width: 200px"
|
||||
placeholder="请选择"
|
||||
v-model="tableFrom.status"
|
||||
clearable
|
||||
@change="userSearchs"
|
||||
>
|
||||
<el-option value="1" label="上架"></el-option>
|
||||
<el-option value="0" label="下架"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="抽奖搜索:" label-for="store_name">
|
||||
<el-input
|
||||
search
|
||||
enter-button
|
||||
style="width: 200px"
|
||||
placeholder="请输入抽奖名称,ID"
|
||||
v-model="tableFrom.store_name"
|
||||
@on-search="userSearchs"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-scope.row>
|
||||
<el-scope.row class="mb20">
|
||||
<el-button v-auth="['marketing-store_bargain-create']" type="primary" v-db-click @click="add" class="mr10"
|
||||
>添加抽奖</el-button
|
||||
>
|
||||
</el-scope.row>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="tableList"
|
||||
v-loading="loading"
|
||||
highlight-scope.row
|
||||
no-userFrom-text="暂无数据"
|
||||
no-filtered-userFrom-text="暂无筛选结果"
|
||||
>
|
||||
<el-table-column label="ID" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.id }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动名称" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动类型" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.lottery_type }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="参与次数" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.lottery_all }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="抽奖人数" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.lottery_people }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="中奖人数" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.lottery_win }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动状态" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.status_name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="上架状态" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
class="defineSwitch"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
v-model="scope.row.status"
|
||||
:value="scope.row.status"
|
||||
:disabled="scope.row.lottery_status == 2 ? true : false"
|
||||
@change="onchangeIsShow(scope.row)"
|
||||
size="large"
|
||||
active-text="上架"
|
||||
inactive-text="下架"
|
||||
>
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动时间" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<div>起:{{ scope.row.start_time || '--' }}</div>
|
||||
<div>止:{{ scope.row.end_time || '--' }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动状态" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.status_name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="170">
|
||||
<template slot-scope="scope">
|
||||
<a v-db-click @click="edit(scope.row)">编辑</a>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<a v-db-click @click="del(scope.row, '删除抽奖', scope.$index)">删除</a>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<a v-db-click @click="copy(scope.row)">复制</a>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<a v-db-click @click="getRecording(scope.row)">抽奖记录</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="acea-row row-right page">
|
||||
<pagination
|
||||
v-if="total"
|
||||
:total="total"
|
||||
:page.sync="tableFrom.page"
|
||||
:limit.sync="tableFrom.limit"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex';
|
||||
import { lotteryListApi, lotteryStatusApi } from '@/api/lottery';
|
||||
import { formatDate } from '@/utils/validate';
|
||||
export default {
|
||||
name: 'storeBargain',
|
||||
filters: {
|
||||
formatDate(time) {
|
||||
if (time !== 0) {
|
||||
let date = new Date(time * 1000);
|
||||
return formatDate(date, 'yyyy-MM-dd hh:mm');
|
||||
}
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
tableList: [],
|
||||
tableFrom: {
|
||||
start_status: '',
|
||||
status: '',
|
||||
store_name: '',
|
||||
export: 0,
|
||||
page: 1,
|
||||
factor: '',
|
||||
limit: 15,
|
||||
},
|
||||
total: 0,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState('admin/layout', ['isMobile']),
|
||||
labelWidth() {
|
||||
return this.isMobile ? undefined : '80px';
|
||||
},
|
||||
labelPosition() {
|
||||
return this.isMobile ? 'top' : 'right';
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
// 添加
|
||||
add() {
|
||||
this.$router.push({ path: this.$routeProStr + '/marketing/lottery/create' });
|
||||
},
|
||||
// 编辑
|
||||
edit(row) {
|
||||
this.$router.push({
|
||||
name: 'marketing_create',
|
||||
query: {
|
||||
id: row.id,
|
||||
},
|
||||
});
|
||||
},
|
||||
// 一键复制
|
||||
copy(row) {
|
||||
this.$router.push({
|
||||
name: 'marketing_create',
|
||||
query: {
|
||||
id: row.id,
|
||||
copy: 1,
|
||||
},
|
||||
});
|
||||
},
|
||||
// 删除
|
||||
del(row, tit, num) {
|
||||
let delfromData = {
|
||||
title: tit,
|
||||
num: num,
|
||||
url: `marketing/lottery/del/${row.id}`,
|
||||
method: 'DELETE',
|
||||
ids: '',
|
||||
};
|
||||
this.$modalSure(delfromData)
|
||||
.then((res) => {
|
||||
this.$message.success(res.msg);
|
||||
this.tableList.splice(num, 1);
|
||||
})
|
||||
.catch((res) => {
|
||||
this.$message.error(res.msg);
|
||||
});
|
||||
},
|
||||
//查看抽奖记录
|
||||
getRecording(row) {
|
||||
this.$router.push({
|
||||
path: this.$routeProStr + `/marketing/lottery/recording_list`,
|
||||
query: {
|
||||
id: row.id,
|
||||
},
|
||||
});
|
||||
},
|
||||
// 列表
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.tableFrom.start_status = this.tableFrom.start_status || '';
|
||||
this.tableFrom.status = this.tableFrom.status || '';
|
||||
lotteryListApi(this.tableFrom)
|
||||
.then(async (res) => {
|
||||
let data = res.data;
|
||||
this.tableList = data.list;
|
||||
this.total = res.data.count;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.loading = false;
|
||||
this.$message.error(res.msg);
|
||||
});
|
||||
},
|
||||
// 表格搜索
|
||||
userSearchs() {
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 修改是否显示
|
||||
onchangeIsShow(row) {
|
||||
let data = {
|
||||
id: row.id,
|
||||
status: row.status,
|
||||
};
|
||||
lotteryStatusApi(data)
|
||||
.then(async (res) => {
|
||||
this.$message.success(res.msg);
|
||||
this.getList();
|
||||
})
|
||||
.catch((res) => {
|
||||
this.$message.error(res.msg);
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="stylus">
|
||||
.tabBox_img {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
<style lang="sass" scoped>
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -80,14 +80,14 @@
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
class="selWidth"
|
||||
:picker-options="pickerOptions"
|
||||
:picker-options="pickerOptions"
|
||||
@change="onchangeTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
|
||||
|
||||
</el-col> -->
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
<el-col v-bind="grid">
|
||||
@ -138,7 +138,7 @@
|
||||
</el-col>
|
||||
</el-col>
|
||||
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
|
||||
|
||||
</el-col> -->
|
||||
</template>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6" class="text-right userFrom">
|
||||
@ -209,7 +209,7 @@
|
||||
label="ID"
|
||||
min-width="80"
|
||||
/>
|
||||
<el-table-column
|
||||
<el-table-column
|
||||
label="头像" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
@ -273,6 +273,17 @@
|
||||
label="积分"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="isProsecutor"
|
||||
label="核销员"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.isProsecutor == 0 ">非核销员</el-tag>
|
||||
<el-tag v-else>核销员</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" min-width="130" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="editUser(scope.row.uid)" size="small" v-hasPermi="['admin:user:infobycondition']">编辑</el-button>
|
||||
@ -681,7 +692,7 @@
|
||||
// el.child.forEach((cel, j) => {
|
||||
// delete cel.child
|
||||
// })
|
||||
// })
|
||||
// })
|
||||
this.addresData = res
|
||||
// })
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user