update
This commit is contained in:
parent
b4204aea94
commit
5e5baa2c55
32
src/api/sameCityTransport/sameCityTransport.js
Normal file
32
src/api/sameCityTransport/sameCityTransport.js
Normal file
@ -0,0 +1,32 @@
|
||||
import request from '@/utils/request'
|
||||
import { URL } from '@/config'
|
||||
|
||||
|
||||
export function getSameCityTransport(params){
|
||||
return request({
|
||||
url: URL.shop.store.sameCityTransport.getSameCityTransport,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
export function delectArea(params){
|
||||
return request({
|
||||
url: URL.shop.store.sameCityTransport.delectArea,
|
||||
method: 'post',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function saveSameCityTransport(params){
|
||||
params = JSON.stringify(params)
|
||||
return request({
|
||||
url: URL.shop.store.sameCityTransport.saveSameCityTransport,
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data:params,
|
||||
})
|
||||
}
|
||||
@ -8,10 +8,11 @@ import BaiduMap from './../components/baidu_Map_xiufu'
|
||||
// ak: 'uwBrIUOZuTDMHsuRGm0hdmeG9sosN8sQ',
|
||||
// })
|
||||
|
||||
//xSeK5okwxCQbcwdGoOufv2EMuMdvsVFI
|
||||
|
||||
Vue.use(BaiduMap, {
|
||||
// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
|
||||
ak: 'xSeK5okwxCQbcwdGoOufv2EMuMdvsVFI',
|
||||
ak: 'chsSzRvFcU1uXYoDHAHlsF98NkTVbzvE',
|
||||
})
|
||||
|
||||
|
||||
|
||||
@ -1029,6 +1029,11 @@ let url = {
|
||||
updatePrnterStatus: api_url + '/admin/shop/store/printer/status/update',
|
||||
//商家端-测试打印
|
||||
testPrinter:api_url + '/admin/shop/store/printer/print/order'
|
||||
},
|
||||
sameCityTransport:{
|
||||
getSameCityTransport: api_url + '/admin/shop/store/same-city-transport/detail',
|
||||
saveSameCityTransport: api_url + '/admin/shop/store/same-city-transport/save',
|
||||
delectArea:api_url + '/admin/shop/store/same-city-transport/delete/area'
|
||||
}
|
||||
},
|
||||
user: {
|
||||
|
||||
@ -422,9 +422,9 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="配送区域" prop="">
|
||||
<el-radio-group v-model="form.dispensingArea">
|
||||
<el-radio :label="0">按不同区域</el-radio>
|
||||
<el-radio :label="0" disabled>按不同区域</el-radio>
|
||||
<el-radio :label="1">按不同距离</el-radio>
|
||||
<el-radio :label="2">按行政区域</el-radio>
|
||||
<el-radio :label="2" disabled>按行政区域</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
@ -463,8 +463,8 @@
|
||||
v-if="form.dispensingArea != 2"
|
||||
>
|
||||
<el-radio-group v-model="form.divideType">
|
||||
<el-radio :label="0">半径</el-radio>
|
||||
<el-radio :label="1">自定义</el-radio>
|
||||
<el-radio :label="1">半径</el-radio>
|
||||
<el-radio :label="2" disabled>自定义</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
@ -483,7 +483,10 @@
|
||||
<label slot="append">kg</label>
|
||||
</el-input>
|
||||
<label class="distance-lable">内,配送费用</label>
|
||||
<el-input class="distance-input" v-model="form.distance.weightNum">
|
||||
<el-input
|
||||
class="distance-input"
|
||||
v-model="form.distance.distributionFreightNum"
|
||||
>
|
||||
<label slot="append">元</label>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -535,7 +538,7 @@
|
||||
<div class="map-box">
|
||||
<div class="areas-block">
|
||||
<div class="areas-conetn">
|
||||
<div v-if="form.divideType == 0">
|
||||
<div v-if="form.divideType == 1">
|
||||
<div
|
||||
:class="[
|
||||
'areas-item',
|
||||
@ -554,7 +557,7 @@
|
||||
</div>
|
||||
<div
|
||||
class="btn-delect"
|
||||
@click="delectRadiusItem(index)"
|
||||
@click="delectRadiusItem(index, item)"
|
||||
>
|
||||
删除
|
||||
</div>
|
||||
@ -677,7 +680,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="form.divideType == 1">
|
||||
<div v-if="form.divideType == 2">
|
||||
<div
|
||||
:class="[
|
||||
'areas-item',
|
||||
@ -809,7 +812,7 @@
|
||||
</div>
|
||||
<div class="areas-conetn-footer" @click="addRadiusItem()">
|
||||
+添加配送区域{{
|
||||
form.divideType == 0
|
||||
form.divideType == 1
|
||||
? mapForm.radiusList.length
|
||||
: mapForm.customList.length
|
||||
}}/10
|
||||
@ -827,10 +830,10 @@
|
||||
@ready="handlerBaiduMap"
|
||||
>
|
||||
<bm-navigation anchor="BMAP_ANCHOR_TOP_LEFT"></bm-navigation>
|
||||
<div class="radius-block" v-if="form.divideType == 0">
|
||||
<div class="radius-block" v-if="form.divideType == 1">
|
||||
<template v-for="(item, index) of this.mapForm.radiusList">
|
||||
<bm-circle
|
||||
v-if="mapReady && form.divideType == 0"
|
||||
v-if="mapReady && form.divideType == 1"
|
||||
:key="'circle-' + index"
|
||||
:center="item.circlePath.center"
|
||||
:radius="item.circlePath.radius"
|
||||
@ -853,7 +856,7 @@
|
||||
"
|
||||
:key="'marker-' + index"
|
||||
:position="item.circlePath.center"
|
||||
:dragging="mapForm.showRadiusDragging"
|
||||
:dragging="false"
|
||||
@click="onClickMarker"
|
||||
:icon="{
|
||||
url: require('@/assets/dd-via.png'),
|
||||
@ -882,7 +885,7 @@
|
||||
</bm-marker>
|
||||
</template>
|
||||
</div>
|
||||
<div class="custom-block" v-if="form.divideType == 1">
|
||||
<div class="custom-block" v-if="form.divideType == 2">
|
||||
<template v-for="(item, index) of this.mapForm.customList">
|
||||
<bm-polygon
|
||||
:key="'polygon-' + index"
|
||||
@ -1122,6 +1125,11 @@
|
||||
|
||||
<script>
|
||||
import { get } from '@/api/store/base'
|
||||
import {
|
||||
getSameCityTransport,
|
||||
saveSameCityTransport,
|
||||
delectArea,
|
||||
} from '@/api/sameCityTransport/sameCityTransport'
|
||||
import { ChineseDistricts } from '@/components/VabArea/city-picker.data'
|
||||
import {
|
||||
distributionOpction,
|
||||
@ -1312,8 +1320,8 @@ export default {
|
||||
],
|
||||
inAdvanceTime: 0,
|
||||
shopAddress: '',
|
||||
dispensingArea: 0,
|
||||
divideType: 0,
|
||||
dispensingArea: 1,
|
||||
divideType: 1,
|
||||
distance: {
|
||||
distanceNum: null,
|
||||
weightNum: null,
|
||||
@ -1350,40 +1358,8 @@ export default {
|
||||
customActive: 0,
|
||||
showCustomEditing: false,
|
||||
showCustomDragging: false,
|
||||
radiusList: [
|
||||
{
|
||||
id: 0,
|
||||
areaNum: 1,
|
||||
minPriceType: 0,
|
||||
minPrice: null,
|
||||
deliveryCostAmount: null,
|
||||
freightReliefType: 0,
|
||||
freightReliefAmout: null,
|
||||
derateAmout: null,
|
||||
circlePath: {
|
||||
center: {
|
||||
lng: 0,
|
||||
lat: 0,
|
||||
},
|
||||
// center:[],
|
||||
radius: 300,
|
||||
},
|
||||
},
|
||||
],
|
||||
customList: [
|
||||
{
|
||||
areaNum: 0,
|
||||
oldCenter: {},
|
||||
polygonPath: [],
|
||||
areaNum: 1,
|
||||
minPriceType: 0,
|
||||
minPrice: null,
|
||||
deliveryCostAmount: null,
|
||||
freightReliefType: 0,
|
||||
freightReliefAmout: null,
|
||||
derateAmout: null,
|
||||
},
|
||||
],
|
||||
radiusList: [],
|
||||
customList: [],
|
||||
},
|
||||
BMap: null,
|
||||
center: { lng: 0, lat: 0 },
|
||||
@ -1420,6 +1396,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.ChineseDistricts = ChineseDistricts
|
||||
this.getSameCityTransport()
|
||||
this.getCompanyInfo()
|
||||
this.goodsTypeList = Object.keys(this.goodsTypeData).map((key) => ({
|
||||
label: this.goodsTypeData[key],
|
||||
@ -1428,6 +1405,44 @@ export default {
|
||||
},
|
||||
beforeDestroy() {},
|
||||
methods: {
|
||||
async getSameCityTransport() {
|
||||
let res = await getSameCityTransport()
|
||||
if (res && res.status == 200) {
|
||||
let transportBase = res.data.transportBase
|
||||
let transportList = res.data.transportList
|
||||
this.form.dispensingArea = transportBase.area_type
|
||||
|
||||
this.form.distance.distanceNum = transportBase.distance_base
|
||||
this.form.distance.weightNum = transportBase.weight_base
|
||||
this.form.distance.distributionFreightNum =
|
||||
transportBase.delivery_base_fee
|
||||
|
||||
this.form.distanceAdd.distanceNum = transportBase.distance_increase_km
|
||||
this.form.distanceAdd.FreightAddNum =
|
||||
transportBase.distance_increase_fee
|
||||
|
||||
this.form.weightAdd.weightAddNum = transportBase.weight_increase_kg
|
||||
this.form.weightAdd.FreightAddNum = transportBase.weight_increase_fee
|
||||
|
||||
let arr = transportList.map((item, index) => {
|
||||
let obj = {
|
||||
areaNum: index + 1,
|
||||
transport_id: item.transport_id,
|
||||
circlePath: {
|
||||
radius: item.max_delivery_radius,
|
||||
center: this.center,
|
||||
},
|
||||
minPriceType: item.min_delivery_amount_type - 1,
|
||||
minPrice: item.min_delivery_amount,
|
||||
freightReliefType: item.delivery_discount_type - 1,
|
||||
freightReliefAmout: item.min_delivery_discount_amount,
|
||||
derateAmout: item.delivery_discount,
|
||||
}
|
||||
return obj
|
||||
})
|
||||
this.mapForm.radiusList = arr
|
||||
}
|
||||
},
|
||||
handleSkip() {
|
||||
this.$router.push({ path: '/setupshop' })
|
||||
},
|
||||
@ -1618,7 +1633,7 @@ export default {
|
||||
})
|
||||
},
|
||||
addRadiusItem() {
|
||||
if (this.form.divideType == 0) {
|
||||
if (this.form.divideType == 1) {
|
||||
if (this.mapForm.radiusList.length >= 10) return
|
||||
|
||||
let areaNum = this.mapForm.radiusList.length + 1
|
||||
@ -1643,7 +1658,7 @@ export default {
|
||||
} else {
|
||||
if (this.mapForm.customList.length >= 10) return
|
||||
|
||||
let areaNum = this.mapForm.radiusList.length + 1
|
||||
let areaNum = this.mapForm.customList.length + 1
|
||||
|
||||
let { lng, lat } = this.center
|
||||
// 正方形的边长(米)
|
||||
@ -1664,9 +1679,9 @@ export default {
|
||||
]
|
||||
|
||||
let obj = {
|
||||
transport_id: 0,
|
||||
areaNum: areaNum,
|
||||
polygonPath: polygonPath,
|
||||
areaNum: areaNum,
|
||||
minPriceType: 0,
|
||||
minPrice: null,
|
||||
deliveryCostAmount: null,
|
||||
@ -1681,8 +1696,12 @@ export default {
|
||||
|
||||
// this.creatCircle(obj)
|
||||
},
|
||||
delectRadiusItem(index) {
|
||||
if (this.form.divideType == 0) {
|
||||
async delectRadiusItem(index, item) {
|
||||
let res = await delectArea({ transport_id: item.transport_id })
|
||||
if (res && res.status == 200) {
|
||||
this.$baseMessage('删除成功', 'success')
|
||||
}
|
||||
if (this.form.divideType == 1) {
|
||||
if (this.mapForm.radiusList.length == 0) return
|
||||
|
||||
this.mapForm.radiusList.splice(index, 1)
|
||||
@ -1732,30 +1751,72 @@ export default {
|
||||
|
||||
this.center.lng = Number(this.shopInfoData.store_longitude)
|
||||
this.center.lat = Number(this.shopInfoData.store_latitude)
|
||||
this.mapForm.radiusList[0].circlePath.center.lng = Number(
|
||||
this.shopInfoData.store_longitude
|
||||
)
|
||||
this.mapForm.radiusList[0].circlePath.center.lat = Number(
|
||||
this.shopInfoData.store_latitude
|
||||
)
|
||||
this.mapForm.customList[0].oldCenter = this.center
|
||||
let { lng, lat } = this.center
|
||||
// 正方形的边长(米)
|
||||
var side_length = 300
|
||||
|
||||
// 每度纬度的距离(米)
|
||||
var lat_distance_per_degree = 111000
|
||||
if (this.mapForm.radiusList.length == 0) {
|
||||
let obj = {
|
||||
areaNum: 1,
|
||||
minPriceType: 0,
|
||||
minPrice: null,
|
||||
deliveryCostAmount: null,
|
||||
freightReliefType: 0,
|
||||
freightReliefAmout: null,
|
||||
derateAmout: null,
|
||||
circlePath: {
|
||||
center: {
|
||||
lng: 0,
|
||||
lat: 0,
|
||||
},
|
||||
// center:[],
|
||||
radius: 300,
|
||||
},
|
||||
}
|
||||
|
||||
var deltaLat = side_length / lat_distance_per_degree
|
||||
this.mapForm.radiusList.push(obj)
|
||||
|
||||
var deltaLng = deltaLat
|
||||
this.mapForm.radiusList[0].circlePath.center.lng = Number(
|
||||
this.shopInfoData.store_longitude
|
||||
)
|
||||
this.mapForm.radiusList[0].circlePath.center.lat = Number(
|
||||
this.shopInfoData.store_latitude
|
||||
)
|
||||
}
|
||||
|
||||
this.mapForm.customList[0].polygonPath = [
|
||||
{ lng: lng + deltaLng, lat: lat + deltaLat },
|
||||
{ lng: lng + deltaLng, lat: lat - deltaLat },
|
||||
{ lng: lng - deltaLng, lat: lat - deltaLat },
|
||||
{ lng: lng - deltaLng, lat: lat + deltaLat },
|
||||
]
|
||||
if (this.mapForm.customList.length == 0) {
|
||||
let areaNum = this.mapForm.radiusList.length + 1
|
||||
|
||||
let obj = {
|
||||
transport_id: 0,
|
||||
areaNum: areaNum,
|
||||
polygonPath: [],
|
||||
minPriceType: 0,
|
||||
minPrice: null,
|
||||
deliveryCostAmount: null,
|
||||
freightReliefType: 0,
|
||||
freightReliefAmout: null,
|
||||
derateAmout: null,
|
||||
oldCenter: this.center,
|
||||
}
|
||||
|
||||
this.mapForm.customList.push(obj)
|
||||
|
||||
let { lng, lat } = this.center
|
||||
// 正方形的边长(米)
|
||||
var side_length = 300
|
||||
|
||||
// 每度纬度的距离(米)
|
||||
var lat_distance_per_degree = 111000
|
||||
|
||||
var deltaLat = side_length / lat_distance_per_degree
|
||||
|
||||
var deltaLng = deltaLat
|
||||
|
||||
this.mapForm.customList[0].polygonPath = [
|
||||
{ lng: lng + deltaLng, lat: lat + deltaLat },
|
||||
{ lng: lng + deltaLng, lat: lat - deltaLat },
|
||||
{ lng: lng - deltaLng, lat: lat - deltaLat },
|
||||
{ lng: lng - deltaLng, lat: lat + deltaLat },
|
||||
]
|
||||
}
|
||||
this.mapReady = true
|
||||
}
|
||||
},
|
||||
@ -1818,14 +1879,14 @@ export default {
|
||||
this.mapForm.showCircleEditing = true
|
||||
},
|
||||
onClickMarker() {
|
||||
if (this.form.divideType == 0) {
|
||||
if (this.form.divideType == 1) {
|
||||
this.mapForm.showRadiusDragging = true
|
||||
} else {
|
||||
this.mapForm.showCustomDragging = true
|
||||
}
|
||||
},
|
||||
handleDragging(e, index) {
|
||||
if (this.form.divideType == 0) {
|
||||
if (this.form.divideType == 1) {
|
||||
this.mapForm.radiusList[index].circlePath.center = e.point
|
||||
|
||||
let divs = document.querySelectorAll('.BMap_vectex_node')
|
||||
@ -1862,7 +1923,7 @@ export default {
|
||||
}
|
||||
},
|
||||
handleMarkerMouseovert() {
|
||||
if (this.form.divideType == 0) {
|
||||
if (this.form.divideType == 1) {
|
||||
this.mapForm.showRadiusDragging = true
|
||||
} else {
|
||||
this.mapForm.showCustomDragging = true
|
||||
@ -1980,7 +2041,57 @@ export default {
|
||||
// })
|
||||
|
||||
// },
|
||||
handerSubmit() {},
|
||||
async handerSubmit() {
|
||||
if (
|
||||
!this.form.distance.distanceNum ||
|
||||
!this.form.distance.weightNum ||
|
||||
!this.form.distance.distributionFreightNum ||
|
||||
!this.form.distanceAdd.distanceNum ||
|
||||
!this.form.distanceAdd.FreightAddNum ||
|
||||
!this.form.weightAdd.weightAddNum ||
|
||||
!this.form.weightAdd.FreightAddNum
|
||||
) {
|
||||
this.$baseMessage('请填写完整的信息', 'error')
|
||||
return
|
||||
}
|
||||
|
||||
let list =
|
||||
this.mapForm.radiusList.map((item) => {
|
||||
let obj = {
|
||||
transport_id: item.transport_id || null,
|
||||
area_type: this.form.divideType,
|
||||
max_delivery_radius: item.circlePath.radius,
|
||||
min_delivery_amount_type: item.minPriceType + 1,
|
||||
min_delivery_amount: item.minPrice,
|
||||
delivery_discount_type: item.freightReliefType + 1,
|
||||
min_delivery_discount_amount: item.freightReliefAmout,
|
||||
delivery_discount: item.derateAmout,
|
||||
}
|
||||
|
||||
return obj
|
||||
}) || []
|
||||
|
||||
let params = {
|
||||
transportBase: {
|
||||
transport_base_id: null,
|
||||
area_type: this.form.dispensingArea,
|
||||
basis: 1,
|
||||
distance_base: this.form.distance.distanceNum || 0,
|
||||
weight_base: this.form.distance.weightNum || 0,
|
||||
delivery_base_fee: this.form.distance.distributionFreightNum || 0,
|
||||
distance_increase_km: this.form.distanceAdd.distanceNum || 0,
|
||||
distance_increase_fee: this.form.distanceAdd.FreightAddNum || 0,
|
||||
weight_increase_kg: this.form.weightAdd.weightAddNum || 0,
|
||||
weight_increase_fee: this.form.weightAdd.FreightAddNum || 0,
|
||||
},
|
||||
transportList: list,
|
||||
}
|
||||
|
||||
let res = await saveSameCityTransport(params)
|
||||
if (res && res.status == 200) {
|
||||
this.$baseMessage('保存成功', 'success')
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user