Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sell
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
liumiss
sell
Commits
3f3d17fe
Commit
3f3d17fe
authored
Aug 21, 2019
by
liumiss
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开始单个店铺页面功能
parent
8b03ef4b
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
2178 additions
and
156 deletions
+2178
-156
App.vue
src/App.vue
+22
-2
serve.js
src/common/serve.js
+7
-3
index.styl
src/common/stylus/index.styl
+32
-14
mixin.styl
src/common/stylus/mixin.styl
+9
-1
variable.styl
src/common/stylus/variable.styl
+2
-0
components.js
src/common/utils/components.js
+3
-1
address-list.vue
src/components/address-list.vue
+53
-0
cube-page.vue
src/components/cube-page.vue
+1
-1
shop-list.vue
src/components/shop-list.vue
+7
-3
data.js
src/data.js
+1379
-0
router.js
src/router.js
+13
-3
index.js
src/store/index.js
+3
-3
mutations.js
src/store/mutations.js
+11
-0
vant.js
src/vant.js
+5
-4
add-address.vue
src/views/address/add-address.vue
+55
-18
address.vue
src/views/address/address.vue
+94
-2
edit-address.vue
src/views/address/edit-address.vue
+198
-0
select-address.vue
src/views/address/select-address.vue
+57
-40
index.vue
src/views/home/index.vue
+57
-15
choise.vue
src/views/location/choise.vue
+54
-46
index.vue
src/views/shopItem/index.vue
+116
-0
No files found.
src/App.vue
View file @
3f3d17fe
...
@@ -4,5 +4,25 @@
...
@@ -4,5 +4,25 @@
</div>
</div>
</
template
>
</
template
>
<
style
>
<
script
>
</
style
>
export
default
{
name
:
"
App
"
,
created
()
{
//在页面加载时读取sessionStorage里的状态信息
if
(
sessionStorage
.
getItem
(
"
store
"
))
{
this
.
$store
.
replaceState
(
Object
.
assign
(
{},
this
.
$store
.
state
,
JSON
.
parse
(
sessionStorage
.
getItem
(
"
store
"
))
)
);
}
//在页面刷新时将vuex里的信息保存到sessionStorage里
window
.
addEventListener
(
"
beforeunload
"
,
()
=>
{
sessionStorage
.
setItem
(
"
store
"
,
JSON
.
stringify
(
this
.
$store
.
state
));
});
}
};
</
script
>
src/common/serve.js
View file @
3f3d17fe
...
@@ -19,13 +19,17 @@ export const loginByCode = (phone, code) => request('login/code', {
...
@@ -19,13 +19,17 @@ export const loginByCode = (phone, code) => request('login/code', {
// 新增收货地址
// 新增收货地址
export
const
addReceivingAddress
=
(
Data
)
=>
request
(
'
/user/address
'
,
Data
,
'
POST
'
);
export
const
addReceivingAddress
=
(
Data
)
=>
request
(
'
/user/address
'
,
Data
);
// 编辑收货地址
// 编辑收货地址
export
const
editReceivingAddress
=
(
Data
)
=>
request
(
'
/user/address/update
'
,
Data
,
'
POST
'
);
export
const
editReceivingAddress
=
(
Data
)
=>
request
(
'
/user/address/update
'
,
Data
);
// 获取收货地址
// 获取收货地址
export
const
getReceivingAddress
=
()
=>
request
(
'
/user/address
'
,
{},
'
GET
'
);
export
const
getReceivingAddress
=
()
=>
request
(
'
/user/address
'
,
{},
'
GET
'
);
// 删除收货地址
// 删除收货地址
export
const
deleteReceivingAddress
=
(
address_id
)
=>
request
(
'
/user/address/delete
'
,
{
address_id
},
'
POST
'
);
export
const
deleteReceivingAddress
=
(
address_id
)
=>
request
(
'
/user/address/delete
'
,
{
address_id
});
export
const
getNearbyShop
=
(
lat
,
lng
)
=>
request
(
'
/scope/search
'
,
{
lat
,
lng
},
'
get
'
);
src/common/stylus/index.styl
View file @
3f3d17fe
...
@@ -43,10 +43,16 @@
...
@@ -43,10 +43,16 @@
bottom: 0;
bottom: 0;
left: 16px;
left: 16px;
border-bottom: 1px solid #ebedf0;
border-bottom: 1px solid #ebedf0;
-webkit-transform: scaleY(0.5);
// -webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
// transform: scaleY(0.5);
}
.no-data{
text-align: center;
}
}
.scroll-list-wrap{
position();
}
.section{
.section{
margin-top:10px;
margin-top:10px;
...
@@ -67,7 +73,19 @@
...
@@ -67,7 +73,19 @@
}
}
.cube-slide-dots{
.cube-slide-dots{
bottom:4px;
bottom:4px;
}
}
.cube-slide-dots span{
.cube-slide-dots span{
height:2px;
height:2px;
}
}
\ No newline at end of file
// vant
.van-search{
padding: 6px;
}
.van-search .van-icon{
font-size: 16px;
}
.van-tag{
line-height: 1;
}
\ No newline at end of file
src/common/stylus/mixin.styl
View file @
3f3d17fe
@import "~cube-ui/src/common/stylus/mixin.styl"
@import "~cube-ui/src/common/stylus/mixin.styl"
position($pos=fixed){
position: $pos;
top:0;
bottom:0;
left:0;
right:0;
}
\ No newline at end of file
src/common/stylus/variable.styl
View file @
3f3d17fe
...
@@ -6,8 +6,10 @@ $color-background = rgba(7, 17, 27, 1)
...
@@ -6,8 +6,10 @@ $color-background = rgba(7, 17, 27, 1)
$color-green = #07c160
$color-green = #07c160
$color-dark-green = #06ae57
$color-dark-green = #06ae57
$color-light-blue = #3ca0e6
$color-light-blue = #3ca0e6
$color-blue = #1296fa
$margin-top-10 = 10px
$margin-top-20 = 20px
$margin-top-20 = 20px
...
...
src/common/utils/components.js
View file @
3f3d17fe
import
CubePage
from
"
../../components/cube-page.vue
"
;
import
CubePage
from
"
../../components/cube-page.vue
"
;
import
addressList
from
"
../../components/address-list.vue
"
;
function
plugin
(
Vue
){
function
plugin
(
Vue
){
if
(
plugin
.
installed
)
return
;
if
(
plugin
.
installed
)
return
;
Vue
.
component
(
'
cube-page
'
,
CubePage
)
Vue
.
component
(
'
cube-page
'
,
CubePage
)
Vue
.
component
(
'
cube-address-list
'
,
addressList
)
}
}
export
default
plugin
;
export
default
plugin
;
\ No newline at end of file
src/components/address-list.vue
0 → 100644
View file @
3f3d17fe
<
template
>
<div>
<div
v-for=
"address in options"
:key=
"address.id"
>
<div
class=
"van-cell van-address-item line"
@
click=
"onSelect(address)"
>
<div
class=
"van-cell__value van-cell__value--alone van-address-item__value"
>
<div
class=
"van-address-item__name"
>
{{
address
.
address_detail
}}
<van-tag
v-if=
"address.label==1"
color=
"#ffe1e1"
text-color=
"#f44"
>
家
</van-tag>
<van-tag
v-else-if=
"address.label==2"
color=
"#3ca0e629"
text-color=
"#3ca0e6"
>
公司
</van-tag>
</div>
<div
class
>
{{
address
.
address_suffix
}}
</div>
<div
class=
"text-light-grey"
>
{{
address
.
name
}}
{{
address
.
tel
}}
</div>
</div>
<div
v-if=
"edit"
class=
"van-address-item__edit"
@
click=
"onEdit(address)"
>
<i
class=
"van-icon van-icon-edit"
></i>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
options
:
{
type
:
Array
},
edit
:
{
default
:
false
}
},
methods
:
{
onEdit
(
address
)
{
this
.
$emit
(
"
edit
"
,
address
);
},
onSelect
(
address
)
{
this
.
$emit
(
"
select
"
,
address
);
}
}
};
</
script
>
<
style
scoped
>
.van-address-item__name
{
font-weight
:
600
;
font-size
:
15px
;
}
.van-address-item__edit
{
width
:
20%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-end
;
}
</
style
>
\ No newline at end of file
src/components/cube-page.vue
View file @
3f3d17fe
...
@@ -72,7 +72,7 @@
...
@@ -72,7 +72,7 @@
left: 0
left: 0
padding: 0 15px
padding: 0 15px
color: #fc9153
color: #fc9153
>
.wrapper
.header~
.wrapper
height: calc(100% - 44px)
height: calc(100% - 44px)
overflow-x: hidden
overflow-x: hidden
overflow-y: auto
overflow-y: auto
...
...
src/components/shop-list.vue
View file @
3f3d17fe
<
template
>
<
template
>
<div
class
>
<div
class
>
<li
class=
"card"
v-for=
"(item,index) in options"
:key=
"i
tem.id
"
>
<li
class=
"card"
v-for=
"(item,index) in options"
:key=
"i
ndex
"
>
<div
@
click=
"on
ItemClick(item, index
)"
class=
"card-inner"
>
<div
@
click=
"on
Select(item
)"
class=
"card-inner"
>
<div
class=
"card-thumb"
>
<div
class=
"card-thumb"
>
<van-image
width=
"90"
height=
"90"
fit=
"contain"
:src=
"$globalUrlFile+item.icon"
></van-image>
<van-image
width=
"90"
height=
"90"
fit=
"contain"
:src=
"$globalUrlFile+item.icon"
></van-image>
</div>
</div>
...
@@ -34,7 +34,11 @@ export default {
...
@@ -34,7 +34,11 @@ export default {
computed
:
{},
computed
:
{},
methods
:
{}
methods
:
{
onSelect
(
item
){
this
.
$router
.
push
({
name
:
'
shop
'
,
params
:{
id
:
item
.
shop_id
}})
}
}
};
};
</
script
>
</
script
>
...
...
src/data.js
0 → 100644
View file @
3f3d17fe
export
default
{
"
seller
"
:
{
"
name
"
:
"
粥品香坊(回龙观)
"
,
"
description
"
:
"
蜂鸟专送
"
,
"
deliveryTime
"
:
38
,
"
score
"
:
4.2
,
"
serviceScore
"
:
4.1
,
"
foodScore
"
:
4.3
,
"
rankRate
"
:
69.2
,
"
minPrice
"
:
20
,
"
deliveryPrice
"
:
4
,
"
ratingCount
"
:
24
,
"
sellCount
"
:
90
,
"
bulletin
"
:
"
粥品香坊其烹饪粥料的秘方源于中国千年古法,在融和现代制作工艺,由世界烹饪大师屈浩先生领衔研发。坚守纯天然、0添加的良心品质深得消费者青睐,发展至今成为粥类的引领品牌。是2008年奥运会和2013年园博会指定餐饮服务商。
"
,
"
supports
"
:
[
{
"
type
"
:
0
,
"
description
"
:
"
在线支付满28减5
"
},
{
"
type
"
:
1
,
"
description
"
:
"
VC无限橙果汁全场8折
"
},
{
"
type
"
:
2
,
"
description
"
:
"
单人精彩套餐
"
},
{
"
type
"
:
3
,
"
description
"
:
"
该商家支持发票,请下单写好发票抬头
"
},
{
"
type
"
:
4
,
"
description
"
:
"
已加入“外卖保”计划,食品安全保障
"
}
],
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/seller_avatar_256px.jpg
"
,
"
pics
"
:
[
"
http://fuss10.elemecdn.com/8/71/c5cf5715740998d5040dda6e66abfjpeg.jpeg?imageView2/1/w/180/h/180
"
,
"
http://fuss10.elemecdn.com/b/6c/75bd250e5ba69868f3b1178afbda3jpeg.jpeg?imageView2/1/w/180/h/180
"
,
"
http://fuss10.elemecdn.com/f/96/3d608c5811bc2d902fc9ab9a5baa7jpeg.jpeg?imageView2/1/w/180/h/180
"
,
"
http://fuss10.elemecdn.com/6/ad/779f8620ff49f701cd4c58f6448b6jpeg.jpeg?imageView2/1/w/180/h/180
"
],
"
infos
"
:
[
"
该商家支持发票,请下单写好发票抬头
"
,
"
品类:其他菜系,包子粥店
"
,
"
北京市昌平区回龙观西大街龙观置业大厦底商B座102单元1340
"
,
"
营业时间:10:00-20:30
"
]
},
"
goods
"
:
[
{
"
name
"
:
"
热销榜
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
皮蛋瘦肉粥
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
"
咸粥
"
,
"
sellCount
"
:
229
,
"
rating
"
:
100
,
"
info
"
:
"
一碗皮蛋瘦肉粥,总是我到粥店时的不二之选。香浓软滑,饱腹暖心,皮蛋的Q弹与瘦肉的滑嫩伴着粥香溢于满口,让人喝这样的一碗粥也觉得心满意足
"
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
"
很喜欢的粥
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/c/cd/c12745ed8a5171e13b427dbc39401jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/c/cd/c12745ed8a5171e13b427dbc39401jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
扁豆焖面
"
,
"
price
"
:
14
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
188
,
"
rating
"
:
96
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
info
"
:
""
,
"
icon
"
:
"
http://fuss10.elemecdn.com/c/6b/29e3d29b0db63d36f7c500bca31d8jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/c/6b/29e3d29b0db63d36f7c500bca31d8jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
葱花饼
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
124
,
"
rating
"
:
85
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
1
,
"
text
"
:
"
没啥味道
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
1
,
"
text
"
:
"
很一般啊
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/f/28/a51e7b18751bcdf871648a23fd3b4jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/f/28/a51e7b18751bcdf871648a23fd3b4jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
牛肉馅饼
"
,
"
price
"
:
14
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
114
,
"
rating
"
:
91
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
1
,
"
text
"
:
"
难吃不推荐
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/d/b9/bcab0e8ad97758e65ae5a62b2664ejpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/d/b9/bcab0e8ad97758e65ae5a62b2664ejpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
招牌猪肉白菜锅贴/10个
"
,
"
price
"
:
17
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
101
,
"
rating
"
:
78
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
1
,
"
text
"
:
"
不脆,不好吃
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/7/72/9a580c1462ca1e4d3c07e112bc035jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/7/72/9a580c1462ca1e4d3c07e112bc035jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
南瓜粥
"
,
"
price
"
:
9
,
"
oldPrice
"
:
""
,
"
description
"
:
"
甜粥
"
,
"
sellCount
"
:
91
,
"
rating
"
:
100
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/8/a6/453f65f16b1391942af11511b7a90jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/8/a6/453f65f16b1391942af11511b7a90jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
红豆薏米美肤粥
"
,
"
price
"
:
12
,
"
oldPrice
"
:
""
,
"
description
"
:
"
甜粥
"
,
"
sellCount
"
:
86
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/d/22/260bd78ee6ac6051136c5447fe307jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/d/22/260bd78ee6ac6051136c5447fe307jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
八宝酱菜
"
,
"
price
"
:
4
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
84
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
红枣山药糙米粥
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
81
,
"
rating
"
:
91
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
糊塌子
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
80
,
"
rating
"
:
93
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/0/05/097a2a59fd2a2292d08067e16380cjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/0/05/097a2a59fd2a2292d08067e16380cjpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
单人精彩套餐
"
,
"
type
"
:
2
,
"
foods
"
:
[
{
"
name
"
:
"
红枣山药粥套餐
"
,
"
price
"
:
29
,
"
oldPrice
"
:
36
,
"
description
"
:
"
红枣山药糙米粥,素材包,爽口莴笋丝,四川泡菜或八宝酱菜,配菜可备注
"
,
"
sellCount
"
:
17
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/6/72/cb844f0bb60c502c6d5c05e0bddf5jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/6/72/cb844f0bb60c502c6d5c05e0bddf5jpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
冰爽饮品限时特惠
"
,
"
type
"
:
1
,
"
foods
"
:
[
{
"
name
"
:
"
VC无限橙果汁
"
,
"
price
"
:
8
,
"
oldPrice
"
:
10
,
"
description
"
:
""
,
"
sellCount
"
:
15
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
"
还可以
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/e/c6/f348e811772016ae24e968238bcbfjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/e/c6/f348e811772016ae24e968238bcbfjpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
精选热菜
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
娃娃菜炖豆腐
"
,
"
price
"
:
17
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
43
,
"
rating
"
:
92
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
"
菜量还可以,味道还可以
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/d/2d/b1eb45b305635d9dd04ddf157165fjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/d/2d/b1eb45b305635d9dd04ddf157165fjpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
手撕包菜
"
,
"
price
"
:
16
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
29
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/9/c6/f3bc84468820121112e79583c24efjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/9/c6/f3bc84468820121112e79583c24efjpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
香酥黄金鱼/3条
"
,
"
price
"
:
11
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
15
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/4/e7/8277a6a2ea0a2e97710290499fc41jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/4/e7/8277a6a2ea0a2e97710290499fc41jpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
爽口凉菜
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
八宝酱菜
"
,
"
price
"
:
4
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
84
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
拍黄瓜
"
,
"
price
"
:
9
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
28
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/6/54/f654985b4e185f06eb07f8fa2b2e8jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/6/54/f654985b4e185f06eb07f8fa2b2e8jpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
精选套餐
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
红豆薏米粥套餐
"
,
"
price
"
:
37
,
"
oldPrice
"
:
""
,
"
description
"
:
"
红豆薏米粥,三鲜干蒸烧卖,拍黄瓜
"
,
"
sellCount
"
:
3
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/f/49/27f26ed00c025b2200a9ccbb7e67ejpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/f/49/27f26ed00c025b2200a9ccbb7e67ejpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
皮蛋瘦肉粥套餐
"
,
"
price
"
:
31
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
12
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/8/96/f444a8087f0e940ef264617f9d98ajpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/8/96/f444a8087f0e940ef264617f9d98ajpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
果拼果汁
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
蜜瓜圣女萝莉杯
"
,
"
price
"
:
6
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
1
,
"
rating
"
:
""
,
"
info
"
:
""
,
"
ratings
"
:
[],
"
icon
"
:
"
http://fuss10.elemecdn.com/b/5f/b3b04c259d5ec9fa52e1856ee50dajpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/b/5f/b3b04c259d5ec9fa52e1856ee50dajpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
加多宝
"
,
"
price
"
:
6
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
7
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/b/9f/5e6c99c593cf65229225c5661bcdejpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/b/9f/5e6c99c593cf65229225c5661bcdejpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
VC无限橙果汁
"
,
"
price
"
:
8
,
"
oldPrice
"
:
10
,
"
description
"
:
""
,
"
sellCount
"
:
15
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
"
还可以
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/e/c6/f348e811772016ae24e968238bcbfjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/e/c6/f348e811772016ae24e968238bcbfjpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
小吃主食
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
扁豆焖面
"
,
"
price
"
:
14
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
188
,
"
rating
"
:
96
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/c/6b/29e3d29b0db63d36f7c500bca31d8jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/c/6b/29e3d29b0db63d36f7c500bca31d8jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
葱花饼
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
124
,
"
rating
"
:
85
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
1
,
"
text
"
:
"
没啥味道
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
1
,
"
text
"
:
"
很一般啊
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/f/28/a51e7b18751bcdf871648a23fd3b4jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/f/28/a51e7b18751bcdf871648a23fd3b4jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
牛肉馅饼
"
,
"
price
"
:
14
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
114
,
"
rating
"
:
91
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
1
,
"
text
"
:
"
难吃不推荐
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/d/b9/bcab0e8ad97758e65ae5a62b2664ejpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/d/b9/bcab0e8ad97758e65ae5a62b2664ejpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
招牌猪肉白菜锅贴/10个
"
,
"
price
"
:
17
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
101
,
"
rating
"
:
78
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
1
,
"
text
"
:
"
不脆,不好吃
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/7/72/9a580c1462ca1e4d3c07e112bc035jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/7/72/9a580c1462ca1e4d3c07e112bc035jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
糊塌子
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
80
,
"
rating
"
:
93
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/0/05/097a2a59fd2a2292d08067e16380cjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/0/05/097a2a59fd2a2292d08067e16380cjpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
},
{
"
name
"
:
"
特色粥品
"
,
"
type
"
:
-
1
,
"
foods
"
:
[
{
"
name
"
:
"
皮蛋瘦肉粥
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
"
咸粥
"
,
"
sellCount
"
:
229
,
"
rating
"
:
100
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
"
很喜欢的粥
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/c/cd/c12745ed8a5171e13b427dbc39401jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/c/cd/c12745ed8a5171e13b427dbc39401jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
南瓜粥
"
,
"
price
"
:
9
,
"
oldPrice
"
:
""
,
"
description
"
:
"
甜粥
"
,
"
sellCount
"
:
91
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/8/a6/453f65f16b1391942af11511b7a90jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/8/a6/453f65f16b1391942af11511b7a90jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
红豆薏米美肤粥
"
,
"
price
"
:
12
,
"
oldPrice
"
:
""
,
"
description
"
:
"
甜粥
"
,
"
sellCount
"
:
86
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/d/22/260bd78ee6ac6051136c5447fe307jpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/d/22/260bd78ee6ac6051136c5447fe307jpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
红枣山药糙米粥
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
""
,
"
sellCount
"
:
81
,
"
rating
"
:
91
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/9/b5/469d8854f9a3a03797933fd01398bjpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
鲜蔬菌菇粥
"
,
"
price
"
:
11
,
"
oldPrice
"
:
""
,
"
description
"
:
"
咸粥
"
,
"
sellCount
"
:
56
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/e/a3/5317c68dd618929b6ac05804e429ajpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/e/a3/5317c68dd618929b6ac05804e429ajpeg.jpeg?imageView2/1/w/750/h/750
"
},
{
"
name
"
:
"
田园蔬菜粥
"
,
"
price
"
:
10
,
"
oldPrice
"
:
""
,
"
description
"
:
"
咸粥
"
,
"
sellCount
"
:
33
,
"
rating
"
:
100
,
"
info
"
:
""
,
"
ratings
"
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
}
],
"
icon
"
:
"
http://fuss10.elemecdn.com/a/94/7371083792c19df00e546b29e344cjpeg.jpeg?imageView2/1/w/114/h/114
"
,
"
image
"
:
"
http://fuss10.elemecdn.com/a/94/7371083792c19df00e546b29e344cjpeg.jpeg?imageView2/1/w/750/h/750
"
}
]
}
],
ratings
:
[
{
"
username
"
:
"
3******c
"
,
"
rateTime
"
:
1469281964000
,
"
deliveryTime
"
:
30
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
不错,粥很好喝,我经常吃这一家,非常赞,以后也会常来吃,强烈推荐.
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[
"
南瓜粥
"
,
"
皮蛋瘦肉粥
"
,
"
扁豆焖面
"
,
"
娃娃菜炖豆腐
"
,
"
牛肉馅饼
"
]
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469271264000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
deliveryTime
"
:
""
,
"
text
"
:
"
服务态度不错
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[
"
扁豆焖面
"
]
},
{
"
username
"
:
"
3******b
"
,
"
rateTime
"
:
1469261964000
,
"
score
"
:
3
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
1******c
"
,
"
rateTime
"
:
1469261864000
,
"
deliveryTime
"
:
20
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
良心店铺
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
2******d
"
,
"
rateTime
"
:
1469251264000
,
"
deliveryTime
"
:
10
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
9******0
"
,
"
rateTime
"
:
1469241964000
,
"
deliveryTime
"
:
70
,
"
score
"
:
1
,
"
rateType
"
:
1
,
"
text
"
:
"
送货速度蜗牛一样
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
d******c
"
,
"
rateTime
"
:
1469231964000
,
"
deliveryTime
"
:
30
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
很喜欢的粥店
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
2******3
"
,
"
rateTime
"
:
1469221264000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
"
量给的还可以
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
3******8
"
,
"
rateTime
"
:
1469211964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
3
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
a******a
"
,
"
rateTime
"
:
1469201964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
"
孩子喜欢吃这家
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[
"
南瓜粥
"
]
},
{
"
username
"
:
"
3******3
"
,
"
rateTime
"
:
1469191264000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
"
粥挺好吃的
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
t******b
"
,
"
rateTime
"
:
1469181964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
3
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
f******c
"
,
"
rateTime
"
:
1469171964000
,
"
deliveryTime
"
:
15
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
送货速度很快
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
k******3
"
,
"
rateTime
"
:
1469161264000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
u******b
"
,
"
rateTime
"
:
1469151964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
"
下雨天给快递小哥点个赞
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
s******c
"
,
"
rateTime
"
:
1469141964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
"
好
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
z******3
"
,
"
rateTime
"
:
1469131264000
,
"
deliveryTime
"
:
""
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
吃了还想再吃
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
n******b
"
,
"
rateTime
"
:
1469121964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
3
,
"
rateType
"
:
1
,
"
text
"
:
"
发票开的不对
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
m******c
"
,
"
rateTime
"
:
1469111964000
,
"
deliveryTime
"
:
30
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
好吃
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
l******3
"
,
"
rateTime
"
:
1469101264000
,
"
deliveryTime
"
:
40
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
"
还不错吧
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
3******o
"
,
"
rateTime
"
:
1469091964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
2
,
"
rateType
"
:
1
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
3******p
"
,
"
rateTime
"
:
1469081964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
"
很喜欢的粥
"
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
o******k
"
,
"
rateTime
"
:
1469071264000
,
"
deliveryTime
"
:
""
,
"
score
"
:
5
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
},
{
"
username
"
:
"
k******b
"
,
"
rateTime
"
:
1469061964000
,
"
deliveryTime
"
:
""
,
"
score
"
:
4
,
"
rateType
"
:
0
,
"
text
"
:
""
,
"
avatar
"
:
"
http://static.galileo.xiaojukeji.com/static/tms/default_header.png
"
,
"
recommend
"
:
[]
}
]
}
src/router.js
View file @
3f3d17fe
...
@@ -7,8 +7,13 @@ const mineIndex = r => require.ensure([], () => r(require('./views/mine/index.vu
...
@@ -7,8 +7,13 @@ const mineIndex = r => require.ensure([], () => r(require('./views/mine/index.vu
const
sellAddress
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/select-address.vue
'
)))
const
sellAddress
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/select-address.vue
'
)))
const
addAddress
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/add-address.vue
'
)))
const
addAddress
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/add-address.vue
'
)))
const
address
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/address.vue
'
)))
const
address
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/address.vue
'
)))
const
editAddress
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/address/edit-address.vue
'
)))
const
choiseLocation
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/location/choise.vue
'
)))
const
choiseLocation
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/location/choise.vue
'
)))
const
shop
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
./views/shopItem/index.vue
'
)))
/* const choiseLocation = r => require.ensure([], () => r(require('./views/location/choise.vue')))
const choiseLocation = r => require.ensure([], () => r(require('./views/location/choise.vue')))
*/
Vue
.
use
(
Router
);
Vue
.
use
(
Router
);
...
@@ -53,18 +58,23 @@ export default new Router({
...
@@ -53,18 +58,23 @@ export default new Router({
component
:
address
,
component
:
address
,
meta
:
{
title
:
'
收货地址
'
,
keepAlive
:
false
}
meta
:
{
title
:
'
收货地址
'
,
keepAlive
:
false
}
},
},
/*
{
{
path
:
'
/address/edit/:id
'
,
path
:
'
/address/edit/:id
'
,
name
:
'
editAddress
'
,
name
:
'
editAddress
'
,
component
:
editAddress
,
component
:
editAddress
,
meta
:
{
title
:
'
修改地址
'
,
keepAlive
:
false
}
meta
:
{
title
:
'
修改地址
'
,
keepAlive
:
false
}
},
*/
},
{
{
path
:
'
/location/choise
'
,
path
:
'
/location/choise
'
,
name
:
'
choiseLocation
'
,
name
:
'
choiseLocation
'
,
component
:
choiseLocation
,
component
:
choiseLocation
,
meta
:
{
title
:
'
收货地址
'
,
keepAlive
:
false
}
meta
:
{
title
:
'
收货地址
'
,
keepAlive
:
false
}
},
},
{
path
:
'
/shop/:id
'
,
name
:
'
shop
'
,
component
:
shop
,
meta
:
{
title
:
''
,
keepAlive
:
false
}
},
]
]
});
});
src/store/index.js
View file @
3f3d17fe
...
@@ -6,9 +6,9 @@ import actions from './actions'
...
@@ -6,9 +6,9 @@ import actions from './actions'
Vue
.
use
(
Vuex
)
Vue
.
use
(
Vuex
)
const
state
=
{
const
state
=
{
location
:{
lat
:
''
,
lng
:
''
,
formattedAddress
:
''
}
location
:{
lat
:
''
,
lng
:
''
,
formattedAddress
:
''
}
,
// location:'定位中'
choise_position
:{},
edit_address
:{}
// 待编辑的地址信息
}
}
export
default
new
Vuex
.
Store
({
export
default
new
Vuex
.
Store
({
state
,
state
,
...
...
src/store/mutations.js
View file @
3f3d17fe
...
@@ -9,4 +9,15 @@ export default {
...
@@ -9,4 +9,15 @@ export default {
state
.
location
=
info
;
state
.
location
=
info
;
console
.
log
(
info
)
console
.
log
(
info
)
},
},
// 地图定位:确认收货地址
CHOISE_POSITION
(
state
,
info
){
state
.
choise_position
=
info
},
// 清空 地图选点信息
CLEAR_POSITION
(
state
){
state
.
choise_position
=
{}
},
RECORD_ADDRESSINFO
(
state
,
info
){
state
.
edit_address
=
info
}
}
}
\ No newline at end of file
src/vant.js
View file @
3f3d17fe
...
@@ -6,19 +6,20 @@ import {
...
@@ -6,19 +6,20 @@ import {
Image
,
Image
,
Grid
,
Grid
,
GridItem
,
GridItem
,
AddressList
,
//
AddressList,
Row
,
Col
,
Row
,
Col
,
Cell
,
CellGroup
,
Cell
,
CellGroup
,
Field
,
Field
,
Button
Button
,
Tag
}
from
'
vant
'
}
from
'
vant
'
Vue
.
use
(
Search
)
Vue
.
use
(
Search
)
Vue
.
use
(
Image
)
Vue
.
use
(
Image
)
Vue
.
use
(
Grid
)
Vue
.
use
(
Grid
)
Vue
.
use
(
GridItem
)
Vue
.
use
(
GridItem
)
Vue
.
use
(
AddressList
);
//
Vue.use(AddressList);
Vue
.
use
(
Row
).
use
(
Col
);
Vue
.
use
(
Row
).
use
(
Col
);
Vue
.
use
(
Cell
).
use
(
CellGroup
);
Vue
.
use
(
Cell
).
use
(
CellGroup
);
Vue
.
use
(
Field
)
Vue
.
use
(
Field
)
Vue
.
use
(
Tag
)
Vue
.
use
(
Button
)
Vue
.
use
(
Button
)
src/views/address/add-address.vue
View file @
3f3d17fe
...
@@ -19,7 +19,9 @@
...
@@ -19,7 +19,9 @@
/>
/>
<van-field
v-model=
"detailedAddress"
clearable
label=
"门牌号"
placeholder=
"例:5号楼230室"
/>
<van-field
v-model=
"detailedAddress"
clearable
label=
"门牌号"
placeholder=
"例:5号楼230室"
/>
<van-row
class=
"van-cell"
>
<van-row
class=
"van-cell"
>
<van-col
span=
"7"
class=
"van-cell__title van-field__label"
><span>
标签
</span></van-col>
<van-col
span=
"7"
class=
"van-cell__title van-field__label"
>
<span>
标签
</span>
</van-col>
<van-col
span=
"18"
>
<van-col
span=
"18"
>
<cube-checker
<cube-checker
v-model=
"checkerType"
v-model=
"checkerType"
...
@@ -39,6 +41,7 @@
...
@@ -39,6 +41,7 @@
<
script
>
<
script
>
import
{
addReceivingAddress
}
from
"
../../common/serve
"
;
import
{
addReceivingAddress
}
from
"
../../common/serve
"
;
import
utils
from
"
../../common/utils/mUtils
"
;
import
utils
from
"
../../common/utils/mUtils
"
;
import
{
mapState
}
from
"
vuex
"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -71,39 +74,73 @@ export default {
...
@@ -71,39 +74,73 @@ export default {
receiverName
:
""
,
//收货人姓名
receiverName
:
""
,
//收货人姓名
receiverTel
:
""
,
//收货人手机号
receiverTel
:
""
,
//收货人手机号
detailedAddress
:
""
,
//详细地址
detailedAddress
:
""
,
//详细地址
receiverArea
:
""
,
//收货地址
show
:
false
//默认不显示地区选择
show
:
false
//默认不显示地区选择
};
};
},
},
computed
:
{},
computed
:
{
...
mapState
([
"
choise_position
"
]),
receiverArea
()
{
//收货地址
return
this
.
choise_position
.
name
;
}
},
methods
:
{
methods
:
{
//添加收货地址
//添加收货地址
async
onSave
()
{
async
onSave
()
{
const
position
=
this
.
choise_position
;
let
Data
=
{
let
Data
=
{
name
:
"
地址名
"
,
// 地图选点记录的定位信息
address
:
"
地址信息
"
,
name
:
position
.
name
,
lat
:
"
121.513211
"
,
address
:
position
.
address
,
lng
:
"
31.300676
"
,
map_id
:
position
.
id
,
lat
:
position
.
location
.
lat
,
lng
:
position
.
location
.
lng
,
p
:
position
.
location
.
P
,
r
:
position
.
location
.
Q
,
// input信息
phone
:
this
.
receiverTel
,
phone
:
this
.
receiverTel
,
user_name
:
this
.
receiverName
,
user_name
:
this
.
receiverName
,
address_detail
:
this
.
detailedAddress
,
address_detail
:
position
.
name
,
address_suffix
:
"
231
"
,
gender
:
this
.
checkerSex
?
this
.
checkerSex
:
0
,
label
:
this
.
checkerType
?
this
.
checkerType
:
0
,
a
rea
:
{}
,
a
ddress_suffix
:
position
.
address
+
'
,
'
+
this
.
detailedAddress
,
is_default
:
1
is_default
:
1
};
};
if
(
this
.
receiverName
==
""
)
{
this
.
toast
(
"
请填写姓名
"
);
return
;
}
else
if
(
this
.
receiverTel
==
""
)
{
this
.
toast
(
"
请填写手机号
"
);
return
;
}
else
if
(
this
.
receiverArea
==
""
)
{
this
.
toast
(
"
请填写地址
"
);
return
;
}
else
if
(
this
.
detailedAddress
==
""
)
{
this
.
toast
(
"
请填写门牌号
"
);
return
;
}
let
res
=
await
addReceivingAddress
(
Data
);
let
res
=
await
addReceivingAddress
(
Data
);
if
(
res
.
code
===
0
)
{
if
(
res
.
code
===
0
)
{
this
.
$toast
.
success
(
"
添加地址成功
"
);
this
.
toast
(
"
添加地址成功
"
);
if
(
this
.
orderAddress
)
{
this
.
$store
.
commit
(
"
CLEAR_POSITION
"
)
this
.
$router
.
push
({
name
:
"
confirmOrder
"
});
}
else
{
this
.
$router
.
push
({
name
:
"
address
"
});
this
.
$router
.
push
({
name
:
"
address
"
});
}
}
else
{
this
.
$createToast
({
txt
:
res
.
message
,
type
:
"
error
"
}).
show
();
}
}
},
},
onChoiseLocation
(
route
)
{
onChoiseLocation
(
route
)
{
utils
.
onRouterLink
(
this
,
route
);
utils
.
onRouterLink
(
this
,
route
);
},
toast
(
content
)
{
this
.
$createToast
({
txt
:
content
,
type
:
"
txt
"
}).
show
();
}
}
}
}
};
};
...
@@ -117,7 +154,7 @@ export default {
...
@@ -117,7 +154,7 @@ export default {
padding: 10px 0;
padding: 10px 0;
}
}
.van-cell__title span{
.van-cell__title span
{
font-weight: 600;
font-weight: 600;
}
}
...
...
src/views/address/address.vue
View file @
3f3d17fe
<
template
>
<
template
>
<div>
<div>
123
<div
class=
"scroll-list-wrap"
>
<cube-scroll
ref=
"scroll"
>
<div
class=
"van-address-list"
>
<van-row>
<van-col
span=
"24"
>
<cube-address-list
:options=
"list"
:edit=
"true"
@
edit=
"onEdit"
></cube-address-list>
</van-col>
</van-row>
</div>
</cube-scroll>
<van-button
type=
"danger"
size=
"large"
@
click=
"onAdd"
class=
"van-address-list__add"
>
新增地址
</van-button>
</div>
<!--
<van-address-list
v-model=
"chosenAddressId"
:list=
"list"
:switchable=
"false"
@
add=
"onAdd"
@
edit=
"onEdit"
/>
-->
</div>
</div>
</
template
>
</
template
>
<
script
>
import
{
getReceivingAddress
}
from
"
../../common/serve
"
;
import
{
mapMutations
,
mapState
}
from
"
vuex
"
;
export
default
{
data
()
{
return
{
chosenAddressId
:
"
-1
"
,
// 字符串类型!!!
list
:
[]
};
},
computed
:
{
...
mapState
([
"
orderAddress
"
]),
// 当由确认页面进入时,点击地址回到上一页
isGoBack
()
{
return
this
.
orderAddress
;
}
},
created
()
{
this
.
getReceivingAddress
();
},
methods
:
{
async
getReceivingAddress
()
{
let
res
=
await
getReceivingAddress
();
let
_data
=
res
.
data
;
_data
.
forEach
(
el
=>
{
let
_obj
=
{
id
:
el
.
id
.
toString
(),
name
:
el
.
name
,
tel
:
el
.
phone
,
label
:
el
.
label
,
// 地址类型:例:家
gender
:
el
.
gender
,
//性别
address_detail
:
el
.
address_detail
,
//地址
address_suffix
:
el
.
address_suffix
,
//门牌号
is_default
:
el
.
is_default
,
location_id
:
el
.
location_id
,
position
:
'
121.69821,31.186741
'
};
this
.
list
.
push
(
_obj
);
});
},
onAdd
()
{
this
.
$router
.
replace
({
name
:
"
addAddress
"
});
},
onEdit
(
item
,
index
)
{
this
.
$store
.
commit
(
"
RECORD_ADDRESSINFO
"
,
item
);
this
.
$router
.
replace
({
name
:
"
editAddress
"
,
params
:
{
id
:
item
.
location_id
},
query
:
{
position
:
item
.
position
}
});
}
}
};
</
script
>
<
style
lang=
"stylus"
scoped
>
.van-address-list {
box-sizing: border-box;
height: 100%;
padding-bottom: 100px;
}
.van-address-list__add {
position: fixed;
bottom: 0;
left: 0;
z-index: 9999;
}
</
style
>
\ No newline at end of file
src/views/address/edit-address.vue
0 → 100644
View file @
3f3d17fe
<
template
>
<div
class=
"add-address"
>
<van-cell-group>
<van-field
v-model=
"nameValue"
label=
"联系人"
placeholder=
"姓名"
clearable
/>
<van-row
class=
"sex"
>
<van-col
span=
"10"
offset=
"7"
>
<cube-checker
v-model=
"checkerSex"
:options=
"sexOptions"
type=
"radio"
class=
"text-base"
/>
</van-col>
</van-row>
<van-field
v-model=
"telValue"
label=
"电话"
type=
"tel"
placeholder=
"手机号"
clearable
/>
<van-field
ref=
"area"
class=
"area"
v-model=
"locationValue"
label=
"地址"
placeholder=
"选择收货地址"
@
click=
"onChoiseLocation('choiseLocation')"
@
focus=
"$refs.area.blur()"
/>
<van-field
v-model=
"detailValue"
clearable
label=
"门牌号"
placeholder=
"例:5号楼230室"
/>
<van-row
class=
"van-cell"
>
<van-col
span=
"6"
class=
"van-cell__title van-field__label"
>
<span>
标签
</span>
</van-col>
<van-col
span=
"18"
>
<cube-checker
v-model=
"checkerLabel"
:options=
"typeOptions"
type=
"radio"
class=
"text-base"
/>
</van-col>
</van-row>
</van-cell-group>
<div
class=
"van-address-edit__buttons"
>
<van-button
class=
"save"
type=
"danger"
size=
"large"
@
click=
"onSave"
>
确定
</van-button>
</div>
{{
edit_address
}}
</div>
</
template
>
<
script
>
import
{
editReceivingAddress
}
from
"
../../common/serve
"
;
import
utils
from
"
../../common/utils/mUtils
"
;
import
{
mapState
}
from
"
vuex
"
;
export
default
{
data
()
{
return
{
sexOptions
:
[
{
value
:
1
,
text
:
"
先生
"
},
{
value
:
2
,
text
:
"
女士
"
}
],
typeOptions
:
[
{
value
:
1
,
text
:
"
家
"
},
{
value
:
2
,
text
:
"
公司
"
},
{
value
:
3
,
text
:
"
学校
"
}
],
nameValue
:
""
,
telValue
:
""
,
locationValue
:
""
,
// 地址
detailValue
:
""
,
// 门牌号
checkerSex
:
""
,
// 性别
checkerLabel
:
""
// 标签
};
},
computed
:
{
...
mapState
([
"
choise_position
"
,
"
edit_address
"
])
},
created
()
{
const
choiseP
=
this
.
choise_position
;
this
.
nameValue
=
this
.
edit_address
.
name
;
this
.
telValue
=
this
.
edit_address
.
tel
;
this
.
locationValue
=
choiseP
.
name
?
choiseP
.
name
:
this
.
edit_address
.
address_detail
;
this
.
detailValue
=
this
.
edit_address
.
address_suffix
;
this
.
checkerSex
=
this
.
edit_address
.
gender
?
this
.
edit_address
.
gender
:
[];
this
.
checkerLabel
=
this
.
edit_address
.
label
?
this
.
edit_address
.
label
:
[];
},
/* watch: {
choise_position: {
handler(newVal, oldVal) {
this.locationValue = newVal.name;
},
immediate: true,
deep: true
}
}, */
methods
:
{
async
onSave
()
{
let
Data
=
{
// input信息
phone
:
this
.
telValue
,
user_name
:
this
.
nameValue
,
address_detail
:
this
.
locationValue
,
gender
:
this
.
checkerSex
?
this
.
checkerSex
:
0
,
label
:
this
.
checkerLabel
?
this
.
checkerLabel
:
0
,
address_suffix
:
this
.
detailValue
,
is_default
:
1
,
address_id
:
1
// 没有省市区id,默认为1
};
if
(
this
.
receiverName
==
""
)
{
this
.
toast
(
"
请填写姓名
"
);
return
;
}
else
if
(
this
.
receiverTel
==
""
)
{
this
.
toast
(
"
请填写手机号
"
);
return
;
}
else
if
(
this
.
receiverArea
==
""
)
{
this
.
toast
(
"
请填写地址
"
);
return
;
}
else
if
(
this
.
detailedAddress
==
""
)
{
this
.
toast
(
"
请填写门牌号
"
);
return
;
}
// 若重新选择定位,则添加地图选点记录的定位信息
const
position
=
this
.
choise_position
;
if
(
position
.
name
)
{
let
mapInfo
=
{
name
:
position
.
name
,
address
:
position
.
address
,
map_id
:
position
.
id
,
lat
:
position
.
location
.
lat
,
lng
:
position
.
location
.
lng
,
p
:
position
.
location
.
P
,
r
:
position
.
location
.
Q
,
address_detail
:
position
.
name
};
Object
.
assign
(
Data
,
mapInfo
);
}
console
.
log
(
Data
);
let
res
=
await
editReceivingAddress
(
Data
);
if
(
res
.
code
===
0
)
{
this
.
toast
(
"
修改地址成功
"
);
this
.
$store
.
commit
(
"
CLEAR_POSITION
"
);
this
.
$router
.
push
({
name
:
"
address
"
});
}
else
{
this
.
$createToast
({
txt
:
res
.
message
,
type
:
"
error
"
}).
show
();
}
},
onChoiseLocation
(
route
)
{
this
.
$router
.
push
({
name
:
route
,
query
:
{
position
:
this
.
$route
.
query
.
position
}
});
},
toast
(
content
)
{
this
.
$createToast
({
txt
:
content
,
type
:
"
txt
"
}).
show
();
}
}
};
</
script
>
<
style
lang=
"stylus"
rel=
"stylesheet/stylus"
>
@import '~common/stylus/mixin.styl';
@import '~common/stylus/variable.styl';
.sex {
padding: 10px 0;
}
.van-cell__title span {
font-weight: 600;
}
.cube-checker-item {
border-1px();
line-height: 14px;
&_active {
border-1px($color-light-blue);
color: $color-light-blue;
background: #f5fbff;
}
}
.van-address-edit__buttons {
padding: 32px 16px;
}
</
style
>
\ No newline at end of file
src/views/address/select-address.vue
View file @
3f3d17fe
<
template
>
<
template
>
<cube-page
type=
"recycle-list"
title=
"RecycleList"
>
<cube-page
type=
"recycle-list"
title=
"RecycleList"
>
<div
slot=
"content"
class=
"scroll-list-wrap"
>
<div
slot=
"content"
>
<van-search
placeholder=
"请输入搜索关键词"
shape=
"round"
></van-search>
<van-search
placeholder=
"请输入搜索关键词"
shape=
"round"
></van-search>
<div
class=
"scroll-list-wrap"
>
<div
class=
"scroll-list-wrap"
>
<cube-scroll
ref=
"scroll"
>
<cube-scroll
ref=
"scroll"
>
<div>
<!-- 当前定位 -->
<section
class=
"section"
>
<section
class=
"section"
>
<div
class=
"cube-index-list-anchor"
>
当前定位
</div>
<div
class=
"cube-index-list-anchor"
>
当前定位
</div>
<van-cell
:title=
"curLocation"
icon=
"shop-o"
>
<van-cell
:title=
"curLocation"
icon=
"shop-o"
>
...
@@ -18,23 +20,25 @@
...
@@ -18,23 +20,25 @@
<span
slot=
"title"
class=
"text-extra-small text-light-grey"
>
收货地址
</span>
<span
slot=
"title"
class=
"text-extra-small text-light-grey"
>
收货地址
</span>
<span
slot=
"right-icon"
class=
"text-primary"
@
click=
"onLink('address')"
>
管理地址
</span>
<span
slot=
"right-icon"
class=
"text-primary"
@
click=
"onLink('address')"
>
管理地址
</span>
</van-cell>
</van-cell>
<van-row
v-for=
"address in addressList"
:key=
"address.id"
>
<!-- 地址列表 -->
<van-row>
<van-col
span=
"22"
offset=
"2"
>
<van-col
span=
"22"
offset=
"2"
>
<div
class=
"van-cell van-address-item line"
>
<cube-address-list
:options=
"addressList"
@
select=
"setDefaultAddress"
></cube-address-list>
<div
class=
"van-cell__value van-cell__value--alone van-address-item__value"
>
<div
class=
"van-address-item__name"
>
{{
address
.
area
}}
</div>
<div
class
>
{{
address
.
address_detail
}}
</div>
<div
class=
"text-light-grey"
>
{{
address
.
name
}}
{{
address
.
tel
}}
</div>
</div>
</div>
</van-col>
</van-col>
</van-row>
</van-row>
<van-row>
<van-row>
<van-col
span=
"22"
offset=
"2"
>
<van-col
span=
"22"
offset=
"2"
>
<van-cell
title=
"新增地址"
is-link
class=
"text-primary"
@
click=
"onLink('addAddress')"
/>
<van-cell
title=
"新增地址"
is-link
class=
"text-primary"
@
click=
"onLink('addAddress')"
/>
</van-col>
</van-col>
</van-row>
</van-row>
</section>
</section>
</div>
</cube-scroll>
</cube-scroll>
</div>
</div>
</div>
</div>
...
@@ -42,7 +46,7 @@
...
@@ -42,7 +46,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getReceivingAddress
}
from
"
../../common/serve
"
;
import
{
getReceivingAddress
,
editReceivingAddress
}
from
"
../../common/serve
"
;
import
{
mapState
}
from
"
vuex
"
;
import
{
mapState
}
from
"
vuex
"
;
import
utils
from
"
../../common/utils/mUtils
"
;
import
utils
from
"
../../common/utils/mUtils
"
;
let
map
=
{};
let
map
=
{};
...
@@ -80,17 +84,30 @@ export default {
...
@@ -80,17 +84,30 @@ export default {
id
:
el
.
id
.
toString
(),
id
:
el
.
id
.
toString
(),
name
:
el
.
name
,
name
:
el
.
name
,
tel
:
el
.
phone
,
tel
:
el
.
phone
,
address
:
el
.
area
.
full_name
+
"
,
"
+
el
.
address_detail
,
label
:
el
.
label
,
// 地址类型:例:家
gender
:
el
.
gender
,
//性别
area_id
:
el
.
area_id
,
area
:
el
.
area
.
full_name
,
address_detail
:
el
.
address_detail
,
address_detail
:
el
.
address_detail
,
user_name
:
el
.
name
,
address_suffix
:
el
.
address_suffix
,
is_default
:
el
.
is_default
is_default
:
el
.
is_default
};
};
this
.
addressList
.
push
(
_obj
);
this
.
addressList
.
push
(
_obj
);
});
});
},
},
// 选择收货地址
async
setDefaultAddress
(
item
)
{
this
.
$router
.
push
({
name
:
"
home
"
});
return
;
Object
.
assign
(
item
,
{
is_default
:
1
});
let
res
=
await
editReceivingAddress
(
item
);
if
(
res
.
code
==
0
)
{
this
.
$router
.
push
({
name
:
"
home
"
});
}
else
{
this
.
$createToast
({
txt
:
res
.
message
,
type
:
"
error
"
}).
show
();
}
},
onSelect
()
{},
onSelect
()
{},
onRefreshLocation
()
{
onRefreshLocation
()
{
// 重新定位后,调用定位api
// 重新定位后,调用定位api
...
@@ -98,13 +115,16 @@ export default {
...
@@ -98,13 +115,16 @@ export default {
this
.
$store
.
dispatch
(
"
GET_LOCATION
"
,
map
);
this
.
$store
.
dispatch
(
"
GET_LOCATION
"
,
map
);
},
},
onLink
(
route
)
{
onLink
(
route
)
{
utils
.
onRouterLink
(
{
name
:
route
}
);
utils
.
onRouterLink
(
this
,
route
);
}
}
}
}
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.scroll-list-wrap
{
top
:
30px
;
}
.cube-page
>
.wrapper
.content
{
.cube-page
>
.wrapper
.content
{
margin
:
0
;
margin
:
0
;
}
}
...
@@ -112,7 +132,4 @@ export default {
...
@@ -112,7 +132,4 @@ export default {
.cube-index-list-anchor
{
.cube-index-list-anchor
{
background-color
:
transparent
;
background-color
:
transparent
;
}
}
.van-address-item__name
{
font-weight
:
600
;
}
</
style
>
</
style
>
src/views/home/index.vue
View file @
3f3d17fe
...
@@ -17,7 +17,9 @@
...
@@ -17,7 +17,9 @@
<!-- 收货地址定位 -->
<!-- 收货地址定位 -->
<div
class=
"location"
@
click=
"onRouterLink('sellAddress')"
>
<div
class=
"location"
@
click=
"onRouterLink('sellAddress')"
>
<i
class=
"cubeic-location text-primary text-extra-large"
></i>
<i
class=
"cubeic-location text-primary text-extra-large"
></i>
<span
class=
"text-medium"
>
{{
location
.
formattedAddress
?
location
.
formattedAddress
:
'
定位中...
'
}}
</span>
<span
class=
"text-medium"
>
{{
currentAddress
.
address_detail
?
currentAddress
.
address_detail
:
'
定位中...
'
}}
</span>
<div
class=
"location-action"
>
<div
class=
"location-action"
>
<i
class=
"cubeic-select text-extra-small"
></i>
<i
class=
"cubeic-select text-extra-small"
></i>
</div>
</div>
...
@@ -74,6 +76,7 @@
...
@@ -74,6 +76,7 @@
import
CubePage
from
"
../../components/cube-page.vue
"
;
import
CubePage
from
"
../../components/cube-page.vue
"
;
import
footGuide
from
"
../../components/footer
"
;
import
footGuide
from
"
../../components/footer
"
;
import
shopList
from
"
../../components/shop-list
"
;
import
shopList
from
"
../../components/shop-list
"
;
import
{
getNearbyShop
,
getReceivingAddress
}
from
"
../../common/serve
"
;
import
{
mapGeolocation
,
MAP
}
from
"
../../common/utils/mUtils
"
;
import
{
mapGeolocation
,
MAP
}
from
"
../../common/utils/mUtils
"
;
import
{
mapState
}
from
"
vuex
"
;
import
{
mapState
}
from
"
vuex
"
;
var
map
=
{};
var
map
=
{};
...
@@ -134,10 +137,10 @@ var d = [
...
@@ -134,10 +137,10 @@ var d = [
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
loading
:
false
,
loading
:
true
,
currentAddress
:
{},
// 当前收货地址
gridsData
:
d
,
gridsData
:
d
,
shopsData
:
[
b
,
b
,
b
],
shopsData
:
[
b
,
b
,
b
],
scrollEvents
:
[
"
scroll
"
],
scrollEvents
:
[
"
scroll
"
],
scrollY
:
0
,
scrollY
:
0
,
...
@@ -162,26 +165,65 @@ export default {
...
@@ -162,26 +165,65 @@ export default {
};
};
},
},
created
()
{
created
()
{
setTimeout
(()
=>
{
/*
setTimeout(() => {
map = new AMap.Map("amap", {
map = new AMap.Map("amap", {
resizeEnable: true,
resizeEnable: true,
zoom: 16
zoom: 16
});
});
this.$store.dispatch("GET_LOCATION", map);
this.$store.dispatch("GET_LOCATION", map);
},
20
);
}, 20);
*/
if
(
this
.
location
.
lat
)
{
//
if (this.location.lat) {
this
.
loading
=
false
;
//
this.loading = false;
}
//
}
},
},
computed
:
{
mounted
()
{
...
mapState
([
"
location
"
])
this
.
initData
();
},
},
/* computed: {
...mapState(["location"])
}, */
components
:
{
components
:
{
footGuide
,
footGuide
,
CubePage
,
CubePage
,
shopList
shopList
},
},
methods
:
{
methods
:
{
async
initData
()
{
let
p2
=
getReceivingAddress
();
// 获取默认的收货地址
Promise
.
all
([
p2
])
.
then
(
result
=>
{
let
addressData
=
result
[
0
].
data
;
// this.currentAddress = addressData.find(item => item.is_default==1);
this
.
currentAddress
=
addressData
[
4
];
Object
.
assign
(
this
.
currentAddress
,
{
lat
:
121.514158
,
lng
:
31.299059
});
})
.
catch
(
error
=>
{
console
.
log
(
error
);
});
let
msg
=
await
getReceivingAddress
();
// 获取默认的收货地址
if
(
msg
.
code
==
0
)
{
let
addressData
=
msg
.
data
;
// this.currentAddress = addressData.find(item => item.is_default==1);
this
.
currentAddress
=
addressData
[
4
];
Object
.
assign
(
this
.
currentAddress
,
{
lat
:
121.514632
,
lng
:
31.298043
});
}
let
res
=
await
getNearbyShop
(
this
.
currentAddress
.
lat
,
this
.
currentAddress
.
lng
);
// 获取附近的商家
if
(
res
.
code
==
0
)
{
}
this
.
loading
=
false
;
},
scrollHandler
({
y
})
{
scrollHandler
({
y
})
{
this
.
scrollY
=
-
y
;
this
.
scrollY
=
-
y
;
},
},
...
@@ -190,12 +232,12 @@ export default {
...
@@ -190,12 +232,12 @@ export default {
onSlideEvent
(
item
,
index
)
{
onSlideEvent
(
item
,
index
)
{
console
.
log
(
item
,
index
);
console
.
log
(
item
,
index
);
},
},
onRouterLink
(
route
,
query
)
{
onRouterLink
(
route
,
query
)
{
if
(
query
)
{
if
(
query
)
{
this
.
$router
.
push
({
name
:
route
,
query
:
query
})
this
.
$router
.
push
({
name
:
route
,
query
:
query
});
return
;
return
;
}
}
this
.
$router
.
push
({
name
:
route
})
this
.
$router
.
push
({
name
:
route
});
},
},
// 获取数据
// 获取数据
loadData
()
{
loadData
()
{
...
...
src/views/location/choise.vue
View file @
3f3d17fe
<
template
>
<
template
>
<div>
<div>
<!-- 搜索框 -->
<van-search
placeholder=
"小区/写字楼/学校等"
shape=
"round"
></van-search>
<!-- map -->
<div
class=
"amap-page-container"
>
<div
class=
"amap-page-container"
>
<el-amap
<el-amap
vid=
"amap"
vid=
"amap"
...
@@ -12,6 +16,8 @@
...
@@ -12,6 +16,8 @@
class=
"amap-demo"
class=
"amap-demo"
></el-amap>
></el-amap>
</div>
</div>
<!-- 搜索地址列表 -->
<div
class=
"location-box"
>
<div
class=
"location-box"
>
<cube-scroll
ref=
"scroll"
>
<cube-scroll
ref=
"scroll"
>
<van-cell-group>
<van-cell-group>
...
@@ -21,10 +27,13 @@
...
@@ -21,10 +27,13 @@
icon=
"location-o"
icon=
"location-o"
:title=
"item.name"
:title=
"item.name"
:label=
"item.address"
:label=
"item.address"
:class=
"
{active:index==0}"
@click="selectAddress(item.id)"
@click="selectAddress(item.id)"
/>
/>
</van-cell-group>
</van-cell-group>
<cube-loading
v-if=
"poisData==null"
:size=
"20"
>
正在定位
</cube-loading>
<div
v-if=
"poisData==null"
class=
"no-data text-base"
>
<cube-loading
:size=
"24"
></cube-loading>
正在定位
</div>
</cube-scroll>
</cube-scroll>
</div>
</div>
</div>
</div>
...
@@ -36,10 +45,12 @@ let amapManager = new VueAMap.AMapManager();
...
@@ -36,10 +45,12 @@ let amapManager = new VueAMap.AMapManager();
export
default
{
export
default
{
computed
:
{
computed
:
{
lang
()
{
// 是否根据已有经纬度进行定位
return
this
.
$store
.
state
.
lang
;
hasPosition
()
{
return
this
.
$route
.
query
.
position
?
true
:
false
;
}
}
},
},
data
()
{
data
()
{
let
self
=
this
;
let
self
=
this
;
return
{
return
{
...
@@ -52,26 +63,19 @@ export default {
...
@@ -52,26 +63,19 @@ export default {
address
:
null
address
:
null
},
},
poisData
:
null
,
poisData
:
null
,
lng
:
0
,
lat
:
0
,
lng2
:
0
,
lat2
:
0
,
loaded
:
false
,
plugin
:
[
plugin
:
[
{
{
pName
:
"
Geolocation
"
,
pName
:
"
Geolocation
"
,
events
:
{
events
:
{
init
(
o
)
{
init
(
o
)
{
// o 是高德地图定位插件实例
/* o 是高德地图定位插件实例
* 若根据已有经纬度进行定位,则禁止获取用户当前地理位置
*/
if
(
self
.
hasPosition
)
return
;
o
.
getCurrentPosition
((
status
,
result
)
=>
{
o
.
getCurrentPosition
((
status
,
result
)
=>
{
if
(
result
&&
result
.
position
)
{
if
(
result
&&
result
.
position
)
{
self
.
lng
=
result
.
position
.
lng
;
self
.
center
=
[
result
.
position
.
lng
,
result
.
position
.
lat
];
self
.
lat
=
result
.
position
.
lat
;
self
.
center
=
[
self
.
lng
,
self
.
lat
];
self
.
loaded
=
true
;
self
.
$nextTick
();
self
.
$nextTick
();
}
else
{
self
.
loaded
=
true
;
}
}
});
});
}
}
...
@@ -83,19 +87,31 @@ export default {
...
@@ -83,19 +87,31 @@ export default {
AMapUI
.
loadUI
([
"
misc/PositionPicker
"
],
function
(
PositionPicker
)
{
AMapUI
.
loadUI
([
"
misc/PositionPicker
"
],
function
(
PositionPicker
)
{
var
positionPicker
=
new
PositionPicker
({
var
positionPicker
=
new
PositionPicker
({
mode
:
"
dragMap
"
,
//设定为拖拽地图模式,可选'dragMap'、'dragMarker',默认为'dragMap'
mode
:
"
dragMap
"
,
//设定为拖拽地图模式,可选'dragMap'、'dragMarker',默认为'dragMap'
map
:
map
//依赖地图对象
map
:
map
,
//依赖地图对象
iconStyle
:
{
//自定义外观
url
:
"
//webapi.amap.com/ui/1.0/assets/position-picker2.png
"
,
//图片地址
size
:
[
48
,
48
],
//要显示的点大小,将缩放图片
ancher
:
[
24
,
40
]
//锚点的位置,即被size缩放之后,图片的什么位置作为选中的位置
}
});
});
positionPicker
.
on
(
"
success
"
,
function
(
positionResult
)
{
positionPicker
.
on
(
"
success
"
,
function
(
positionResult
)
{
self
.
nowLocation
=
positionResult
.
regeocode
.
pois
[
0
];
self
.
nowLocation
=
positionResult
.
regeocode
.
pois
[
0
];
console
.
log
(
positionResult
);
self
.
center2
=
[
self
.
lng2
=
positionResult
.
position
.
lng
;
positionResult
.
position
.
lng
,
self
.
lat2
=
positionResult
.
position
.
lat
;
positionResult
.
position
.
lat
self
.
center2
=
[
self
.
lng2
,
self
.
lat2
];
];
if
(
self
.
loaded
)
{
self
.
poisData
=
positionResult
.
regeocode
.
pois
;
self
.
poisData
=
positionResult
.
regeocode
.
pois
;
}
console
.
log
(
positionResult
);
});
});
if
(
self
.
hasPosition
)
{
let
position
=
self
.
$route
.
query
.
position
.
split
(
"
,
"
);
positionPicker
.
start
(
position
);
}
else
{
positionPicker
.
start
();
positionPicker
.
start
();
}
//TODO:事件绑定、结果处理等
//TODO:事件绑定、结果处理等
});
});
AMapUI
.
loadUI
([
"
control/BasicControl
"
],
function
(
BasicControl
)
{
AMapUI
.
loadUI
([
"
control/BasicControl
"
],
function
(
BasicControl
)
{
...
@@ -114,34 +130,21 @@ export default {
...
@@ -114,34 +130,21 @@ export default {
methods
:
{
methods
:
{
selectAddress
(
id
)
{
selectAddress
(
id
)
{
let
pItem
=
null
;
let
pItem
=
null
;
for
(
let
i
=
0
;
this
.
poisData
.
length
;
i
++
)
{
if
(
this
.
poisData
[
i
].
id
==
id
)
{
pItem
=
this
.
poisData
[
i
];
break
;
}
}
const
curChoise
=
this
.
poisData
.
find
(
item
=>
item
.
id
==
id
);
const
curChoise
=
this
.
poisData
.
find
(
item
=>
item
.
id
==
id
);
console
.
log
(
curChoise
)
this
.
$store
.
commit
(
"
CHOISE_POSITION
"
,
curChoise
);
},
this
.
$router
.
go
(
-
1
);
goBack
()
{
/* if(this.locationRequest){
this.$router.push({name: this.locationRequest,params:{action:true}});
}else{
this.$router.push({name: 'dish',params:{action:true}});
} */
},
projectCallBackData
()
{},
add
()
{
this
.
$router
.
push
({
name
:
"
addressAdd
"
,
params
:
{
action
:
true
}
});
}
}
}
}
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
lang=
"stylus"
scoped
>
@import '~common/stylus/variable.styl';
.amap-demo {
.amap-demo {
height
:
2
0
0px
;
height: 2
1
0px;
}
}
.location-box {
.location-box {
position: absolute;
position: absolute;
top: 250px;
top: 250px;
...
@@ -149,8 +152,13 @@ console.log(curChoise)
...
@@ -149,8 +152,13 @@ console.log(curChoise)
left: 0;
left: 0;
right: 0;
right: 0;
margin: auto;
margin: auto;
}
.van-cell__title
span
{
.active {
color: $color-blue;
}
.van-cell__title span {
font-size: 14px;
font-size: 14px;
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/shopItem/index.vue
0 → 100644
View file @
3f3d17fe
<
template
>
<cube-page
type=
"scroll-nav-side"
title=
"ScrollNav"
>
<div
slot=
"content"
>
<div
class=
"view-wrapper"
>
<cube-scroll-nav
:side=
"true"
:data=
"data"
:current=
"current"
@
change=
"changeHandler"
@
sticky-change=
"stickyChangeHandler"
>
<ul
class=
"prepend-header"
slot=
"prepend"
>
<li>
11
</li>
<li>
22
</li>
<li>
333
</li>
</ul>
<cube-scroll-nav-panel
v-for=
"item in data"
:key=
"item.name"
:label=
"item.name"
:title=
"item.name"
>
<ul>
<li
v-for=
"food in item.foods"
>
<div>
<img
:src=
"food.icon"
>
<p>
{{
food
.
name
}}
</p>
</div>
</li>
</ul>
</cube-scroll-nav-panel>
</cube-scroll-nav>
</div>
</div>
</cube-page>
</
template
>
<
script
type=
"text/ecmascript-6"
>
import
CubePage
from
'
../../components/cube-page.vue
'
import
goodsData
from
'
../../data
'
const
goods
=
goodsData
.
goods
export
default
{
components
:
{
CubePage
},
data
()
{
return
{
data
:
goods
,
current
:
goods
[
3
].
name
}
},
methods
:
{
changeHandler
(
label
)
{
console
.
log
(
'
changed to:
'
,
label
)
},
stickyChangeHandler
(
current
)
{
console
.
log
(
'
sticky-change
'
,
current
)
}
}
}
</
script
>
<
style
lang=
"stylus"
rel=
"stylesheet/stylus"
>
.scroll-nav-side
background-color: #fff
.view-wrapper
position: fixed
top: 0
left: 0
bottom: 0
width: 100%
.prepend-header
width: 90%
margin: 20px auto
text-align: center
font-size: 20px
line-height: 1.6
border-radius: 2px
box-shadow: 0 0 4px rgba(0, 0, 0, .2)
.cube-scroll-nav-main
background-color: #efeff4
.cube-sticky-fixed
background-color: #efeff4
.cube-scroll-nav-bar
width: 120px
background-color: transparent
.cube-scroll-nav-bar-item
padding: 15px
.cube-scroll-nav-bar-item_active
background-color: #fff
.cube-scroll-nav-panels
background-color: #fff
.cube-scroll-nav-panel
img
width: 114px
height: 114px
ul
overflow: hidden
font-size: 14px
line-height: 1.4
color: #666
li
float: left
width: 50%
div
width: 114px
margin: auto
p
overflow: hidden
white-space: nowrap
text-overflow: ellipsis
.cube-scroll-nav-panel-title
padding: 15px
font-size: 16px
background-color: #fff
</
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