Commit d0957a7f by zhangzhen

Merge branch 'master'

# Conflicts:
#	src/views/system/store/index.vue
parents e9a83b4e 93275fd5
## 开发
```bash
# 克隆项目
git clone https://gitee.com/y_project/RuoYi-Vue
# 进入项目目录
cd ruoyi-ui
# 安装依赖
npm install
......
import request from '@/utils/request'
export function allList() {
return request({
url: '/system/store/optionList',
method: 'get',
})
}
// 查询门店列表
export function listStore(query) {
return request({
......
<template>
<el-dialog
width='80%'
:visible.sync='show'
title='选择经纬度'
append-to-body
>
<section class='map-box'>
<div id='map_container_point'></div>
<div class='content'>
<div class='lng-lat'>
<span v-if='title' style='font-size: 20px;'>{{title}}</span>
<span>当前经纬度:</span>
<span style='color: #468cf0;font-size: 18px;'>{{ latlng.lng.toFixed(6) }}{{ latlng.lat.toFixed(6) }}</span>
<span>所属位置:{{ address }}</span>
</div>
<section class='list-box' v-if='list.length'>
<a-list item-layout='horizontal' :data-source='list'>
<a-list-item slot='renderItem' slot-scope='item, index'>
<div class='car-box-item cursor'>
<div class='flex-col'>
<span>{{ item.title }}</span>
<span style='color: #468cf0;'>{{ item.point.lng.toFixed(6) }}{{ item.point.lat.toFixed(6) }}</span>
</div>
<div class='flex-between'>
<span>{{ item.address }}</span>
<a-button type='primary' @click='onChoose(item)'>这里</a-button>
</div>
</div>
</a-list-item>
</a-list>
</section>
</div>
</section>
</el-dialog>
</template>
<script>
export default {
props: {
width: {
type: String,
default: '80vw'
},
height: {
type: String,
default: '500px'
},
latitude: {
default: 30.49984
},
longitude: {
default: 114.34253
}
},
data() {
return {
map: undefined,
show: false,
title:"",
address: '',
list: [],
latlng: {
lng: Number(this.longitude) ,
lat: Number(this.latitude)
}
}
},
methods: {
onShow() {
this.show = true
if (this.show) {
this.$nextTick(() => {
this.map = this.initMap({
tilt: 0,
heading: 0,
center: [this.longitude, this.latitude],
zoom: 12
})
this.onAddArrMarker()
})
}
},
onChoose(val) {
this.latlng = val.point
this.address = val.address;
this.title = val.title;
this.onAddArrMarker()
},
onCancel() {
this.show = false
},
onConfirm() {
this.show = false
this.$emit('confirm',this.latlng)
},
initMap(options) {
options = Object.assign({
tilt: 60,
heading: '选择经纬度'
}, options)
let map = new BMapGL.Map('map_container_point', {
restrictCenter: false
})
let mapType = map.getCoordType()
console.log(mapType,"地图使用的坐标类型")
map.enableKeyboard()
map.enableScrollWheelZoom()
map.enableInertialDragging()
map.enableContinuousZoom()
map.setMinZoom(5)
map.setMaxZoom(20)
map.setZoom(14)
map.setDisplayOptions(options.displayOptions || {
indoor: false,
poi: true,
skyColors: options.skyColors || [
'rgba(5, 5, 30, 0.01)',
'rgba(5, 5, 30, 1.0)'
]
})
if (options.center && options.zoom) {
let center = options.center
if (center instanceof Array) {
center = new BMapGL.Point(options.center[0], options.center[1])
}
map.centerAndZoom(center, options.zoom)
}
map.setTilt(options.tilt)
map.setHeading(options.heading)
map.addEventListener('click', (e) => {
console.log(e, 909090)
this.latlng = e.latlng
this.onAddArrMarker()
})
return map
},
onAddArrMarker() {
if (this.latlng) {
let that = this
this.map.setCenter(new BMapGL.Point(this.latlng.lng, this.latlng.lat))
let myGeo = new BMapGL.Geocoder()
myGeo.getLocation(new BMapGL.Point(this.latlng.lng, this.latlng.lat), (result) => {
if (result) {
that.address = result.address
that.list = result.surroundingPois
}
})
this.map.clearOverlays()
let point = new BMapGL.Point(this.latlng.lng, this.latlng.lat)
let marker = new BMapGL.Marker(point)
this.map.addOverlay(marker)
}
}
}
}
</script>
<style scoped lang='less'>
.map-box {
display: flex;
flex-direction: row;
width: 100%;
height: 500px;
margin: 0 auto;
.content {
display: flex;
flex-direction: column;
width: 20%;
height: 100%;
overflow: hidden;
.lng-lat {
width: 90%;
display: flex;
flex-direction: column;
margin: 0 auto;
border-bottom: 1px solid #e5e5e5;
}
}
}
#map_container_point {
width: 80%;
height: 100%;
}
.list-box {
margin-top: 12px;
width: 100%;
overflow-y: auto;
margin-left: 12px;
.car-box-item {
display: flex;
flex-direction: column;
align-items: center;
width: 96%;
margin: 0 auto;
> div {
width: 100%;
}
.flex-col {
display: flex;
flex-direction: column;
width: 100%;
}
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
padding-right: 10px;
button{
padding: 0 4px;
}
}
}
}
</style>
......@@ -81,10 +81,11 @@
<el-table v-loading="loading" :data="recordsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="所属门店" align="center" prop="storeName" />
<el-table-column label="房间名称" align="center" prop="roomName" />
<el-table-column label="开始时间" align="center" prop="startDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d} {h}:{i}') }}</span>
</template>
</el-table-column>
<el-table-column label="保洁前照片" align="center" prop="startImage" width="100">
......@@ -94,7 +95,7 @@
</el-table-column>
<el-table-column label="结束时间" align="center" prop="endDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d} {h}:{i}') }}</span>
</template>
</el-table-column>
<el-table-column label="保洁后照片" align="center" prop="endImage" width="100">
......@@ -107,6 +108,9 @@
<dict-tag :options="dict.type.clean_records_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="保洁人员" align="center" prop="cleanUser" />
<el-table-column label="联系方式" align="center" prop="phone" />
<el-table-column label="完成情况" align="center" prop="xx" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="优惠券名称" prop="name" label-width="200">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
<el-form-item label="优惠券名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入优惠券名称"
......@@ -19,30 +19,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="时长" prop="duration">
<el-input
v-model="queryParams.duration"
placeholder="请输入时长"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="减去金额" prop="subPrice">
<el-input
v-model="queryParams.subPrice"
placeholder="请输入减去金额"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第三方平台名称" prop="platform">
<el-input
v-model="queryParams.platform"
placeholder="请输入第三方平台名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第三方平台类型" prop="platformType">
<el-select v-model="queryParams.platformType" placeholder="请选择第三方平台类型" clearable>
<el-option
......@@ -69,6 +46,16 @@
placeholder="请选择有效期结束">
</el-date-picker>
</el-form-item>
<el-form-item label="使用状态" prop="useStatus">
<el-select v-model="queryParams.useStatus" placeholder="请选择使用状态" clearable>
<el-option
v-for="dict in dict.type.coupon_use_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -123,22 +110,18 @@
<el-table v-loading="loading" :data="couponList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="优惠券ID" align="center" prop="id" />
<el-table-column label="优惠券名称" align="center" prop="name" />
<el-table-column label="优惠券类型" align="center" prop="couponType">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_coupon_type" :value="scope.row.couponType"/>
</template>
</el-table-column>
<el-table-column label="会员昵称" align="center" prop="name" />
<el-table-column label="手机号" align="center" prop="name" />
<el-table-column label="时长" align="center" prop="duration" />
<el-table-column label="满减最小可使用金额" align="center" prop="minPrice" />
<el-table-column label="减去金额" align="center" prop="subPrice" />
<el-table-column label="满金额" align="center" prop="minPrice" />
<el-table-column label="金额" align="center" prop="subPrice" />
<el-table-column label="第三方平台名称" align="center" prop="platform" />
<el-table-column label="第三方平台类型" align="center" prop="platformType">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_platform_type" :value="scope.row.platformType"/>
</template>
</el-table-column>
<el-table-column label="有效期开始" align="center" prop="startDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
......@@ -149,6 +132,11 @@
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="使用状态" align="center" prop="useStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.coupon_use_status" :value="scope.row.useStatus"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
......@@ -195,18 +183,15 @@
</el-select>
</el-form-item>
<el-form-item label="时长" prop="duration">
<el-input v-model="form.duration" placeholder="请输入时长" />
<el-input-number v-model="form.duration" placeholder="请输入时长" />
</el-form-item>
<el-form-item label="满减最小可使用金额" prop="minPrice">
<el-form-item label="满金额" prop="minPrice">
<el-input v-model="form.minPrice" placeholder="请输入满减最小可使用金额" />
</el-form-item>
<el-form-item label="减去金额" prop="subPrice">
<el-form-item label="金额" prop="subPrice">
<el-input v-model="form.subPrice" placeholder="请输入减去金额" />
</el-form-item>
<el-form-item label="第三方平台名称" prop="platform">
<el-input v-model="form.platform" placeholder="请输入第三方平台名称" />
</el-form-item>
<el-form-item label="第三方平台类型(1:美团,2,大众点评)" prop="platformType">
<el-form-item label="第三方平台类型" prop="platformType">
<el-select v-model="form.platformType" placeholder="请选择第三方平台类型">
<el-option
v-for="dict in dict.type.store_platform_type"
......@@ -249,7 +234,7 @@ import { listCoupon, getCoupon, delCoupon, addCoupon, updateCoupon } from "@/api
export default {
name: "Coupon",
dicts: ['store_platform_type', 'store_coupon_type'],
dicts: ['store_platform_type', 'store_coupon_type','coupon_use_status'],
data() {
return {
// 遮罩层
......@@ -279,7 +264,7 @@ export default {
duration: null,
minPrice: null,
subPrice: null,
platform: null,
useStatus: null,
platformType: null,
startDate: null,
endDate: null,
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
<el-form-item label="订单类型" prop="orderType">
<el-select v-model="queryParams.orderType" placeholder="请选择订单类型" clearable>
<el-option
......@@ -19,14 +19,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户ID" prop="consumerId">
<el-input
v-model="queryParams.consumerId"
placeholder="请输入用户ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户名称" prop="consumerName">
<el-input
v-model="queryParams.consumerName"
......@@ -43,14 +35,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单总价" prop="originalPrice">
<el-input
v-model="queryParams.originalPrice"
placeholder="请输入订单总价"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="支付方式" prop="payWays">
<el-input
v-model="queryParams.payWays"
......@@ -59,24 +43,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单实付" prop="realPrice">
<el-input
v-model="queryParams.realPrice"
placeholder="请输入订单实付"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否使用优惠券" prop="isUseCoupon">
<el-select v-model="queryParams.isUseCoupon" placeholder="请选择是否使用优惠券" clearable>
<el-option
v-for="dict in dict.type.store_is_use_coupon"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="优惠券类型" prop="couponType">
<el-select v-model="queryParams.couponType" placeholder="请选择优惠券类型" clearable>
<el-option
......@@ -95,14 +61,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="优惠券id" prop="couponId">
<el-input
v-model="queryParams.couponId"
placeholder="请输入优惠券id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择订单状态" clearable>
<el-option
......@@ -183,35 +141,29 @@
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="订单ID" align="center" prop="id" />
<el-table-column label="订单类型" align="center" prop="orderType">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_order_type" :value="scope.row.orderType"/>
</template>
</el-table-column>
<el-table-column label="订单流水号" align="center" prop="serialNumber" />
<el-table-column label="用户ID" align="center" prop="consumerId" />
<el-table-column label="用户名称" align="center" prop="consumerName" />
<el-table-column label="会员昵称" align="center" prop="consumerName" />
<el-table-column label="手机号" align="center" prop="consumerName" />
<el-table-column label="消费描述" align="center" prop="description" />
<el-table-column label="订单总价" align="center" prop="originalPrice" />
<el-table-column label="应付金额" align="center" prop="originalPrice" />
<el-table-column label="支付方式" align="center" prop="payWays">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_pay_ways" :value="scope.row.payWays"/>
</template>
</el-table-column>
<el-table-column label="订单实付" align="center" prop="realPrice" />
<el-table-column label="是否使用优惠券" align="center" prop="isUseCoupon">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_is_use_coupon" :value="scope.row.isUseCoupon"/>
</template>
</el-table-column>
<el-table-column label="优惠券类型" align="center" prop="couponType">
<el-table-column label="实付金额" align="center" prop="realPrice" />
<el-table-column label="优惠类型" align="center" prop="couponType">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_coupon_type" :value="scope.row.couponType"/>
</template>
</el-table-column>
<el-table-column label="优惠额度" align="center" prop="realPrice" />
<el-table-column label="优惠券名称" align="center" prop="couponName" />
<el-table-column label="优惠券id" align="center" prop="couponId" />
<el-table-column label="订单状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_order_status" :value="scope.row.status"/>
......
......@@ -95,10 +95,16 @@
<el-table v-loading="loading" :data="slotList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="套餐ID" align="center" prop="id" />
<el-table-column label="套餐名称" align="center" prop="name" />
<el-table-column label="优惠名称" align="center" prop="name" />
<el-table-column label="优惠券类型" align="center" prop="couponType">
<template slot-scope="scope">
<dict-tag :options="dict.type.store_coupon_type" :value="scope.row.couponType"/>
</template>
</el-table-column>
<el-table-column label="时长" align="center" prop="duration" />
<el-table-column label="总价" align="center" prop="totalPrice" />
<el-table-column label="满金额" align="center" prop="minPrice" />
<el-table-column label="金额" align="center" prop="subPrice" />
<el-table-column label="开始时间" align="center" prop="startDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment