完善后台页面功能

This commit is contained in:
wangxiaowei
2025-12-10 01:35:25 +08:00
parent 8fbceb9f0b
commit a4b327742a
9 changed files with 895 additions and 254 deletions

View File

@ -2,67 +2,39 @@
<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="name" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
<el-form-item label="选择场馆" prop="ground_id" :label-width="formLabelWidth">
<el-select v-model="form.ground_id">
<el-option :value="item.id" :label="item.name" :key="item.id" v-for="item in veuneList"></el-option>
</el-select>
</el-form-item>
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
<el-form-item label="场图" prop="img" :label-width="formLabelWidth">
<el-row>
<el-button type="primary" @click="openUpload">选择图片</el-button>
<div v-if="form.image != ''" class="img">
<div v-if="form.img != ''" class="img">
<img :src="file_path" width="100" height="100" />
</div>
</el-row>
</el-form-item>
<el-form-item label="场馆类型" prop="type_id" :label-width="formLabelWidth">
<el-select v-model="form.type_id">
<el-option label="网球" value="1"></el-option>
<el-option label="篮球" value="2"></el-option>
</el-select>
<el-form-item label="场地标题" prop="title" :label-width="formLabelWidth">
<el-input v-model="form.title" autocomplete="off" placeholder="场地标题"></el-input>
</el-form-item>
<el-form-item label="营业时间" prop="day_time" :label-width="formLabelWidth">
<el-input v-model="form.day_time" autocomplete="off"></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="start_time" :label-width="formLabelWidth">
<el-input v-model="form.start_time" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="营业结束时间" prop="end_time" :label-width="formLabelWidth">
<el-input v-model="form.end_time" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="场馆地址" prop="address" :label-width="formLabelWidth">
<el-input v-model="form.address" autocomplete="off"></el-input>
</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>
<el-form-item label="场馆经度" prop="longitude" :label-width="formLabelWidth">
<el-input v-model="form.longitude" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="场馆纬度" prop="latitude" :label-width="formLabelWidth">
<el-input v-model="form.latitude" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="contact_phone" :label-width="formLabelWidth">
<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-select v-model="form.shop_status">
<el-option label="开店" value="1"></el-option>
<el-option label="打烊" value="0"></el-option>
<el-form-item label="场地状态" prop="status" :label-width="formLabelWidth">
<el-select v-model="form.status">
<el-option :value="1" label="启用"></el-option>
<el-option :value="0" label="禁用"></el-option>
</el-select>
</el-form-item>
<el-form-item label="详情内容:" prop="textarea1" :label-width="formLabelWidth" v-if="form.type_id == 2">
<div class="edit_container">
<Uediter :text="form.textarea1" :config="ueditor.config" ref="ue"
@contentChange="contentChangeFunc"></Uediter>
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible">取 消</el-button>
@ -96,80 +68,44 @@ export default {
},
},
form: {
name: '',
image: '',
type_id: '',
day_time: '',
start_time: '',
end_time: '',
contact_phone: '',
address: '',
longitude: '',
latitude: '',
textarea1: '',
shop_status: ''
ground_id: '',
img: '',
title: '',
price: '',
light_price: '',
status: '',
},
formRules: {
name: [{
ground_id: [{
required: true,
message: '请输入场馆名称',
message: '请选择场地',
trigger: 'blur'
}],
image: [{
img: [{
required: true,
message: '请上传场图片',
message: '请上传场图片',
trigger: 'blur'
}],
type_id: [{
title: [{
required: true,
message: '请选择场馆类型',
message: '请输入场地标题',
trigger: 'blur'
}],
day_time: [{
price: [{
required: true,
message: '请输入营业时间',
trigger: 'blur'
}],
start_time: [{
required: true,
message: '请输入营业开始时间',
message: '请输入场地价格',
trigger: 'blur'
}],
end_time: [{
light_price: [{
required: true,
message: '请输入营业结束时间',
trigger: 'blur'
}],
contact_phone: [{
required: true,
message: '请输入联系电话',
trigger: 'blur'
}],
address: [{
required: true,
message: '请输入详细地址',
trigger: 'blur'
}],
longitude: [{
required: true,
message: '请输入经度',
message: '请输入灯光价格',
trigger: 'blur'
}],
latitude: [{
status: [{
required: true,
message: '请输入纬度',
message: '请选择场地状态',
trigger: 'blur'
}],
shop_status: [{
required: true,
message: '请选择店铺状态',
trigger: 'change'
}],
textarea1: [{
required: true,
message: '请输入详情',
trigger: 'blur'
}],
}],
},
/*左边长度*/
formLabelWidth: '120px',
@ -178,27 +114,41 @@ export default {
loading: false,
/*是否上传图片*/
isupload: false,
veuneList: []
};
},
props: ['open_edit', 'editform'],
created() {
this.getVeuneList()
this.dialogVisible = this.open_edit;
console.log(this.editform.model);
this.form.name = this.editform.name;
this.form.image = this.editform.image;
this.form.type_id = this.editform.type_id;
this.form.day_time = this.editform.day_time;
this.form.start_time = this.editform.start_time;
this.form.end_time = this.editform.end_time;
this.form.contact_phone = this.editform.contact_phone;
this.form.address = this.editform.address;
this.form.longitude = this.editform.longitude;
this.form.latitude = this.editform.latitude;
this.form.textarea1 = this.editform.textarea1;
this.form.shop_status = this.editform.shop_status;
this.form.id = this.editform.id;
this.form.ground_id = this.editform.ground_id;
this.form.img = this.editform.img_id;
this.form.title = this.editform.title;
this.form.price = this.editform.price;
this.form.light_price = this.editform.light_price;
this.form.status = this.editform.status;
console.log("🚀 ~ this.form:", this.form)
this.file_path = this.editform.img;
},
methods: {
/*添加场馆*/
// 获取场馆列表-不需要分页
getVeuneList() {
let self = this;
VenueApi.gdLists({}, true)
.then(res => {
// 确保为数组
self.veuneList = Array.isArray(res.data) ? res.data : [];
console.log("🚀 ~ self.veuneList:", self.veuneList)
})
.catch(error => {
self.loading = false;
});
},
/*添加场地*/
addUser() {
let self = this;
let params = self.form;
@ -206,7 +156,7 @@ export default {
self.$refs.form.validate((valid) => {
if (valid) {
self.loading = true;
VenueApi.addGround(params).then(data => {
VenueApi.editGroundRoom(params).then(data => {
self.loading = false;
self.$message({
message: '添加成功',
@ -248,7 +198,7 @@ export default {
returnImgsFunc(e) {
if (e != null && e.length > 0) {
this.file_path = e[0].file_path;
this.form.image = e[0].file_id;
this.form.img = e[0].file_id;
}
this.isupload = false;
},