Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
6da3e1bd
Commit
6da3e1bd
authored
Sep 03, 2018
by
Junling Bu
Browse files
Merge branch 'master' of
https://github.com/linlinjava/litemall
parents
d3faa95a
c82046b7
Changes
7
Hide whitespace changes
Inline
Side-by-side
litemall-wx/config/api.js
View file @
6da3e1bd
// 以下是业务服务器API地址
// 本机开发时使用
var
WxApiRoot
=
'
http://localhost:808
0
/wx/
'
;
var
WxApiRoot
=
'
http://localhost:808
2
/wx/
'
;
// 局域网测试使用
// var WxApiRoot = 'http://192.168.0.101:8080/wx/';
// 云平台部署时使用
// var WxApiRoot = 'http://122.152.206.172:8080/wx/';
// 云平台上线时使用
//
var WxApiRoot = 'https://www.menethil.com.cn/wx/';
//var WxApiRoot = 'https://www.menethil.com.cn/wx/';
module
.
exports
=
{
IndexUrl
:
WxApiRoot
+
'
home/index
'
,
//首页数据接口
...
...
litemall-wx/pages/cart/cart.wxml
View file @
6da3e1bd
...
...
@@ -50,9 +50,12 @@
<view class="cart-bottom">
<view class="checkbox {{checkedAllStatus ? 'checked' : ''}}" bindtap="checkedAll">全选({{cartTotal.checkedGoodsCount}})</view>
<view class="total">{{!isEditCart ? '¥'+cartTotal.checkedGoodsAmount : ''}}</view>
<view class="delete" bindtap="editCart">{{!isEditCart ? '编辑' : '完成'}}</view>
<view class="checkout" bindtap="deleteCart" wx:if="{{isEditCart}}">删除所选</view>
<view class="checkout" bindtap="checkoutOrder" wx:if="{{!isEditCart}}">下单</view>
<view class='action_btn_area'>
<view class="{{!isEditCart ? 'edit' : 'sure'}}" bindtap="editCart">{{!isEditCart ? '编辑' : '完成'}}</view>
<view class="delete" bindtap="deleteCart" wx:if="{{isEditCart}}">删除({{cartTotal.checkedGoodsCount}})</view>
<view class="checkout" bindtap="checkoutOrder" wx:if="{{!isEditCart}}">下单</view>
<!-- </view> -->
</view>
</view>
</view>
</view>
...
...
litemall-wx/pages/goods/goods.js
View file @
6da3e1bd
...
...
@@ -5,646 +5,652 @@ var api = require('../../config/api.js');
var
user
=
require
(
'
../../utils/user.js
'
);
Page
({
data
:
{
id
:
0
,
goods
:
{},
groupon
:
[],
//该商品支持的团购规格
grouponLink
:
{},
//参与的团购
attribute
:
[],
issueList
:
[],
comment
:
[],
brand
:
{},
specificationList
:
[],
productList
:
[],
relatedGoods
:
[],
cartGoodsCount
:
0
,
userHasCollect
:
0
,
number
:
1
,
checkedSpecText
:
'
规格数量选择
'
,
tmpSpecText
:
'
请选择规格数量
'
,
checkedSpecPrice
:
0
,
openAttr
:
false
,
noCollectImage
:
'
/static/images/icon_collect.png
'
,
hasCollectImage
:
'
/static/images/icon_collect_checked.png
'
,
collectImage
:
'
/static/images/icon_collect.png
'
,
shareImage
:
''
,
isGroupon
:
false
,
//标识是否是一个参团购买
soldout
:
false
},
// 页面分享
onShareAppMessage
:
function
()
{
let
that
=
this
;
return
{
title
:
that
.
data
.
goods
.
name
,
desc
:
'
唯爱与美食不可辜负
'
,
path
:
'
/pages/index/index?goodId=
'
+
this
.
data
.
id
}
},
shareFriendOrCircle
:
function
()
{
//var that = this;
if
(
this
.
data
.
openShare
===
false
)
{
this
.
setData
({
openShare
:
!
this
.
data
.
openShare
});
}
else
{
return
false
;
}
},
// 保存分享图
saveShare
:
function
()
{
let
that
=
this
;
wx
.
downloadFile
({
url
:
that
.
data
.
shareImage
,
success
:
function
(
res
)
{
console
.
log
(
res
)
wx
.
saveImageToPhotosAlbum
({
filePath
:
res
.
tempFilePath
,
success
:
function
(
res
)
{
wx
.
showModal
({
title
:
'
存图成功
'
,
content
:
'
图片成功保存到相册了,可以分享到朋友圈了
'
,
showCancel
:
false
,
confirmText
:
'
好的
'
,
confirmColor
:
'
#a78845
'
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
console
.
log
(
'
用户点击确定
'
);
}
}
})
},
fail
:
function
(
res
)
{
console
.
log
(
'
fail
'
)
}
})
},
fail
:
function
()
{
console
.
log
(
'
fail
'
)
}
})
},
//从分享的团购进入
getGrouponInfo
:
function
(
grouponId
)
{
let
that
=
this
;
util
.
request
(
api
.
GroupOnJoin
,
{
grouponId
:
grouponId
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
({
grouponLink
:
res
.
data
.
groupon
,
id
:
res
.
data
.
goods
.
id
});
//获取商品详情
that
.
getGoodsInfo
();
}
});
},
// 获取商品信息
getGoodsInfo
:
function
()
{
let
that
=
this
;
util
.
request
(
api
.
GoodsDetail
,
{
id
:
that
.
data
.
id
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
let
_specificationList
=
res
.
data
.
specificationList
// 如果仅仅存在一种货品,那么商品页面初始化时默认checked
if
(
_specificationList
.
length
==
1
)
{
if
(
_specificationList
[
0
].
valueList
.
length
==
1
)
{
_specificationList
[
0
].
valueList
[
0
].
checked
=
true
// 如果仅仅存在一种货品,那么商品价格应该和货品价格一致
// 这里检测一下
let
_productPrice
=
res
.
data
.
productList
[
0
].
price
;
let
_goodsPrice
=
res
.
data
.
info
.
retailPrice
;
if
(
_productPrice
!=
_goodsPrice
)
{
console
.
error
(
'
商品数量价格和货品不一致
'
);
}
data
:
{
id
:
0
,
goods
:
{},
groupon
:
[],
//该商品支持的团购规格
grouponLink
:
{},
//参与的团购
attribute
:
[],
issueList
:
[],
comment
:
[],
brand
:
{},
specificationList
:
[],
productList
:
[],
relatedGoods
:
[],
cartGoodsCount
:
0
,
userHasCollect
:
0
,
number
:
1
,
checkedSpecText
:
'
规格数量选择
'
,
tmpSpecText
:
'
请选择规格数量
'
,
checkedSpecPrice
:
0
,
openAttr
:
false
,
openShare
:
false
,
noCollectImage
:
'
/static/images/icon_collect.png
'
,
hasCollectImage
:
'
/static/images/icon_collect_checked.png
'
,
collectImage
:
'
/static/images/icon_collect.png
'
,
shareImage
:
''
,
isGroupon
:
false
,
//标识是否是一个参团购买
soldout
:
false
},
// 页面分享
onShareAppMessage
:
function
()
{
let
that
=
this
;
return
{
title
:
that
.
data
.
goods
.
name
,
desc
:
'
唯爱与美食不可辜负
'
,
path
:
'
/pages/index/index?goodId=
'
+
this
.
data
.
id
}
},
that
.
setData
({
checkedSpecText
:
_specificationList
[
0
].
valueList
[
0
].
value
,
tmpSpecText
:
'
已选择:
'
+
_specificationList
[
0
].
valueList
[
0
].
value
,
shareFriendOrCircle
:
function
()
{
//var that = this;
if
(
this
.
data
.
openShare
===
false
)
{
this
.
setData
({
openShare
:
!
this
.
data
.
openShare
});
}
}
else
{
return
false
;
}
that
.
setData
({
goods
:
res
.
data
.
info
,
attribute
:
res
.
data
.
attribute
,
issueList
:
res
.
data
.
issue
,
comment
:
res
.
data
.
comment
,
brand
:
res
.
data
.
brand
,
specificationList
:
res
.
data
.
specificationList
,
productList
:
res
.
data
.
productList
,
userHasCollect
:
res
.
data
.
userHasCollect
,
shareImage
:
res
.
data
.
shareImage
,
checkedSpecPrice
:
res
.
data
.
info
.
retailPrice
,
groupon
:
res
.
data
.
groupon
},
// 保存分享图
saveShare
:
function
()
{
let
that
=
this
;
wx
.
downloadFile
({
url
:
that
.
data
.
shareImage
,
success
:
function
(
res
)
{
console
.
log
(
res
)
wx
.
saveImageToPhotosAlbum
({
filePath
:
res
.
tempFilePath
,
success
:
function
(
res
)
{
wx
.
showModal
({
title
:
'
存图成功
'
,
content
:
'
图片成功保存到相册了,可以分享到朋友圈了
'
,
showCancel
:
false
,
confirmText
:
'
好的
'
,
confirmColor
:
'
#a78845
'
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
console
.
log
(
'
用户点击确定
'
);
}
}
})
},
fail
:
function
(
res
)
{
console
.
log
(
'
fail
'
)
}
})
},
fail
:
function
()
{
console
.
log
(
'
fail
'
)
}
})
},
//从分享的团购进入
getGrouponInfo
:
function
(
grouponId
)
{
let
that
=
this
;
util
.
request
(
api
.
GroupOnJoin
,
{
grouponId
:
grouponId
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
({
grouponLink
:
res
.
data
.
groupon
,
id
:
res
.
data
.
goods
.
id
});
//获取商品详情
that
.
getGoodsInfo
();
}
});
},
// 获取商品信息
getGoodsInfo
:
function
()
{
let
that
=
this
;
util
.
request
(
api
.
GoodsDetail
,
{
id
:
that
.
data
.
id
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
let
_specificationList
=
res
.
data
.
specificationList
// 如果仅仅存在一种货品,那么商品页面初始化时默认checked
if
(
_specificationList
.
length
==
1
)
{
if
(
_specificationList
[
0
].
valueList
.
length
==
1
)
{
_specificationList
[
0
].
valueList
[
0
].
checked
=
true
// 如果仅仅存在一种货品,那么商品价格应该和货品价格一致
// 这里检测一下
let
_productPrice
=
res
.
data
.
productList
[
0
].
price
;
let
_goodsPrice
=
res
.
data
.
info
.
retailPrice
;
if
(
_productPrice
!=
_goodsPrice
)
{
console
.
error
(
'
商品数量价格和货品不一致
'
);
}
that
.
setData
({
checkedSpecText
:
_specificationList
[
0
].
valueList
[
0
].
value
,
tmpSpecText
:
'
已选择:
'
+
_specificationList
[
0
].
valueList
[
0
].
value
,
});
}
}
//如果是通过分享的团购参加团购,则团购项目应该与分享的一致并且不可更改
if
(
that
.
data
.
isGroupon
)
{
let
groupons
=
that
.
data
.
groupon
;
for
(
var
i
=
0
;
i
<
groupons
.
length
;
i
++
)
{
if
(
groupons
[
i
].
id
!=
that
.
data
.
grouponLink
.
rulesId
)
{
groupons
.
splice
(
i
,
1
);
}
}
groupons
[
0
].
checked
=
true
;
//重设团购规格
that
.
setData
({
groupon
:
groupons
});
that
.
setData
({
goods
:
res
.
data
.
info
,
attribute
:
res
.
data
.
attribute
,
issueList
:
res
.
data
.
issue
,
comment
:
res
.
data
.
comment
,
brand
:
res
.
data
.
brand
,
specificationList
:
res
.
data
.
specificationList
,
productList
:
res
.
data
.
productList
,
userHasCollect
:
res
.
data
.
userHasCollect
,
shareImage
:
res
.
data
.
shareImage
,
checkedSpecPrice
:
res
.
data
.
info
.
retailPrice
,
groupon
:
res
.
data
.
groupon
});
//如果是通过分享的团购参加团购,则团购项目应该与分享的一致并且不可更改
if
(
that
.
data
.
isGroupon
)
{
let
groupons
=
that
.
data
.
groupon
;
for
(
var
i
=
0
;
i
<
groupons
.
length
;
i
++
)
{
if
(
groupons
[
i
].
id
!=
that
.
data
.
grouponLink
.
rulesId
)
{
groupons
.
splice
(
i
,
1
);
}
}
groupons
[
0
].
checked
=
true
;
//重设团购规格
that
.
setData
({
groupon
:
groupons
});
}
}
if
(
res
.
data
.
userHasCollect
==
1
)
{
that
.
setData
({
collectImage
:
that
.
data
.
hasCollectImage
});
}
else
{
that
.
setData
({
collectImage
:
that
.
data
.
noCollectImage
});
}
if
(
res
.
data
.
userHasCollect
==
1
)
{
that
.
setData
({
collectImage
:
that
.
data
.
hasCollectImage
});
}
else
{
that
.
setData
({
collectImage
:
that
.
data
.
noCollectImage
});
}
WxParse
.
wxParse
(
'
goodsDetail
'
,
'
html
'
,
res
.
data
.
info
.
detail
,
that
);
//获取推荐商品
that
.
getGoodsRelated
();
}
});
},
// 获取推荐商品
getGoodsRelated
:
function
()
{
let
that
=
this
;
util
.
request
(
api
.
GoodsRelated
,
{
id
:
that
.
data
.
id
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
({
relatedGoods
:
res
.
data
.
goodsList
,
WxParse
.
wxParse
(
'
goodsDetail
'
,
'
html
'
,
res
.
data
.
info
.
detail
,
that
);
//获取推荐商品
that
.
getGoodsRelated
();
}
});
}
});
},
// 团购选择
clickGroupon
:
function
(
event
)
{
let
that
=
this
;
//参与团购,不可更改选择
if
(
that
.
data
.
isGroupon
)
{
return
;
}
let
specName
=
event
.
currentTarget
.
dataset
.
name
;
let
specValueId
=
event
.
currentTarget
.
dataset
.
valueId
;
let
_grouponList
=
this
.
data
.
groupon
;
for
(
let
i
=
0
;
i
<
_grouponList
.
length
;
i
++
)
{
if
(
_grouponList
[
i
].
id
==
specValueId
)
{
if
(
_grouponList
[
i
].
checked
)
{
_grouponList
[
i
].
checked
=
false
;
}
else
{
_grouponList
[
i
].
checked
=
true
;
}
,
// 获取推荐商品
getGoodsRelated
:
function
()
{
let
that
=
this
;
util
.
request
(
api
.
GoodsRelated
,
{
id
:
that
.
data
.
id
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
(
{
relatedGoods
:
res
.
data
.
goodsList
,
}
);
}
})
;
},
// 团购选择
clickGroupon
:
function
(
event
)
{
let
that
=
this
;
//参与团购,不可更改选择
if
(
that
.
data
.
isGroupon
)
{
return
;
}
}
else
{
_grouponList
[
i
].
checked
=
false
;
}
}
this
.
setData
({
groupon
:
_grouponList
,
});
},
// 规格选择
clickSkuValue
:
function
(
event
)
{
let
that
=
this
;
let
specName
=
event
.
currentTarget
.
dataset
.
name
;
let
specValueId
=
event
.
currentTarget
.
dataset
.
valueId
;
//判断是否可以点击
//TODO 性能优化,可在wx:for中添加index,可以直接获取点击的属性名和属性值,不用循环
let
_specificationList
=
this
.
data
.
specificationList
;
for
(
let
i
=
0
;
i
<
_specificationList
.
length
;
i
++
)
{
if
(
_specificationList
[
i
].
name
===
specName
)
{
for
(
let
j
=
0
;
j
<
_specificationList
[
i
].
valueList
.
length
;
j
++
)
{
if
(
_specificationList
[
i
].
valueList
[
j
].
id
==
specValueId
)
{
//如果已经选中,则反选
if
(
_specificationList
[
i
].
valueList
[
j
].
checked
)
{
_specificationList
[
i
].
valueList
[
j
].
checked
=
false
;
let
specName
=
event
.
currentTarget
.
dataset
.
name
;
let
specValueId
=
event
.
currentTarget
.
dataset
.
valueId
;
let
_grouponList
=
this
.
data
.
groupon
;
for
(
let
i
=
0
;
i
<
_grouponList
.
length
;
i
++
)
{
if
(
_grouponList
[
i
].
id
==
specValueId
)
{
if
(
_grouponList
[
i
].
checked
)
{
_grouponList
[
i
].
checked
=
false
;
}
else
{
_grouponList
[
i
].
checked
=
true
;
}
}
else
{
_specificationList
[
i
].
valueList
[
j
].
checked
=
tru
e
;
_grouponList
[
i
].
checked
=
fals
e
;
}
}
else
{
_specificationList
[
i
].
valueList
[
j
].
checked
=
false
;
}
}
}
}
this
.
setData
({
specificationList
:
_specificationList
,
});
//重新计算spec改变后的信息
this
.
changeSpecInfo
();
//重新计算哪些值不可以点击
},
//获取选中的团购信息
getCheckedGrouponValue
:
function
()
{
let
checkedValues
=
{};
let
_grouponList
=
this
.
data
.
groupon
;
for
(
let
i
=
0
;
i
<
_grouponList
.
length
;
i
++
)
{
if
(
_grouponList
[
i
].
checked
)
{
checkedValues
=
_grouponList
[
i
];
}
}
return
checkedValues
;
},
//获取选中的规格信息
getCheckedSpecValue
:
function
()
{
let
checkedValues
=
[];
let
_specificationList
=
this
.
data
.
specificationList
;
for
(
let
i
=
0
;
i
<
_specificationList
.
length
;
i
++
)
{
let
_checkedObj
=
{
name
:
_specificationList
[
i
].
name
,
valueId
:
0
,
valueText
:
''
};
for
(
let
j
=
0
;
j
<
_specificationList
[
i
].
valueList
.
length
;
j
++
)
{
if
(
_specificationList
[
i
].
valueList
[
j
].
checked
)
{
_checkedObj
.
valueId
=
_specificationList
[
i
].
valueList
[
j
].
id
;
_checkedObj
.
valueText
=
_specificationList
[
i
].
valueList
[
j
].
value
;
this
.
setData
({
groupon
:
_grouponList
,
});
},
// 规格选择
clickSkuValue
:
function
(
event
)
{
let
that
=
this
;
let
specName
=
event
.
currentTarget
.
dataset
.
name
;
let
specValueId
=
event
.
currentTarget
.
dataset
.
valueId
;
//判断是否可以点击
//TODO 性能优化,可在wx:for中添加index,可以直接获取点击的属性名和属性值,不用循环
let
_specificationList
=
this
.
data
.
specificationList
;
for
(
let
i
=
0
;
i
<
_specificationList
.
length
;
i
++
)
{
if
(
_specificationList
[
i
].
name
===
specName
)
{
for
(
let
j
=
0
;
j
<
_specificationList
[
i
].
valueList
.
length
;
j
++
)
{
if
(
_specificationList
[
i
].
valueList
[
j
].
id
==
specValueId
)
{
//如果已经选中,则反选
if
(
_specificationList
[
i
].
valueList
[
j
].
checked
)
{
_specificationList
[
i
].
valueList
[
j
].
checked
=
false
;
}
else
{
_specificationList
[
i
].
valueList
[
j
].
checked
=
true
;
}
}
else
{
_specificationList
[
i
].
valueList
[
j
].
checked
=
false
;
}
}
}
}
}
checkedValues
.
push
(
_checkedObj
);
}
return
checkedValues
;
},
//判断规格是否选择完整
isCheckedAllSpec
:
function
()
{
return
!
this
.
getCheckedSpecValue
().
some
(
function
(
v
)
{
if
(
v
.
valueId
==
0
)
{
return
true
;
}
});
},
getCheckedSpecKey
:
function
()
{
let
checkedValue
=
this
.
getCheckedSpecValue
().
map
(
function
(
v
)
{
return
v
.
valueText
;
});
return
checkedValue
;
},
// 规格改变时,重新计算价格及显示信息
changeSpecInfo
:
function
()
{
let
checkedNameValue
=
this
.
getCheckedSpecValue
();
//设置选择的信息
let
checkedValue
=
checkedNameValue
.
filter
(
function
(
v
)
{
if
(
v
.
valueId
!=
0
)
{
return
true
;
}
else
{
return
false
;
}
}).
map
(
function
(
v
)
{
return
v
.
valueText
;
});
if
(
checkedValue
.
length
>
0
)
{
this
.
setData
({
tmpSpecText
:
checkedValue
.
join
(
'
'
)
});
}
else
{
this
.
setData
({
tmpSpecText
:
'
请选择规格数量
'
});
}
if
(
this
.
isCheckedAllSpec
())
{
this
.
setData
({
checkedSpecText
:
this
.
data
.
tmpSpecText
});
// 规格所对应的货品选择以后
let
checkedProductArray
=
this
.
getCheckedProductItem
(
this
.
getCheckedSpecKey
());
if
(
!
checkedProductArray
||
checkedProductArray
.
length
<=
0
)
{
this
.
setData
({
soldout
:
true
specificationList
:
_specificationList
,
});
console
.
error
(
'
规格所对应货品不存在
'
);
return
;
}
//重新计算spec改变后的信息
this
.
changeSpecInfo
();
//重新计算哪些值不可以点击
},
//获取选中的团购信息
getCheckedGrouponValue
:
function
()
{
let
checkedValues
=
{};
let
_grouponList
=
this
.
data
.
groupon
;
for
(
let
i
=
0
;
i
<
_grouponList
.
length
;
i
++
)
{
if
(
_grouponList
[
i
].
checked
)
{
checkedValues
=
_grouponList
[
i
];
}
}
let
checkedProduct
=
checkedProductArray
[
0
];
if
(
checkedProduct
.
number
>
0
)
{
this
.
setData
({
checkedSpecPrice
:
checkedProduct
.
price
,
soldout
:
false
return
checkedValues
;
},
//获取选中的规格信息
getCheckedSpecValue
:
function
()
{
let
checkedValues
=
[];
let
_specificationList
=
this
.
data
.
specificationList
;
for
(
let
i
=
0
;
i
<
_specificationList
.
length
;
i
++
)
{
let
_checkedObj
=
{
name
:
_specificationList
[
i
].
name
,
valueId
:
0
,
valueText
:
''
};
for
(
let
j
=
0
;
j
<
_specificationList
[
i
].
valueList
.
length
;
j
++
)
{
if
(
_specificationList
[
i
].
valueList
[
j
].
checked
)
{
_checkedObj
.
valueId
=
_specificationList
[
i
].
valueList
[
j
].
id
;
_checkedObj
.
valueText
=
_specificationList
[
i
].
valueList
[
j
].
value
;
}
}
checkedValues
.
push
(
_checkedObj
);
}
return
checkedValues
;
},
//判断规格是否选择完整
isCheckedAllSpec
:
function
()
{
return
!
this
.
getCheckedSpecValue
().
some
(
function
(
v
)
{
if
(
v
.
valueId
==
0
)
{
return
true
;
}
});
}
else
{
this
.
setData
({
checkedSpecPrice
:
this
.
data
.
goods
.
retailPrice
,
soldout
:
true
},
getCheckedSpecKey
:
function
()
{
let
checkedValue
=
this
.
getCheckedSpecValue
().
map
(
function
(
v
)
{
return
v
.
valueText
;
});
}
return
checkedValue
;
},
}
else
{
this
.
setData
({
checkedSpecText
:
'
规格数量选择
'
,
checkedSpecPrice
:
this
.
data
.
goods
.
retailPrice
,
soldout
:
false
});
}
},
// 获取选中的产品(根据规格)
getCheckedProductItem
:
function
(
key
)
{
return
this
.
data
.
productList
.
filter
(
function
(
v
)
{
if
(
v
.
specifications
.
toString
()
==
key
.
toString
())
{
return
true
;
}
else
{
return
false
;
}
});
},
onLoad
:
function
(
options
)
{
// 页面初始化 options为页面跳转所带来的参数
if
(
options
.
id
)
{
this
.
setData
({
id
:
parseInt
(
options
.
id
)
});
this
.
getGoodsInfo
();
}
if
(
options
.
grouponId
)
{
this
.
setData
({
isGroupon
:
true
,
});
this
.
getGrouponInfo
(
options
.
grouponId
);
}
},
onShow
:
function
()
{
// 页面显示
var
that
=
this
;
util
.
request
(
api
.
CartGoodsCount
).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
({
cartGoodsCount
:
res
.
data
// 规格改变时,重新计算价格及显示信息
changeSpecInfo
:
function
()
{
let
checkedNameValue
=
this
.
getCheckedSpecValue
();
//设置选择的信息
let
checkedValue
=
checkedNameValue
.
filter
(
function
(
v
)
{
if
(
v
.
valueId
!=
0
)
{
return
true
;
}
else
{
return
false
;
}
}).
map
(
function
(
v
)
{
return
v
.
valueText
;
});
}
});
},
//添加或是取消收藏
addCollectOrNot
:
function
()
{
let
that
=
this
;
util
.
request
(
api
.
CollectAddOrDelete
,
{
type
:
0
,
valueId
:
this
.
data
.
id
},
"
POST
"
)
.
then
(
function
(
res
)
{
let
_res
=
res
;
if
(
_res
.
errno
==
0
)
{
if
(
_res
.
data
.
type
==
'
add
'
)
{
that
.
setData
({
collectImage
:
that
.
data
.
hasCollectImage
if
(
checkedValue
.
length
>
0
)
{
this
.
setData
({
tmpSpecText
:
checkedValue
.
join
(
'
'
)
});
}
else
{
that
.
setData
({
collectImage
:
that
.
data
.
noCollectImage
}
else
{
this
.
setData
({
tmpSpecText
:
'
请选择规格数量
'
});
}
if
(
this
.
isCheckedAllSpec
())
{
this
.
setData
({
checkedSpecText
:
this
.
data
.
tmpSpecText
});
}
// 规格所对应的货品选择以后
let
checkedProductArray
=
this
.
getCheckedProductItem
(
this
.
getCheckedSpecKey
());
if
(
!
checkedProductArray
||
checkedProductArray
.
length
<=
0
)
{
this
.
setData
({
soldout
:
true
});
console
.
error
(
'
规格所对应货品不存在
'
);
return
;
}
let
checkedProduct
=
checkedProductArray
[
0
];
if
(
checkedProduct
.
number
>
0
)
{
this
.
setData
({
checkedSpecPrice
:
checkedProduct
.
price
,
soldout
:
false
});
}
else
{
this
.
setData
({
checkedSpecPrice
:
this
.
data
.
goods
.
retailPrice
,
soldout
:
true
});
}
}
else
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
_res
.
errmsg
,
mask
:
tru
e
});
this
.
setData
({
checkedSpecText
:
'
规格数量选择
'
,
checkedSpecPrice
:
this
.
data
.
goods
.
retailPrice
,
soldout
:
fals
e
});
}
});
},
//立即购买(先自动加入购物车)
addFast
:
function
()
{
var
that
=
this
;
if
(
this
.
data
.
openAttr
==
false
)
{
//打开规格选择窗口
this
.
setData
({
openAttr
:
!
this
.
data
.
openAttr
});
}
else
{
//提示选择完整规格
if
(
!
this
.
isCheckedAllSpec
())
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
请选择完整规格
'
});
return
false
;
}
//根据选中的规格,判断是否有对应的sku信息
let
checkedProductArray
=
this
.
getCheckedProductItem
(
this
.
getCheckedSpecKey
());
if
(
!
checkedProductArray
||
checkedProductArray
.
length
<=
0
)
{
//找不到对应的product信息,提示没有库存
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
});
return
false
;
}
let
checkedProduct
=
checkedProductArray
[
0
];
//验证库存
if
(
checkedProduct
.
number
<=
0
)
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
},
// 获取选中的产品(根据规格)
getCheckedProductItem
:
function
(
key
)
{
return
this
.
data
.
productList
.
filter
(
function
(
v
)
{
if
(
v
.
specifications
.
toString
()
==
key
.
toString
())
{
return
true
;
}
else
{
return
false
;
}
});
return
false
;
}
//验证团购是否有效
let
checkedGroupon
=
this
.
getCheckedGrouponValue
();
//立即购买
util
.
request
(
api
.
CartFastAdd
,
{
goodsId
:
this
.
data
.
goods
.
id
,
number
:
this
.
data
.
number
,
productId
:
checkedProduct
.
id
},
"
POST
"
)
.
then
(
function
(
res
)
{
if
(
res
.
errno
==
0
)
{
// 如果storage中设置了cartId,则是立即购买,否则是购物车购买
try
{
wx
.
setStorageSync
(
'
cartId
'
,
res
.
data
);
wx
.
setStorageSync
(
'
grouponRulesId
'
,
checkedGroupon
.
id
);
wx
.
setStorageSync
(
'
grouponLinkId
'
,
that
.
data
.
grouponLink
.
id
);
wx
.
navigateTo
({
url
:
'
/pages/checkout/checkout
'
})
}
catch
(
e
)
{}
}
else
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
res
.
errmsg
,
mask
:
true
},
onLoad
:
function
(
options
)
{
// 页面初始化 options为页面跳转所带来的参数
if
(
options
.
id
)
{
this
.
setData
({
id
:
parseInt
(
options
.
id
)
});
}
});
}
},
//添加到购物车
addToCart
:
function
()
{
var
that
=
this
;
if
(
this
.
data
.
openAttr
==
false
)
{
//打开规格选择窗口
this
.
setData
({
openAttr
:
!
this
.
data
.
openAttr
});
}
else
{
//提示选择完整规格
if
(
!
this
.
isCheckedAllSpec
())
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
请选择完整规格
'
});
return
false
;
}
//根据选中的规格,判断是否有对应的sku信息
let
checkedProductArray
=
this
.
getCheckedProductItem
(
this
.
getCheckedSpecKey
());
if
(
!
checkedProductArray
||
checkedProductArray
.
length
<=
0
)
{
//找不到对应的product信息,提示没有库存
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
});
return
false
;
}
let
checkedProduct
=
checkedProductArray
[
0
];
//验证库存
if
(
checkedProduct
.
number
<=
0
)
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
this
.
getGoodsInfo
();
}
if
(
options
.
grouponId
)
{
this
.
setData
({
isGroupon
:
true
,
});
this
.
getGrouponInfo
(
options
.
grouponId
);
}
},
onShow
:
function
()
{
// 页面显示
var
that
=
this
;
util
.
request
(
api
.
CartGoodsCount
).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
({
cartGoodsCount
:
res
.
data
});
}
});
return
false
;
}
//添加到购物车
util
.
request
(
api
.
CartAdd
,
{
goodsId
:
this
.
data
.
goods
.
id
,
number
:
this
.
data
.
number
,
productId
:
checkedProduct
.
id
},
"
POST
"
)
.
then
(
function
(
res
)
{
let
_res
=
res
;
if
(
_res
.
errno
==
0
)
{
wx
.
showToast
({
title
:
'
添加成功
'
},
//添加或是取消收藏
addCollectOrNot
:
function
()
{
let
that
=
this
;
util
.
request
(
api
.
CollectAddOrDelete
,
{
type
:
0
,
valueId
:
this
.
data
.
id
},
"
POST
"
)
.
then
(
function
(
res
)
{
let
_res
=
res
;
if
(
_res
.
errno
==
0
)
{
if
(
_res
.
data
.
type
==
'
add
'
)
{
that
.
setData
({
collectImage
:
that
.
data
.
hasCollectImage
});
}
else
{
that
.
setData
({
collectImage
:
that
.
data
.
noCollectImage
});
}
}
else
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
_res
.
errmsg
,
mask
:
true
});
}
});
that
.
setData
({
openAttr
:
!
that
.
data
.
openAttr
,
cartGoodsCount
:
_res
.
data
},
//立即购买(先自动加入购物车)
addFast
:
function
()
{
var
that
=
this
;
if
(
this
.
data
.
openAttr
==
false
)
{
//打开规格选择窗口
this
.
setData
({
openAttr
:
!
this
.
data
.
openAttr
});
if
(
that
.
data
.
userHasCollect
==
1
)
{
that
.
setData
({
collectImage
:
that
.
data
.
hasCollectImage
});
}
else
{
that
.
setData
({
collectImage
:
that
.
data
.
noCollectImage
});
}
else
{
//提示选择完整规格
if
(
!
this
.
isCheckedAllSpec
())
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
请选择完整规格
'
});
return
false
;
}
//根据选中的规格,判断是否有对应的sku信息
let
checkedProductArray
=
this
.
getCheckedProductItem
(
this
.
getCheckedSpecKey
());
if
(
!
checkedProductArray
||
checkedProductArray
.
length
<=
0
)
{
//找不到对应的product信息,提示没有库存
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
});
return
false
;
}
let
checkedProduct
=
checkedProductArray
[
0
];
//验证库存
if
(
checkedProduct
.
number
<=
0
)
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
});
return
false
;
}
}
else
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
_res
.
errmsg
,
mask
:
true
//验证团购是否有效
let
checkedGroupon
=
this
.
getCheckedGrouponValue
();
//立即购买
util
.
request
(
api
.
CartFastAdd
,
{
goodsId
:
this
.
data
.
goods
.
id
,
number
:
this
.
data
.
number
,
productId
:
checkedProduct
.
id
},
"
POST
"
)
.
then
(
function
(
res
)
{
if
(
res
.
errno
==
0
)
{
// 如果storage中设置了cartId,则是立即购买,否则是购物车购买
try
{
wx
.
setStorageSync
(
'
cartId
'
,
res
.
data
);
wx
.
setStorageSync
(
'
grouponRulesId
'
,
checkedGroupon
.
id
);
wx
.
setStorageSync
(
'
grouponLinkId
'
,
that
.
data
.
grouponLink
.
id
);
wx
.
navigateTo
({
url
:
'
/pages/checkout/checkout
'
})
}
catch
(
e
)
{}
}
else
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
res
.
errmsg
,
mask
:
true
});
}
});
}
},
//添加到购物车
addToCart
:
function
()
{
var
that
=
this
;
if
(
this
.
data
.
openAttr
==
false
)
{
//打开规格选择窗口
this
.
setData
({
openAttr
:
!
this
.
data
.
openAttr
});
}
}
else
{
//提示选择完整规格
if
(
!
this
.
isCheckedAllSpec
())
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
请选择完整规格
'
});
return
false
;
}
//根据选中的规格,判断是否有对应的sku信息
let
checkedProductArray
=
this
.
getCheckedProductItem
(
this
.
getCheckedSpecKey
());
if
(
!
checkedProductArray
||
checkedProductArray
.
length
<=
0
)
{
//找不到对应的product信息,提示没有库存
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
});
return
false
;
}
let
checkedProduct
=
checkedProductArray
[
0
];
//验证库存
if
(
checkedProduct
.
number
<=
0
)
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
'
没有库存
'
});
return
false
;
}
//添加到购物车
util
.
request
(
api
.
CartAdd
,
{
goodsId
:
this
.
data
.
goods
.
id
,
number
:
this
.
data
.
number
,
productId
:
checkedProduct
.
id
},
"
POST
"
)
.
then
(
function
(
res
)
{
let
_res
=
res
;
if
(
_res
.
errno
==
0
)
{
wx
.
showToast
({
title
:
'
添加成功
'
});
that
.
setData
({
openAttr
:
!
that
.
data
.
openAttr
,
cartGoodsCount
:
_res
.
data
});
if
(
that
.
data
.
userHasCollect
==
1
)
{
that
.
setData
({
collectImage
:
that
.
data
.
hasCollectImage
});
}
else
{
that
.
setData
({
collectImage
:
that
.
data
.
noCollectImage
});
}
}
else
{
wx
.
showToast
({
image
:
'
/static/images/icon_error.png
'
,
title
:
_res
.
errmsg
,
mask
:
true
});
}
});
}
},
cutNumber
:
function
()
{
this
.
setData
({
number
:
(
this
.
data
.
number
-
1
>
1
)
?
this
.
data
.
number
-
1
:
1
});
},
addNumber
:
function
()
{
this
.
setData
({
number
:
this
.
data
.
number
+
1
});
},
onHide
:
function
()
{
// 页面隐藏
},
onUnload
:
function
()
{
// 页面关闭
},
switchAttrPop
:
function
()
{
if
(
this
.
data
.
openAttr
==
false
)
{
this
.
setData
({
openAttr
:
!
this
.
data
.
openAttr
});
}
},
closeAttr
:
function
()
{
this
.
setData
({
openAttr
:
false
,
});
},
closeShare
:
function
()
{
this
.
setData
({
openShare
:
false
,
});
},
openCartPage
:
function
()
{
wx
.
switchTab
({
url
:
'
/pages/cart/cart
'
});
}
},
cutNumber
:
function
()
{
this
.
setData
({
number
:
(
this
.
data
.
number
-
1
>
1
)
?
this
.
data
.
number
-
1
:
1
});
},
addNumber
:
function
()
{
this
.
setData
({
number
:
this
.
data
.
number
+
1
});
},
onHide
:
function
()
{
// 页面隐藏
},
onUnload
:
function
()
{
// 页面关闭
},
switchAttrPop
:
function
()
{
if
(
this
.
data
.
openAttr
==
false
)
{
this
.
setData
({
openAttr
:
!
this
.
data
.
openAttr
});
}
},
closeAttr
:
function
()
{
this
.
setData
({
openAttr
:
false
,
});
},
openCartPage
:
function
()
{
wx
.
switchTab
({
url
:
'
/pages/cart/cart
'
});
},
onReady
:
function
()
{
// 页面渲染完成
},
// 下拉刷新
onPullDownRefresh
()
{
wx
.
showNavigationBarLoading
()
//在标题栏中显示加载
this
.
getGoodsInfo
();
wx
.
hideNavigationBarLoading
()
//完成停止加载
wx
.
stopPullDownRefresh
()
//停止下拉刷新
},
//根据已选的值,计算其它值的状态
setSpecValueStatus
:
function
()
{
},
},
onReady
:
function
()
{
// 页面渲染完成
},
// 下拉刷新
onPullDownRefresh
()
{
wx
.
showNavigationBarLoading
()
//在标题栏中显示加载
this
.
getGoodsInfo
();
wx
.
hideNavigationBarLoading
()
//完成停止加载
wx
.
stopPullDownRefresh
()
//停止下拉刷新
},
//根据已选的值,计算其它值的状态
setSpecValueStatus
:
function
()
{
},
})
\ No newline at end of file
litemall-wx/pages/ucenter/address/address.wxss
View file @
6da3e1bd
...
...
@@ -90,18 +90,31 @@ page{
}
.add-address{
background: #b4282d;
text-align: center;
width: 100%;
height: 99rpx;
line-height: 99rpx;
position: fixed;
border-radius: 0;
border: none;
color: #fff;
font-size: 29rpx;
bottom: 0;
left:0;
border: none;
right: 0;
display: flex;
justify-content: center;
align-items: center;
width: 90%;
height: 90rpx;
line-height: 98rpx;
position: absolute;
bottom: 0;
left: 0;
border-radius: 0;
padding: 0;
margin: 0;
margin-left: 5%;
text-align: center;
/* padding-left: -5rpx; */
font-size: 25rpx;
color: #f4f4f4;
border-top-left-radius: 50rpx;
border-bottom-left-radius: 50rpx;
border-top-right-radius: 50rpx;
border-bottom-right-radius: 50rpx;
letter-spacing: 3rpx;
background-image: linear-gradient(to right, #9a9ba1 0%, #9a9ba1 100%);
}
.empty-view{
...
...
litemall-wx/pages/ucenter/index/index.wxss
View file @
6da3e1bd
...
...
@@ -13,7 +13,7 @@ page {
.profile-info {
background-color: #ab956d;
color: #f
ff
;
color: #f
4f4f4
;
display: flex;
align-items: center;
padding: 30rpx;
...
...
litemall-wx/pages/ucenter/order/order.js
View file @
6da3e1bd
...
...
@@ -7,7 +7,17 @@ Page({
showType
:
0
},
onLoad
:
function
(
options
)
{
// 页面初始化 options为页面跳转所带来的参数
// 页面初始化 options为页面跳转所带来的参数
let
that
=
this
try
{
var
tab
=
wx
.
getStorageSync
(
'
tab
'
);
this
.
setData
({
showType
:
tab
});
}
catch
(
e
)
{
}
},
onPullDownRefresh
()
{
...
...
litemall-wx/pages/ucenter/order/order.wxss
View file @
6da3e1bd
...
...
@@ -9,7 +9,7 @@ page{
width: 100%;
background: #fff;
height: 84rpx;
border-bottom: 1px solid rgba(0,0,0,.15);
/*
border-bottom: 1px solid rgba(0,0,0,.15);
*/
}
.orders-switch .item{
...
...
@@ -25,14 +25,14 @@ page{
height: 82rpx;
padding: 0 20rpx;
line-height: 82rpx;
color: #
333
;
color: #
9a9ba1
;
font-size: 30rpx;
width: 170rpx;
}
.orders-switch .item.active .txt{
color: #
ab2b2b
;
border-bottom: 4rpx solid #
ab2b2b
;
color: #
AB956D
;
border-bottom: 4rpx solid #
AB956D
;
}
...
...
Write
Preview
Supports
Markdown
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