完善功能
This commit is contained in:
@ -51,6 +51,17 @@ let VenueApi = {
|
||||
orderGroundList(data, errorback) {
|
||||
return request._post('/shop/order.orderGround/orderGroundList', data, errorback);
|
||||
},
|
||||
|
||||
/*场馆订单详情*/
|
||||
orderGroundDetails(data, errorback) {
|
||||
return request._post('/shop/order.orderGround/orderGroundDetails', data, errorback);
|
||||
},
|
||||
|
||||
/*余额支付明细*/
|
||||
balaceLog(data, errorback) {
|
||||
return request._post('/shop/user.balance/log', data, errorback);
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
export default VenueApi;
|
||||
|
||||
@ -1,3 +1,314 @@
|
||||
<template>
|
||||
<view class="">这里是充卡汇总页面</view>
|
||||
<div class="user">
|
||||
<!--搜索表单-->
|
||||
<div class="common-seach-wrap">
|
||||
<el-form size="small" :inline="true" :model="searchForm" class="demo-form-inline">
|
||||
<el-form-item label="用户昵称">
|
||||
<el-input size="small" v-model="searchForm.search" placeholder="请输入用户昵称"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="订单号">
|
||||
<el-input size="small" v-model="searchForm.order_sn" placeholder="请输入订单号"></el-input>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="起始时间">
|
||||
<div class="block">
|
||||
<span class="demonstration"></span>
|
||||
<el-date-picker size="small" v-model="searchForm.value1" type="daterange"
|
||||
value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"></el-date-picker>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button size="small" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item>
|
||||
<el-button size="small" type="success" @click="onExport"
|
||||
v-auth="'/order/operate/export'">导出</el-button>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
</div>
|
||||
<!--内容-->
|
||||
<div class="product-content">
|
||||
<div class="table-wrap">
|
||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
||||
<el-table-column prop="userInfo" label="用户信息">
|
||||
<template slot-scope="scope">
|
||||
<div class="">用户昵称: {{ scope.row.user.nickName }}</div>
|
||||
<div class=""><img :src="scope.row.user.avatarUrl" width="30px" height="30px" /></div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="订单号"></el-table-column>
|
||||
<el-table-column prop="pay_type" label="充卡类型">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.pay_type == 1">白银卡</span>
|
||||
<span v-if="scope.row.pay_type == 2">黄金卡</span>
|
||||
<span v-if="scope.row.pay_type == 3">铂金卡</span>
|
||||
<span v-if="scope.row.pay_type == 4">钻石卡</span>
|
||||
<span v-if="scope.row.pay_type == 5">至尊卡</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建时间"></el-table-column>
|
||||
<el-table-column prop="balance_before" label="充值前余额"></el-table-column>
|
||||
<el-table-column prop="money" label="充值金额"></el-table-column>
|
||||
<el-table-column prop="balance_after" label="账户剩余余额"></el-table-column>
|
||||
|
||||
<!-- <el-table-column fixed="right" label="操作" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="addClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/venue/order/detail'">详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
</div>
|
||||
<!--分页-->
|
||||
<div class="pagination">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" background
|
||||
:current-page="curPage" :page-size="pageSize" layout="total, prev, pager, next, jumper"
|
||||
:total="totalDataNumber"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import OrderApi from '@/api/order.js';
|
||||
import VenueApi from '@/api/venue.js';
|
||||
|
||||
import qs from 'qs';
|
||||
// import Cancel from './dialog/cancel.vue';
|
||||
export default {
|
||||
// components: {
|
||||
// Cancel
|
||||
// },
|
||||
data() {
|
||||
return {
|
||||
/*切换菜单*/
|
||||
activeName: 'all',
|
||||
/*是否加载完成*/
|
||||
loading: true,
|
||||
/*列表数据*/
|
||||
tableData: [],
|
||||
/*一页多少条*/
|
||||
pageSize: 20,
|
||||
/*一共多少条数据*/
|
||||
totalDataNumber: 0,
|
||||
/*当前是第几页*/
|
||||
curPage: 1,
|
||||
/*横向表单数据模型*/
|
||||
searchForm: {
|
||||
nickName: '',
|
||||
order_sn: '',
|
||||
search: '',
|
||||
create_time: '',
|
||||
start_time: '',
|
||||
end_time: '',
|
||||
nickName: '',
|
||||
value1:''
|
||||
},
|
||||
/*配送方式*/
|
||||
exStyle: [],
|
||||
/*门店列表*/
|
||||
shopList: [],
|
||||
/*时间*/
|
||||
create_time: '',
|
||||
/*统计*/
|
||||
order_count: {
|
||||
payment: 0,
|
||||
delivery: 0,
|
||||
received: 0
|
||||
},
|
||||
dialogBatchDelivery: false,
|
||||
/*是否打开编辑弹窗*/
|
||||
open_edit: false,
|
||||
/*当前编辑的对象*/
|
||||
order_no: 0,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
/*获取列表*/
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
/*跨多列*/
|
||||
arraySpanMethod(row) {
|
||||
if (row.rowIndex % 2 == 0) {
|
||||
if (row.columnIndex === 0) {
|
||||
return [1, 8];
|
||||
}
|
||||
}
|
||||
},
|
||||
/*选择第几页*/
|
||||
handleCurrentChange(val) {
|
||||
let self = this;
|
||||
self.curPage = val;
|
||||
self.getData();
|
||||
},
|
||||
|
||||
/*每页多少条*/
|
||||
handleSizeChange(val) {
|
||||
this.curPage = 1;
|
||||
this.pageSize = val;
|
||||
this.getData();
|
||||
},
|
||||
|
||||
/*切换菜单*/
|
||||
handleClick(tab, event) {
|
||||
let self = this;
|
||||
self.curPage = 1;
|
||||
self.getData();
|
||||
},
|
||||
|
||||
/*获取列表*/
|
||||
getData() {
|
||||
let self = this;
|
||||
let Params = this.searchForm;
|
||||
Params.order_status = self.activeName == 'all' ? '' : self.activeName;
|
||||
Params.page = self.curPage;
|
||||
Params.list_rows = self.pageSize;
|
||||
self.loading = true;
|
||||
VenueApi.balaceLog(Params, true)
|
||||
.then(res => {
|
||||
self.tableData = res.data.list.data;
|
||||
self.totalDataNumber = res.data.list.total;
|
||||
self.loading = false;
|
||||
})
|
||||
.catch(error => { });
|
||||
},
|
||||
/*打开取消*/
|
||||
cancelClick(item) {
|
||||
this.order_no = item.order_no;
|
||||
this.open_edit = true;
|
||||
},
|
||||
/*关闭弹窗*/
|
||||
closeDialogFunc(e, f) {
|
||||
if (f == 'edit') {
|
||||
this.open_edit = e.openDialog;
|
||||
if (e.type == 'success') {
|
||||
this.getData();
|
||||
}
|
||||
}
|
||||
},
|
||||
/*打开添加*/
|
||||
addClick(row) {
|
||||
let self = this;
|
||||
let params = row.order_id;
|
||||
self.$router.push({
|
||||
path: '/order/order/Detail',
|
||||
query: {
|
||||
order_id: params
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/*搜索查询*/
|
||||
onSubmit() {
|
||||
if (this.searchForm.create_time && this.searchForm.create_time.length == 2) {
|
||||
this.searchForm.start_time = this.searchForm.create_time[0];
|
||||
this.searchForm.end_time = this.searchForm.create_time[1];
|
||||
} else {
|
||||
this.searchForm.start_time = '';
|
||||
this.searchForm.end_time = '';
|
||||
}
|
||||
|
||||
this.curPage = 1;
|
||||
this.tableData = [];
|
||||
this.getData();
|
||||
},
|
||||
onExport: function () {
|
||||
let baseUrl = window.location.protocol + '//' + window.location.host;
|
||||
window.location.href = baseUrl + '/index.php/shop/order.operate/orderGroundExport?' + qs.stringify(this.searchForm);
|
||||
},
|
||||
// 显示批量发货说明
|
||||
showBatchDelivery() {
|
||||
this.dialogBatchDelivery = true;
|
||||
},
|
||||
/*跳转物流公司*/
|
||||
gotoExpress() {
|
||||
let self = this;
|
||||
self.$router.push('/setting/express/index');
|
||||
},
|
||||
|
||||
/*选择图片之前*/
|
||||
onBeforeUploadImage(file) {
|
||||
var fileType = file.name.substring(file.name.lastIndexOf('.') + 1)
|
||||
const isEXCEL = fileType === 'xlsx';
|
||||
const isLt10M = file.size / 1024 / 1024 < 10;
|
||||
if (!isEXCEL) {
|
||||
this.$message.error('上传文件只能是excel格式!');
|
||||
}
|
||||
if (!isLt10M) {
|
||||
this.$message.error('上传文件大小不能超过 10MB!');
|
||||
}
|
||||
return isEXCEL && isLt10M;
|
||||
},
|
||||
|
||||
/*上传图片*/
|
||||
UploadImage(param) {
|
||||
let self = this;
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在处理,请等待',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
const formData = new FormData();
|
||||
formData.append('iFile', param.file);
|
||||
OrderApi.batchDelivery(formData)
|
||||
.then(response => {
|
||||
loading.close();
|
||||
self.dialogBatchDelivery = false;
|
||||
self.$message({
|
||||
message: response.msg,
|
||||
type: 'warning'
|
||||
});
|
||||
})
|
||||
.catch(response => {
|
||||
loading.close();
|
||||
self.$message({
|
||||
message: '本次处理失败',
|
||||
type: 'warning'
|
||||
});
|
||||
param.onError();
|
||||
});
|
||||
},
|
||||
|
||||
// 查看详情
|
||||
detailClick(row) {
|
||||
this.$router.push({
|
||||
path: '/venue/order/detail',
|
||||
query: {
|
||||
order_id: row.order_id,
|
||||
scene: 'view'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.product-info {
|
||||
padding: 10px 0;
|
||||
border-top: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
.order-code .state-text {
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px;
|
||||
background: #808080;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.order-code .state-text-red {
|
||||
background: red;
|
||||
}
|
||||
|
||||
.table-wrap .product-info:first-of-type {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.table-wrap .el-table__body tbody .el-table__row:nth-child(odd) {
|
||||
background: #f5f7fa;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,64 +1,148 @@
|
||||
<template>
|
||||
<!--
|
||||
作者 luoyiming
|
||||
时间:2019-10-26
|
||||
描述:设置-商城设置
|
||||
-->
|
||||
<div class="product-add">
|
||||
<!--form表单-->
|
||||
<el-form size="small" ref="form" :model="form" label-width="150px">
|
||||
<div class="common-form">首页设置</div>
|
||||
<el-form-item label="公告信息" :rules="[{ required: false, message: '' }]" prop="name">
|
||||
<el-input v-model="form.notice" placeholder="公告信息" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="轮播图" :rules="[{ required: true, message: '请上传轮播图' }]" prop="carousel">
|
||||
<div class="draggable-list">
|
||||
<draggable class="wrapper" v-model="form.carousel">
|
||||
<transition-group>
|
||||
<div class="item" v-for="(item, index) in form.carousel" :key="item.file_id ? item.file_id + '_' + index : index">
|
||||
<img v-img-url="item.file_path" />
|
||||
<a href="javascript:void(0);" class="delete-btn" @click.stop="deleteImg(index)"><i
|
||||
class="el-icon-close"></i></a>
|
||||
</div>
|
||||
</transition-group>
|
||||
</draggable>
|
||||
<div class="item img-select" @click="openProductUpload('image', 'image')"><i
|
||||
class="el-icon-plus"></i></div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<div class="common-form">充值设置</div>
|
||||
<el-form-item label="白银卡充值金额" :rules="[{ required: true, message: '请输入白银卡充值金额' }]" prop="balance.balance1">
|
||||
<el-input v-model="form.balance.balance1" placeholder="请输入充值金额" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="白银卡折扣" :rules="[{ required: true, message: '请输入白银卡折扣' }]" prop="balance.discount1">
|
||||
<el-input v-model="form.balance.discount1" placeholder="请输入折扣优惠,5折请输入5" class="max-w460"></el-input> 折
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="黄金卡充值金额" :rules="[{ required: true, message: '请输入黄金卡充值金额' }]" prop="balance.balance2">
|
||||
<el-input v-model="form.balance.balance2" placeholder="请输入充值金额" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="黄金卡折扣" :rules="[{ required: true, message: ' 请输入黄金卡折扣' }]" prop="balance.discount2">
|
||||
<el-input v-model="form.balance.discount2" placeholder="请输入折扣优惠,5折请输入5" class="max-w460"></el-input> 折
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="铂金卡充值金额" :rules="[{ required: true, message: '请输入铂金卡充值金额' }]" prop="balance.balance3">
|
||||
<el-input v-model="form.balance.balance3" placeholder="请输入充值金额" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="铂金卡折扣" :rules="[{ required: true, message: '请输入铂金卡折扣' }]" prop="balance.discount3">
|
||||
<el-input v-model="form.balance.discount3" placeholder="请输入折扣优惠,5折请输入5" class="max-w460"></el-input> 折
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="钻石卡充值金额" :rules="[{ required: true, message: '请输入钻石卡充值金额' }]" prop="balance.balance4">
|
||||
<el-input v-model="form.balance.balance4" placeholder="请输入充值金额" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="钻石卡折扣" :rules="[{ required: true, message: '请输入钻石卡折扣' }]" prop="balance.discount4">
|
||||
<el-input v-model="form.balance.discount4" placeholder="请输入折扣优惠,5折请输入5" class="max-w460"></el-input> 折
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="至尊卡充值金额" :rules="[{ required: true, message: '请输入至尊卡充值金额' }]" prop="balance.balance5">
|
||||
<el-input v-model="form.balance.balance5" placeholder="请输入充值金额" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="至尊卡折扣" :rules="[{ required: true, message: '请输入至尊卡折扣' }]" prop="balance.discount5">
|
||||
<el-input v-model="form.balance.discount5" placeholder="请输入折扣优惠,5折请输入5" class="max-w460"></el-input> 折
|
||||
</el-form-item>
|
||||
|
||||
<div class="common-form">联系我们</div>
|
||||
<el-form-item label="公司地址" :rules="[{ required: true, message: ' ' }]" prop="company.address">
|
||||
<el-input v-model="form.company.address" placeholder="公司地址" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="营业时间" :rules="[{ required: true, message: ' ' }]" prop="company.day_time">
|
||||
<el-input v-model="form.company.day_time" placeholder="营业时间" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="经度" :rules="[{ required: true, message: ' ' }]" prop="company.longitude">
|
||||
<el-input v-model="form.company.longitude" placeholder="营业时间" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="纬度" :rules="[{ required: true, message: ' ' }]" prop="company.latitude">
|
||||
<el-input v-model="form.company.latitude" placeholder="营业时间" class="max-w460"></el-input>
|
||||
<div>经纬度获取,可通过地图软件获取,例如: http://jingweidu.757dy.com/</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" :rules="[{ required: true, message: ' ' }]" prop="company.contact">
|
||||
<el-input v-model="form.company.contact" placeholder="联系电话" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
<!--添加门店-->
|
||||
<div class="common-form">商城设置</div>
|
||||
<!-- <div class="common-form">商城设置</div>
|
||||
<el-form-item label="商城名称" :rules="[{ required: true, message: ' ' }]" prop="name">
|
||||
<el-input v-model="form.name" placeholder="商城名称" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="配送方式">
|
||||
<el-checkbox-group v-model="form.checkedCities">
|
||||
<el-checkbox v-for="(item, index) in all_type" :label="item.value"
|
||||
:key="index">{{ item.name }}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<div class="tips">注:配送方式至少选择一个</div>
|
||||
</el-form-item> -->
|
||||
|
||||
<div class="common-form">首页设置</div>
|
||||
<el-form-item label="公告信息" :rules="[{ required: true, message: ' ' }]" prop="name">
|
||||
<el-input v-model="form.name" placeholder="公告信息" class="max-w460"></el-input>
|
||||
<!-- <div class="common-form">日志记录</div>
|
||||
<el-form-item label="是否记录查询日志" prop="customer">
|
||||
<el-checkbox v-model="form.is_get_log">是否记录查询日志</el-checkbox>
|
||||
<div class="tips">如果记录,日志量会有点大</div>
|
||||
</el-form-item>
|
||||
|
||||
<div class="common-form">物流查询api</div>
|
||||
<el-form-item label="快递100 Customer" :rules="[{ required: true, message: ' ' }]" prop="customer">
|
||||
<el-input v-model="form.customer" placeholder="" class="max-w460"></el-input>
|
||||
<div class="tips">用于查询物流信息,<el-link :underline="false" href="https://www.kuaidi100.com/openapi/"
|
||||
target="_blank" type="primary">快递100申请</el-link>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="快递100 Key" :rules="[{ required: true, message: ' ' }]" prop="key">
|
||||
<el-input v-model="form.key" placeholder="" class="max-w460"></el-input>
|
||||
</el-form-item> -->
|
||||
|
||||
<div class="common-form">联系我们</div>
|
||||
<el-form-item label="公司地址" :rules="[{ required: true, message: ' ' }]" prop="name">
|
||||
<el-input v-model="form.name" placeholder="公司地址" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="营业时间" :rules="[{ required: true, message: ' ' }]" prop="name">
|
||||
<el-input v-model="form.name" placeholder="营业时间" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="经纬度" :rules="[{ required: true, message: ' ' }]" prop="name">
|
||||
<el-input v-model="form.name" placeholder="营业时间" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" :rules="[{ required: true, message: ' ' }]" prop="name">
|
||||
<el-input v-model="form.name" placeholder="营业时间" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<div class="common-form">政策协议</div>
|
||||
<!-- todo 这里的政策协议和服务协议内容是别的,如果要启用的话需要修改 -->
|
||||
<!-- <div class="common-form">政策协议</div>
|
||||
<el-form-item label="服务协议" :rules="[{ required: true, message: ' ' }]" prop="service">
|
||||
<el-input v-model="form.service" placeholder="" class="max-w460"></el-input>
|
||||
<div class="tips">进入app和登录、注册页面显示</el-link>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="隐私政策" :rules="[{ required: true, message: ' ' }]" prop="privacy">
|
||||
<el-input v-model="form.privacy" placeholder="" class="max-w460"></el-input>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
|
||||
<!--提交-->
|
||||
<div class="common-button-wrapper">
|
||||
<el-button type="primary" @click="onSubmit" :loading="loading">提交</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
<!--上传图片-->
|
||||
<Upload v-if="isupload" :isupload="isupload" :config="{ total: 3 }" @returnImgs="returnImgsFunc"></Upload>
|
||||
|
||||
<!--上传图片-->
|
||||
<Upload v-if="isProductUpload" :config="config" :isupload="isProductUpload" @returnImgs="returnProductImgsFunc">
|
||||
上传图片</Upload>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SettingApi from '@/api/setting.js';
|
||||
import Upload from '@/components/file/Upload';
|
||||
import { formatModel } from '@/utils/base.js';
|
||||
import draggable from 'vuedraggable';
|
||||
export default {
|
||||
components: {
|
||||
Upload
|
||||
Upload,
|
||||
draggable
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -72,12 +156,42 @@ export default {
|
||||
checkedCities: [],
|
||||
is_get_log: 0,
|
||||
service: '',
|
||||
privacy: ''
|
||||
privacy: '',
|
||||
carousel: [],
|
||||
notice: '',
|
||||
company: {
|
||||
address: '',
|
||||
longitude: '',
|
||||
latitude: '',
|
||||
contact: '',
|
||||
business_hours: '',
|
||||
day_time: ''
|
||||
},
|
||||
balance: {
|
||||
balance1: '', // 白银卡
|
||||
discount1: '', // 白银卡折扣
|
||||
balance2: '', // 黄金卡
|
||||
discount2: '', // 黄金卡折扣
|
||||
balance3: '', // 铂金卡
|
||||
discount3: '', // 铂金卡折扣
|
||||
balance4: '', // 钻石卡
|
||||
discount4: '', // 钻石卡折扣
|
||||
balance5: '', // 至尊卡
|
||||
discount5: '', // 至尊卡折扣
|
||||
}
|
||||
},
|
||||
all_type: [],
|
||||
delivery_type: [],
|
||||
/*是否打开图片选择*/
|
||||
isupload: false
|
||||
isupload: false,
|
||||
/*是否上传图片*/
|
||||
isupload: false,
|
||||
file_name: 'image',
|
||||
config: {
|
||||
total: 5,
|
||||
file_type: 'image'
|
||||
},
|
||||
isProductUpload: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -90,6 +204,7 @@ export default {
|
||||
getParams() {
|
||||
let self = this;
|
||||
SettingApi.storeDetail({}, true).then(res => {
|
||||
console.log("🚀 ~ res:", res)
|
||||
let vars = res.data.vars.values;
|
||||
self.form = formatModel(self.form, vars);
|
||||
|
||||
@ -104,18 +219,14 @@ export default {
|
||||
self.$set(self.form.checkedCities, i, parseInt(self.form.checkedCities[i]));
|
||||
}
|
||||
self.loading = false;
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
});
|
||||
|
||||
}).catch(error => { });
|
||||
},
|
||||
|
||||
|
||||
/*提交*/
|
||||
onSubmit() {
|
||||
let self = this;
|
||||
let params = this.form;
|
||||
|
||||
if (params.checkedCities.length < 1) {
|
||||
self.$message({
|
||||
message: '配送方式至少选择一种!',
|
||||
@ -131,7 +242,7 @@ export default {
|
||||
.then(data => {
|
||||
self.loading = false;
|
||||
self.$message({
|
||||
message: '恭喜你,商城设置成功',
|
||||
message: '设置成功',
|
||||
type: 'success'
|
||||
});
|
||||
self.$router.push('/setting/store/index');
|
||||
@ -142,12 +253,107 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/*删除图片*/
|
||||
deleteImg(index) {
|
||||
this.form.carousel.splice(index, 1);
|
||||
},
|
||||
|
||||
/*打开上传图片*/
|
||||
openProductUpload: function (file_type, file_name) {
|
||||
this.file_name = file_name;
|
||||
if (file_type == 'image') {
|
||||
this.config = {
|
||||
total: 5,
|
||||
file_type: 'image'
|
||||
};
|
||||
}
|
||||
this.isProductUpload = true;
|
||||
},
|
||||
|
||||
/*上传商品图片*/
|
||||
returnProductImgsFunc(e) {
|
||||
if (e != null) {
|
||||
if (this.file_name == 'image') {
|
||||
let imgs = this.form.carousel.concat(e);
|
||||
if (imgs.length > this.config.total) {
|
||||
imgs = imgs.slice(0, this.config.total);
|
||||
this.$message.warning('最多只能上传' + this.config.total + '张图片');
|
||||
}
|
||||
this.$set(this.form, 'carousel', imgs);
|
||||
}
|
||||
}
|
||||
this.isProductUpload = false;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.tips {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.draggable-list {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.draggable-list .wrapper>span {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.draggable-list .item {
|
||||
position: relative;
|
||||
width: 110px;
|
||||
height: 110px;
|
||||
margin-top: 10px;
|
||||
margin-right: 10px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.draggable-list .delete-btn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: red;
|
||||
line-height: 16px;
|
||||
font-size: 16px;
|
||||
color: #ffffff;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.draggable-list .item:hover .delete-btn {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.draggable-list .item img {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.draggable-list .img-select {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px dashed #dddddd;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.draggable-list .img-select i {
|
||||
color: #409eff;
|
||||
}
|
||||
</style>
|
||||
|
||||
176
src/views/user/user/dialog/RechargeCard.vue
Normal file
176
src/views/user/user/dialog/RechargeCard.vue
Normal file
@ -0,0 +1,176 @@
|
||||
<template>
|
||||
<el-dialog title="用户充值" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-form size="small" :model="form">
|
||||
<el-form-item label="白银卡余额" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.balance1" autocomplete="off" disabled="disabled"></el-input>
|
||||
<div>
|
||||
<span @click="seeRechargeOrder(1)" class="record">充值记录</span>
|
||||
<span @click="seePayOrder(1)" class="record">消费记录</span>
|
||||
<span @click="refundOrder(1)" class="record">退款记录</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="黄金卡余额" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.balance2" autocomplete="off" disabled="disabled"></el-input>
|
||||
<div>
|
||||
<span @click="seeRechargeOrder(2)" class="record">充值记录</span>
|
||||
<span @click="seePayOrder(2)" class="record">消费记录</span>
|
||||
<span @click="refundOrder(2)" class="record">退款记录</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="铂金卡余额" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.balance3" autocomplete="off" disabled="disabled"></el-input>
|
||||
<div>
|
||||
<span @click="seeRechargeOrder(3)" class="record">充值记录</span>
|
||||
<span @click="seePayOrder(3)" class="record">消费记录</span>
|
||||
<span @click="refundOrder(3)" class="record">退款记录</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="钻石卡余额" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.balance4" autocomplete="off" disabled="disabled"></el-input>
|
||||
<div>
|
||||
<span @click="seeRechargeOrder(4)" class="record">充值记录</span>
|
||||
<span @click="seePayOrder(4)" class="record">消费记录</span>
|
||||
<span @click="refundOrder(4)" class="record">退款记录</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="至尊卡余额" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.balance5" autocomplete="off" disabled="disabled"></el-input>
|
||||
<div>
|
||||
<span @click="seeRechargeOrder(5)" class="record">充值记录</span>
|
||||
<span @click="seePayOrder(5)" class="record">消费记录</span>
|
||||
<span @click="refundOrder(5)" class="record">退款记录</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tabs>
|
||||
<Record v-if="open_record" :open_record="open_record" :form="userModel" :record_type="record_type" :user_id="user_id" :balance_type="balance_type" @closeDialog="closeDialog"></Record>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Record from './Record.vue';
|
||||
import UserApi from '@/api/user.js';
|
||||
export default {
|
||||
components: {
|
||||
Record
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
/*左边长度*/
|
||||
formLabelWidth: '120px',
|
||||
/*是否显示*/
|
||||
dialogVisible: false,
|
||||
/*默认选中*/
|
||||
activeName: 'first',
|
||||
recharge: {
|
||||
balance: {
|
||||
mode: 'inc',
|
||||
remark: '',
|
||||
},
|
||||
points: {
|
||||
mode: 'inc',
|
||||
remark: '',
|
||||
}
|
||||
},
|
||||
source: 0,
|
||||
open_record: false,
|
||||
userModel: {},
|
||||
record_type: '',
|
||||
user_id: 0
|
||||
};
|
||||
},
|
||||
props: ['open_add', 'form'],
|
||||
created() {
|
||||
console.log(this.form)
|
||||
this.user_id = this.form.user_id;
|
||||
this.dialogVisible = this.open_add;
|
||||
},
|
||||
methods: {
|
||||
|
||||
/*选中*/
|
||||
handleClick(tab, event) {
|
||||
this.source = tab.index;
|
||||
},
|
||||
/*充值*/
|
||||
addUser(e) {
|
||||
let self = this;
|
||||
let params = self.recharge;
|
||||
let user_id = e;
|
||||
let source = self.source;
|
||||
self.loading = true;
|
||||
UserApi.userRecharge({
|
||||
params: params,
|
||||
user_id: user_id,
|
||||
source: source
|
||||
}, true).then(data => {
|
||||
self.loading = false;
|
||||
if (data.code == 1) {
|
||||
self.$message({
|
||||
message: '修改成功',
|
||||
type: 'success'
|
||||
});
|
||||
self.dialogFormVisible(true);
|
||||
} else {
|
||||
self.loading = false;
|
||||
self.$message.error('错了哦,这是一条错误消息');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
self.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
/*关闭弹窗*/
|
||||
dialogFormVisible(e) {
|
||||
if (e) {
|
||||
this.$emit('closeDialog', {
|
||||
type: 'success',
|
||||
openDialog: false
|
||||
})
|
||||
} else {
|
||||
this.$emit('closeDialog', {
|
||||
type: 'error',
|
||||
openDialog: false
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 查看充值记录
|
||||
seeRechargeOrder(type) {
|
||||
this.balance_type = type
|
||||
this.open_record = true;
|
||||
this.record_type = 'recharge';
|
||||
},
|
||||
|
||||
// 查看消费记录
|
||||
seePayOrder(type) {
|
||||
this.balance_type = type
|
||||
this.open_record = true;
|
||||
this.record_type = 'pay';
|
||||
},
|
||||
|
||||
// 查看退款记录
|
||||
refundOrder(type) {
|
||||
this.balance_type = type
|
||||
this.open_record = true;
|
||||
this.record_type = 'refund';
|
||||
},
|
||||
|
||||
closeDialog() {
|
||||
this.open_record = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
.record {
|
||||
color: #409EFF;
|
||||
cursor: pointer;
|
||||
margin-right: 10px;
|
||||
}
|
||||
</style>
|
||||
197
src/views/user/user/dialog/Record.vue
Normal file
197
src/views/user/user/dialog/Record.vue
Normal file
@ -0,0 +1,197 @@
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="dialogVisible1" @close='closeDialogFunc' :close-on-click-modal="false"
|
||||
:close-on-press-escape="false" append-to-body>
|
||||
<!--搜索表单-->
|
||||
<div class="common-seach-wrap">
|
||||
<el-form size="small" :inline="true" :model="searchForm" class="demo-form-inline">
|
||||
<el-form-item label="起始时间">
|
||||
<div class="block">
|
||||
<span class="demonstration"></span>
|
||||
<el-date-picker size="small" v-model="searchForm.value1" type="daterange"
|
||||
value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"></el-date-picker>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
||||
<el-table-column prop="remark" label="订单号"></el-table-column>
|
||||
<el-table-column prop="balance_before" label="充值前余额"></el-table-column>
|
||||
<el-table-column prop="money" label="充值余额"></el-table-column>
|
||||
<el-table-column prop="balance_after" label="账户剩余余额"></el-table-column>
|
||||
<el-table-column prop="create_time" label="创建时间"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!--分页-->
|
||||
<div class="pagination">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" background
|
||||
:current-page="curPage" :page-size="pageSize" layout="total, prev, pager, next, jumper"
|
||||
:total="totalDataNumber"></el-pagination>
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import VenueApi from '@/api/venue.js'
|
||||
import UserApi from '@/api/user.js';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
/*是否加载完成*/
|
||||
loading: true,
|
||||
/*列表数据*/
|
||||
tableData: [],
|
||||
/*一页多少条*/
|
||||
pageSize: 20,
|
||||
/*一共多少条数据*/
|
||||
totalDataNumber: 0,
|
||||
/*当前是第几页*/
|
||||
curPage: 1,
|
||||
/*横向表单数据模型*/
|
||||
searchForm: {
|
||||
value1: '',
|
||||
},
|
||||
/*左边长度*/
|
||||
formLabelWidth: '120px',
|
||||
/*是否显示*/
|
||||
dialogVisible1: false,
|
||||
/*默认选中*/
|
||||
activeName: 'first',
|
||||
recharge: {
|
||||
balance: {
|
||||
mode: 'inc',
|
||||
remark: '',
|
||||
},
|
||||
points: {
|
||||
mode: 'inc',
|
||||
remark: '',
|
||||
}
|
||||
},
|
||||
source: 0,
|
||||
title: ''
|
||||
};
|
||||
},
|
||||
props: ['open_record', 'form', 'record_type', 'user_id', 'balance_type'],
|
||||
created() {
|
||||
if (this.record_type == 'recharge') {
|
||||
this.title = '充值记录';
|
||||
} else if (this.record_type == 'pay') {
|
||||
this.title = '消费记录';
|
||||
} else if (this.record_type == 'refund') {
|
||||
this.title = '退款记录';
|
||||
}
|
||||
|
||||
this.dialogVisible1 = this.open_record;
|
||||
/*获取列表*/
|
||||
this.getTableList();
|
||||
},
|
||||
methods: {
|
||||
/*选择第几页*/
|
||||
handleCurrentChange(val) {
|
||||
let self = this;
|
||||
self.curPage = val;
|
||||
self.loading = true;
|
||||
self.getTableList();
|
||||
},
|
||||
|
||||
/*每页多少条*/
|
||||
handleSizeChange(val) {
|
||||
this.curPage = 1;
|
||||
this.pageSize = val;
|
||||
this.getTableList();
|
||||
},
|
||||
|
||||
/*获取列表*/
|
||||
getTableList() {
|
||||
let self = this;
|
||||
let Params = self.searchForm;
|
||||
Params.user_id = self.user_id;
|
||||
if (self.record_type == 'recharge') {
|
||||
Params.scene = 10;
|
||||
} else if (self.record_type == 'pay') {
|
||||
Params.scene = 20;
|
||||
} else if (self.record_type == 'refund') {
|
||||
Params.scene = 40;
|
||||
}
|
||||
Params.pay_type = self.balance_type;
|
||||
Params.page = self.curPage;
|
||||
Params.list_rows = self.pageSize;
|
||||
self.loading = true;
|
||||
VenueApi.balaceLog(Params, true).then(res => {
|
||||
self.loading = false;
|
||||
self.tableData = res.data.list.data;
|
||||
self.totalDataNumber = res.data.list.total;
|
||||
}).catch(error => {
|
||||
self.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
/*选中*/
|
||||
handleClick(tab, event) {
|
||||
this.source = tab.index;
|
||||
},
|
||||
/*充值*/
|
||||
addUser(e) {
|
||||
let self = this;
|
||||
let params = self.recharge;
|
||||
let user_id = e;
|
||||
let source = self.source;
|
||||
self.loading = true;
|
||||
UserApi.userRecharge({
|
||||
params: params,
|
||||
user_id: user_id,
|
||||
source: source
|
||||
}, true).then(data => {
|
||||
self.loading = false;
|
||||
if (data.code == 1) {
|
||||
self.$message({
|
||||
message: '恭喜你,修改成功',
|
||||
type: 'success'
|
||||
});
|
||||
self.closeDialogFunc(true);
|
||||
} else {
|
||||
self.loading = false;
|
||||
self.$message.error('错了哦,这是一条错误消息');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
self.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
/*关闭弹窗*/
|
||||
closeDialogFunc(e) {
|
||||
// this.open_record = false;
|
||||
this.$emit('closeDialog', {
|
||||
type: e ? 'success' : 'error',
|
||||
openDialog: false
|
||||
})
|
||||
},
|
||||
|
||||
// 查看充值记录
|
||||
seeRechargeOrder() {
|
||||
|
||||
},
|
||||
|
||||
/*搜索查询*/
|
||||
onSubmit() {
|
||||
this.tableData = [];
|
||||
this.getTableList();
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
.record {
|
||||
color: #409EFF;
|
||||
cursor: pointer;
|
||||
margin-right: 10px;
|
||||
}
|
||||
</style>
|
||||
@ -2,7 +2,7 @@
|
||||
<!--
|
||||
作者:luoyiming
|
||||
时间:2019-10-25
|
||||
描述:会员-用户列表
|
||||
描述:用户-用户列表
|
||||
-->
|
||||
<div class="user">
|
||||
<!--搜索表单-->
|
||||
@ -10,7 +10,7 @@
|
||||
<el-form size="small" :inline="true" :model="formInline" class="demo-form-inline">
|
||||
<el-form-item label="昵称/手机号"><el-input v-model="formInline.nick_name"
|
||||
placeholder="请输入昵称/手机号"></el-input></el-form-item>
|
||||
<el-form-item label="会员等级">
|
||||
<el-form-item label="用户等级">
|
||||
<el-select v-model="formInline.grade_id" placeholder="请选择">
|
||||
<el-option label="全部" value="0"></el-option>
|
||||
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.name"
|
||||
@ -55,15 +55,7 @@
|
||||
<el-table-column fixed="right" label="操作" width="170">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="addClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/user/user/recharge'">充值</el-button>
|
||||
<el-button @click="editClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/user/user/edit'">编辑</el-button>
|
||||
<el-button @click="gradeClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/user/user/grade'">等级</el-button>
|
||||
<el-button @click="tagClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/user/user/delete'">标签</el-button>
|
||||
<el-button @click="deleteClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/user/user/delete'">删除</el-button>
|
||||
v-auth="'/user/user/rechargeCard'">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -77,13 +69,16 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--会员充值-->
|
||||
<Recharge v-if="open_add" :open_add="open_add" :form="userModel" :gradeList="gradeList"
|
||||
@closeDialog="closeDialogFunc($event, 'add')"></Recharge>
|
||||
<!--会员等级-->
|
||||
<!-- 用户充值弹窗 -->
|
||||
<RechargeCard v-if="open_add" :open_add="open_add" :form="userModel" :gradeList="gradeList"
|
||||
@closeDialog="closeDialogFunc($event, 'add')"></RechargeCard>
|
||||
<!--用户充值-->
|
||||
<!-- <Recharge v-if="open_add" :open_add="open_add" :form="userModel" :gradeList="gradeList"
|
||||
@closeDialog="closeDialogFunc($event, 'add')"></Recharge> -->
|
||||
<!--用户等级-->
|
||||
<Grade v-if="open_edit" :open_edit="open_edit" :form="userModel" :gradeList="gradeList"
|
||||
@closeDialog="closeDialogFunc($event, 'edit')"></Grade>
|
||||
<!--会员标签-->
|
||||
<!--用户标签-->
|
||||
<Tag v-if="open_tag" :open_tag="open_tag" :form="userModel" @closeDialog="closeDialogFunc($event, 'tag')"></Tag>
|
||||
</div>
|
||||
</template>
|
||||
@ -92,12 +87,14 @@
|
||||
import UserApi from '@/api/user.js';
|
||||
import Grade from './dialog/Grade.vue';
|
||||
import Recharge from './dialog/Recharge.vue';
|
||||
import RechargeCard from './dialog/RechargeCard.vue';
|
||||
import Tag from './dialog/Tag.vue';
|
||||
export default {
|
||||
components: {
|
||||
/*编辑组件*/
|
||||
Grade,
|
||||
Recharge,
|
||||
RechargeCard,
|
||||
Tag
|
||||
},
|
||||
data() {
|
||||
@ -208,6 +205,7 @@ export default {
|
||||
|
||||
/*关闭弹窗*/
|
||||
closeDialogFunc(e, f) {
|
||||
console.log("🚀 ~ e, f:", e, f)
|
||||
if (f == 'add') {
|
||||
this.open_add = e.openDialog;
|
||||
if (e.type == 'success') {
|
||||
|
||||
142
src/views/venue/order/detail.vue
Normal file
142
src/views/venue/order/detail.vue
Normal file
@ -0,0 +1,142 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="common-form">用户信息</div>
|
||||
<el-form :model="order" :label-width="formLabelWidth">
|
||||
<el-form-item label="用户名称:">
|
||||
<span>{{ order.nickName }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户头像:">
|
||||
<img :src="order.avatarUrl" width="100px" height="100px" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="common-form">费用明细</div>
|
||||
<el-form :model="order" :label-width="formLabelWidth">
|
||||
<el-form-item label="灯光费用">
|
||||
<div>灯光价格: ¥{{ order.light_price }}</div>
|
||||
<div>灯光总价: ¥{{ order.light_all_price }}</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="场地费">
|
||||
<div>场地价格: ¥{{ order.room_price }}</div>
|
||||
<div>场地总价: ¥{{ order.room_all_price }}</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单金额">
|
||||
<span>¥{{ order.order_amount }}</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="common-form">订单信息</div>
|
||||
<el-form :model="order" :label-width="formLabelWidth">
|
||||
<!-- <el-form-item label="场馆名称:">
|
||||
<span>{{ order.name }}</span>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="订单编号:">
|
||||
<span>{{ order.order_sn }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态:">
|
||||
<span v-if="order.order_status == 0" style="color: #F56C6C;">待付款</span>
|
||||
<span v-if="order.order_status == 1">已预约</span>
|
||||
<span v-if="order.order_status == 2" style="color: #67C23A;">进行中</span>
|
||||
<span v-if="order.order_status == 3" style="color: #67C23A; font-weight: bold;">已完结</span>
|
||||
<span v-if="order.order_status == 4">已取消</span>
|
||||
<span v-if="order.order_status == 5">退订/退款</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="支付方式">
|
||||
<span v-if="order.pay_way == 1">余额支付-{{ cardType(order.pay_type) }}</span>
|
||||
<span v-if="order.pay_way == 2">微信支付</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="common-form">预定信息</div>
|
||||
<el-form :model="order" :label-width="formLabelWidth">
|
||||
<el-form-item label="场馆名称:">
|
||||
<span>{{ order.name }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="预定时间:">
|
||||
<span>{{ order.day_time }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="场地信息:">
|
||||
<div v-for="(item, index) in order.trade" :key="item.id">
|
||||
<div>{{ index }}</div>
|
||||
<div class="time-grid">
|
||||
<div class="" v-for="item2 in item" :key="item2.id">
|
||||
{{ item2.start_time }}-{{ item2.end_time }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import VenueApi from '@/api/venue.js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
formLabelWidth: '140px',
|
||||
order: {}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
/*获取订单详情*/
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
// 获取订单详情
|
||||
getData() {
|
||||
let self = this;
|
||||
self.loading = true;
|
||||
const order_id = self.$route.query.order_id;
|
||||
VenueApi.orderGroundDetails({ order_id }, true)
|
||||
.then(res => {
|
||||
this.order = res.data
|
||||
self.loading = false;
|
||||
})
|
||||
.catch(error => { });
|
||||
},
|
||||
|
||||
// 会员卡类型
|
||||
cardType(type) {
|
||||
if (type == 1) {
|
||||
return '白银会员卡'
|
||||
} else if (type == 2) {
|
||||
return '黄金会员卡'
|
||||
} else if (type == 3) {
|
||||
return '铂金会员卡'
|
||||
} else if (type == 4) {
|
||||
return '钻石会员卡'
|
||||
} else if (type == 5) {
|
||||
return '至尊会员卡'
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.time-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 16px;
|
||||
margin-top: 12px;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.time-grid > div {
|
||||
background: #365A9A;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
padding: 12px 0;
|
||||
font-size: 15px;
|
||||
color: #fff;
|
||||
box-shadow: 0 2px 8px rgba(0,0,0,0.04);
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
</style>
|
||||
@ -8,11 +8,14 @@
|
||||
<!--搜索表单-->
|
||||
<div class="common-seach-wrap">
|
||||
<el-form size="small" :inline="true" :model="searchForm" class="demo-form-inline">
|
||||
<el-form-item label="用户昵称">
|
||||
<el-input size="small" v-model="searchForm.nickName" placeholder="请输入用户昵称"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="订单号">
|
||||
<el-input size="small" v-model="searchForm.order_no" placeholder="请输入订单号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号"><el-input v-model="searchForm.mobile" placeholder="请输手机号"></el-input>
|
||||
<el-input size="small" v-model="searchForm.order_sn" placeholder="请输入订单号"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="起始时间">
|
||||
<div class="block">
|
||||
<span class="demonstration"></span>
|
||||
@ -21,6 +24,18 @@
|
||||
end-placeholder="结束日期"></el-date-picker>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="订单状态">
|
||||
<el-select v-model="searchForm.order_status" 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="3"></el-option>
|
||||
<el-option label="已取消" value="4"></el-option>
|
||||
<el-option label="退订/退款" value="5"></el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item>
|
||||
<el-button size="small" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
||||
</el-form-item>
|
||||
@ -28,10 +43,6 @@
|
||||
<el-button size="small" type="success" @click="onExport"
|
||||
v-auth="'/order/operate/export'">导出</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item style="float: right;">
|
||||
<el-button size="small" type="warning" @click="showBatchDelivery"
|
||||
v-auth="'/order/operate/batchDelivery'">批量发货</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!--内容-->
|
||||
@ -46,109 +57,45 @@
|
||||
<el-tab-pane label="已取消" name="4"></el-tab-pane>
|
||||
<el-tab-pane label="退订/退款" name="5"></el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-table size="small" :data="tableData.data" :span-method="arraySpanMethod" border style="width: 100%"
|
||||
v-loading="loading">
|
||||
<el-table-column prop="order_no" label="订单信息" width="400">
|
||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
||||
<el-table-column prop="userInfo" label="用户信息">
|
||||
<template slot-scope="scope">
|
||||
<div class="order-code" v-if="scope.row.is_top_row">
|
||||
<span class="state-text"
|
||||
:class="{ 'state-text-red': scope.row.order_source != 10 }">{{ scope.row.order_source_text }}</span>
|
||||
<span class="c_main">订单号:{{ scope.row.order_no }}</span>
|
||||
<span class="pl16">下单时间:{{ scope.row.create_time }}</span>
|
||||
<!--是否取消申请中-->
|
||||
<span class="pl16" v-if="scope.row.order_status_value == 21"><el-tag effect="dark"
|
||||
size="mini">取消申请中</el-tag></span>
|
||||
</div>
|
||||
<template v-else>
|
||||
<div class="product-info" v-for="(item, index) in scope.row.product" :key="index">
|
||||
<div class="pic"><img v-img-url="item.image.file_path" alt="" /></div>
|
||||
<div class="info">
|
||||
<div class="name gray3 product-name">
|
||||
<span>{{ item.product_name }}</span>
|
||||
</div>
|
||||
<div class="gray9" v-if="item.product_attr">{{ item.product_attr }}</div>
|
||||
<div class="orange" v-if="item.refund">{{ item.refund.type.text }}-{{
|
||||
item.refund.status.text }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-c-c d-c">
|
||||
<div class="orange">¥ {{ item.product_price }}</div>
|
||||
<div class="gray3">x{{ item.total_num }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div class="">用户昵称: {{ scope.row.nickName }}</div>
|
||||
<div class=""><img :src="scope.row.avatarUrl" width="30px" height="30px" /></div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="order_sn" label="订单号"></el-table-column>
|
||||
<el-table-column prop="name" label="场馆"></el-table-column>
|
||||
<el-table-column prop="dtime" label="创建时间"></el-table-column>
|
||||
<el-table-column prop="order_status" label="订单状态">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.order_status == 0" style="color: #F56C6C;">待付款</span>
|
||||
<span v-if="scope.row.order_status == 1">已预约</span>
|
||||
<span v-if="scope.row.order_status == 2" style="color: #67C23A;">进行中</span>
|
||||
<span v-if="scope.row.order_status == 3" style="color: #67C23A; font-weight: bold;">已完结</span>
|
||||
<span v-if="scope.row.order_status == 4">已取消</span>
|
||||
<span v-if="scope.row.order_status == 5">退订/退款</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="order_amount" label="订单金额">
|
||||
<template slot-scope="scope">
|
||||
¥{{ scope.row.order_amount }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="pay_price" label="实付款">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
<div class="orange" v-if="scope.row.order_source != 80">{{ scope.row.pay_price }}</div>
|
||||
<p class="orange" v-if="scope.row.order_source == 80">定金:{{ scope.row.advance.pay_price }}</p>
|
||||
<p class="orange" v-if="scope.row.order_source == 80">尾款:{{ scope.row.pay_price }}</p>
|
||||
<p class="gray9">(含运费:{{ scope.row.express_price }})</p>
|
||||
|
||||
<el-table-column fixed="right" label="操作" width="170">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="detailClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/venue/order/detail'">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="" label="买家">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
<div>{{ scope.row.user ? scope.row.user.nickName : '--' }}</div>
|
||||
<div class="gray9">ID:({{ scope.row.user ? scope.row.user.user_id : '--' }})</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="state_text" label="交易状态">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
{{ scope.row.state_text }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="pay_type.text" label="支付方式">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
<span class="gray9">{{ scope.row.pay_type.text }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="delivery_type.text" label="配送方式">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
<span class="green">{{ scope.row.delivery_type.text }}</span>
|
||||
<span
|
||||
v-if="scope.row.delivery_type.value == 30">手机号:{{ scope.row.user ? scope.row.user.mobile : '--' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="is_comment" label="评价" width="60">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
<span v-if="scope.row.is_comment == 0">未评价</span>
|
||||
<span v-else="">已评价</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="130">
|
||||
<template slot-scope="scope" v-if="!scope.row.is_top_row">
|
||||
<!-- <el-table-column fixed="right" label="操作" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="addClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/order/order/detail'">详情
|
||||
v-auth="'/venue/order/detail'">详情
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.pay_status.value == 20 && scope.row.delivery_status.value == 10
|
||||
&& scope.row.order_status.value != 20 && scope.row.order_status.value != 21
|
||||
&& scope.row.delivery_type.value == 10" @click="addClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/order/order/delivery'">
|
||||
发货
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.pay_status.value == 20 && scope.row.delivery_status.value == 10
|
||||
&& scope.row.order_status.value != 20 && scope.row.order_status.value != 21
|
||||
&& scope.row.delivery_type.value == 20" @click="addClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/order/operate/extract'">
|
||||
核销
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.pay_status.value == 20 && scope.row.delivery_status.value == 10
|
||||
&& scope.row.order_status.value != 20 && scope.row.order_status.value != 21
|
||||
&& scope.row.delivery_type.value == 30" @click="addClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/order/order/delivery'">
|
||||
发货
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.pay_status.value == 20 && scope.row.delivery_status.value == 10
|
||||
&& scope.row.order_status.value == 10" @click="cancelClick(scope.row)" type="text" size="small"
|
||||
v-auth="'/order/order/orderCancel'">
|
||||
取消
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.order_status.value == 21" @click="addClick(scope.row)"
|
||||
type="text" size="small" v-auth="'/order/operate/confirmCancel'">审核</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
</div>
|
||||
<!--分页-->
|
||||
@ -158,22 +105,6 @@
|
||||
:total="totalDataNumber"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="批量发货说明" :visible.sync="dialogBatchDelivery" width="30%">
|
||||
<div>1、先按未发货条件筛选后,导出订单</div>
|
||||
<div>2、在导出excel中填写物流公司、物流单号,然后点批量发货导入填好的excel文件</div>
|
||||
<div>3、请检查物流公司是否已经添加到系统,<el-link type="primary" :underline="false" @click="gotoExpress()">查看</el-link>
|
||||
</div>
|
||||
<div style="padding-top: 20px;padding-bottom: 20px;text-align: center;">
|
||||
<el-upload class="avatar-uploader" ref="upload" action="string"
|
||||
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
:before-upload="onBeforeUploadImage" :http-request="UploadImage" :show-file-list="false">
|
||||
<el-button size="small" icon="el-icon-upload" type="primary">上传发货表格</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--处理-->
|
||||
<!-- <Cancel v-if="open_edit" :open_edit="open_edit" :order_no="order_no" @closeDialog="closeDialogFunc($event, 'edit')">
|
||||
</Cancel> -->
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -202,9 +133,13 @@ export default {
|
||||
curPage: 1,
|
||||
/*横向表单数据模型*/
|
||||
searchForm: {
|
||||
order_no: '',
|
||||
nickName: '',
|
||||
order_sn: '',
|
||||
search: '',
|
||||
create_time: ''
|
||||
create_time: '',
|
||||
start_time: '',
|
||||
end_time: '',
|
||||
nickName: ''
|
||||
},
|
||||
/*配送方式*/
|
||||
exStyle: [],
|
||||
@ -263,34 +198,20 @@ export default {
|
||||
getData() {
|
||||
let self = this;
|
||||
let Params = this.searchForm;
|
||||
Params.dataType = self.activeName == 'all' ? '' : self.activeName;
|
||||
Params.order_status = self.activeName == 'all' ? '' : self.activeName;
|
||||
Params.page = self.curPage;
|
||||
Params.list_rows = self.pageSize;
|
||||
self.loading = true;
|
||||
VenueApi.orderGroundList(Params, true)
|
||||
.then(res => {
|
||||
console.log("🚀 ~ res:", res)
|
||||
// let list = [];
|
||||
// for (let i = 0; i < res.data.list.data.length; i++) {
|
||||
// let item = res.data.list.data[i];
|
||||
// let topitem = {
|
||||
// order_no: item.order_no,
|
||||
// create_time: item.create_time,
|
||||
// order_source: item.order_source,
|
||||
// order_source_text: item.order_source_text,
|
||||
// is_top_row: true,
|
||||
// order_status_value: item.order_status.value,
|
||||
// };
|
||||
// list.push(topitem);
|
||||
// list.push(item);
|
||||
// }
|
||||
// self.tableData.data = list;
|
||||
self.tableData = res.data.data;
|
||||
self.totalDataNumber = res.data.total;
|
||||
self.loading = false;
|
||||
|
||||
// self.totalDataNumber = res.data.list.total;
|
||||
// self.exStyle = res.data.ex_style;
|
||||
// self.shopList = res.data.shop_list;
|
||||
// self.order_count = res.data.order_count.order_count;
|
||||
// self.loading = false;
|
||||
// self.tableData = res.data.data;
|
||||
// self.totalDataNumber = res.data.total;
|
||||
})
|
||||
.catch(error => { });
|
||||
},
|
||||
@ -322,13 +243,21 @@ export default {
|
||||
|
||||
/*搜索查询*/
|
||||
onSubmit() {
|
||||
if (this.searchForm.create_time && this.searchForm.create_time.length == 2) {
|
||||
this.searchForm.start_time = this.searchForm.create_time[0];
|
||||
this.searchForm.end_time = this.searchForm.create_time[1];
|
||||
} else {
|
||||
this.searchForm.start_time = '';
|
||||
this.searchForm.end_time = '';
|
||||
}
|
||||
|
||||
this.curPage = 1;
|
||||
this.tableData = [];
|
||||
this.getData();
|
||||
},
|
||||
onExport: function () {
|
||||
let baseUrl = window.location.protocol + '//' + window.location.host;
|
||||
window.location.href = baseUrl + '/index.php/shop/order.operate/export?' + qs.stringify(this.searchForm);
|
||||
window.location.href = baseUrl + '/index.php/shop/order.operate/orderGroundExport?' + qs.stringify(this.searchForm);
|
||||
},
|
||||
// 显示批量发货说明
|
||||
showBatchDelivery() {
|
||||
@ -383,6 +312,17 @@ export default {
|
||||
param.onError();
|
||||
});
|
||||
},
|
||||
|
||||
// 查看详情
|
||||
detailClick(row) {
|
||||
this.$router.push({
|
||||
path: '/venue/order/detail',
|
||||
query: {
|
||||
order_id: row.order_id,
|
||||
scene: 'view'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -21,8 +21,31 @@
|
||||
<el-input v-model="form.title" autocomplete="off" placeholder="场地标题"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="场地价格" prop="price" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.price" autocomplete="off" placeholder="请输入场地价格"></el-input>
|
||||
<el-form-item label="普通日期场地价格" prop="price" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.price" autocomplete="off" placeholder="请输入普通日期场地价格"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="节假日场地价格" prop="holiday_price" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.holiday_price" autocomplete="off" placeholder="请输入场地价格"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="节假日选择" prop="holiday" :label-width="formLabelWidth">
|
||||
<el-date-picker
|
||||
type="dates"
|
||||
v-model="form.holiday"
|
||||
placeholder="选择一个或多个日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="免费时间段" prop="free_time" :label-width="formLabelWidth">
|
||||
<el-select v-model="form.free_time" multiple placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="灯光价格" prop="light_price" :label-width="formLabelWidth">
|
||||
@ -72,8 +95,15 @@ export default {
|
||||
img: '',
|
||||
title: '',
|
||||
price: '',
|
||||
holiday_price: '',
|
||||
light_price: '',
|
||||
status: '',
|
||||
status: 1,
|
||||
holiday: '',
|
||||
free_time: [
|
||||
'06:00-07:00',
|
||||
'07:00-08:00',
|
||||
'08:00-09:00',
|
||||
]
|
||||
},
|
||||
formRules: {
|
||||
ground_id: [{
|
||||
@ -93,7 +123,22 @@ export default {
|
||||
}],
|
||||
price: [{
|
||||
required: true,
|
||||
message: '请输入场地价格',
|
||||
message: '普通日期场地价格',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
holiday_price: [{
|
||||
required: true,
|
||||
message: '请输入节假日场地价格',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
holiday: [{
|
||||
required: true,
|
||||
message: '请选择节假日',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
free_time: [{
|
||||
required: true,
|
||||
message: '请选择免费时间段',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
light_price: [{
|
||||
@ -107,6 +152,7 @@ export default {
|
||||
trigger: 'blur'
|
||||
}],
|
||||
},
|
||||
options: [],
|
||||
/*左边长度*/
|
||||
formLabelWidth: '120px',
|
||||
/*是否显示*/
|
||||
@ -120,7 +166,17 @@ export default {
|
||||
props: ['open_add', 'addform'],
|
||||
created() {
|
||||
this.dialogVisible = this.open_add;
|
||||
// this.veuneList
|
||||
// 生成 6:00-22:00 的时间段,格式为 { value: '06:00-07:00', label: '06:00 - 07:00' }
|
||||
const start = 6, end = 22;
|
||||
this.options = [];
|
||||
for (let i = start; i < end; i++) {
|
||||
const h1 = i < 10 ? `0${i}` : `${i}`;
|
||||
const h2 = i + 1 < 10 ? `0${i + 1}` : `${i + 1}`;
|
||||
this.options.push({
|
||||
value: `${h1}:00-${h2}:00`,
|
||||
label: `${h1}:00 - ${h2}:00`
|
||||
});
|
||||
}
|
||||
this.getVeuneList()
|
||||
},
|
||||
methods: {
|
||||
@ -140,7 +196,20 @@ export default {
|
||||
/*添加场地*/
|
||||
addUser() {
|
||||
let self = this;
|
||||
let params = self.form;
|
||||
// 复制表单数据
|
||||
let params = { ...self.form };
|
||||
// 处理节假日日期格式
|
||||
if (Array.isArray(params.holiday)) {
|
||||
params.holiday = params.holiday.map(date => {
|
||||
if (typeof date === 'string') return date;
|
||||
const d = new Date(date);
|
||||
const y = d.getFullYear();
|
||||
const m = (d.getMonth() + 1).toString().padStart(2, '0');
|
||||
const day = d.getDate().toString().padStart(2, '0');
|
||||
return `${y}-${m}-${day}`;
|
||||
});
|
||||
params.holiday = params.holiday.join(',');
|
||||
}
|
||||
|
||||
self.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog title="修改场馆" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false"
|
||||
<el-dialog title="修改场地" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false">
|
||||
<el-form size="small" :model="form" :rules="formRules" ref="form">
|
||||
<el-form-item label="选择场馆" prop="ground_id" :label-width="formLabelWidth">
|
||||
@ -21,8 +21,31 @@
|
||||
<el-input v-model="form.title" autocomplete="off" placeholder="场地标题"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="场地价格" prop="price" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.price" autocomplete="off" placeholder="请输入场地价格"></el-input>
|
||||
<el-form-item label="普通日期场地价格" prop="price" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.price" autocomplete="off" placeholder="请输入普通日期场地价格"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="节假日场地价格" prop="holiday_price" :label-width="formLabelWidth">
|
||||
<el-input v-model="form.holiday_price" autocomplete="off" placeholder="请输入场地价格"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="节假日选择" prop="holiday" :label-width="formLabelWidth">
|
||||
<el-date-picker
|
||||
type="dates"
|
||||
v-model="form.holiday"
|
||||
placeholder="选择一个或多个日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="免费时间段" prop="free_time" :label-width="formLabelWidth">
|
||||
<el-select v-model="form.free_time" multiple placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="灯光价格" prop="light_price" :label-width="formLabelWidth">
|
||||
@ -72,8 +95,11 @@ export default {
|
||||
img: '',
|
||||
title: '',
|
||||
price: '',
|
||||
holiday_price: '',
|
||||
light_price: '',
|
||||
status: '',
|
||||
holiday: '',
|
||||
free_time: []
|
||||
},
|
||||
formRules: {
|
||||
ground_id: [{
|
||||
@ -93,7 +119,22 @@ export default {
|
||||
}],
|
||||
price: [{
|
||||
required: true,
|
||||
message: '请输入场地价格',
|
||||
message: '普通日期场地价格',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
holiday_price: [{
|
||||
required: true,
|
||||
message: '请输入节假日场地价格',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
holiday: [{
|
||||
required: true,
|
||||
message: '请选择节假日',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
free_time: [{
|
||||
required: true,
|
||||
message: '请选择免费时间段',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
light_price: [{
|
||||
@ -114,13 +155,27 @@ export default {
|
||||
loading: false,
|
||||
/*是否上传图片*/
|
||||
isupload: false,
|
||||
veuneList: []
|
||||
veuneList: [],
|
||||
options: [],
|
||||
|
||||
};
|
||||
},
|
||||
props: ['open_edit', 'editform'],
|
||||
created() {
|
||||
this.getVeuneList()
|
||||
|
||||
// 生成 6:00-22:00 的时间段,格式为 { value: '06:00-07:00', label: '06:00 - 07:00' }
|
||||
const start = 6, end = 22;
|
||||
this.options = [];
|
||||
for (let i = start; i < end; i++) {
|
||||
const h1 = i < 10 ? `0${i}` : `${i}`;
|
||||
const h2 = i + 1 < 10 ? `0${i + 1}` : `${i + 1}`;
|
||||
this.options.push({
|
||||
value: `${h1}:00-${h2}:00`,
|
||||
label: `${h1}:00 - ${h2}:00`
|
||||
});
|
||||
}
|
||||
|
||||
this.dialogVisible = this.open_edit;
|
||||
console.log(this.editform.model);
|
||||
this.form.id = this.editform.id;
|
||||
@ -128,6 +183,18 @@ export default {
|
||||
this.form.img = this.editform.img_id;
|
||||
this.form.title = this.editform.title;
|
||||
this.form.price = this.editform.price;
|
||||
this.form.holiday_price = this.editform.holiday_price;
|
||||
// 将字符串日期转为 Date 对象,适配 el-date-picker
|
||||
this.form.holiday = this.editform.holiday.split(',').map(str => {
|
||||
// 支持 'YYYY-MM-DD' 格式转 Date
|
||||
if (/^\d{4}-\d{2}-\d{2}$/.test(str)) {
|
||||
return new Date(str.replace(/-/g, '/'));
|
||||
}
|
||||
// 其它格式直接尝试 new Date
|
||||
return new Date(str);
|
||||
});
|
||||
console.log("🚀 ~ this.form.holiday:", this.form.holiday)
|
||||
this.form.free_time = this.editform.free_time;
|
||||
this.form.light_price = this.editform.light_price;
|
||||
this.form.status = this.editform.status;
|
||||
console.log("🚀 ~ this.form:", this.form)
|
||||
@ -153,6 +220,19 @@ export default {
|
||||
let self = this;
|
||||
let params = self.form;
|
||||
|
||||
// 处理节假日日期格式
|
||||
if (Array.isArray(params.holiday)) {
|
||||
params.holiday = params.holiday.map(date => {
|
||||
if (typeof date === 'string') return date;
|
||||
const d = new Date(date);
|
||||
const y = d.getFullYear();
|
||||
const m = (d.getMonth() + 1).toString().padStart(2, '0');
|
||||
const day = d.getDate().toString().padStart(2, '0');
|
||||
return `${y}-${m}-${day}`;
|
||||
});
|
||||
params.holiday = params.holiday.join(',');
|
||||
}
|
||||
|
||||
self.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
self.loading = true;
|
||||
|
||||
@ -51,12 +51,12 @@
|
||||
<el-input v-model="form.contact_phone" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="店铺状态" prop="shop_status" :label-width="formLabelWidth">
|
||||
<!-- <el-form-item label="店铺状态" prop="shop_status" :label-width="formLabelWidth">
|
||||
<el-select v-model="form.shop_status">
|
||||
<el-option label="开店" value="1"></el-option>
|
||||
<el-option label="打烊" value="0"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="详情内容:" prop="textarea1" :label-width="formLabelWidth" v-if="form.type_id == 2">
|
||||
<div class="edit_container">
|
||||
|
||||
@ -51,12 +51,12 @@
|
||||
<el-input v-model="form.contact_phone" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="店铺状态" prop="shop_status" :label-width="formLabelWidth">
|
||||
<!-- <el-form-item label="店铺状态" prop="shop_status" :label-width="formLabelWidth">
|
||||
<el-select v-model="form.shop_status">
|
||||
<el-option label="开店" :value="1"></el-option>
|
||||
<el-option label="打烊" :value="0"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="详情内容:" prop="textarea1" :label-width="formLabelWidth" v-if="form.type_id == 2">
|
||||
<div class="edit_container">
|
||||
|
||||
Reference in New Issue
Block a user