Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
groupPurchase-miniapp
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭佳妮(贵阳日报)
groupPurchase-miniapp
Commits
4805b9e5
Commit
4805b9e5
authored
Aug 09, 2024
by
张娇(东信)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
购物车列表
parent
66413769
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
61 deletions
+40
-61
cart.vue
src/pages/assistingAgriculture/cart/cart.vue
+40
-61
No files found.
src/pages/assistingAgriculture/cart/cart.vue
View file @
4805b9e5
<
template
>
<
template
>
<div
class=
"cart-wrap"
>
<div
class=
"cart-wrap"
>
<div
class=
"shop"
v-for=
"(shop, i) in
l
ist"
:key=
"i"
>
<div
class=
"shop"
v-for=
"(shop, i) in
cartL
ist"
:key=
"i"
>
<div
class=
"flex-align-center shop-info"
>
<div
class=
"flex-align-center shop-info"
>
<div
<div
class=
"check"
class=
"check"
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<div
class=
"shop-name"
>
{{
shop
.
shopName
}}
</div>
<div
class=
"shop-name"
>
{{
shop
.
shopName
}}
</div>
</div>
</div>
<div
class=
"commodity-list"
>
<div
class=
"commodity-list"
>
<div
class=
"commodity-item flex-align-center"
v-for=
"(item, j) in s
hop.children
"
:key=
"j"
>
<div
class=
"commodity-item flex-align-center"
v-for=
"(item, j) in s
econdaryList
"
:key=
"j"
>
<div
<div
class=
"check"
class=
"check"
:class=
"
{ 'is-checked': item.isChecked }"
:class=
"
{ 'is-checked': item.isChecked }"
...
@@ -21,14 +21,14 @@
...
@@ -21,14 +21,14 @@
>
>
<wd-icon
v-if=
"item.isChecked"
name=
"check1"
></wd-icon>
<wd-icon
v-if=
"item.isChecked"
name=
"check1"
></wd-icon>
</div>
</div>
<img
:src=
"item.img"
alt=
""
/>
<img
:src=
"item.img
Url
"
alt=
""
/>
<div
class=
"commodity-info"
>
<div
class=
"commodity-info"
>
<div
class=
"name"
>
{{
item
.
n
ame
}}
</div>
<div
class=
"name"
>
{{
item
.
prodN
ame
}}
</div>
<div
class=
"tag"
>
{{
item
.
tag
}}
</div>
<div
class=
"tag"
>
{{
item
.
tag
}}
</div>
<div
class=
"flex-between"
>
<div
class=
"flex-between"
>
<div
class=
"price"
>
<div
class=
"price"
>
<span>
¥
</span>
<span>
¥
</span>
{{
item
.
p
rice
}}
{{
item
.
skuP
rice
}}
</div>
</div>
<wd-input-number
v-model=
"item.count"
/>
<wd-input-number
v-model=
"item.count"
/>
</div>
</div>
...
@@ -56,90 +56,66 @@
...
@@ -56,90 +56,66 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
ref
,
computed
}
from
'vue'
;
import
{
ref
,
computed
,
onMounted
}
from
'vue'
;
import
{
getshoppingCartList
}
from
'../../../api/packageDetail'
;
import
{
categoryPresaleList
}
from
'../../../api/assistingAgriculture/building'
;
// 计算是否全选
// 计算是否全选
const
checkedAll
=
computed
(()
=>
{
const
checkedAll
=
computed
(()
=>
{
return
l
ist
.
value
.
every
((
item
)
=>
item
.
isChecked
);
return
cartL
ist
.
value
.
every
((
item
)
=>
item
.
isChecked
);
});
});
const
totalPrice
=
computed
(()
=>
{
const
totalPrice
=
computed
(()
=>
{
let
total
=
0
;
let
total
=
0
;
l
ist
.
value
.
forEach
((
item
)
=>
{
cartL
ist
.
value
.
forEach
((
item
)
=>
{
item
.
children
.
forEach
((
c
)
=>
{
item
.
prodInfos
.
forEach
((
c
)
=>
{
if
(
c
.
isChecked
)
{
if
(
c
.
isChecked
)
{
total
+=
c
.
price
;
total
+=
c
.
skuPrice
*
c
.
count
;
}
}
});
});
});
});
return
total
||
0
;
return
total
||
0
;
});
});
const
list
=
ref
([
const
list
=
ref
([]);
{
const
secondaryList
=
ref
([]);
shopName
:
'杨家黄焖鸡'
,
const
hhh
=
ref
([]);
type
:
'店铺'
,
isChecked
:
true
,
const
cartList
=
ref
([]);
children
:
[
onMounted
(
async
()
=>
{
{
presaleSortList
();
img
:
'/src/static/assistingAgriculture/assets/fruit.png'
,
});
name
:
'招牌黄焖鸡+米饭(土豆+生菜)'
,
price
:
28.8
,
count
:
1
,
tag
:
'约1000克'
,
isChecked
:
false
,
},
],
},
{
shopName
:
'杨家黄焖鸡'
,
type
:
'店铺'
,
isChecked
:
false
,
children
:
[
{
img
:
'/src/static/assistingAgriculture/assets/fruit.png'
,
name
:
'招牌黄焖鸡+米饭(土豆+生菜)'
,
price
:
28.8
,
count
:
1
,
tag
:
'约1000克'
,
isChecked
:
false
,
},
{
img
:
'/src/static/assistingAgriculture/assets/fruit.png'
,
name
:
'招牌黄焖鸡+米饭(土豆+生菜)'
,
price
:
28.8
,
count
:
1
,
tag
:
'约1000克'
,
isChecked
:
false
,
},
{
img
:
'/src/static/assistingAgriculture/assets/fruit.png'
,
name
:
'招牌黄焖鸡+米饭(土豆+生菜)'
,
price
:
28.8
,
count
:
1
,
tag
:
'约1000克'
,
isChecked
:
false
,
},
],
},
]);
// 店铺
// 店铺
const
changeShopChecked
=
(
s
)
=>
{
const
changeShopChecked
=
(
s
)
=>
{
s
.
isChecked
=
!
s
.
isChecked
;
s
.
isChecked
=
!
s
.
isChecked
;
s
.
children
.
forEach
((
v
)
=>
{
s
.
prodInfos
.
forEach
((
v
)
=>
{
v
.
isChecked
=
s
.
isChecked
;
v
.
isChecked
=
s
.
isChecked
;
});
});
};
};
// 商品 店铺
// 商品 店铺
const
changeCommodityChecked
=
(
c
,
s
)
=>
{
const
changeCommodityChecked
=
(
c
,
s
)
=>
{
c
.
isChecked
=
!
c
.
isChecked
;
c
.
isChecked
=
!
c
.
isChecked
;
s
.
isChecked
=
s
.
children
.
every
((
v
)
=>
v
.
isChecked
);
s
.
isChecked
=
s
.
prodInfos
.
every
((
v
)
=>
v
.
isChecked
);
};
};
// 全选
// 全选
const
changeCheckedAll
=
()
=>
{
const
changeCheckedAll
=
()
=>
{
const
temp
=
checkedAll
.
value
;
const
temp
=
checkedAll
.
value
;
l
ist
.
value
.
forEach
((
v
)
=>
{
cartL
ist
.
value
.
forEach
((
v
)
=>
{
v
.
isChecked
=
temp
;
v
.
isChecked
=
temp
;
changeShopChecked
(
v
);
changeShopChecked
(
v
);
});
});
};
};
// 购物车列表
const
presaleSortList
=
(
index
)
=>
{
getshoppingCartList
({}).
then
((
res
)
=>
{
cartList
.
value
=
res
.
data
;
cartList
.
value
.
forEach
((
shop
)
=>
{
secondaryList
.
value
=
shop
.
prodInfos
;
secondaryList
.
value
.
forEach
((
item
)
=>
{
item
.
count
=
item
.
basket
.
basketCount
;
item
.
imgUrl
=
import
.
meta
.
env
.
VITE_APP_IMG_URL
+
item
.
pic
;
});
});
});
};
function
toSettle
()
{
function
toSettle
()
{
// TODO: 跳转到结算页面
// TODO: 跳转到结算页面
xma
.
navigateTo
({
xma
.
navigateTo
({
...
@@ -276,4 +252,7 @@ uni-page-body {
...
@@ -276,4 +252,7 @@ uni-page-body {
}
}
}
}
}
}
.wd-input-number
{
margin-left
:
120rpx
;
}
</
style
>
</
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