完善商城
This commit is contained in:
22
README.md
22
README.md
@ -1,21 +1 @@
|
|||||||
# jjj_shop_web
|
# 秀湖网球
|
||||||
|
|
||||||
> 1.0.0
|
|
||||||
|
|
||||||
## Build Setup
|
|
||||||
|
|
||||||
``` bash
|
|
||||||
# install dependencies
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# serve with hot reload at localhost:8080
|
|
||||||
npm run dev
|
|
||||||
|
|
||||||
# build for production with minification
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
# build for production and view the bundle analyzer report
|
|
||||||
npm run build --report
|
|
||||||
```
|
|
||||||
|
|
||||||
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
|
|
||||||
|
|||||||
26
src/api/venue.js
Normal file
26
src/api/venue.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
let VenueApi = {
|
||||||
|
|
||||||
|
/*场馆列表*/
|
||||||
|
groundList(data, errorback) {
|
||||||
|
return request._post('/shop/ground.ground/groundList', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*添加场馆*/
|
||||||
|
addGround(data, errorback) {
|
||||||
|
return request._post('/shop/ground.ground/addGround', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*编辑场馆*/
|
||||||
|
editGround(data, errorback) {
|
||||||
|
return request._post('/shop/ground.ground/editGround', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*删除场馆*/
|
||||||
|
delGround(data, errorback) {
|
||||||
|
return request._post('/shop/ground.ground/delGround', data, errorback);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
export default VenueApi;
|
||||||
@ -24,6 +24,8 @@ Vue.prototype.$filter = filters;
|
|||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
|
Vue.prototype.$app_id = 10001
|
||||||
|
|
||||||
/* eslint-disable no-new */
|
/* eslint-disable no-new */
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
<!--主菜单-->
|
<!--主菜单-->
|
||||||
<div class="menu-wrapper">
|
<div class="menu-wrapper">
|
||||||
<div class="home-login">
|
<div class="home-login">
|
||||||
<div :class="active_menu != null ? 'home-icon' : 'home-icon router-link-active'" @click="choseMenu(null)">
|
<div>
|
||||||
<span class="icon iconfont icon-tubiaozhizuomoban-"></span>
|
<img src="https://xh.stnav.com/uploads/sport/logo.jpg" alt="" style="width: 36px; height: 36px; border-radius: 36px;">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-c-c">
|
<div class="d-c-c">
|
||||||
<span class="p-10-0 blue fb tc">{{baseInfo.shop_name}}</span>
|
<span class="p-10-0 blue fb tc">秀湖网球中心</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-wrapper mt10">
|
<div class="nav-wrapper mt10">
|
||||||
<div class="first-menu-content">
|
<div class="first-menu-content">
|
||||||
|
|||||||
3
src/views/recharge/recharge/index.vue
Normal file
3
src/views/recharge/recharge/index.vue
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
<view class="">这里是充卡汇总页面</view>
|
||||||
|
</template>
|
||||||
256
src/views/venue/room/Add.vue
Normal file
256
src/views/venue/room/Add.vue
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
<template>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
|
||||||
|
<el-row>
|
||||||
|
<el-button type="primary" @click="openUpload">选择图片</el-button>
|
||||||
|
<div v-if="form.image != ''" 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>
|
||||||
|
|
||||||
|
<el-form-item label="营业时间" prop="day_time" :label-width="formLabelWidth">
|
||||||
|
<el-input v-model="form.day_time" 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" placeholder="6:00"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="营业结束时间" prop="end_time" :label-width="formLabelWidth">
|
||||||
|
<el-input v-model="form.end_time" autocomplete="off" placeholder="22:00"></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="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>
|
||||||
|
<div>经纬度获取,可通过地图软件获取,例如: http://jingweidu.757dy.com/</div>
|
||||||
|
</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-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>
|
||||||
|
<el-button type="primary" @click="addUser" :loading="loading">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
<!--上传图片组件-->
|
||||||
|
<Upload v-if="isupload" :isupload="isupload" :type="type" @returnImgs="returnImgsFunc">上传图片</Upload>
|
||||||
|
</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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
name: '',
|
||||||
|
image: '',
|
||||||
|
type_id: '',
|
||||||
|
day_time: '',
|
||||||
|
start_time: '',
|
||||||
|
end_time: '',
|
||||||
|
contact_phone: '',
|
||||||
|
address: '',
|
||||||
|
longitude: '',
|
||||||
|
latitude: '',
|
||||||
|
textarea1: '',
|
||||||
|
shop_status: ''
|
||||||
|
},
|
||||||
|
formRules: {
|
||||||
|
name: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入场馆名称',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
image: [{
|
||||||
|
required: true,
|
||||||
|
message: '请上传场馆图片',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
type_id: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择场馆类型',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
day_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
start_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业开始时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
end_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业结束时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
contact_phone: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入联系电话',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
type_id: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择场馆类型',
|
||||||
|
trigger: 'change'
|
||||||
|
}],
|
||||||
|
address: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详细地址',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
longitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入经度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
latitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入纬度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
shop_status: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择店铺状态',
|
||||||
|
trigger: 'change'
|
||||||
|
}],
|
||||||
|
textarea1: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详情',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
/*左边长度*/
|
||||||
|
formLabelWidth: '120px',
|
||||||
|
/*是否显示*/
|
||||||
|
dialogVisible: false,
|
||||||
|
loading: false,
|
||||||
|
/*是否上传图片*/
|
||||||
|
isupload: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: ['open_add', 'addform'],
|
||||||
|
created() {
|
||||||
|
this.dialogVisible = this.open_add;
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/*添加场馆*/
|
||||||
|
addUser() {
|
||||||
|
let self = this;
|
||||||
|
let params = self.form;
|
||||||
|
|
||||||
|
self.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
self.loading = true;
|
||||||
|
VenueApi.addGround(params).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.$message({
|
||||||
|
message: '添加成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.dialogFormVisible(true);
|
||||||
|
}).catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*获取富文本内容*/
|
||||||
|
contentChangeFunc(e){
|
||||||
|
this.form.textarea1 = e;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
dialogFormVisible(e) {
|
||||||
|
if (e) {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'success',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'error',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*上传*/
|
||||||
|
openUpload(e) {
|
||||||
|
this.type = e;
|
||||||
|
this.isupload = true;
|
||||||
|
},
|
||||||
|
/*获取图片*/
|
||||||
|
returnImgsFunc(e) {
|
||||||
|
if (e != null && e.length > 0) {
|
||||||
|
this.file_path = e[0].file_path;
|
||||||
|
this.form.image = e[0].file_id;
|
||||||
|
}
|
||||||
|
this.isupload = false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.img {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
264
src/views/venue/room/Edit.vue
Normal file
264
src/views/venue/room/Edit.vue
Normal file
@ -0,0 +1,264 @@
|
|||||||
|
<template>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
|
||||||
|
<el-row>
|
||||||
|
<el-button type="primary" @click="openUpload">选择图片</el-button>
|
||||||
|
<div v-if="form.image != ''" 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>
|
||||||
|
|
||||||
|
<el-form-item label="营业时间" prop="day_time" :label-width="formLabelWidth">
|
||||||
|
<el-input v-model="form.day_time" autocomplete="off"></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="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-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>
|
||||||
|
<el-button type="primary" @click="addUser" :loading="loading">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
<!--上传图片组件-->
|
||||||
|
<Upload v-if="isupload" :isupload="isupload" :type="type" @returnImgs="returnImgsFunc">上传图片</Upload>
|
||||||
|
</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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
name: '',
|
||||||
|
image: '',
|
||||||
|
type_id: '',
|
||||||
|
day_time: '',
|
||||||
|
start_time: '',
|
||||||
|
end_time: '',
|
||||||
|
contact_phone: '',
|
||||||
|
address: '',
|
||||||
|
longitude: '',
|
||||||
|
latitude: '',
|
||||||
|
textarea1: '',
|
||||||
|
shop_status: ''
|
||||||
|
},
|
||||||
|
formRules: {
|
||||||
|
name: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入场馆名称',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
image: [{
|
||||||
|
required: true,
|
||||||
|
message: '请上传场馆图片',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
type_id: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择场馆类型',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
day_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
start_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业开始时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
end_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业结束时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
contact_phone: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入联系电话',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
address: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详细地址',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
longitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入经度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
latitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入纬度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
shop_status: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择店铺状态',
|
||||||
|
trigger: 'change'
|
||||||
|
}],
|
||||||
|
textarea1: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详情',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
/*左边长度*/
|
||||||
|
formLabelWidth: '120px',
|
||||||
|
/*是否显示*/
|
||||||
|
dialogVisible: false,
|
||||||
|
loading: false,
|
||||||
|
/*是否上传图片*/
|
||||||
|
isupload: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: ['open_edit', 'editform'],
|
||||||
|
created() {
|
||||||
|
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;
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/*添加场馆*/
|
||||||
|
addUser() {
|
||||||
|
let self = this;
|
||||||
|
let params = self.form;
|
||||||
|
|
||||||
|
self.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
self.loading = true;
|
||||||
|
VenueApi.addGround(params).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.$message({
|
||||||
|
message: '添加成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.dialogFormVisible(true);
|
||||||
|
}).catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*获取富文本内容*/
|
||||||
|
contentChangeFunc(e){
|
||||||
|
this.form.textarea1 = e;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
dialogFormVisible(e) {
|
||||||
|
if (e) {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'success',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'error',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*上传*/
|
||||||
|
openUpload(e) {
|
||||||
|
this.type = e;
|
||||||
|
this.isupload = true;
|
||||||
|
},
|
||||||
|
/*获取图片*/
|
||||||
|
returnImgsFunc(e) {
|
||||||
|
if (e != null && e.length > 0) {
|
||||||
|
this.file_path = e[0].file_path;
|
||||||
|
this.form.image = e[0].file_id;
|
||||||
|
}
|
||||||
|
this.isupload = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.img {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
215
src/views/venue/room/index.vue
Normal file
215
src/views/venue/room/index.vue
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
<template>
|
||||||
|
<div class="venue">
|
||||||
|
<!--搜索表单-->
|
||||||
|
<div class="common-seach-wrap">
|
||||||
|
<el-form size="small" :inline="true" :model="formInline" class="demo-form-inline">
|
||||||
|
<el-form-item label="包间标题"><el-input v-model="formInline.title"
|
||||||
|
placeholder="请输入包间标题"></el-input></el-form-item>
|
||||||
|
<el-form-item><el-button type="primary" icon="el-icon-search"
|
||||||
|
@click="onSubmit">查询</el-button></el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--添加包间-->
|
||||||
|
<div class="common-level-rail"><el-button size="small" type="primary" icon="el-icon-plus" @click="addClick" v-auth="'/venue/room/add'">添加包间</el-button></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="id" label="ID" width="80"></el-table-column>
|
||||||
|
<el-table-column prop="nickName" label="包间名称"></el-table-column>
|
||||||
|
<!-- <el-table-column prop="nickName" label="微信头像">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<img :src="scope.row.avatarUrl" width="30px" height="30px" />
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<el-table-column prop="create_time" label="注册时间" width="140"></el-table-column>
|
||||||
|
<el-table-column fixed="right" label="操作" width="170">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button @click="editClick(scope.row)" type="text" size="small"
|
||||||
|
v-auth="'/venue/room/edit'">编辑</el-button>
|
||||||
|
<el-button @click="deleteClick(scope.row)" type="text" size="small"
|
||||||
|
v-auth="'/venue/room/delete'">删除</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>
|
||||||
|
|
||||||
|
<!--添加-->
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import UserApi from '@/api/user.js';
|
||||||
|
import VenueApi from '@/api/venue.js';
|
||||||
|
import Add from './Add.vue';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
/*编辑组件*/
|
||||||
|
// Edit,
|
||||||
|
Add
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
/*是否加载完成*/
|
||||||
|
loading: true,
|
||||||
|
/*列表数据*/
|
||||||
|
tableData: [],
|
||||||
|
/*一页多少条*/
|
||||||
|
pageSize: 20,
|
||||||
|
/*一共多少条数据*/
|
||||||
|
totalDataNumber: 0,
|
||||||
|
/*当前是第几页*/
|
||||||
|
curPage: 1,
|
||||||
|
/*横向表单数据模型*/
|
||||||
|
formInline: {
|
||||||
|
title: ''
|
||||||
|
},
|
||||||
|
/*是否打开添加弹窗*/
|
||||||
|
open_add: false,
|
||||||
|
/*是否打开编辑弹窗*/
|
||||||
|
open_edit: false,
|
||||||
|
/*当前编辑的对象*/
|
||||||
|
venueModel: {},
|
||||||
|
/*等级*/
|
||||||
|
gradeList: [],
|
||||||
|
open_tag: false,
|
||||||
|
/*所有标签*/
|
||||||
|
allTag: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
/*获取列表*/
|
||||||
|
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.formInline;
|
||||||
|
Params.page = self.curPage;
|
||||||
|
Params.list_rows = self.pageSize;
|
||||||
|
VenueApi.groundList(Params, true)
|
||||||
|
.then(res => {
|
||||||
|
console.log("🚀 ~ res:", res)
|
||||||
|
self.loading = false;
|
||||||
|
self.tableData = res.data.list.data;
|
||||||
|
self.totalDataNumber = res.data.list.total;
|
||||||
|
self.gradeList = res.data.grade;
|
||||||
|
self.allTag = res.data.allTag;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*搜索查询*/
|
||||||
|
onSubmit() {
|
||||||
|
let self = this;
|
||||||
|
self.loading = true;
|
||||||
|
self.curPage = 1;
|
||||||
|
self.getTableList();
|
||||||
|
},
|
||||||
|
|
||||||
|
/*打开添加*/
|
||||||
|
addClick(item) {
|
||||||
|
this.open_add = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*打开编辑*/
|
||||||
|
editClick(item) {
|
||||||
|
this.venueModel = item;
|
||||||
|
this.open_edit = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
closeDialogFunc(e, f) {
|
||||||
|
if (f == 'add') {
|
||||||
|
this.open_add = e.openDialog;
|
||||||
|
if (e.type == 'success') {
|
||||||
|
this.getTableList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (f == 'edit') {
|
||||||
|
this.open_edit = e.openDialog;
|
||||||
|
if (e.type == 'success') {
|
||||||
|
this.getTableList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (f == 'tag') {
|
||||||
|
this.open_tag = e.openDialog;
|
||||||
|
if (e.type == 'success') {
|
||||||
|
this.getTableList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*删除用户*/
|
||||||
|
deleteClick(row) {
|
||||||
|
let self = this;
|
||||||
|
self
|
||||||
|
.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
self.loading = true;
|
||||||
|
UserApi.deleteuser(
|
||||||
|
{
|
||||||
|
user_id: row.user_id
|
||||||
|
},
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
if (data.code == 1) {
|
||||||
|
self.$message({
|
||||||
|
message: '恭喜你,用户删除成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.getTableList();
|
||||||
|
} else {
|
||||||
|
self.loading = false;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style></style>
|
||||||
256
src/views/venue/venue/Add.vue
Normal file
256
src/views/venue/venue/Add.vue
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
<template>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
|
||||||
|
<el-row>
|
||||||
|
<el-button type="primary" @click="openUpload">选择图片</el-button>
|
||||||
|
<div v-if="form.image != ''" 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>
|
||||||
|
|
||||||
|
<el-form-item label="营业时间" prop="day_time" :label-width="formLabelWidth">
|
||||||
|
<el-input v-model="form.day_time" 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" placeholder="6:00"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="营业结束时间" prop="end_time" :label-width="formLabelWidth">
|
||||||
|
<el-input v-model="form.end_time" autocomplete="off" placeholder="22:00"></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="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>
|
||||||
|
<div>经纬度获取,可通过地图软件获取,例如: http://jingweidu.757dy.com/</div>
|
||||||
|
</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-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>
|
||||||
|
<el-button type="primary" @click="addUser" :loading="loading">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
<!--上传图片组件-->
|
||||||
|
<Upload v-if="isupload" :isupload="isupload" :type="type" @returnImgs="returnImgsFunc">上传图片</Upload>
|
||||||
|
</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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
name: '',
|
||||||
|
image: '',
|
||||||
|
type_id: '',
|
||||||
|
day_time: '',
|
||||||
|
start_time: '',
|
||||||
|
end_time: '',
|
||||||
|
contact_phone: '',
|
||||||
|
address: '',
|
||||||
|
longitude: '',
|
||||||
|
latitude: '',
|
||||||
|
textarea1: '',
|
||||||
|
shop_status: ''
|
||||||
|
},
|
||||||
|
formRules: {
|
||||||
|
name: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入场馆名称',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
image: [{
|
||||||
|
required: true,
|
||||||
|
message: '请上传场馆图片',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
type_id: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择场馆类型',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
day_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
start_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业开始时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
end_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业结束时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
contact_phone: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入联系电话',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
type_id: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择场馆类型',
|
||||||
|
trigger: 'change'
|
||||||
|
}],
|
||||||
|
address: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详细地址',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
longitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入经度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
latitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入纬度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
shop_status: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择店铺状态',
|
||||||
|
trigger: 'change'
|
||||||
|
}],
|
||||||
|
textarea1: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详情',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
/*左边长度*/
|
||||||
|
formLabelWidth: '120px',
|
||||||
|
/*是否显示*/
|
||||||
|
dialogVisible: false,
|
||||||
|
loading: false,
|
||||||
|
/*是否上传图片*/
|
||||||
|
isupload: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: ['open_add', 'addform'],
|
||||||
|
created() {
|
||||||
|
this.dialogVisible = this.open_add;
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/*添加场馆*/
|
||||||
|
addUser() {
|
||||||
|
let self = this;
|
||||||
|
let params = self.form;
|
||||||
|
|
||||||
|
self.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
self.loading = true;
|
||||||
|
VenueApi.addGround(params).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.$message({
|
||||||
|
message: '添加成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.dialogFormVisible(true);
|
||||||
|
}).catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*获取富文本内容*/
|
||||||
|
contentChangeFunc(e){
|
||||||
|
this.form.textarea1 = e;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
dialogFormVisible(e) {
|
||||||
|
if (e) {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'success',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'error',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*上传*/
|
||||||
|
openUpload(e) {
|
||||||
|
this.type = e;
|
||||||
|
this.isupload = true;
|
||||||
|
},
|
||||||
|
/*获取图片*/
|
||||||
|
returnImgsFunc(e) {
|
||||||
|
if (e != null && e.length > 0) {
|
||||||
|
this.file_path = e[0].file_path;
|
||||||
|
this.form.image = e[0].file_id;
|
||||||
|
}
|
||||||
|
this.isupload = false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.img {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
271
src/views/venue/venue/Edit.vue
Normal file
271
src/views/venue/venue/Edit.vue
Normal file
@ -0,0 +1,271 @@
|
|||||||
|
<template>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
|
||||||
|
<el-row>
|
||||||
|
<el-button type="primary" @click="openUpload">选择图片</el-button>
|
||||||
|
|
||||||
|
<div v-if="form.image != ''" 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>
|
||||||
|
|
||||||
|
<el-form-item label="营业时间" prop="day_time" :label-width="formLabelWidth">
|
||||||
|
<el-input v-model="form.day_time" autocomplete="off"></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="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-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>
|
||||||
|
<el-button type="primary" @click="addUser" :loading="loading">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
<!--上传图片组件-->
|
||||||
|
<Upload v-if="isupload" :isupload="isupload" :type="type" @returnImgs="returnImgsFunc">上传图片</Upload>
|
||||||
|
</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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
id: 0,
|
||||||
|
name: '',
|
||||||
|
image: '',
|
||||||
|
type_id: '',
|
||||||
|
day_time: '',
|
||||||
|
start_time: '',
|
||||||
|
end_time: '',
|
||||||
|
contact_phone: '',
|
||||||
|
address: '',
|
||||||
|
longitude: '',
|
||||||
|
latitude: '',
|
||||||
|
textarea1: '',
|
||||||
|
shop_status: ''
|
||||||
|
},
|
||||||
|
file_path: '',
|
||||||
|
formRules: {
|
||||||
|
name: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入场馆名称',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
image: [{
|
||||||
|
required: true,
|
||||||
|
message: '请上传场馆图片',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
type_id: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择场馆类型',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
day_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
start_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业开始时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
end_time: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入营业结束时间',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
contact_phone: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入联系电话',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
address: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详细地址',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
longitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入经度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
latitude: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入纬度',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
shop_status: [{
|
||||||
|
required: true,
|
||||||
|
message: '请选择店铺状态',
|
||||||
|
trigger: 'change'
|
||||||
|
}],
|
||||||
|
textarea1: [{
|
||||||
|
required: true,
|
||||||
|
message: '请输入详情',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
/*左边长度*/
|
||||||
|
formLabelWidth: '120px',
|
||||||
|
/*是否显示*/
|
||||||
|
dialogVisible: false,
|
||||||
|
loading: false,
|
||||||
|
/*是否上传图片*/
|
||||||
|
isupload: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: ['open_edit', 'editform'],
|
||||||
|
created() {
|
||||||
|
this.dialogVisible = this.open_edit;
|
||||||
|
console.log(this.editform);
|
||||||
|
this.form.id = this.editform.id;
|
||||||
|
this.form.name = this.editform.name;
|
||||||
|
this.form.image = this.editform.image_id;
|
||||||
|
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.file_path = this.editform.image;
|
||||||
|
console.log("🚀 ~ this.file_path:", this.file_path)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/*添加场馆*/
|
||||||
|
addUser() {
|
||||||
|
let self = this;
|
||||||
|
let params = self.form;
|
||||||
|
|
||||||
|
self.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
self.loading = true;
|
||||||
|
VenueApi.editGround(params).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.$message({
|
||||||
|
message: '修改成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.dialogFormVisible(true);
|
||||||
|
}).catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*获取富文本内容*/
|
||||||
|
contentChangeFunc(e){
|
||||||
|
this.form.textarea1 = e;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
dialogFormVisible(e) {
|
||||||
|
if (e) {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'success',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'error',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*上传*/
|
||||||
|
openUpload(e) {
|
||||||
|
this.type = e;
|
||||||
|
this.isupload = true;
|
||||||
|
},
|
||||||
|
/*获取图片*/
|
||||||
|
returnImgsFunc(e) {
|
||||||
|
console.log("🚀 ~ e:", e)
|
||||||
|
if (e != null && e.length > 0) {
|
||||||
|
this.file_path = e[0].file_path;
|
||||||
|
this.form.image = e[0].file_id;
|
||||||
|
}
|
||||||
|
this.isupload = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.img {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
213
src/views/venue/venue/index.vue
Normal file
213
src/views/venue/venue/index.vue
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
<template>
|
||||||
|
<div class="venue">
|
||||||
|
<!--搜索表单-->
|
||||||
|
<div class="common-seach-wrap">
|
||||||
|
<el-form size="small" :inline="true" :model="formInline" class="demo-form-inline">
|
||||||
|
<el-form-item label="场馆标题"><el-input v-model="formInline.search"
|
||||||
|
placeholder="请输入场馆标题"></el-input></el-form-item>
|
||||||
|
<el-form-item><el-button type="primary" icon="el-icon-search"
|
||||||
|
@click="onSubmit">查询</el-button></el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--添加场馆-->
|
||||||
|
<div class="common-level-rail"><el-button size="small" type="primary" icon="el-icon-plus" @click="addClick" v-auth="'/venue/venue/add'">添加场馆</el-button></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="id" label="ID" width="80"></el-table-column>
|
||||||
|
<el-table-column prop="name" label="场馆名称"></el-table-column>
|
||||||
|
<el-table-column prop="nickName" label="场馆主图">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<img :src="scope.row.image" width="30px" height="30px" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column fixed="right" label="操作" width="170">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<!--添加-->
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import UserApi from '@/api/user.js';
|
||||||
|
import VenueApi from '@/api/venue.js';
|
||||||
|
import Add from './Add.vue';
|
||||||
|
import Edit from './Edit.vue';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
/*编辑组件*/
|
||||||
|
Edit,
|
||||||
|
Add
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
/*是否加载完成*/
|
||||||
|
loading: true,
|
||||||
|
/*列表数据*/
|
||||||
|
tableData: [],
|
||||||
|
/*一页多少条*/
|
||||||
|
pageSize: 20,
|
||||||
|
/*一共多少条数据*/
|
||||||
|
totalDataNumber: 0,
|
||||||
|
/*当前是第几页*/
|
||||||
|
curPage: 1,
|
||||||
|
/*横向表单数据模型*/
|
||||||
|
formInline: {
|
||||||
|
search: ''
|
||||||
|
},
|
||||||
|
/*是否打开添加弹窗*/
|
||||||
|
open_add: false,
|
||||||
|
/*是否打开编辑弹窗*/
|
||||||
|
open_edit: false,
|
||||||
|
/*当前编辑的对象*/
|
||||||
|
venueModel: {},
|
||||||
|
/*等级*/
|
||||||
|
gradeList: [],
|
||||||
|
open_tag: false,
|
||||||
|
/*所有标签*/
|
||||||
|
allTag: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
/*获取列表*/
|
||||||
|
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.formInline;
|
||||||
|
Params.page = self.curPage;
|
||||||
|
Params.list_rows = self.pageSize;
|
||||||
|
VenueApi.groundList(Params, true)
|
||||||
|
.then(res => {
|
||||||
|
console.log("🚀 ~ res:", res)
|
||||||
|
self.loading = false;
|
||||||
|
self.tableData = res.data.data;
|
||||||
|
self.totalDataNumber = res.data.total;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*搜索查询*/
|
||||||
|
onSubmit() {
|
||||||
|
let self = this;
|
||||||
|
self.loading = true;
|
||||||
|
self.curPage = 1;
|
||||||
|
self.getTableList();
|
||||||
|
},
|
||||||
|
|
||||||
|
/*打开添加*/
|
||||||
|
addClick(item) {
|
||||||
|
this.open_add = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*打开编辑*/
|
||||||
|
editClick(item) {
|
||||||
|
this.venueModel = item;
|
||||||
|
this.open_edit = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
closeDialogFunc(e, f) {
|
||||||
|
if (f == 'add') {
|
||||||
|
this.open_add = e.openDialog;
|
||||||
|
if (e.type == 'success') {
|
||||||
|
this.getTableList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (f == 'edit') {
|
||||||
|
this.open_edit = e.openDialog;
|
||||||
|
if (e.type == 'success') {
|
||||||
|
this.getTableList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (f == 'tag') {
|
||||||
|
this.open_tag = e.openDialog;
|
||||||
|
if (e.type == 'success') {
|
||||||
|
this.getTableList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*删除用户*/
|
||||||
|
deleteClick(row) {
|
||||||
|
let self = this;
|
||||||
|
self
|
||||||
|
.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
self.loading = true;
|
||||||
|
VenueApi.delGround(
|
||||||
|
{
|
||||||
|
id: row.id
|
||||||
|
},
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
if (data.code == 1) {
|
||||||
|
self.$message({
|
||||||
|
message: '删除成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.getTableList();
|
||||||
|
} else {
|
||||||
|
self.loading = false;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style></style>
|
||||||
Reference in New Issue
Block a user