Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jcy2004x
ShopXO
提交
af770c20
ShopXO
项目概览
jcy2004x
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
af770c20
编写于
11月 21, 2018
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cart
上级
4dda32bf
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
338 addition
and
11 deletion
+338
-11
alipay/app.acss
alipay/app.acss
+1
-1
alipay/app.js
alipay/app.js
+1
-0
alipay/app.json
alipay/app.json
+2
-2
alipay/pages/cart/cart.acss
alipay/pages/cart/cart.acss
+60
-0
alipay/pages/cart/cart.axml
alipay/pages/cart/cart.axml
+28
-2
alipay/pages/cart/cart.js
alipay/pages/cart/cart.js
+144
-2
alipay/pages/user-order-detail/user-order-detail.axml
alipay/pages/user-order-detail/user-order-detail.axml
+1
-1
alipay/pages/user-order/user-order.acss
alipay/pages/user-order/user-order.acss
+0
-3
service/Application/Api/Controller/CartController.class.php
service/Application/Api/Controller/CartController.class.php
+100
-0
service/Application/Service/BuyService.class.php
service/Application/Service/BuyService.class.php
+1
-0
未找到文件。
alipay/app.acss
浏览文件 @
af770c20
...
...
@@ -186,7 +186,7 @@ textarea {
.sales-price {
color: #f40;
font-weight: bold;
font-size: 3
8
rpx;
font-size: 3
2
rpx;
}
.original-price {
color: #ccc;
...
...
alipay/app.js
浏览文件 @
af770c20
...
...
@@ -42,6 +42,7 @@ App({
"
user_answer_list
"
:
"
我的留言
"
,
"
user
"
:
"
用户中心
"
,
"
goods_category
"
:
"
分类
"
,
"
cart
"
:
"
购物车
"
,
},
// 请求地址
...
...
alipay/app.json
浏览文件 @
af770c20
{
"pages"
:
[
"pages"
:
[
"pages/cart/cart"
,
"pages/index/index"
,
"pages/goods-category/goods-category"
,
"pages/cart/cart"
,
"pages/user/user"
,
"pages/web-view/web-view"
,
"pages/login/login"
,
...
...
alipay/pages/cart/cart.acss
浏览文件 @
af770c20
/**
* 商品列表
*/
.goods-title {
line-height: 36rpx;
}
.goods-item {
padding: 20rpx 10rpx;
position: relative;
}
.goods-item:not(:last-child) {
border-bottom: 1px solid #eee;
}
.goods-title, .goods-attribute {
margin-bottom: 10rpx;
}
.goods-image {
width: 160rpx;
height: 160rpx;
margin-right: 20rpx;
}
.goods-base {
min-height: 160rpx;
}
.goods-price {
position: relative;
}
.buy-number {
margin-left: 20rpx;
}
/**
* 数量操作
*/
.number-content {
position: absolute;
right: 20rpx;
top: 120rpx;
}
.number-content button
{
background: #eee;
height: 64rpx;
line-height: 64rpx;
font-weight: bold;
color: #666;
}
.number-content input {
width: 50px;
margin: 2rpx 10rpx 0 10rpx;
height: 60rpx;
line-height: 60rpx;
border-radius: 2px;
}
.number-content button,
.number-content input
{
border: 1px solid #ddd;
padding: 0;
}
\ No newline at end of file
alipay/pages/cart/cart.axml
浏览文件 @
af770c20
<view>
New Page
<view a:for="{{data_list}}" class="goods-item oh bg-white">
<!-- 图片/链接 -->
<navigator url="/pages/goods-detail/goods-detail?goods_id={{item.goods_id}}">
<image class="goods-image fl" src="{{item.images}}" mode="aspectFill" />
</navigator>
<!-- 基础 -->
<view class="goods-base">
<view class="goods-title multi-text">{{item.title}}
</view>
<block a:if="{{item.attribute != null}}">
<view class="goods-attribute cr-888" a:for="{{item.attribute}}" a:for-item="attr"> {{attr.attr_type_name}}:{{attr.attr_name}}
</view>
</block>
</view>
<!-- 数量 -->
<view class="number-content fr tr">
<button type="default" size="mini" catchTap="goods_buy_number_event" data-index="{{index}}" data-type="0" hover-class="none">﹣</button>
<input onBlur="goods_buy_number_blur" class="tc cr-888" type="number" value="{{item.stock}}" data-index="{{index}}" />
<button type="default" size="mini" catchTap="goods_buy_number_event" data-index="{{index}}" data-type="1" hover-class="none">+</button>
</view>
<!-- 价格 -->
<view class="oh goods-price">
<text class="sales-price">¥{{item.price}}</text>
<text a:if="{{item.original_price > 0}}" class="original-price">¥{{item.original_price}}</text>
<text class="buy-number">x{{item.stock}}</text>
</view>
</view>
\ No newline at end of file
alipay/pages/cart/cart.js
浏览文件 @
af770c20
const
app
=
getApp
();
Page
({
data
:
{
data_list_loding_status
:
1
,
data_list_loding_msg
:
''
,
data_bottom_line_status
:
false
,
data_list
:
[],
value
:
8
,
},
onShow
()
{
my
.
setNavigationBar
({
title
:
app
.
data
.
common_pages_title
.
cart
});
this
.
init
();
},
init
()
{
this
.
setData
({
data_list_loding_status
:
1
});
my
.
httpRequest
({
url
:
app
.
get_request_url
(
"
Index
"
,
"
Cart
"
),
method
:
"
POST
"
,
data
:
{},
onLoad
()
{},
dataType
:
"
json
"
,
success
:
res
=>
{
my
.
stopPullDownRefresh
();
if
(
res
.
data
.
code
==
0
)
{
this
.
setData
({
data_list
:
res
.
data
.
data
,
data_list_loding_status
:
3
,
data_bottom_line_status
:
true
,
data_list_loding_msg
:
''
,
});
}
else
{
self
.
setData
({
data_list_loding_status
:
2
,
data_bottom_line_status
:
false
,
data_list_loding_msg
:
res
.
data
.
msg
,
});
my
.
showToast
({
type
:
"
fail
"
,
content
:
res
.
data
.
msg
});
}
},
fail
:
()
=>
{
my
.
stopPullDownRefresh
();
self
.
setData
({
data_list_loding_status
:
2
,
data_bottom_line_status
:
false
,
data_list_loding_msg
:
'
服务器请求出错
'
,
});
my
.
showToast
({
type
:
"
fail
"
,
content
:
"
服务器请求出错
"
});
}
});
},
// 下拉刷新
onPullDownRefresh
()
{
this
.
init
();
},
// 数量输入事件
goods_buy_number_blur
(
e
)
{
var
index
=
e
.
currentTarget
.
dataset
.
index
||
0
;
var
buy_number
=
parseInt
(
e
.
detail
.
value
)
||
1
;
this
.
goods_buy_number_func
(
index
,
buy_number
);
},
// 数量操作事件
goods_buy_number_event
(
e
)
{
var
index
=
e
.
currentTarget
.
dataset
.
index
||
0
;
var
type
=
parseInt
(
e
.
currentTarget
.
dataset
.
type
)
||
0
;
var
temp_buy_number
=
parseInt
(
this
.
data
.
data_list
[
index
][
'
stock
'
]);
if
(
type
==
0
)
{
var
buy_number
=
temp_buy_number
-
1
;
}
else
{
var
buy_number
=
temp_buy_number
+
1
;
}
this
.
goods_buy_number_func
(
index
,
buy_number
);
},
// 数量处理方法
goods_buy_number_func
(
index
,
buy_number
)
{
var
buy_min_number
=
parseInt
(
this
.
data
.
data_list
[
index
][
'
buy_min_number
'
])
||
1
;
var
buy_max_number
=
parseInt
(
this
.
data
.
data_list
[
index
][
'
buy_max_number
'
])
||
0
;
var
inventory
=
parseInt
(
this
.
data
.
data_list
[
index
][
'
inventory
'
]);
var
inventory_unit
=
this
.
data
.
data_list
[
index
][
'
inventory_unit
'
];
if
(
buy_number
<
buy_min_number
)
{
buy_number
=
buy_min_number
;
if
(
buy_min_number
>
1
)
{
my
.
showToast
({
content
:
'
起购
'
+
buy_min_number
+
inventory_unit
});
return
false
;
}
}
if
(
buy_max_number
>
0
&&
buy_number
>
buy_max_number
)
{
buy_number
=
buy_max_number
;
my
.
showToast
({
content
:
'
限购
'
+
buy_max_number
+
inventory_unit
});
return
false
;
}
if
(
buy_number
>
inventory
)
{
buy_number
=
inventory
;
my
.
showToast
({
content
:
'
库存数量
'
+
inventory
+
inventory_unit
});
return
false
;
}
var
temp_data_list
=
this
.
data
.
data_list
;
if
(
temp_data_list
[
index
][
'
stock
'
]
==
1
&&
buy_number
==
1
)
{
return
false
;
}
// 更新数据库
my
.
httpRequest
({
url
:
app
.
get_request_url
(
"
Stock
"
,
"
Cart
"
),
method
:
"
POST
"
,
data
:
{
"
id
"
:
temp_data_list
[
index
][
'
id
'
],
"
goods_id
"
:
temp_data_list
[
index
][
'
goods_id
'
],
"
stock
"
:
buy_number
},
dataType
:
"
json
"
,
success
:
res
=>
{
my
.
stopPullDownRefresh
();
if
(
res
.
data
.
code
==
0
)
{
temp_data_list
[
index
][
'
stock
'
]
=
buy_number
this
.
setData
({
data_list
:
temp_data_list
});
my
.
showToast
({
content
:
res
.
data
.
msg
});
}
else
{
my
.
showToast
({
type
:
"
fail
"
,
content
:
res
.
data
.
msg
});
}
},
fail
:
()
=>
{
my
.
showToast
({
type
:
"
fail
"
,
content
:
"
服务器请求出错
"
});
}
});
},
});
alipay/pages/user-order-detail/user-order-detail.axml
浏览文件 @
af770c20
...
...
@@ -48,7 +48,7 @@
</view>
<view class="nav-back tc wh-auto">
<navigator open-type="navigateBack" hover-class="none">
<navigator
url="/pages/user-order/user-order"
open-type="navigateBack" hover-class="none">
<button type="default" size="mini" class="cr-888" hover-class="none">返回</button>
</navigator>
</view>
\ No newline at end of file
alipay/pages/user-order/user-order.acss
浏览文件 @
af770c20
...
...
@@ -64,9 +64,6 @@
position: absolute;
right: 0;
bottom: 0;
}
.item-base {
}
.item-base, .item-describe, .item-operation {
padding: 25rpx 10rpx 20rpx 10rpx;
...
...
service/Application/Api/Controller/CartController.class.php
0 → 100644
浏览文件 @
af770c20
<?php
namespace
Api\Controller
;
use
Service\BuyService
;
/**
* 购物车
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class
CartController
extends
CommonController
{
/**
* [_initialize 前置操作-继承公共前置方法]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-03T12:39:08+0800
*/
public
function
_initialize
()
{
// 调用父类前置方法
parent
::
_initialize
();
// 是否ajax请求
if
(
!
IS_AJAX
)
{
$this
->
error
(
L
(
'common_unauthorized_access'
));
}
// 是否登录
$this
->
Is_Login
();
}
/**
* [Index 首页]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-02-22T16:50:32+0800
*/
public
function
Index
()
{
$ret
=
BuyService
::
CartList
([
'user'
=>
$this
->
user
]);
$this
->
ajaxReturn
(
$ret
[
'msg'
],
$ret
[
'code'
],
$ret
[
'data'
]);
}
/**
* 购物车保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-13
* @desc description
*/
public
function
Save
()
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
$ret
=
BuyService
::
CartAdd
(
$params
);
$this
->
ajaxReturn
(
$ret
[
'msg'
],
$ret
[
'code'
],
$ret
[
'data'
]);
}
/**
* 购物车删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-14
* @desc description
*/
public
function
Delete
()
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
$ret
=
BuyService
::
CartDelete
(
$params
);
$this
->
ajaxReturn
(
$ret
[
'msg'
],
$ret
[
'code'
],
$ret
[
'data'
]);
}
/**
* 数量保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-14
* @desc description
*/
public
function
Stock
()
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
$ret
=
BuyService
::
CartStock
(
$params
);
$this
->
ajaxReturn
(
$ret
[
'msg'
],
$ret
[
'code'
],
$ret
[
'data'
]);
}
}
?>
\ No newline at end of file
service/Application/Service/BuyService.class.php
浏览文件 @
af770c20
...
...
@@ -175,6 +175,7 @@ class BuyService
$v
[
'images'
]
=
empty
(
$v
[
'images'
])
?
null
:
$images_host
.
$v
[
'images'
];
$v
[
'attribute'
]
=
empty
(
$v
[
'attribute'
])
?
null
:
json_decode
(
$v
[
'attribute'
],
true
);
$v
[
'total_price'
]
=
$v
[
'stock'
]
*
$v
[
'price'
];
$v
[
'buy_max_number'
]
=
(
$v
[
'buy_max_number'
]
<=
0
)
?
$v
[
'inventory'
]
:
$v
[
'buy_max_number'
];
}
return
DataReturn
(
L
(
'common_operation_success'
),
0
,
$data
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录