Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
newShopFront
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
newshop
newShopFront
Commits
444d3932
Commit
444d3932
authored
Dec 30, 2019
by
Your Name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
电子weilan添加
parent
763bcd8e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
469 additions
and
362 deletions
+469
-362
store.js
src/api/store.js
+8
-0
menuList.vue
src/views/authority/menuList.vue
+5
-5
Elecfence_edit.vue
src/views/storedc/details/Elecfence_edit.vue
+456
-357
No files found.
src/api/store.js
View file @
444d3932
...
...
@@ -197,6 +197,14 @@ export function getDCList (parameter) {
params
:
{
guid
:
parameter
}
})
}
// 获取门店电子围栏详情
export
function
saveElecfence
(
parameter
)
{
return
axios
({
url
:
'branch/city-distribution-settings/city-distribution-setting-save'
,
method
:
'post'
,
data
:
parameter
})
}
// 删除门店电子围栏
export
function
deleteElecfence
(
id
)
{
console
.
log
(
id
)
...
...
src/views/authority/menuList.vue
View file @
444d3932
...
...
@@ -193,7 +193,7 @@ export default {
dataIndex
:
'TITLE'
,
// fixed: 'left',
// width: 200,
width
:
'2
0
%'
,
width
:
'2
5
%'
,
scopedSlots
:
{
customRender
:
'TITLE'
},
customRender
:
(
value
,
row
,
index
)
=>
{
var
ret
=
[]
...
...
@@ -225,7 +225,7 @@ export default {
},
{
title
:
'菜单状态'
,
width
:
'
8
%'
,
width
:
'
6
%'
,
dataIndex
:
'STATUS'
,
customRender
:
(
state
,
row
,
index
)
=>
{
return
<
div
>
{
state
===
0
?
<
a
-
tag
color
=
"red"
>
禁用
<
/a-tag> : <a-tag color="cyan">启用</
a
-
tag
>
}
<
/div
>
...
...
@@ -234,7 +234,7 @@ export default {
},
{
title
:
'是否为菜单'
,
width
:
'
6
%'
,
width
:
'
5
%'
,
dataIndex
:
'IS_MENU'
,
customRender
:
text
=>
{
if
(
Number
(
text
)
==
0
)
{
...
...
@@ -246,7 +246,7 @@ export default {
},
{
title
:
'是否顶部菜单'
,
width
:
'
6
%'
,
width
:
'
5
%'
,
dataIndex
:
'IS_TOP_MENU'
,
customRender
:
text
=>
{
if
(
Number
(
text
)
==
0
)
{
...
...
@@ -258,7 +258,7 @@ export default {
},
{
title
:
'是否默认显示'
,
width
:
'
6
%'
,
width
:
'
5
%'
,
dataIndex
:
'IS_DEFAULT_SHOW'
,
customRender
:
text
=>
{
if
(
Number
(
text
)
==
0
)
{
...
...
src/views/storedc/details/Elecfence_edit.vue
View file @
444d3932
...
...
@@ -6,9 +6,15 @@
<template>
<div
class=
"amap-page-container"
>
<a-form
:form=
"o2oForm"
>
<div
class=
"amap-mainbar"
v-show=
"false"
>
<a-form-item>
<a-input
type=
"hidden"
v-decorator=
"['GUID']"
/>
<!--
<span
v-model=
"dataInfo.ADDRESS"
></span>
-->
</a-form-item>
</div>
<div
class=
"amap-mainbar"
>
<a-form-item
label=
"门店地址"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
v-model=
'dataInfo.ADDRESS'
/>
<a-form-item
label=
"门店地址"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
v-model=
"dataInfo.ADDRESS"
/>
<!--
<span
v-model=
"dataInfo.ADDRESS"
></span>
-->
</a-form-item>
</div>
...
...
@@ -17,7 +23,9 @@
:label-col=
"formItemLayout.labelCol"
:wrapper-col=
"formItemLayout.wrapperCol"
>
<a-checkbox
v-decorator=
"['STATUS',
{valuePropName:'checked',normalize:checkBox}]">是否开启O2O电子围栏
</a-checkbox>
<a-checkbox
v-decorator=
"['STATUS',
{ valuePropName: 'checked', normalize: checkBox }]"
>是否开启O2O电子围栏
</a-checkbox
>
</a-form-item>
<a-form-item
...
...
@@ -25,154 +33,164 @@
:label-col=
"formItemLayout.labelCol"
:wrapper-col=
"formItemLayout.wrapperCol"
>
<div
class=
"actions"
>
<a-button
type=
"primary"
>
全景图
</a-button>
<div
class=
"actions"
>
<a-button
type=
"primary"
>
全景图
</a-button>
</div>
</a-form-item>
<a-form-item
label=
"配送区域设置"
:label-col=
"formItemLayout.labelCol"
:wrapper-col=
"formItemLayout.wrapperCol"
>
<a-radio-group
@
change=
"gomodeChange"
v-decorator=
"['REGION_TYPE',
{initialValue:'1',normalize:checkRadio}]">
<a-radio
value=
'1'
>
不同区域不同配送费
</a-radio>
<a-radio
value=
'2'
>
不同距离不同配送费
</a-radio>
<a-radio-group
@
change=
"gomodeChange"
v-decorator=
"['REGION_TYPE',
{ initialValue: '1', normalize: checkRadio }]"
>
<a-radio
value=
"1"
>
不同区域不同配送费
</a-radio>
<a-radio
value=
"2"
>
不同距离不同配送费
</a-radio>
</a-radio-group>
</a-form-item>
<div
class=
"tip"
>
<a-form-item
label=
""
:label-col=
"formItemLayout.labelCol"
:wrapper-col=
"formItemLayout.wrapperCol"
>
<div
class=
"adddivson"
@
click=
"addO2oRegions"
>
<button>
添加配送区域
</button>
</div>
<div
class=
"tip"
>
<a-form-item
label=
""
:label-col=
"formItemLayout.labelCol"
:wrapper-col=
"formItemLayout.wrapperCol"
>
<div
class=
"adddivson"
@
click=
"addO2oRegions"
>
<button>
添加配送区域
</button>
</div>
<div
class=
"add-distance"
>
<div
class=
"region-distance"
v-show=
"o2oRegionType==2"
>
<div
class=
"region-line"
>
<div
class=
"region-distance-txt"
>
配送费:
</div>
<div
class=
"region-distance-list"
>
<div
class=
"region-input"
>
<input
type=
"text"
/>
<div
class=
"region-distance"
v-show=
"o2oRegionType == 2"
>
<div
class=
"region-line"
>
<div
class=
"region-distance-list"
>
<div
class=
"region-input"
>
<a-form-item
label=
"配送费"
>
</a-form-item>
</div>
</div>
<div
class=
"regintxt"
>
公里内
</div>
<div
class=
"region-input"
>
<input
type=
"text"
/>
<div
class=
"region-distance-list"
>
<div
class=
"region-input"
>
<a-form-item>
<a-input
type=
"text"
v-decorator=
"['REGION_DISTR_DISTANCE',
{ initialValue: '0' }]" />
</a-form-item>
</div>
<div
class=
"regintxt"
>
公里内
</div>
<div
class=
"region-input"
>
<a-form-item>
<a-input
type=
"text"
v-decorator=
"['REGION_DISTR_PRICE',
{ initialValue: '0' }]" />
</a-form-item>
</div>
<div
class=
"regintxt"
>
元
</div>
</div>
<div
class=
"regintxt"
>
元
</div>
</div>
<div
class=
"region-distance-list"
>
<div
class=
"regintxt"
>
增加
</div>
<div
class=
"region-input"
>
<input
type=
"text"
/>
<div
class=
"region-distance-list"
>
<div
class=
"regintxt"
>
增加
</div>
<div
class=
"region-input"
>
<a-form-item>
<a-input
type=
"text"
v-decorator=
"['INCREASE_DISTANCE',
{ initialValue: '0' }]" />
</a-form-item>
</div>
<div
class=
"regintxt"
>
公里
</div>
</div>
<div
class=
"regintxt"
>
公里
</div>
</div>
<div
class=
"region-distance-list"
>
<div
class=
"regintxt"
>
配送费增加
</div>
<div
class=
"region-input"
>
<input
type=
"text"
/>
<div
class=
"region-distance-list"
>
<div
class=
"regintxt"
>
配送费增加
</div>
<div
class=
"region-input"
>
<a-form-item>
<a-input
type=
"text"
v-decorator=
"['INCREASE_PRICE',
{ initialValue: '0' }]" />
</a-form-item>
</div>
<div
class=
"regintxt"
>
元
</div>
</div>
<div
class=
"regintxt"
>
元
</div>
</div>
<div
class=
"tips"
>
注:因考虑实际送货路况,配送费计算按车行距离,非地图直线距离.
</div>
</div>
<div
class=
"tips"
>
注:因考虑实际送货路况,配送费计算按车行距离,非地图直线距离.
</div>
</div>
<div
class=
"region-con-xq"
>
<div
class=
"region-distance-xq"
:class=
[
{active:region.is_checked}] @click="regionChecked(region,index)" v-bind:key="region.SORT" v-for="(region,index) in o2oRegions">
<div
class=
"region-distance-txt-xq"
>
<div>
<div
class=
"region-icon-01"
:style=
"region.colorstyle"
></div>
配送区域
{{
region
.
SORT
}}
:
<div
class=
"region-distance-xq"
:class=
"[
{ active: region.is_checked }]"
@click="regionChecked(region, index)"
v-bind:key="region.SORT"
v-for="(region, index) in o2oRegions"
>
<div
class=
"region-distance-txt-xq"
>
<div>
<div
class=
"region-icon-01"
:style=
"region.colorstyle"
></div>
配送区域
{{
region
.
SORT
}}
:
</div>
<div
class=
"region-xq-del"
@
click
.
stop=
"deleteO2oRegions(index)"
>
删除
</div>
</div>
<div
class=
"region-xq-del"
@
click
.
stop=
"deleteO2oRegions(index)"
>
删除
</div>
</div>
<div
class=
"region-distance-li-xq"
>
<!--
<div
class=
"regintxt-xq"
>
起送价:
</div>
<div
class=
"region-distance-li-xq"
>
<!--
<div
class=
"regintxt-xq"
>
起送价:
</div>
<div
class=
"region-input-xq"
>
<input
type=
"text"
/>
</div>
-->
<!--
<div
class=
"regintxt-xq"
>
元
</div>
-->
</div
>
<div
class=
"region-mode"
v-if=
"o2oRegionType==1"
>
<a-form-item
marginBottom=
"0px
"
label=
"配送费"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
v-model=
'region.DELIVERY_PRICE'
name=
"DELIVERY_PRICE[]"
/>
</a-form-item>
<!--
<div
class=
"regintxt-xq"
>
配送费:
</div>
<!--
<div
class=
"regintxt-xq"
>
元
</div>
-->
</div>
<div
class=
"region-mode"
v-if=
"o2oRegionType == 1"
>
<a-form-item
marginBottom=
"0px"
label=
"配送费
"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
v-model=
"region.DELIVERY_PRICE"
name=
"DELIVERY_PRICE[]"
/>
</a-form-item>
<!--
<div
class=
"regintxt-xq"
>
配送费:
</div>
<div
class=
"region-input-xq"
>
<input
type=
"text"
/>
</div>
-->
<!--
<div
class=
"regintxt-xq"
>
元
</div>
-->
</div>
<div
class=
"region-mode"
>
<a-form-item
label=
"起送价"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
v-model=
'region.INITIAL_PRICE'
name=
"DELIVERY_PRICE[]"
/>
</a-form-item>
<a-form-item
label=
"划分方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-radio-group
@
change=
"goEditChange($event,region)"
v-model=
"region.DIVIDE_TYPE"
>
<a-radio
value=
"1"
>
半径
</a-radio>
<a-radio
value=
"2"
>
自定义
</a-radio>
</a-radio-group>
</a-form-item>
<a-form-item
label=
"配送区域:"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
v-if=
"region.DIVIDE_TYPE==1"
>
<div
class=
"ps-region-input"
>
<input
type=
"text"
v-model=
"region.REGION_R"
/>
<!--
<div
class=
"regintxt-xq"
>
元
</div>
-->
</div>
<div
class=
"hz-kilometre"
>
米内
</div>
</a-form-item>
<div
class=
"region-mode"
>
<a-form-item
label=
"起送价"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
v-model=
"region.INITIAL_PRICE"
name=
"DELIVERY_PRICE[]"
/>
</a-form-item>
<a-form-item
label=
"配送区域:"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
v-else-if=
"region.DIVIDE_TYPE==2"
>
<div
class=
"hz-kilometre"
><span></span>
区域内
</div>
</a-form-item>
<!--
<div
class=
"region-listblock-arrow"
style=
"border:1px red solid;"
></div>
-->
</div>
<a-form-item
label=
"划分方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-radio-group
@
change=
"goEditChange($event, region)"
v-model=
"region.DIVIDE_TYPE"
>
<a-radio
value=
"1"
>
半径
</a-radio>
<a-radio
value=
"2"
>
自定义
</a-radio>
</a-radio-group>
</a-form-item>
<div
class=
"region-listblock-arrow"
></div>
<a-form-item
label=
"配送区域:"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
v-if=
"region.DIVIDE_TYPE == 1"
>
<div
class=
"ps-region-input"
>
<input
type=
"text"
v-model=
"region.REGION_R"
/>
</div>
<div
class=
"hz-kilometre"
>
米内
</div>
</a-form-item>
</div>
<a-form-item
label=
"配送区域:"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
v-else-if=
"region.DIVIDE_TYPE == 2"
>
<div
class=
"hz-kilometre"
><span></span>
区域内
</div>
</a-form-item>
<!--
<div
class=
"region-listblock-arrow"
style=
"border:1px red solid;"
></div>
-->
</div>
<div
class=
"region-listblock-arrow"
></div>
</div>
</div>
<!--
<div
class=
"adddivson"
@
click=
"addO2oRegions"
>
<button>
添加配送区域
</button>
</div>
-->
</div>
</a-form-item>
</div>
</a-form-item>
</div>
<div
class=
"mapMain"
>
<el-amap
ref=
"map"
:plugin=
"mapsetting.plugin"
:plugin=
"mapsetting.plugin"
:vid=
"mapsetting.vid"
:amap-manager=
"mapsetting.amapManager"
:center=
"mapsetting.center"
...
...
@@ -180,43 +198,40 @@
:events=
"mapsetting.events"
class=
"amap-demo"
>
<div
v-bind:key=
"region.SORT"
v-for=
"(region,
index) in o2oRegions"
>
<el-amap-circle
v-if=
"region.DIVIDE_TYPE==
1"
:center=
"region.center"
:editable=
"region.editable"
:visible=
"region.visible"
:strokeColor=
"region.strokeColor"
:strokeWeight=
"region.strokeWeight"
:fillColor=
"region.fillColor"
:fillOpacity=
"region.fillOpacity"
:radius=
"region.REGION_R"
:events=
"region.events"
></el-amap-circle>
<el-amap-polygon
v-if=
"region.DIVIDE_TYPE==
2"
:vid=
"index"
:ref=
"`polygon_$
{index
}`"
:path="region.REGION_RANGE"
:editable="region.editable"
:visible="region.visible"
:strokeColor="region.strokeColor"
:strokeWeight="region.strokeWeight"
:fillColor="region.fillColor"
:fillOpacity="region.fillOpacity"
:draggable="region.draggable"
:events="region.events"
>
</el-amap-polygon>
</div>
<div
v-bind:key=
"region.SORT"
v-for=
"(region,
index) in o2oRegions"
>
<el-amap-circle
v-if=
"region.DIVIDE_TYPE ==
1"
:center=
"region.center"
:editable=
"region.editable"
:visible=
"region.visible"
:strokeColor=
"region.strokeColor"
:strokeWeight=
"region.strokeWeight"
:fillColor=
"region.fillColor"
:fillOpacity=
"region.fillOpacity"
:radius=
"region.REGION_R"
:events=
"region.events"
></el-amap-circle>
<el-amap-polygon
v-if=
"region.DIVIDE_TYPE ==
2"
:vid=
"index"
:ref=
"`polygon_$
{region.SORT
}`"
:path="region.REGION_RANGE"
:editable="region.editable"
:visible="region.visible"
:strokeColor="region.strokeColor"
:strokeWeight="region.strokeWeight"
:fillColor="region.fillColor"
:fillOpacity="region.fillOpacity"
:draggable="region.draggable"
:events="region.events"
>
</el-amap-polygon>
</div>
</el-amap>
</div>
<a-form-item
:wrapperCol=
"
{ span: 24 }"
style="text-align: center"
>
<a-button
htmlType=
"submit"
type=
"primary"
>
提交
</a-button>
<a-button
@
click=
"goBack"
style=
"margin-left: 8px"
>
返回
</a-button>
</a-form-item>
<a-form-item
:wrapperCol=
"
{ span: 24 }" style="text-align: center">
<a-button
@
click=
"submitForm('O2O')"
htmlType=
"submit"
type=
"primary"
>
提交
</a-button>
<a-button
@
click=
"goBack"
style=
"margin-left: 8px"
>
返回
</a-button>
</a-form-item>
</a-form>
<!--
<div>
{{
O
}}
|
{{
P
}}
|
{{
lat
}}
|
{{
lng
}}
</div>
-->
</div>
...
...
@@ -231,7 +246,7 @@
<
script
>
import
Vue
from
'vue'
import
VueAMap
from
'vue-amap'
import
{
getElecfenceDetails
}
from
'@/api/store'
import
{
getElecfenceDetails
,
saveElecfence
}
from
'@/api/store'
import
{
parseString
}
from
'loader-utils'
Vue
.
use
(
VueAMap
)
...
...
@@ -244,38 +259,34 @@ export default {
name
:
'Gaode'
,
data
:
function
()
{
return
{
defaultColors
:[
[
'255,152,68'
,
'#ff9844'
],
[
'81,255,68'
,
'#51ff44'
],
[
'51,136,255'
,
'#3388ff'
],
[
'255,68,68'
,
'#ff4444'
]
defaultColors
:
[
[
'255,152,68'
,
'#ff9844'
],
[
'81,255,68'
,
'#51ff44'
],
[
'51,136,255'
,
'#3388ff'
],
[
'255,68,68'
,
'#ff4444'
]
],
sort
:
0
,
//正在操作的区域编号
dataInfo
:[],
o2oRegionType
:
'1'
,
o2oRegions
:[],
mapsetting
:{
vid
:
'O2oMap'
,
sort
:
0
,
//正在操作的区域编号
dataInfo
:
[],
o2oRegionType
:
'1'
,
o2oRegions
:
[],
mapsetting
:
{
vid
:
'O2oMap'
,
zoom
:
13
,
center
:
[
121.59996
,
31.197646
],
amapManager
:
amapManager
,
amapManager
:
amapManager
,
plugin
:
[
{
pName
:
'ToolBar'
,
events
:
{
init
(
instance
)
{
console
.
log
(
instance
)
;
console
.
log
(
instance
)
}
}
}
],
events
:
{
}
events
:
{}
},
labelCol
:
{
span
:
7
},
wrapperCol
:
{
span
:
12
},
o2oForm
:
this
.
$form
.
createForm
(
this
),
...
...
@@ -283,7 +294,7 @@ export default {
value
:
1
,
// workFlowStatus:1,
// polygonsObj:[],
visible
:
false
,
visible
:
false
// editable: false,
// amapManager: amapManager,
// ruler:false,
...
...
@@ -363,168 +374,254 @@ export default {
// }
// },
mounted
()
{
this
.
loadinfo
();
},
mounted
()
{
this
.
loadinfo
()
},
methods
:
{
//添加区域
addO2oRegions
(){
let
sort
=
0
;
addO2oRegions
()
{
let
sort
=
0
//把其他区域设置为不可编辑状态、其他区域不选中
for
(
let
i
in
this
.
o2oRegions
)
{
this
.
o2oRegions
[
i
][
'editable'
]
=
false
;
this
.
o2oRegions
[
i
][
'is_checked'
]
=
false
;
if
(
this
.
o2oRegions
[
i
][
'SORT'
]
>=
sort
)
{
for
(
let
i
in
this
.
o2oRegions
)
{
this
.
o2oRegions
[
i
][
'editable'
]
=
false
this
.
o2oRegions
[
i
][
'is_checked'
]
=
false
if
(
this
.
o2oRegions
[
i
][
'SORT'
]
>=
sort
)
{
sort
=
this
.
o2oRegions
[
i
][
'SORT'
]
}
}
sort
++
;
if
(
this
.
defaultColors
.
length
==
0
)
{
console
.
log
(
"不能添加更多了"
)
return
false
;
sort
++
if
(
this
.
defaultColors
.
length
==
0
)
{
console
.
log
(
'不能添加更多了'
)
return
false
}
let
center
=
this
.
mapsetting
.
center
;
let
center
=
this
.
mapsetting
.
center
console
.
log
(
sort
)
let
color
=
this
.
defaultColors
.
pop
()
;
let
color
=
this
.
defaultColors
.
pop
()
let
colorstyle
=
{
'borderColor'
:
'rgba('
+
color
[
0
]
+
')'
,
'backgroundColor'
:
'rgba('
+
color
[
0
]
+
',0.4)'
,
borderColor
:
'rgba('
+
color
[
0
]
+
')'
,
backgroundColor
:
'rgba('
+
color
[
0
]
+
',0.4)'
}
let
range_num
=
"0.01"
;
//距离圆心变化数
let
range_num
=
'0.01'
//距离圆心变化数
let
o2oRegion
=
{
'is_checked'
:
true
,
//是否选中
'color'
:
color
,
//颜色
'colorstyle'
:
colorstyle
,
//显示的颜色数组
'SORT'
:
sort
,
//序号
'COLORS'
:
color
[
1
],
//区域颜色
'DIVIDE_TYPE'
:
'1'
,
//默认圆
'REGION_R'
:
'1000'
,
//默认圆1公里半径
'REGION_RANGE'
:
''
,
//自定义数组
'INITIAL_PRICE'
:
'0'
,
//起送价
'DELIVERY_PRICE'
:
'0'
,
//配送价
'editable'
:
true
,
//编辑状态
'visible'
:
true
,
//是否显示
'center'
:
center
,
//圆心位置
'strokeColor'
:
color
[
1
],
//线条颜色
'strokeWeight'
:
'1'
,
//轮廓线宽度
'fillColor'
:
color
[
1
],
//填充颜色
'fillOpacity'
:
'0.3'
,
'draggable'
:
true
,
//多边形是否可移动
'REGION_RANGE'
:[
[
parseFloat
(
center
[
0
])
-
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
+
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
+
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
+
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
+
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
-
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
-
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
-
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
-
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
+
parseFloat
(
range_num
)]
],
events
:
{
adjust
:
(
e
)
=>
{
if
(
e
.
target
.
CLASS_NAME
==
'AMap.Circle'
){
this
.
o2oRegions
[
this
.
sort
].
REGION_R
=
e
.
radius
;
}
},
change
:(
e
)
=>
{
console
.
log
(
e
)
},
end
:(
e
)
=>
{
console
.
log
(
e
)
is_checked
:
true
,
//是否选中
color
:
color
,
//颜色
colorstyle
:
colorstyle
,
//显示的颜色数组
SORT
:
sort
,
//序号
COLORS
:
color
[
1
],
//区域颜色
DIVIDE_TYPE
:
'1'
,
//默认圆
REGION_R
:
'1000'
,
//默认圆1公里半径
REGION_RANGE
:
''
,
//自定义数组
INITIAL_PRICE
:
'0'
,
//起送价
DELIVERY_PRICE
:
'0'
,
//配送价
editable
:
true
,
//编辑状态
visible
:
true
,
//是否显示
center
:
center
,
//圆心位置
strokeColor
:
color
[
1
],
//线条颜色
strokeWeight
:
'1'
,
//轮廓线宽度
fillColor
:
color
[
1
],
//填充颜色
fillOpacity
:
'0.3'
,
draggable
:
true
,
//多边形是否可移动
REGION_RANGE
:
[
[
parseFloat
(
center
[
0
])
-
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
+
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
+
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
+
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
+
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
-
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
-
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
-
parseFloat
(
range_num
)],
[
parseFloat
(
center
[
0
])
-
parseFloat
(
range_num
),
parseFloat
(
center
[
1
])
+
parseFloat
(
range_num
)]
],
events
:
{
adjust
:
e
=>
{
if
(
e
.
target
.
CLASS_NAME
==
'AMap.Circle'
)
{
this
.
o2oRegions
[
this
.
sort
].
REGION_R
=
e
.
radius
}
},
change
:
e
=>
{
console
.
log
(
e
)
},
end
:
e
=>
{
console
.
log
(
e
)
}
}
}
;
}
// this.o2oRegions[sort]=o2oRegion;
// Vue.set(this.o2oRegions,sort,o2oRegion);
this
.
o2oRegions
.
push
(
o2oRegion
)
;
this
.
sort
=
this
.
o2oRegions
.
length
-
1
this
.
o2oRegions
.
push
(
o2oRegion
)
this
.
sort
=
this
.
o2oRegions
.
length
-
1
//这个代表正在选中的那条数据
},
goBack
(){
this
.
$router
.
push
({
path
:
"/storedc/Electronicfence"
})
},
deleteO2oRegions
(
index
){
//还回去点颜色
goBack
()
{
this
.
$router
.
push
({
path
:
'/storedc/Electronicfence'
})
},
deleteO2oRegions
(
index
)
{
this
.
defaultColors
.
push
(
this
.
o2oRegions
[
index
][
'color'
])
this
.
o2oRegions
.
splice
(
index
,
1
);
this
.
o2oRegions
.
splice
(
index
,
1
)
},
//切换选中区域
regionChecked
(
region
,
index
)
{
regionChecked
(
region
,
index
)
{
//把其他区域设置为不可编辑状态、其他区域不选中
for
(
let
i
in
this
.
o2oRegions
)
{
this
.
o2oRegions
[
i
][
'editable'
]
=
false
;
this
.
o2oRegions
[
i
][
'is_checked'
]
=
false
;
for
(
let
i
in
this
.
o2oRegions
)
{
this
.
o2oRegions
[
i
][
'editable'
]
=
false
this
.
o2oRegions
[
i
][
'is_checked'
]
=
false
}
region
.
editable
=
true
;
region
.
is_checked
=
true
;
this
.
sort
=
index
;
region
.
editable
=
true
region
.
is_checked
=
true
this
.
sort
=
index
},
// 获取信息
loadinfo
(){
console
.
log
(
this
.
$route
.
query
)
var
guid
=
this
.
$route
.
query
.
GUID
;
getElecfenceDetails
(
guid
).
then
(
res
=>
{
this
.
$nextTick
(()
=>
{
this
.
dataInfo
=
res
;
this
.
mapsetting
.
center
=
[
res
.
LAT
,
res
.
LNG
];
//设置地图中心点
this
.
o2oFormInfo
=
{
// 'SETTING_TYPE':res['020']['SETTING_TYPE'],
// 'BRANCH_GUID':res['020']['BRANCH_GUID'],
// 'GUID':res['020']['GUID'],
'REGION_TYPE'
:
'1'
,
// 'REGION_TYPE':res['020']['REGION_TYPE'],
// 'REGION_DISTR_DISTANCE':res['020']['REGION_DISTR_DISTANCE'],
// 'REGION_DISTR_PRICE':res['020']['REGION_DISTR_PRICE'],
// 'INCREASE_DISTANCE':res['020']['INCREASE_DISTANCE'],
// 'INCREASE_PRICE':res['020']['INCREASE_PRICE'],
// 'STATUS':'0',
// 'REGION':res['020']['REGION'],
};
// this.b2cBranchinfo={
// 'ADDRESS':res.ADDRESS,
// 'NAME':res.NAME,
// 'GUID':res.GUID,
// 'LAT':res.LAT,
// 'LNG':res.LNG,
// 'DATA':res.B2C,
// };
// this.o2oRegions = [
// {
// 'DIVIDE_TYPE':'1',
// 'REGION_R':'12',
// 'INITIAL_PRICE':'12',
// 'DELIVERY_PRICE':'22',
// },
// {
// 'DIVIDE_TYPE':'2',
// 'REGION_RANGE':[
// [121.60596, 31.203646],
// [121.60596, 31.191646],
// [121.59396, 31.191646],
// [121.59396, 31.203646],
// [121.60596, 31.203646]
// ],
// 'INITIAL_PRICE':'10',
// 'DELIVERY_PRICE':'8',
// }
// ]
this
.
o2oForm
.
setFieldsValue
(
this
.
o2oFormInfo
)
// this.b2cForm.setFieldsValue(this.b2cBranchinfo)
console
.
log
(
this
.
o2oBranchinfo
)
})
}).
catch
(
err
=>
{
console
.
log
(
err
)
submitForm
(
type
)
{
if
(
type
==
'O2O'
)
{
const
{
o2oForm
:
{
validateFields
}
}
=
this
validateFields
({
force
:
true
},
(
err
,
values
)
=>
{
if
(
!
err
)
{
let
region
=
[]
for
(
let
i
in
this
.
o2oRegions
)
{
// let polygon_sort = 'polygon_'+this.o2oRegions[i]['SORT'];
// console.log(this.$refs['polygon_'+this.o2oRegions[i]['SORT']][0].$$getPath());
let
region_path
=
'1'
if
(
this
.
o2oRegions
[
i
][
'DIVIDE_TYPE'
]
==
'2'
)
{
//多边形
region_path
=
JSON
.
stringify
(
this
.
$refs
[
'polygon_'
+
this
.
o2oRegions
[
i
][
'SORT'
]][
0
].
$$getPath
())
}
let
region_child
=
{
SORT
:
this
.
o2oRegions
[
i
][
'SORT'
],
COLORS
:
this
.
o2oRegions
[
i
][
'COLORS'
],
DIVIDE_TYPE
:
this
.
o2oRegions
[
i
][
'DIVIDE_TYPE'
],
REGION_R
:
this
.
o2oRegions
[
i
][
'REGION_R'
],
REGION_RANGE
:
region_path
,
//todo
INITIAL_PRICE
:
this
.
o2oRegions
[
i
][
'INITIAL_PRICE'
],
DELIVERY_PRICE
:
this
.
o2oRegions
[
i
][
'DELIVERY_PRICE'
]
}
region
.
push
(
region_child
)
}
console
.
log
(
this
.
o2oRegions
)
let
otherData
=
{
SETTING_TYPE
:
'2'
,
BRANCH_GUID
:
this
.
dataInfo
.
GUID
,
REGION
:
region
}
const
data
=
Object
.
assign
({
...
values
},
otherData
)
data
.
STATUS
=
data
.
STATUS
?
'1'
:
'0'
saveElecfence
(
data
)
this
.
$router
.
push
({
path
:
'/storedc/Electronicfence'
})
//todo 跳转到列表页
}
})
},
checkRadio
(
value
){
return
value
.
toString
();
}
else
if
(
type
==
'B2C'
)
{
}
},
checkBox
(
value
){
if
(
Number
(
value
)
==
1
){
return
true
}
else
{
return
false
// 获取信息
loadinfo
()
{
console
.
log
(
this
.
$route
.
query
)
var
guid
=
this
.
$route
.
query
.
GUID
getElecfenceDetails
(
guid
)
.
then
(
res
=>
{
this
.
$nextTick
(()
=>
{
this
.
dataInfo
=
res
this
.
mapsetting
.
center
=
[
res
.
LAT
,
res
.
LNG
]
//设置地图中心点
this
.
o2oRegionType
=
res
[
'O2O'
]
?
res
[
'O2O'
][
'REGION_TYPE'
]
:
'1'
//标记O2O的选则状态
if
(
res
[
'O2O'
]
&&
res
[
'O2O'
][
'REGION'
])
{
//如果之前画过O2O区域
for
(
let
i
in
res
[
'O2O'
][
'REGION'
])
{
let
color
=
[]
for
(
let
j
in
this
.
defaultColors
)
{
//处理颜色问题
if
(
this
.
defaultColors
[
j
][
1
]
==
res
[
'O2O'
][
'REGION'
][
i
][
'COLORS'
])
{
color
=
this
.
defaultColors
[
j
]
this
.
defaultColors
.
splice
(
j
,
1
)
break
}
}
let
region_child
=
{
is_checked
:
false
,
color
:
color
,
//颜色
colorstyle
:
{
borderColor
:
'rgba('
+
color
[
0
]
+
')'
,
backgroundColor
:
'rgba('
+
color
[
0
]
+
',0.4)'
},
//显示的颜色数组
editable
:
false
,
//编辑状态
visible
:
true
,
//是否显示
center
:
this
.
mapsetting
.
center
,
//圆心位置
strokeColor
:
color
[
1
],
//线条颜色
strokeWeight
:
'1'
,
//轮廓线宽度
fillColor
:
color
[
1
],
//填充颜色
fillOpacity
:
'0.3'
,
draggable
:
true
,
//多边形是否可移动
SORT
:
res
[
'O2O'
][
'REGION'
][
i
][
'SORT'
],
COLORS
:
color
[
1
],
//区域颜色
DIVIDE_TYPE
:
res
[
'O2O'
][
'REGION'
][
i
][
'DIVIDE_TYPE'
],
REGION_R
:
res
[
'O2O'
][
'REGION'
][
i
][
'REGION_R'
],
REGION_RANGE
:
JSON
.
parse
(
res
[
'O2O'
][
'REGION'
][
i
][
'REGION_RANGE'
]),
INITIAL_PRICE
:
res
[
'O2O'
][
'REGION'
][
i
][
'INITIAL_PRICE'
],
DELIVERY_PRICE
:
res
[
'O2O'
][
'REGION'
][
i
][
'DELIVERY_PRICE'
]
}
this
.
o2oRegions
.
push
(
region_child
)
}
console
.
log
(
this
.
o2oRegions
)
this
.
o2oRegions
[
0
][
'editable'
]
=
true
//有值的情况下编辑第一个选中的
this
.
o2oRegions
[
0
][
'is_checked'
]
=
true
this
.
sort
=
0
//这个代表正在选中的那条数据 基本是index
}
let
o2oFormInfo
=
{
// 'SETTING_TYPE':res['O2O']?res['O2O']['SETTING_TYPE']:'2',
// 'BRANCH_GUID':res['O2O']['BRANCH_GUID'],
GUID
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'GUID'
]
:
undefined
,
// 'REGION_TYPE':'1',
REGION_TYPE
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'REGION_TYPE'
]
:
'1'
,
REGION_DISTR_DISTANCE
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'REGION_DISTR_DISTANCE'
]
:
'0'
,
REGION_DISTR_PRICE
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'REGION_DISTR_PRICE'
]
:
'0'
,
INCREASE_DISTANCE
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'INCREASE_DISTANCE'
]
:
'0'
,
INCREASE_PRICE
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'INCREASE_PRICE'
]
:
'0'
,
STATUS
:
res
[
'O2O'
]
?
res
[
'O2O'
][
'STATUS'
]
:
'0'
// 'STATUS':'0',
// 'REGION':res['O2O']['REGION'],
}
// this.b2cBranchinfo={
// 'ADDRESS':res.ADDRESS,
// 'NAME':res.NAME,
// 'GUID':res.GUID,
// 'LAT':res.LAT,
// 'LNG':res.LNG,
// 'DATA':res.B2C,
// };
// this.o2oRegions = [
// {
// 'DIVIDE_TYPE':'1',
// 'REGION_R':'12',
// 'INITIAL_PRICE':'12',
// 'DELIVERY_PRICE':'22',
// },
// {
// 'DIVIDE_TYPE':'2',
// 'REGION_RANGE':[
// [121.60596, 31.203646],
// [121.60596, 31.191646],
// [121.59396, 31.191646],
// [121.59396, 31.203646],
// [121.60596, 31.203646]
// ],
// 'INITIAL_PRICE':'10',
// 'DELIVERY_PRICE':'8',
// }
// ]
this
.
o2oForm
.
setFieldsValue
(
o2oFormInfo
)
// this.b2cForm.setFieldsValue(this.b2cBranchinfo)
console
.
log
(
o2oFormInfo
)
})
})
.
catch
(
err
=>
{
console
.
log
(
err
)
})
},
checkRadio
(
value
)
{
return
value
.
toString
()
},
checkBox
(
value
)
{
if
(
Number
(
value
)
==
1
)
{
return
true
}
else
{
return
false
}
},
onChange
(
e
)
{
console
.
log
(
`checked =
${
e
.
target
.
checked
}
`
)
...
...
@@ -535,17 +632,19 @@ mounted(){
// gaode map instance
console
.
log
(
amapManager
.
_map
)
},
gomodeChange
(
e
){
gomodeChange
(
e
)
{
this
.
o2oRegionType
=
e
.
target
.
value
},
goEditChange
(
e
,
region
)
{
//改变自定义或者圆时的设置问题
goEditChange
(
e
,
region
)
{
//改变自定义或者圆时的设置问题
let
value
=
e
.
target
.
value
if
(
value
==
'1'
)
{
//圆
region
.
DIVIDE_TYPE
=
'1'
;
}
else
if
(
value
==
'2'
){
//自定义
region
.
DIVIDE_TYPE
=
'2'
;
}
else
{
if
(
value
==
'1'
)
{
//圆
region
.
DIVIDE_TYPE
=
'1'
}
else
if
(
value
==
'2'
)
{
//自定义
region
.
DIVIDE_TYPE
=
'2'
}
else
{
}
// console.log(region.REGION_RANGE)
// return region;
...
...
@@ -577,7 +676,7 @@ mounted(){
}
}
</
script
>
<
style
scoped
>
.amap-demo
{
height
:
600px
;
...
...
@@ -623,9 +722,9 @@ mounted(){
padding
:
10px
;
/* border: 1px #ddd solid; */
}
.region-line
{
display
:
flex
;
align-items
:
center
;
.region-line
{
display
:
flex
;
align-items
:
center
;
}
.region-distance-list
{
...
...
@@ -649,7 +748,7 @@ mounted(){
.regintxt
{
display
:
table-cell
;
font-size
:
14px
;
padding
:
0
px
5px
;
padding
:
5
px
5px
;
}
.tips
{
/* max-width: 183px; */
...
...
@@ -659,13 +758,13 @@ mounted(){
margin-bottom
:
5px
;
}
.region-distance-xq
{
max-width
:
260px
;
max-width
:
260px
;
background
:
#fff
;
padding
:
0px
10px
;
margin
:
10px
10px
0px
0px
;
border
:
1px
#ddd
solid
;
}
.region-con-xq
{
.region-con-xq
{
display
:
flex
;
align-items
:
center
;
}
...
...
@@ -729,32 +828,33 @@ mounted(){
position
:
relative
;
border-color
:
#38f
;
}
.region-distance-xq.active
.region-listblock-arrow
{
position
:
absolute
;
right
:
0
;
bottom
:
0
;
border-color
:
transparent
#155bd4
#155bd4
transparent
;
border-style
:
solid
;
border-width
:
10px
;
}
.region-distance-xq.active
.region-listblock-arrow
::before
{
width
:
5px
;
left
:
-3px
;
bottom
:
-8px
;
transform
:
rotate
(
35deg
);
}
.region-distance-xq.active
.region-listblock-arrow
::after
{
width
:
12px
;
left
:
-1px
;
bottom
:
-5px
;
transform
:
rotate
(
130deg
);
}
.region-distance-xq.active
.region-listblock-arrow
:after
,
.region-distance-xq.active
.region-listblock-arrow
:before
{
position
:
absolute
;
display
:
block
;
content
:
""
;
height
:
2px
;
background
:
#fff
;
.region-distance-xq.active
.region-listblock-arrow
{
position
:
absolute
;
right
:
0
;
bottom
:
0
;
border-color
:
transparent
#155bd4
#155bd4
transparent
;
border-style
:
solid
;
border-width
:
10px
;
}
.region-distance-xq.active
.region-listblock-arrow
::before
{
width
:
5px
;
left
:
-3px
;
bottom
:
-8px
;
transform
:
rotate
(
35deg
);
}
.region-distance-xq.active
.region-listblock-arrow
::after
{
width
:
12px
;
left
:
-1px
;
bottom
:
-5px
;
transform
:
rotate
(
130deg
);
}
.region-distance-xq.active
.region-listblock-arrow
:after
,
.region-distance-xq.active
.region-listblock-arrow
:before
{
position
:
absolute
;
display
:
block
;
content
:
''
;
height
:
2px
;
background
:
#fff
;
}
.ps-region
{
max-width
:
400px
;
...
...
@@ -787,25 +887,24 @@ mounted(){
padding-left
:
10px
;
display
:
table-cell
;
}
.hz-kilometre
span
::before
{
display
:
inline-block
;
content
:
""
;
width
:
22px
;
height
:
22px
;
margin-top
:
-4px
;
margin-right
:
8px
;
vertical-align
:
middle
;
background
:
url("../../../assets/polygon.png"
)
;
background-size
:
100%
;
background-position
:
50%
;
background-repeat
:
no-repeat
;
.hz-kilometre
span
::before
{
display
:
inline-block
;
content
:
''
;
width
:
22px
;
height
:
22px
;
margin-top
:
-4px
;
margin-right
:
8px
;
vertical-align
:
middle
;
background
:
url('../../../assets/polygon.png'
)
;
background-size
:
100%
;
background-position
:
50%
;
background-repeat
:
no-repeat
;
}
/* .add-distance{
width: 300px;
} */
/* /deep/.ant-input{
border: none;
} */
</
style
>
\ No newline at end of file
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment