完善后台页面功能
This commit is contained in:
2
node_modules/.vue-global-types/vue_99_0.d.ts
generated
vendored
2
node_modules/.vue-global-types/vue_99_0.d.ts
generated
vendored
@ -13,7 +13,7 @@ declare global {
|
|||||||
type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
|
type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
|
||||||
type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
|
type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
|
||||||
type __VLS_SpreadMerge<A, B> = Omit<A, keyof B> & B;
|
type __VLS_SpreadMerge<A, B> = Omit<A, keyof B> & B;
|
||||||
type __VLS_WithComponent<N0 extends string, LocalComponents, Self, N1 extends string, N2 extends string, N3 extends string> =
|
type __VLS_WithComponent<N0 extends string, LocalComponents, Self, N1 extends string, N2 extends string = N1, N3 extends string = N1> =
|
||||||
N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } :
|
N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } :
|
||||||
N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } :
|
N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } :
|
||||||
N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } :
|
N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } :
|
||||||
|
|||||||
@ -7,6 +7,11 @@ let VenueApi = {
|
|||||||
return request._post('/shop/ground.ground/groundList', data, errorback);
|
return request._post('/shop/ground.ground/groundList', data, errorback);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/*场馆列表-不需要分页*/
|
||||||
|
gdLists(data, errorback) {
|
||||||
|
return request._post('/shop/ground.ground/gdLists', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
/*添加场馆*/
|
/*添加场馆*/
|
||||||
addGround(data, errorback) {
|
addGround(data, errorback) {
|
||||||
return request._post('/shop/ground.ground/addGround', data, errorback);
|
return request._post('/shop/ground.ground/addGround', data, errorback);
|
||||||
@ -21,6 +26,31 @@ let VenueApi = {
|
|||||||
delGround(data, errorback) {
|
delGround(data, errorback) {
|
||||||
return request._post('/shop/ground.ground/delGround', data, errorback);
|
return request._post('/shop/ground.ground/delGround', data, errorback);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/*场地列表*/
|
||||||
|
groundRoomList(data, errorback) {
|
||||||
|
return request._post('/shop/ground.groundRoom/groundRoomList', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*添加场地*/
|
||||||
|
addGroundRoom(data, errorback) {
|
||||||
|
return request._post('/shop/ground.groundRoom/addGroundRoom', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*修改场地*/
|
||||||
|
editGroundRoom(data, errorback) {
|
||||||
|
return request._post('/shop/ground.groundRoom/editGroundRoom', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*删除场地*/
|
||||||
|
delGroundRoom(data, errorback) {
|
||||||
|
return request._post('/shop/ground.groundRoom/delGroundRoom', data, errorback);
|
||||||
|
},
|
||||||
|
|
||||||
|
/*场馆订单列表*/
|
||||||
|
orderGroundList(data, errorback) {
|
||||||
|
return request._post('/shop/order.orderGround/orderGroundList', data, errorback);
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default VenueApi;
|
export default VenueApi;
|
||||||
|
|||||||
97
src/views/venue/order/dialog/Add.vue
Normal file
97
src/views/venue/order/dialog/Add.vue
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<template>
|
||||||
|
<!--
|
||||||
|
作者:luoyiming
|
||||||
|
时间:2020-04-20
|
||||||
|
描述:修改价格
|
||||||
|
-->
|
||||||
|
<el-dialog title="订单价格修改" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false"
|
||||||
|
:close-on-press-escape="false" width="30%">
|
||||||
|
<el-form size="small" :model="order" ref="order">
|
||||||
|
<el-form-item label="订单金额" :label-width="formLabelWidth" prop="update_price"
|
||||||
|
:rules="[{ required: true, message: ' ' }]">
|
||||||
|
<el-input type="number" v-model="order.update_price" autocomplete="off"></el-input>
|
||||||
|
<p>最终付款价 = 订单金额 + 运费金额</p>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="运费金额" :label-width="formLabelWidth" prop="update_express_price"
|
||||||
|
:rules="[{ required: true, message: ' ' }]">
|
||||||
|
<el-input type="number" v-model="order.update_express_price" autocomplete="off"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogFormVisible">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submitFunc()" :loading="loading">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import OrderApi from '@/api/order.js';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
order_id: 0,
|
||||||
|
loading: false,
|
||||||
|
/*左边长度*/
|
||||||
|
formLabelWidth: '100px',
|
||||||
|
/*是否显示*/
|
||||||
|
dialogVisible: true,
|
||||||
|
/*表单*/
|
||||||
|
order: {
|
||||||
|
update_price: 0,
|
||||||
|
update_express_price: 0.00,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: ['open_edit'],
|
||||||
|
created() {
|
||||||
|
this.order_id = this.$route.query.order_id;
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 获取数据
|
||||||
|
getData() {
|
||||||
|
let self = this;
|
||||||
|
OrderApi.orderdetail({
|
||||||
|
order_id: this.order_id
|
||||||
|
}, true).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.order.update_price = data.data.detail.pay_price;
|
||||||
|
}).catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/*确认事件*/
|
||||||
|
submitFunc(e) {
|
||||||
|
let self = this;
|
||||||
|
let order = this.order;
|
||||||
|
self.$refs.order.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
self.loading = true;
|
||||||
|
|
||||||
|
OrderApi.updatePrice({
|
||||||
|
order_id: this.order_id,
|
||||||
|
order: order,
|
||||||
|
}, true).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.$message({
|
||||||
|
message: '修改成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.dialogFormVisible(true);
|
||||||
|
}).catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*关闭弹窗*/
|
||||||
|
dialogFormVisible() {
|
||||||
|
this.$emit('close', { openDialog: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
||||||
167
src/views/venue/order/dialog/cancel.vue
Normal file
167
src/views/venue/order/dialog/cancel.vue
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
<template>
|
||||||
|
<!--
|
||||||
|
作者:luoyiming
|
||||||
|
时间:2019-10-25
|
||||||
|
描述:会员-用户列表-会员充值
|
||||||
|
-->
|
||||||
|
<div>
|
||||||
|
<el-dialog title="取消订单" :visible.sync="dialogVisible" @close='dialogFormVisible' :close-on-click-modal="false"
|
||||||
|
:close-on-press-escape="false">
|
||||||
|
<el-form size="small" ref="form" :model="form">
|
||||||
|
<el-form-item label="订单号" :label-width="formLabelWidth" prop="order_no"
|
||||||
|
:rules="[{ required: true, message: ' ' }]">
|
||||||
|
<el-input v-model="form.order_no" placeholder="请输入订单号" class="max-w460" :readonly="true"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" :label-width="formLabelWidth" prop="cancel_remark"
|
||||||
|
:rules="[{ required: true, message: ' ' }]">
|
||||||
|
<el-input type="textarea" v-model="form.cancel_remark" placeholder="请输入备注"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogFormVisible">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submit" :loading="loading">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import OrderApi from '@/api/order.js';
|
||||||
|
import draggable from 'vuedraggable';
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
draggable
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
/*左边长度*/
|
||||||
|
formLabelWidth: '120px',
|
||||||
|
/*是否显示*/
|
||||||
|
dialogVisible: false,
|
||||||
|
form: {
|
||||||
|
order_no: '',
|
||||||
|
cancel_remark: ''
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: ['open_edit', 'order_no'],
|
||||||
|
created() {
|
||||||
|
this.dialogVisible = this.open_edit;
|
||||||
|
this.form.order_no = this.order_no;
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/*处理*/
|
||||||
|
submit() {
|
||||||
|
let self = this;
|
||||||
|
let form = self.form;
|
||||||
|
self.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
self.loading = true;
|
||||||
|
OrderApi.orderCancel(form, true).then(data => {
|
||||||
|
self.loading = false;
|
||||||
|
self.$message({
|
||||||
|
message: data.msg,
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
self.dialogFormVisible(true);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/*关闭弹窗*/
|
||||||
|
dialogFormVisible(e) {
|
||||||
|
if (e) {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'success',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$emit('closeDialog', {
|
||||||
|
type: 'error',
|
||||||
|
openDialog: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.edit_container {
|
||||||
|
font-family: 'Avenir', Helvetica, Arial, sans-serif;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 20px;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-editor {
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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>
|
||||||
413
src/views/venue/order/index.vue
Normal file
413
src/views/venue/order/index.vue
Normal file
@ -0,0 +1,413 @@
|
|||||||
|
<template>
|
||||||
|
<!--
|
||||||
|
作者:luoyiming
|
||||||
|
时间:2019-10-25
|
||||||
|
描述:订单列表
|
||||||
|
-->
|
||||||
|
<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.order_no" placeholder="请输入订单号"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="手机号"><el-input v-model="searchForm.mobile" 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.create_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-item>
|
||||||
|
<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>
|
||||||
|
<!--内容-->
|
||||||
|
<div class="product-content">
|
||||||
|
<div class="table-wrap">
|
||||||
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
|
<el-tab-pane label="全部订单" name="all"></el-tab-pane>
|
||||||
|
<el-tab-pane label="待付款" name="0"></el-tab-pane>
|
||||||
|
<el-tab-pane label="已预约" name="1"></el-tab-pane>
|
||||||
|
<el-tab-pane label="进行中" name="2"></el-tab-pane>
|
||||||
|
<el-tab-pane label="已完成" name="3"></el-tab-pane>
|
||||||
|
<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">
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
</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-button @click="addClick(scope.row)" type="text" size="small"
|
||||||
|
v-auth="'/order/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>
|
||||||
|
</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>
|
||||||
|
<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>
|
||||||
|
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: {
|
||||||
|
order_no: '',
|
||||||
|
search: '',
|
||||||
|
create_time: ''
|
||||||
|
},
|
||||||
|
/*配送方式*/
|
||||||
|
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.dataType = 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.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;
|
||||||
|
})
|
||||||
|
.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() {
|
||||||
|
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);
|
||||||
|
},
|
||||||
|
// 显示批量发货说明
|
||||||
|
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();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</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,69 +1,40 @@
|
|||||||
<template>
|
<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">
|
:close-on-press-escape="false">
|
||||||
<el-form size="small" :model="form" :rules="formRules" ref="form">
|
<el-form size="small" :model="form" :rules="formRules" ref="form">
|
||||||
<el-form-item label="场馆名称" prop="name" :label-width="formLabelWidth">
|
<el-form-item label="选择场馆" prop="ground_id" :label-width="formLabelWidth">
|
||||||
<el-input v-model="form.name" autocomplete="off"></el-input>
|
<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>
|
||||||
|
|
||||||
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
|
<el-form-item label="场地图" prop="img" :label-width="formLabelWidth">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button type="primary" @click="openUpload">选择图片</el-button>
|
<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" />
|
<img :src="file_path" width="100" height="100" />
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="场馆类型" prop="type_id" :label-width="formLabelWidth">
|
<el-form-item label="场地标题" prop="title" :label-width="formLabelWidth">
|
||||||
<el-select v-model="form.type_id">
|
<el-input v-model="form.title" autocomplete="off" placeholder="场地标题"></el-input>
|
||||||
<el-option label="网球" value="1"></el-option>
|
</el-form-item>
|
||||||
<el-option label="篮球" value="2"></el-option>
|
|
||||||
|
<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="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="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-select>
|
||||||
</el-form-item>
|
</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>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="dialogFormVisible">取 消</el-button>
|
<el-button @click="dialogFormVisible">取 消</el-button>
|
||||||
@ -97,83 +68,42 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
name: '',
|
ground_id: '',
|
||||||
image: '',
|
img: '',
|
||||||
type_id: '',
|
title: '',
|
||||||
day_time: '',
|
price: '',
|
||||||
start_time: '',
|
light_price: '',
|
||||||
end_time: '',
|
status: '',
|
||||||
contact_phone: '',
|
|
||||||
address: '',
|
|
||||||
longitude: '',
|
|
||||||
latitude: '',
|
|
||||||
textarea1: '',
|
|
||||||
shop_status: ''
|
|
||||||
},
|
},
|
||||||
formRules: {
|
formRules: {
|
||||||
name: [{
|
ground_id: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入场馆名称',
|
message: '请选择场地',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
image: [{
|
img: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请上传场馆图片',
|
message: '请上传场地图片',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
type_id: [{
|
title: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请选择场馆类型',
|
message: '请输入场地标题',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
day_time: [{
|
price: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入营业时间',
|
message: '请输入场地价格',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
start_time: [{
|
light_price: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入营业开始时间',
|
message: '请输入灯光价格',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
end_time: [{
|
status: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入营业结束时间',
|
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'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
},
|
},
|
||||||
@ -184,14 +114,30 @@ export default {
|
|||||||
loading: false,
|
loading: false,
|
||||||
/*是否上传图片*/
|
/*是否上传图片*/
|
||||||
isupload: false,
|
isupload: false,
|
||||||
|
veuneList: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: ['open_add', 'addform'],
|
props: ['open_add', 'addform'],
|
||||||
created() {
|
created() {
|
||||||
this.dialogVisible = this.open_add;
|
this.dialogVisible = this.open_add;
|
||||||
|
// this.veuneList
|
||||||
|
this.getVeuneList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/*添加场馆*/
|
// 获取场馆列表-不需要分页
|
||||||
|
getVeuneList() {
|
||||||
|
let self = this;
|
||||||
|
VenueApi.gdLists({}, true)
|
||||||
|
.then(res => {
|
||||||
|
console.log("🚀 ~ res:", res)
|
||||||
|
self.veuneList = res.data;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*添加场地*/
|
||||||
addUser() {
|
addUser() {
|
||||||
let self = this;
|
let self = this;
|
||||||
let params = self.form;
|
let params = self.form;
|
||||||
@ -199,7 +145,7 @@ export default {
|
|||||||
self.$refs.form.validate((valid) => {
|
self.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
VenueApi.addGround(params).then(data => {
|
VenueApi.addGroundRoom(params).then(data => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.$message({
|
self.$message({
|
||||||
message: '添加成功',
|
message: '添加成功',
|
||||||
@ -241,7 +187,7 @@ export default {
|
|||||||
returnImgsFunc(e) {
|
returnImgsFunc(e) {
|
||||||
if (e != null && e.length > 0) {
|
if (e != null && e.length > 0) {
|
||||||
this.file_path = e[0].file_path;
|
this.file_path = e[0].file_path;
|
||||||
this.form.image = e[0].file_id;
|
this.form.img = e[0].file_id;
|
||||||
}
|
}
|
||||||
this.isupload = false;
|
this.isupload = false;
|
||||||
},
|
},
|
||||||
|
|||||||
@ -2,67 +2,39 @@
|
|||||||
<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">
|
:close-on-press-escape="false">
|
||||||
<el-form size="small" :model="form" :rules="formRules" ref="form">
|
<el-form size="small" :model="form" :rules="formRules" ref="form">
|
||||||
<el-form-item label="场馆名称" prop="name" :label-width="formLabelWidth">
|
<el-form-item label="选择场馆" prop="ground_id" :label-width="formLabelWidth">
|
||||||
<el-input v-model="form.name" autocomplete="off"></el-input>
|
<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>
|
||||||
|
|
||||||
<el-form-item label="场馆主图" prop="image" :label-width="formLabelWidth">
|
<el-form-item label="场地图" prop="img" :label-width="formLabelWidth">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button type="primary" @click="openUpload">选择图片</el-button>
|
<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" />
|
<img :src="file_path" width="100" height="100" />
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="场馆类型" prop="type_id" :label-width="formLabelWidth">
|
<el-form-item label="场地标题" prop="title" :label-width="formLabelWidth">
|
||||||
<el-select v-model="form.type_id">
|
<el-input v-model="form.title" autocomplete="off" placeholder="场地标题"></el-input>
|
||||||
<el-option label="网球" value="1"></el-option>
|
</el-form-item>
|
||||||
<el-option label="篮球" value="2"></el-option>
|
|
||||||
|
<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="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="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-select>
|
||||||
</el-form-item>
|
</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>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="dialogFormVisible">取 消</el-button>
|
<el-button @click="dialogFormVisible">取 消</el-button>
|
||||||
@ -96,78 +68,42 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
name: '',
|
ground_id: '',
|
||||||
image: '',
|
img: '',
|
||||||
type_id: '',
|
title: '',
|
||||||
day_time: '',
|
price: '',
|
||||||
start_time: '',
|
light_price: '',
|
||||||
end_time: '',
|
status: '',
|
||||||
contact_phone: '',
|
|
||||||
address: '',
|
|
||||||
longitude: '',
|
|
||||||
latitude: '',
|
|
||||||
textarea1: '',
|
|
||||||
shop_status: ''
|
|
||||||
},
|
},
|
||||||
formRules: {
|
formRules: {
|
||||||
name: [{
|
ground_id: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入场馆名称',
|
message: '请选择场地',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
image: [{
|
img: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请上传场馆图片',
|
message: '请上传场地图片',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
type_id: [{
|
title: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请选择场馆类型',
|
message: '请输入场地标题',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
day_time: [{
|
price: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入营业时间',
|
message: '请输入场地价格',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
start_time: [{
|
light_price: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入营业开始时间',
|
message: '请输入灯光价格',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
end_time: [{
|
status: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入营业结束时间',
|
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'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
},
|
},
|
||||||
@ -178,27 +114,41 @@ export default {
|
|||||||
loading: false,
|
loading: false,
|
||||||
/*是否上传图片*/
|
/*是否上传图片*/
|
||||||
isupload: false,
|
isupload: false,
|
||||||
|
veuneList: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: ['open_edit', 'editform'],
|
props: ['open_edit', 'editform'],
|
||||||
created() {
|
created() {
|
||||||
|
this.getVeuneList()
|
||||||
|
|
||||||
this.dialogVisible = this.open_edit;
|
this.dialogVisible = this.open_edit;
|
||||||
console.log(this.editform.model);
|
console.log(this.editform.model);
|
||||||
this.form.name = this.editform.name;
|
this.form.id = this.editform.id;
|
||||||
this.form.image = this.editform.image;
|
this.form.ground_id = this.editform.ground_id;
|
||||||
this.form.type_id = this.editform.type_id;
|
this.form.img = this.editform.img_id;
|
||||||
this.form.day_time = this.editform.day_time;
|
this.form.title = this.editform.title;
|
||||||
this.form.start_time = this.editform.start_time;
|
this.form.price = this.editform.price;
|
||||||
this.form.end_time = this.editform.end_time;
|
this.form.light_price = this.editform.light_price;
|
||||||
this.form.contact_phone = this.editform.contact_phone;
|
this.form.status = this.editform.status;
|
||||||
this.form.address = this.editform.address;
|
console.log("🚀 ~ this.form:", this.form)
|
||||||
this.form.longitude = this.editform.longitude;
|
this.file_path = this.editform.img;
|
||||||
this.form.latitude = this.editform.latitude;
|
|
||||||
this.form.textarea1 = this.editform.textarea1;
|
|
||||||
this.form.shop_status = this.editform.shop_status;
|
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
addUser() {
|
||||||
let self = this;
|
let self = this;
|
||||||
let params = self.form;
|
let params = self.form;
|
||||||
@ -206,7 +156,7 @@ export default {
|
|||||||
self.$refs.form.validate((valid) => {
|
self.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
VenueApi.addGround(params).then(data => {
|
VenueApi.editGroundRoom(params).then(data => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.$message({
|
self.$message({
|
||||||
message: '添加成功',
|
message: '添加成功',
|
||||||
@ -248,7 +198,7 @@ export default {
|
|||||||
returnImgsFunc(e) {
|
returnImgsFunc(e) {
|
||||||
if (e != null && e.length > 0) {
|
if (e != null && e.length > 0) {
|
||||||
this.file_path = e[0].file_path;
|
this.file_path = e[0].file_path;
|
||||||
this.form.image = e[0].file_id;
|
this.form.img = e[0].file_id;
|
||||||
}
|
}
|
||||||
this.isupload = false;
|
this.isupload = false;
|
||||||
},
|
},
|
||||||
|
|||||||
@ -3,28 +3,45 @@
|
|||||||
<!--搜索表单-->
|
<!--搜索表单-->
|
||||||
<div class="common-seach-wrap">
|
<div class="common-seach-wrap">
|
||||||
<el-form size="small" :inline="true" :model="formInline" class="demo-form-inline">
|
<el-form size="small" :inline="true" :model="formInline" class="demo-form-inline">
|
||||||
<el-form-item label="包间标题"><el-input v-model="formInline.title"
|
<el-form-item label="场馆类型">
|
||||||
placeholder="请输入包间标题"></el-input></el-form-item>
|
<el-select v-model="formInline.ground_id" placeholder="请选择">
|
||||||
<el-form-item><el-button type="primary" icon="el-icon-search"
|
<el-option v-for="(item, index) in veuneList" :key="index" :label="item.name" :value="item.id"></el-option>
|
||||||
@click="onSubmit">查询</el-button></el-form-item>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场地名称">
|
||||||
|
<el-input v-model="formInline.title" placeholder="请输入场地名称"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场地状态">
|
||||||
|
<el-select v-model="formInline.status" placeholder="请选择">
|
||||||
|
<el-option label="启用" value="1"></el-option>
|
||||||
|
<el-option label="禁用" value="0"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="info" icon="el-icon-reset" @click="onReset">重置</el-button>
|
||||||
|
<el-button type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</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="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="product-content">
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
<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="id" label="ID" width="80"></el-table-column>
|
||||||
<el-table-column prop="nickName" label="包间名称"></el-table-column>
|
<el-table-column prop="ground_name" label="场馆名称"></el-table-column>
|
||||||
<!-- <el-table-column prop="nickName" label="微信头像">
|
<el-table-column prop="title" label="场地名称"></el-table-column>
|
||||||
|
<el-table-column prop="nickName" label="场地图片">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<img :src="scope.row.avatarUrl" width="30px" height="30px" />
|
<img :src="scope.row.img" width="30px" height="30px" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column>
|
||||||
<el-table-column prop="create_time" label="注册时间" width="140"></el-table-column>
|
|
||||||
<el-table-column fixed="right" label="操作" width="170">
|
<el-table-column fixed="right" label="操作" width="170">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button @click="editClick(scope.row)" type="text" size="small"
|
<el-button @click="editClick(scope.row)" type="text" size="small"
|
||||||
@ -55,11 +72,12 @@
|
|||||||
import UserApi from '@/api/user.js';
|
import UserApi from '@/api/user.js';
|
||||||
import VenueApi from '@/api/venue.js';
|
import VenueApi from '@/api/venue.js';
|
||||||
import Add from './Add.vue';
|
import Add from './Add.vue';
|
||||||
|
import Edit from './Edit.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
/*编辑组件*/
|
/*编辑组件*/
|
||||||
// Edit,
|
Edit,
|
||||||
Add
|
Add
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -76,7 +94,9 @@ export default {
|
|||||||
curPage: 1,
|
curPage: 1,
|
||||||
/*横向表单数据模型*/
|
/*横向表单数据模型*/
|
||||||
formInline: {
|
formInline: {
|
||||||
title: ''
|
title: '',
|
||||||
|
ground_id: '',
|
||||||
|
status: ''
|
||||||
},
|
},
|
||||||
/*是否打开添加弹窗*/
|
/*是否打开添加弹窗*/
|
||||||
open_add: false,
|
open_add: false,
|
||||||
@ -84,18 +104,28 @@ export default {
|
|||||||
open_edit: false,
|
open_edit: false,
|
||||||
/*当前编辑的对象*/
|
/*当前编辑的对象*/
|
||||||
venueModel: {},
|
venueModel: {},
|
||||||
/*等级*/
|
veuneList: {}
|
||||||
gradeList: [],
|
|
||||||
open_tag: false,
|
|
||||||
/*所有标签*/
|
|
||||||
allTag: []
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
/*获取列表*/
|
/*获取列表*/
|
||||||
this.getTableList();
|
this.getTableList();
|
||||||
|
this.getVeuneList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取场馆列表-不需要分页
|
||||||
|
getVeuneList() {
|
||||||
|
let self = this;
|
||||||
|
VenueApi.gdLists({}, true)
|
||||||
|
.then(res => {
|
||||||
|
self.veuneList = res.data;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
self.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
/*选择第几页*/
|
/*选择第几页*/
|
||||||
handleCurrentChange(val) {
|
handleCurrentChange(val) {
|
||||||
let self = this;
|
let self = this;
|
||||||
@ -116,15 +146,13 @@ export default {
|
|||||||
let self = this;
|
let self = this;
|
||||||
let Params = self.formInline;
|
let Params = self.formInline;
|
||||||
Params.page = self.curPage;
|
Params.page = self.curPage;
|
||||||
Params.list_rows = self.pageSize;
|
Params.size = self.pageSize;
|
||||||
VenueApi.groundList(Params, true)
|
VenueApi.groundRoomList(Params, true)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
console.log("🚀 ~ res:", res)
|
console.log("🚀 ~ res:", res)
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.tableData = res.data.list.data;
|
self.tableData = res.data.data;
|
||||||
self.totalDataNumber = res.data.list.total;
|
self.totalDataNumber = res.data.total;
|
||||||
self.gradeList = res.data.grade;
|
|
||||||
self.allTag = res.data.allTag;
|
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
@ -139,6 +167,16 @@ export default {
|
|||||||
self.getTableList();
|
self.getTableList();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/*重置*/
|
||||||
|
onReset() {
|
||||||
|
this.formInline = {
|
||||||
|
title: '',
|
||||||
|
ground_id: '',
|
||||||
|
status: ''
|
||||||
|
};
|
||||||
|
this.onSubmit();
|
||||||
|
},
|
||||||
|
|
||||||
/*打开添加*/
|
/*打开添加*/
|
||||||
addClick(item) {
|
addClick(item) {
|
||||||
this.open_add = true;
|
this.open_add = true;
|
||||||
@ -172,7 +210,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/*删除用户*/
|
/*删除场地*/
|
||||||
deleteClick(row) {
|
deleteClick(row) {
|
||||||
let self = this;
|
let self = this;
|
||||||
self
|
self
|
||||||
@ -183,9 +221,9 @@ export default {
|
|||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
UserApi.deleteuser(
|
VenueApi.delGroundRoom(
|
||||||
{
|
{
|
||||||
user_id: row.user_id
|
id: row.id
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
@ -193,7 +231,7 @@ export default {
|
|||||||
self.loading = false;
|
self.loading = false;
|
||||||
if (data.code == 1) {
|
if (data.code == 1) {
|
||||||
self.$message({
|
self.$message({
|
||||||
message: '恭喜你,用户删除成功',
|
message: '删除成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
});
|
});
|
||||||
self.getTableList();
|
self.getTableList();
|
||||||
|
|||||||
@ -116,7 +116,7 @@ export default {
|
|||||||
let self = this;
|
let self = this;
|
||||||
let Params = self.formInline;
|
let Params = self.formInline;
|
||||||
Params.page = self.curPage;
|
Params.page = self.curPage;
|
||||||
Params.list_rows = self.pageSize;
|
Params.size = self.pageSize;
|
||||||
VenueApi.groundList(Params, true)
|
VenueApi.groundList(Params, true)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
console.log("🚀 ~ res:", res)
|
console.log("🚀 ~ res:", res)
|
||||||
|
|||||||
Reference in New Issue
Block a user