完善功能

This commit is contained in:
wangxiaowei
2025-12-11 19:18:00 +08:00
parent 5451320192
commit ec780412cf
7 changed files with 197 additions and 11 deletions

View File

@ -62,6 +62,10 @@ let VenueApi = {
return request._post('/shop/user.balance/log', data, errorback);
},
/*场地使用率*/
groundRoomRate(data, errorback) {
return request._post('/shop/ground.groundRoom/groundRoomRate', data, errorback);
},
}
export default VenueApi;

View File

@ -13,11 +13,11 @@
<div class="common-form">费用明细</div>
<el-form :model="order" :label-width="formLabelWidth">
<el-form-item label="灯光费用">
<div>灯光价格: {{ order.light_price }}</div>
<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_price }}/小时</div>
<div>场地总价: {{ order.room_all_price }}</div>
</el-form-item>
<el-form-item label="订单金额">
@ -37,8 +37,8 @@
<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 == 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>

View File

@ -48,6 +48,17 @@
</el-select>
</el-form-item>
<el-form-item label="高峰期时间段" prop="hit_time" :label-width="formLabelWidth">
<el-select v-model="form.hit_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">
<el-input v-model="form.light_price" autocomplete="off" placeholder="请输入场馆价格"></el-input>
</el-form-item>
@ -103,7 +114,8 @@ export default {
'06:00-07:00',
'07:00-08:00',
'08:00-09:00',
]
],
hit_time:[]
},
formRules: {
ground_id: [{
@ -140,6 +152,11 @@ export default {
required: true,
message: '请选择免费时间段',
trigger: 'blur'
}],
hit_time: [{
required: true,
message: '请选择高峰时间段',
trigger: 'blur'
}],
light_price: [{
required: true,

View File

@ -0,0 +1,126 @@
<template>
<el-dialog title="场地使用率" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false"
:close-on-press-escape="false">
<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.start_time" 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>
<div style="">
<div style="text-align: center;">场地使用率</div>
<div style="margin-top: 20px;display: flex; justify-content: center;">
<el-progress type="circle" :percentage="percentage"></el-progress>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<!-- <el-button @click="dialogFormVisible">取 消</el-button>
<el-button type="primary" @click="addUser" :loading="loading"> </el-button> -->
</div>
</el-dialog>
</template>
<script>
import PorductApi from '@/api/product.js';
import Upload from '@/components/file/Upload';
import Uediter from '@/components/UE.vue';
import VenueApi from '@/api/venue.js';
export default {
components: {
Upload,
Uediter,
},
data() {
return {
/*富文本框配置*/
ueditor: {
text: '',
config: {
initialFrameWidth: 400,
initialFrameHeight: 500
},
},
searchForm: {
start_time: '',
end_time: ''
},
/*左边长度*/
formLabelWidth: '120px',
/*是否显示*/
dialogVisible: false,
loading: false,
/*是否上传图片*/
isupload: false,
model: {},
percentage: 0
};
},
props: ['open_data', 'dataform'],
created() {
this.model = this.dataform;
this.dialogVisible = this.open_data;
this.getData()
},
methods: {
getData() {
const Params = this.searchForm
Params.room_id = this.model.id
if (Params.start_time && Params.end_time) {
Params.start_time = Params.start_time
Params.end_time = Params.end_time
}
VenueApi.groundRoomRate(Params, true).then(res => {
console.log("🚀 ~ res:", res)
}).catch(error => {
console.log("🚀 ~ error:", error)
})
},
/*关闭弹窗*/
dialogFormVisible(e) {
if (e) {
this.$emit('closeDialog', {
type: 'success',
openDialog: false
})
} else {
this.$emit('closeDialog', {
type: 'error',
openDialog: false
})
}
},
onSubmit() {
let self = this;
self.loading = true;
const start_time = self.searchForm.start_time;
self.searchForm.start_time = start_time[0]
self.searchForm.end_time = start_time[1]
self.getData();
}
}
};
</script>
<style>
.img {
margin-top: 10px;
}
</style>

View File

@ -47,6 +47,17 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="高峰期时间段" prop="hit_time" :label-width="formLabelWidth">
<el-select v-model="form.hit_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">
<el-input v-model="form.light_price" autocomplete="off" placeholder="请输入场馆价格"></el-input>
@ -99,7 +110,8 @@ export default {
light_price: '',
status: '',
holiday: '',
free_time: []
free_time: [],
hit_time: [],
},
formRules: {
ground_id: [{
@ -136,7 +148,12 @@ export default {
required: true,
message: '请选择免费时间段',
trigger: 'blur'
}],
}],
hit_time: [{
required: true,
message: '请选择高峰期时间段',
trigger: 'blur'
}],
light_price: [{
required: true,
message: '请输入灯光价格',
@ -195,6 +212,7 @@ export default {
});
console.log("🚀 ~ this.form.holiday:", this.form.holiday)
this.form.free_time = this.editform.free_time;
this.form.hit_time = this.editform.hit_time;
this.form.light_price = this.editform.light_price;
this.form.status = this.editform.status;
console.log("🚀 ~ this.form:", this.form)

View File

@ -48,6 +48,8 @@
v-auth="'/venue/room/edit'">编辑</el-button>
<el-button @click="deleteClick(scope.row)" type="text" size="small"
v-auth="'/venue/room/delete'">删除</el-button>
<el-button @click="dataClick(scope.row)" type="text" size="small"
v-auth="'/venue/room/data'">使用率</el-button>
</template>
</el-table-column>
</el-table>
@ -65,6 +67,8 @@
<Add v-if="open_add" :open_add="open_add" @closeDialog="closeDialogFunc($event, 'add')"></Add>
<!--修改-->
<Edit v-if="open_edit" :open_edit="open_edit" :editform="venueModel" @closeDialog="closeDialogFunc($event, 'edit')"></Edit>
<!-- 使用率 -->
<Data v-if="open_data" :open_data="open_data" :dataform="venueModel" @closeDialog="closeDialogFunc($event, 'data')"></Data>
</div>
</template>
@ -73,12 +77,14 @@ import UserApi from '@/api/user.js';
import VenueApi from '@/api/venue.js';
import Add from './Add.vue';
import Edit from './Edit.vue';
import Data from './Data.vue';
export default {
components: {
/*编辑组件*/
Edit,
Add
Add,
Data
},
data() {
return {
@ -102,6 +108,7 @@ export default {
open_add: false,
/*是否打开编辑弹窗*/
open_edit: false,
open_data: false,
/*当前编辑的对象*/
venueModel: {},
veuneList: {}
@ -208,6 +215,12 @@ export default {
this.getTableList();
}
}
if (f == 'data') {
this.open_add = e.openDialog;
if (e.type == 'success') {
this.getTableList();
}
}
},
/*删除场地*/
@ -246,7 +259,13 @@ export default {
.catch(() => {
self.loading = false;
});
}
},
// 打开使用率
dataClick(item) {
this.open_data = true;
this.venueModel = item;
},
}
};
</script>

View File

@ -29,7 +29,7 @@
<el-button @click="editClick(scope.row)" type="text" size="small"
v-auth="'/venue/venue/edit'">编辑</el-button>
<el-button @click="deleteClick(scope.row)" type="text" size="small"
v-auth="'/venue/venue/delete'">删除</el-button>
v-auth="'/venue/venue/delete'">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -55,12 +55,14 @@ import UserApi from '@/api/user.js';
import VenueApi from '@/api/venue.js';
import Add from './Add.vue';
import Edit from './Edit.vue';
import Data from './Edit.vue';
export default {
components: {
/*编辑组件*/
Edit,
Add
Add,
Data
},
data() {
return {