Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
瓜皮233
Vue-购物车案例
提交
338857c3
V
Vue-购物车案例
项目概览
瓜皮233
/
Vue-购物车案例
与 Fork 源项目一致
Fork自
inscode / VueJS
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vue-购物车案例
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
338857c3
编写于
4月 29, 2023
作者:
6
642b59b229c89a1824b83ed8
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Sat Apr 29 05:51:00 UTC 2023 inscode
上级
fb61b1ed
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
48 addition
and
23 deletion
+48
-23
src/App.vue
src/App.vue
+13
-1
src/components/Goods/Goods.vue
src/components/Goods/Goods.vue
+35
-22
未找到文件。
src/App.vue
浏览文件 @
338857c3
...
...
@@ -7,7 +7,9 @@
<!--
<h1>
App 根组件
</h1>
-->
<!-- 商品列表 -->
<Goods
v-for=
"item in list"
:key=
"item.id"
:title=
"item.goods_name"
:pic=
"item.goods_img"
:chstate=
"item.goods_state"
:id=
"item.id"
></Goods>
:id=
"item.id"
@
good_check_change=
"updateGoodState"
></Goods>
<Footer></Footer>
</div>
</
template
>
...
...
@@ -15,6 +17,7 @@
import
axios
from
'
axios
'
// 导入 axios 模块
import
Header
from
'
@/components/Header/Header.vue
'
// 导入 Header 组件
import
Goods
from
'
@/components/Goods/Goods.vue
'
// 导入 Goods 组件
import
Footer
from
'
@/components/Footer/Footer.vue
'
export
default
{
components
:
{
...
...
@@ -37,6 +40,15 @@ export default {
this
.
list
=
res
.
list
}
},
updateGoodState
(
e
){
this
.
list
.
some
(
item
=>
{
if
(
item
.
id
===
e
.
id
)
{
item
.
goods_state
=
e
.
state
return
true
}
})
}
},
created
()
{
...
...
src/components/Goods/Goods.vue
浏览文件 @
338857c3
...
...
@@ -4,8 +4,9 @@
<div
class=
"thumb"
>
<div
class=
"custom-control custom-checkbox"
>
<!-- 复选框 -->
<input
type=
"checkbox"
class=
"custom-control-input"
:id=
"'cb' +id"
:checked=
"chstate"
/>
<label
class=
"custom-control-label"
:for=
"'cb' +id"
>
<input
type=
"checkbox"
class=
"custom-control-input"
:id=
"'cb' + id"
:checked=
"chstate"
@
change=
"goodsChecked"
/>
<!-- 将复选框和图片绑定在一起,实现点击图片也可以选中商品 -->
<label
class=
"custom-control-label"
:for=
"'cb' + id"
>
<!-- 商品的缩略图 -->
<img
:src=
"pic"
alt=
""
/>
</label>
...
...
@@ -14,11 +15,10 @@
<!-- 右侧信息区域 -->
<div
class=
"goods-info"
>
<!-- 商品标题 -->
<h6
class=
"goods-title"
>
{{
title
}}
</h6>
<h6
class=
"goods-title"
>
{{
title
}}
</h6>
<div
class=
"goods-info-bottom"
>
<!-- 商品价格 -->
<span
class=
"goods-price"
>
¥0
</span>
<!-- 商品的数量 -->
</div>
</div>
</div>
...
...
@@ -26,22 +26,33 @@
<
script
>
export
default
{
props
:{
title
:{
type
:
String
,
// 指定 title 只接受字符串类型
default
:
'
商品名称
'
,
// 如果没有传入 title,则默认显示 '商品名称'
props
:
{
// 商品标题
title
:
{
type
:
String
,
// 指定 title 只接受字符串类型
default
:
'
商品名称
'
,
// 如果没有传入 title,则默认显示 '商品名称'
},
pic
:{
type
:
String
,
// 指定 pic 只接受字符串类型
default
:
''
,
// 如果没有传入 pic,则默认为空字符串
// 商品缩略图
pic
:
{
type
:
String
,
// 指定 pic 只接受字符串类型
default
:
''
,
// 如果没有传入 pic,则默认为空字符串
},
chstate
:{
type
:
Boolean
,
// 指定 chstate 只接受布尔类型
default
:
true
,
// 如果没有传入 chstate,则默认为 true
// 商品选中状态
chstate
:
{
type
:
Boolean
,
// 指定 chstate 只接受布尔类型
default
:
true
,
// 如果没有传入 chstate,则默认为 true
},
id
:{
type
:
Number
,
// 指定 id 只接受数字类型
required
:
true
,
// 指定 id 是必须的,必须传递 id 属性
// 商品 ID
id
:
{
type
:
Number
,
// 指定 id 只接受数字类型
required
:
true
,
// 指定 id 是必须的,必须传递 id 属性
}
},
methods
:
{
// 处理商品选中状态改变的方法
goodsChecked
(
e
)
{
// 触发一个自定义事件,将商品 ID 和状态传递给父组件
this
.
$emit
(
'
good_check_change
'
,
{
id
:
this
.
id
,
state
:
e
.
target
.
checked
})
}
}
}
...
...
@@ -50,14 +61,14 @@ export default {
<
style
lang=
"less"
scoped
>
.goods-container {
+ .goods-container {
border-top: 1px solid #efefef;
}
border-top: 1px solid #efefef;
padding: 10px;
display: flex;
.thumb {
display: flex;
align-items: center;
img {
width: 100px;
height: 100px;
...
...
@@ -70,13 +81,16 @@ export default {
flex-direction: column;
justify-content: space-between;
flex: 1;
.goods-title {
font-weight: bold;
font-size: 12px;
}
.goods-info-bottom {
display: flex;
justify-content: space-between;
.goods-price {
font-weight: bold;
color: red;
...
...
@@ -84,5 +98,4 @@ export default {
}
}
}
}
</
style
>
}
</
style
>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录