Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mallapp
Project
Project
Details
Activity
Releases
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
viitto
mallapp
Commits
1874162d
Commit
1874162d
authored
Jun 11, 2020
by
黄媛媛
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/viitto/mallapp
parents
08343556
83de98fd
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1051 additions
and
1054 deletions
+1051
-1054
goodsku.vue
components/goods/goodsku.vue
+14
-27
style1.vue
components/goods/style1.vue
+137
-141
style2.vue
components/goods/style2.vue
+154
-148
style3.vue
components/goods/style3.vue
+159
-164
style4.vue
components/goods/style4.vue
+153
-163
style5.vue
components/goods/style5.vue
+154
-162
style6.vue
components/goods/style6.vue
+140
-139
index.vue
components/rubik/index.vue
+1
-2
share.vue
pages/goods/components/share/share.vue
+2
-1
goods.vue
pages/goods/goods.vue
+1
-1
index.vue
pages/index/index.vue
+7
-1
refunds-detail.vue
pages/order/after-sale/refunds-detail.vue
+28
-16
express.vue
pages/order/express.vue
+57
-31
order-detail.vue
pages/order/order-detail.vue
+38
-24
user-center.vue
pages/user-center/user-center.vue
+4
-4
api.js
plugin/api.js
+2
-30
No files found.
components/goods/goodsku.vue
View file @
1874162d
...
...
@@ -21,9 +21,7 @@
</view>
<view
class=
"amount"
>
库存
{{
goodamount
}}
{{
g
.
unit
}}
</view>
<view
class=
"sku"
>
{{
skuObj
?
'已选择'
:
'选择'
}}
{{
sku
}}
</view>
<view
class=
"sku_close"
>
<u-icon
name=
"cross"
color=
"#9F9F9F"
@
click=
"cloGood()"
size=
"40"
/>
</view>
<view
class=
"sku_close"
><u-icon
name=
"cross"
color=
"#9F9F9F"
@
click=
"cloGood()"
size=
"40"
/></view>
</view>
</view>
<view
class=
"sku-box"
>
...
...
@@ -175,8 +173,8 @@ export default {
this
.
g
.
attr_groups
.
forEach
(
x
=>
{
if
(
!
this
.
skuObj
)
{
//(x.checkId = 0), (x.checkName = x.attr_group_name);
(
x
.
checkId
=
0
),
(
x
.
checkName
=
x
.
attr_list
[
0
].
attr_name
);
x
.
checkId
=
x
.
attr_list
[
0
].
attr_id
;
(
x
.
checkId
=
0
),
(
x
.
checkName
=
x
.
attr_list
[
0
].
attr_name
);
x
.
checkId
=
x
.
attr_list
[
0
].
attr_id
;
}
else
{
let
sign
=
`:
${
this
.
skuObj
.
sign_id
}
:`
;
x
.
attr_list
.
forEach
(
y
=>
{
...
...
@@ -204,7 +202,7 @@ export default {
GoodsId
:
this
.
skuObj
.
goods_id
,
SpecificationSort
:
this
.
skuObj
.
sign_id
,
Number
:
this
.
gc
==
0
?
1
:
this
.
gc
}
,
}
},
res
=>
{
uni
.
showToast
({
...
...
@@ -225,38 +223,27 @@ export default {
}
},
buy
()
{
let
ShoppingCartIdList
=
[];
let
ShoppingCartIdList
=
[];
if
(
this
.
skuObj
&&
this
.
skuObj
.
id
)
{
let
good
=
{
DetailList
:
[],
Use_Integral
:
0
,
User_Coupon_Id
:
0
,
DeliveryMethod
:
0
,
AddressId
:
0
,
DeliveryMethod
:
0
,
AddressId
:
0
};
let
g
=
{
GoodsId
:
this
.
skuObj
.
goods_id
,
Number
:
this
.
gc
,
SpecificationSort
:
this
.
skuObj
.
sign_id
,
SpecificationSort
:
this
.
skuObj
.
sign_id
};
good
.
DetailList
.
push
(
g
);
// let g = {
// id: this.skuObj.goods_id,
// num: this.gc,
// cart_id: 0,
// goods_attr_id: this.skuObj.id,
// attr: []
// };
// this.skuObj.attr_list.forEach(x => {
// g.attr.push({
// attr_id: x.attr_id,
// attr_group_id: x.attr_group_id
// });
// });
// this.forms.list[0].goods_list.push(g);
// this.forms.list[0].mch_id = this.g.mch_id;
uni
.
navigateTo
({
url
:
'/pages/order-submit/order-submit?formData='
+
encodeURIComponent
(
JSON
.
stringify
(
good
))
+
'&IsFormShoppingCart=2&ShoppingCartIdList='
+
JSON
.
stringify
(
ShoppingCartIdList
),
url
:
'/pages/order-submit/order-submit?formData='
+
encodeURIComponent
(
JSON
.
stringify
(
good
))
+
'&IsFormShoppingCart=2&ShoppingCartIdList='
+
JSON
.
stringify
(
ShoppingCartIdList
),
complete
(
res
)
{
console
.
log
(
res
);
}
...
...
@@ -423,7 +410,7 @@ export default {
width
:
1px
;
position
:
relative
;
}
.goodsku
.chosen-info
.sku_close
{
.goodsku
.chosen-info
.sku_close
{
position
:
absolute
;
right
:
4px
;
top
:
5px
;
...
...
components/goods/style1.vue
View file @
1874162d
<
template
>
<div
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : '',
}"
>
<div
v-for=
"(item, gli) in goodList"
:key=
"gli"
class=
"good-one"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background:
goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : '',
}"
>
<div
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
>
<image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width: 100%;"
/>
</div>
<image
style=
"width: calc(100vw - 24px); height: 66vw;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
v-if=
"goodsInfo.goodsCoverProportion == '3-2'"
/>
<image
style=
"
<div
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : ''
}"
>
<div
v-for=
"(item, gli) in goodList"
:key=
"gli"
class=
"good-one"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background: goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : ''
}"
>
<div
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
><image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width: 100%;"
/></div>
<image
style=
"width: calc(100vw - 24px); height: 66vw;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
v-if=
"goodsInfo.goodsCoverProportion == '3-2'"
/>
<image
style=
"
width: calc(100vw - 24px);
height: 100vw;
border-radius: 10rpx 10rpx 0 0;
"
v-if=
"goodsInfo.goodsCoverProportion == '1-1'"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
<div
class=
"good-info"
>
<div
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</div>
<div
class=
"good-price-info"
>
<span
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
""
}}
</span>
<span
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"`backgroundColor:$
{goodsInfo.buttonColor},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
? goodsInfo.buttonColor
: '#FFF'
}`"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="
goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4
? 'circle'
: 'square'
"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button
>
</span>
</div>
</div>
</div>
<good-sku
v-if=
"showSku"
:option-type=
"2"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
></good-sku>
</div>
v-if=
"goodsInfo.goodsCoverProportion == '1-1'"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
<div
class=
"good-info"
>
<div
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</div>
<div
class=
"good-price-info"
>
<span
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
''
}}
</span>
<span
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"
`backgroundColor:$
{goodsInfo.buttonColor},color:${goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4 ? goodsInfo.buttonColor : '#FFF'}`
"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4 ? 'circle' : 'square'"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button>
</span>
</div>
</div>
</div>
<good-sku
v-if=
"showSku"
:option-type=
"2"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
></good-sku>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</div>
</
template
>
<
script
>
import
goodSku
from
'../goods/goodsku'
import
goodSku
from
'../goods/goodsku'
;
import
auth
from
'@/components/auth/index.vue'
;
export
default
{
components
:{
goodSku
},
props
:
[
"goodList"
,
"goodsInfo"
],
data
()
{
return
{
mainColor
:
""
,
activeKey
:
0
,
showSku
:
false
,
sku
:{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
){
this
.
sku
=
g
this
.
showSku
=
true
}
},
components
:
{
goodSku
,
auth
},
props
:
[
'goodList'
,
'goodsInfo'
],
data
()
{
return
{
mainColor
:
''
,
activeKey
:
0
,
showSku
:
false
,
sku
:
{},
showAuth
:
false
,
u
:
{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
)
{
this
.
sku
=
g
;
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
if
(
!
this
.
u
)
{
this
.
u
=
{
nickName
:
'未登录'
,
avatarUrl
:
''
};
this
.
showAuth
=
true
;
}
else
{
this
.
showSku
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
this
.
showAuth
=
false
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
}
}
};
</
script
>
<
style
>
.good-one
{
margin
:
12px
;
position
:
relative
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
padding-bottom
:
10
rpx
;
overflow
:
hidden
;
margin
:
12px
;
position
:
relative
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
padding-bottom
:
10
rpx
;
overflow
:
hidden
;
}
.good-one
.tips
{
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
}
.good-one
.guding
{
position
:
relative
;
position
:
relative
;
}
.good-one
.guding
.img-box
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
}
.good-one
.good-info
{
padding
:
12
rpx
;
padding-bottom
:
0
;
margin-top
:
-5px
;
padding
:
12
rpx
;
padding-bottom
:
0
;
margin-top
:
-5px
;
}
.good-one
.good-info
.good-name
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin-bottom
:
13px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin-bottom
:
13px
;
}
.good-one
.good-info
.good-price-info
{
display
:
flex
;
display
:
flex
;
}
.good-one
.good-info
.good-price-info
.price
{
color
:
#ff4544
;
font-size
:
14px
;
flex
:
1
;
color
:
#ff4544
;
font-size
:
14px
;
flex
:
1
;
}
.good-one
.good-info
.good-price-info
.buy
{
width
:
24px
;
text-align
:
right
;
width
:
24px
;
text-align
:
right
;
}
</
style
>
components/goods/style2.vue
View file @
1874162d
<
template
>
<view
style=
"padding: 12px; padding-bottom: 0;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : '',
}"
>
<u-row
gutter=
"24"
>
<u-col
span=
"6"
v-for=
"(item, gli) in goodList"
:key=
"gli"
>
<view
class=
"good-two"
@
click=
"openGood(item)"
:style=
"
{
border:
goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background:
goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2
? '#FFF'
: '',
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
>
<image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width:100%"
/>
</view>
<view
class=
"img-box"
>
<view
class=
"img-show"
>
<image
style=
"
<view
style=
"padding: 12px; padding-bottom: 0;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : ''
}"
>
<u-row
gutter=
"24"
>
<u-col
span=
"6"
v-for=
"(item, gli) in goodList"
:key=
"gli"
>
<view
class=
"good-two"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background: goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : ''
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
><image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width:100%"
/></view>
<view
class=
"img-box"
>
<view
class=
"img-show"
>
<image
style=
"
width: 100%;
height: 100%;
border-radius: 10rpx 10rpx 0 0;
"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</view>
</view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{'color':mainColor}">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
""
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"`backgroundColor:$
{
goodsInfo.buttonColor
},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
? goodsInfo.buttonColor
: '#FFF'
}`"
:plain="
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
"
:shape="
goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4
? 'circle'
: 'square'
"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button
>
</view>
</view>
</view>
</view>
</u-col>
</u-row>
</view>
</
template
>
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</view>
</view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
''
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"
`backgroundColor:$
{goodsInfo.buttonColor},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4 ? goodsInfo.buttonColor : '#FFF'
}`
"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4 ? 'circle' : 'square'"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button>
</view>
</view>
</view>
</view>
</u-col>
</u-row>
<good-sku
v-if=
"showSku"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
:option-type=
"2"
></good-sku>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</view>
</
template
>
<
script
>
import
goodSku
from
'../goods/goodsku'
;
import
auth
from
'@/components/auth/index.vue'
;
export
default
{
props
:
[
"goodList"
,
"goodsInfo"
],
data
()
{
return
{
mainColor
:
""
,
activeKey
:
0
,
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
},
components
:
{
goodSku
,
auth
},
props
:
[
'goodList'
,
'goodsInfo'
],
data
()
{
return
{
mainColor
:
''
,
activeKey
:
0
,
showSku
:
false
,
sku
:
{},
showAuth
:
false
,
u
:
{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
)
{
this
.
sku
=
g
;
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
if
(
!
this
.
u
)
{
this
.
u
=
{
nickName
:
'未登录'
,
avatarUrl
:
''
};
this
.
showAuth
=
true
;
}
else
{
this
.
showSku
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
this
.
showAuth
=
false
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
}
}
};
</
script
>
<
style
>
.good-two
{
position
:
relative
;
margin-bottom
:
12px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
overflow
:
hidden
;
padding-bottom
:
10
rpx
;
position
:
relative
;
margin-bottom
:
12px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
overflow
:
hidden
;
padding-bottom
:
10
rpx
;
}
.good-two
.tips
{
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
}
.good-two
.img-box
{
width
:
100%
;
height
:
0
;
padding-top
:
100%
;
position
:
relative
;
width
:
100%
;
height
:
0
;
padding-top
:
100%
;
position
:
relative
;
}
.good-two
.img-box
.img-show
{
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
}
.good-two
.guding
{
position
:
relative
;
position
:
relative
;
}
.good-two
.guding
.img-box
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
}
.good-two
.good-info
{
padding
:
6
rpx
;
margin-top
:
-5px
;
padding-bottom
:
0
;
padding
:
6
rpx
;
margin-top
:
-5px
;
padding-bottom
:
0
;
}
.good-two
.good-info
.good-name
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin
:
3px
0
;
font-size
:
13px
;
min-height
:
35px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin
:
3px
0
;
font-size
:
13px
;
min-height
:
35px
;
}
.good-two
.good-info
.good-price-info
{
display
:
flex
;
display
:
flex
;
}
.good-two
.good-info
.good-price-info
.price
{
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
}
.good-two
.good-info
.good-price-info
.buy
{
width
:
24px
;
text-align
:
right
;
width
:
24px
;
text-align
:
right
;
}
</
style
>
components/goods/style3.vue
View file @
1874162d
<
template
>
<div
style=
"padding: 12px; padding-bottom: 0;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : '',
}"
>
<u-row
gutter=
"24"
>
<u-col
span=
"4"
v-for=
"(item, gli) in goodList"
:key=
"gli"
>
<div
class=
"good-three"
@
click=
"openGood(item)"
:style=
"
{
border:
goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background:
goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2
? '#FFF'
: '',
}">
<div
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
>
<image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width:100%"
/>
</div>
<div
class=
"img-box"
>
<div
class=
"img-show"
>
<image
style=
"
<div
style=
"padding: 12px; padding-bottom: 0;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : ''
}"
>
<u-row
gutter=
"24"
>
<u-col
span=
"4"
v-for=
"(item, gli) in goodList"
:key=
"gli"
>
<div
class=
"good-three"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background: goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : ''
}"
>
<div
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
><image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width:100%"
/></div>
<div
class=
"img-box"
>
<div
class=
"img-show"
>
<image
style=
"
width: 100%;
height: 100%;
border-radius: 10rpx 10rpx 0 0;
"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</div>
</div>
<div
class=
"good-info"
>
<div
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</div>
<div
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{'color':mainColor}">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
""
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"`backgroundColor:$
{
goodsInfo.buttonColor
},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
? goodsInfo.buttonColor
: '#FFF'
}`"
:plain="
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
"
:shape="
goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4
? 'circle'
: 'square'
"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button
>
</view>
</div>
</div>
</div>
</u-col>
</u-row>
<good-sku
v-if=
"showSku"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
:option-type=
"2"
></good-sku>
</div>
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</div>
</div>
<div
class=
"good-info"
>
<div
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</div>
<div
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
''
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"
`backgroundColor:$
{goodsInfo.buttonColor},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4 ? goodsInfo.buttonColor : '#FFF'
}`
"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4 ? 'circle' : 'square'"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button>
</view>
</div>
</div>
</div>
</u-col>
</u-row>
<good-sku
v-if=
"showSku"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
:option-type=
"2"
></good-sku>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</div>
</
template
>
<
script
>
import
goodSku
from
'../goods/goodsku'
import
goodSku
from
'../goods/goodsku'
;
import
auth
from
'@/components/auth/index.vue'
;
export
default
{
components
:{
goodSku
},
props
:
[
"goodList"
,
"goodsInfo"
],
data
()
{
return
{
mainColor
:
""
,
activeKey
:
0
,
showSku
:
false
,
sku
:{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
){
this
.
sku
=
g
this
.
showSku
=
true
}
},
components
:
{
goodSku
,
auth
},
props
:
[
'goodList'
,
'goodsInfo'
],
data
()
{
return
{
mainColor
:
''
,
activeKey
:
0
,
showSku
:
false
,
sku
:
{},
showAuth
:
false
,
u
:
{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
)
{
this
.
sku
=
g
;
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
if
(
!
this
.
u
)
{
this
.
u
=
{
nickName
:
'未登录'
,
avatarUrl
:
''
};
this
.
showAuth
=
true
;
}
else
{
this
.
showSku
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
this
.
showAuth
=
false
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
}
}
};
</
script
>
<
style
>
.good-three
{
position
:
relative
;
margin-bottom
:
12px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
overflow
:
hidden
;
padding-bottom
:
5px
;
position
:
relative
;
margin-bottom
:
12px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
overflow
:
hidden
;
padding-bottom
:
5px
;
}
.good-three
.tips
{
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
}
.good-three
.img-box
{
width
:
100%
;
height
:
0
;
padding-top
:
100%
;
position
:
relative
;
width
:
100%
;
height
:
0
;
padding-top
:
100%
;
position
:
relative
;
}
.good-three
.img-box
.img-show
{
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
}
.good-three
.guding
{
position
:
relative
;
position
:
relative
;
}
.good-three
.guding
.img-box
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
}
.good-three
.good-info
{
padding
:
6
rpx
;
margin-top
:
-5px
;
padding-bottom
:
0
;
padding
:
6
rpx
;
margin-top
:
-5px
;
padding-bottom
:
0
;
}
.good-three
.good-info
.good-name
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin
:
3px
0
;
font-size
:
13px
;
word-break
:
break-all
;
min-height
:
34px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin
:
3px
0
;
font-size
:
13px
;
word-break
:
break-all
;
min-height
:
34px
;
}
.good-three
.good-info
.good-price-info
{
display
:
flex
;
justify-items
:
center
;
align-items
:
center
;
display
:
flex
;
justify-items
:
center
;
align-items
:
center
;
}
.good-three
.good-info
.good-price-info
.price
{
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.good-three
.good-info
.good-price-info
.buy
{
width
:
24px
;
text-align
:
right
;
width
:
24px
;
text-align
:
right
;
}
</
style
>
components/goods/style4.vue
View file @
1874162d
<
template
>
<view
style=
"padding: 12px; padding-bottom: 0;width:100%;min-height:450rpx;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : '',
}"
>
<view
class=
"good-four"
v-for=
"(item, gli) in goodList"
:key=
"gli"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background:
goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : '',
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
>
<image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width: 100%;"
/>
</view>
<view
class=
"img-box"
>
<image
style=
"width: 100%; height: 100%;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{'color':mainColor}">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
""
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"`backgroundColor:$
{goodsInfo.buttonColor},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
? goodsInfo.buttonColor
: '#FFF'
}`"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="
goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4
? 'circle'
: 'square'
"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button
>
</view>
</view>
</view>
</view>
<good-sku
v-if=
"showSku"
:option-type=
"2"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
></good-sku>
</view>
<view
style=
"padding: 12px; padding-bottom: 0;width:100%;min-height:450rpx;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : ''
}"
>
<view
class=
"good-four"
v-for=
"(item, gli) in goodList"
:key=
"gli"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background: goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : ''
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
><image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width: 100%;"
/></view>
<view
class=
"img-box"
><image
style=
"width: 100%; height: 100%;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/></view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
''
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"
`backgroundColor:$
{goodsInfo.buttonColor},color:${goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4 ? goodsInfo.buttonColor : '#FFF'}`
"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4 ? 'circle' : 'square'"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button>
</view>
</view>
</view>
</view>
<good-sku
v-if=
"showSku"
:option-type=
"2"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
></good-sku>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</view>
</
template
>
<
script
>
import
goodSku
from
'../goods/goodsku'
import
goodSku
from
'../goods/goodsku'
;
import
auth
from
'@/components/auth/index.vue'
;
export
default
{
components
:{
goodSku
},
props
:
[
"goodList"
,
"goodsInfo"
],
data
()
{
return
{
mainColor
:
""
,
activeKey
:
0
,
showSku
:
false
,
sku
:{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
){
this
.
sku
=
g
this
.
showSku
=
true
},
//格式化价格添加.00
// getPrice(value){
// var html,_val;
// value =Number(value).toFixed(2);
// if(value==0){
// value=0;
// return html = "¥0";
// }else if(value.split('.')[1].substring(1)==0){
// value = Number(value).toFixed(2);
// }
// _val = value.split('.');
// return html = '¥'+_val[0]+'.'+_val[1];
// }
},
components
:
{
goodSku
,
auth
},
props
:
[
'goodList'
,
'goodsInfo'
],
data
()
{
return
{
mainColor
:
''
,
activeKey
:
0
,
showSku
:
false
,
sku
:
{},
showAuth
:
false
,
u
:
{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
)
{
this
.
sku
=
g
;
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
if
(
!
this
.
u
)
{
this
.
u
=
{
nickName
:
'未登录'
,
avatarUrl
:
''
};
this
.
showAuth
=
true
;
}
else
{
this
.
showSku
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
this
.
showAuth
=
false
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
}
//格式化价格添加.00
// getPrice(value){
// var html,_val;
// value =Number(value).toFixed(2);
// if(value==0){
// value=0;
// return html = "¥0";
// }else if(value.split('.')[1].substring(1)==0){
// value = Number(value).toFixed(2);
// }
// _val = value.split('.');
// return html = '¥'+_val[0]+'.'+_val[1];
// }
}
};
</
script
>
<
style
>
.good-four
{
position
:
relative
;
margin-bottom
:
14px
;
display
:
flex
;
height
:
102px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
box-sizing
:
border-box
;
padding
:
0
1px
1px
0
;
overflow
:
hidden
;
position
:
relative
;
margin-bottom
:
14px
;
display
:
flex
;
height
:
102px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
box-sizing
:
border-box
;
padding
:
0
1px
1px
0
;
overflow
:
hidden
;
}
.good-four
.tips
{
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
}
.good-four
.img-box
{
width
:
100px
;
height
:
100px
;
width
:
100px
;
height
:
100px
;
}
.good-four
.good-info
{
padding
:
12px
;
flex
:
1
;
width
:
1
rpx
;
border
:
10
rpx
;
padding-bottom
:
0
;
display
:
flex
;
flex-direction
:
column
;
/* width:20%; */
padding
:
12px
;
flex
:
1
;
width
:
1
rpx
;
border
:
10
rpx
;
padding-bottom
:
0
;
display
:
flex
;
flex-direction
:
column
;
/* width:20%; */
}
.good-four
.good-info
.good-name
{
font-size
:
13px
;
height
:
34px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
font-size
:
13px
;
height
:
34px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
}
.good-four
.good-info
.good-price-info
{
display
:
flex
;
justify-items
:
center
;
align-items
:
flex-end
;
height
:
22px
;
flex
:
1
;
padding-bottom
:
10
rpx
;
display
:
flex
;
justify-items
:
center
;
align-items
:
flex-end
;
height
:
22px
;
flex
:
1
;
padding-bottom
:
10
rpx
;
}
.good-four
.good-info
.good-price-info
.price
{
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.good-four
.good-info
.good-price-info
.buy
{
width
:
24px
;
text-align
:
right
;
width
:
24px
;
text-align
:
right
;
}
</
style
>
components/goods/style5.vue
View file @
1874162d
<
template
>
<view
class=
"her-scoller"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : '',
}"
>
<view
class=
"good-five"
@
click=
"openGood(item)"
v-for=
"(item, gli) in goodList"
:key=
"gli"
:style=
"
{
'border': goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background:
goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2
? '#FFF'
: '',
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
>
<image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width:100%"
/>
</view>
<view
class=
"img-box"
>
<view
class=
"img-show"
>
<image
style=
"width: 100%; height: 100%; border-radius: 10rpx 10rpx 0 0;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</view>
</view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{'color':mainColor}">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
""
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"`backgroundColor:$
{goodsInfo.buttonColor},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
? goodsInfo.buttonColor
: '#FFF'
}`"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="
goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4
? 'circle'
: 'square'
"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button
>
</view>
</view>
</view>
</view>
<good-sku
v-if=
"showSku"
:option-type=
"2"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
></good-sku>
</view>
<view
class=
"her-scoller"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : ''
}"
>
<view
class=
"good-five"
@
click=
"openGood(item)"
v-for=
"(item, gli) in goodList"
:key=
"gli"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background: goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : ''
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
><image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width:100%"
/></view>
<view
class=
"img-box"
>
<view
class=
"img-show"
>
<image
style=
"width: 100%; height: 100%; border-radius: 10rpx 10rpx 0 0;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</view>
</view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
''
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"
`backgroundColor:$
{goodsInfo.buttonColor},color:${goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4 ? goodsInfo.buttonColor : '#FFF'}`
"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4 ? 'circle' : 'square'"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button>
</view>
</view>
</view>
</view>
<good-sku
v-if=
"showSku"
:option-type=
"2"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
></good-sku>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</view>
</
template
>
<
script
>
import
goodSku
from
'../goods/goodsku'
import
goodSku
from
'../goods/goodsku'
;
import
auth
from
'@/components/auth/index.vue'
;
export
default
{
components
:{
goodSku
},
props
:
[
"goodList"
,
"goodsInfo"
],
data
()
{
return
{
mainColor
:
""
,
activeKey
:
0
,
showSku
:
false
,
sku
:{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
){
this
.
sku
=
g
this
.
showSku
=
true
components
:
{
goodSku
,
auth
},
},
props
:
[
'goodList'
,
'goodsInfo'
],
data
()
{
return
{
mainColor
:
''
,
activeKey
:
0
,
showSku
:
false
,
sku
:
{},
showAuth
:
false
,
u
:
{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
)
{
this
.
sku
=
g
;
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
if
(
!
this
.
u
)
{
this
.
u
=
{
nickName
:
'未登录'
,
avatarUrl
:
''
};
this
.
showAuth
=
true
;
}
else
{
this
.
showSku
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
this
.
showAuth
=
false
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
}
}
};
</
script
>
<
style
>
.her-scoller
{
overflow-x
:
auto
!important
;
padding
:
12px
;
display
:
flex
;
white-space
:
nowrap
;
overflow-x
:
auto
!important
;
padding
:
12px
;
display
:
flex
;
white-space
:
nowrap
;
}
/* .her-scoller::after {
clear: both;
...
...
@@ -124,78 +116,78 @@ export default {
display: block;
} */
.her-scoller
.good-five
{
position
:
relative
;
margin-right
:
12px
;
width
:
30%
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
padding-bottom
:
10
rpx
;
/* float: left; */
position
:
relative
;
margin-right
:
12px
;
width
:
30%
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
padding-bottom
:
10
rpx
;
/* float: left; */
}
.her-scoller
.good-five
.tips
{
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
}
.her-scoller
.good-five
.img-box
{
width
:
100%
;
height
:
0
;
padding-top
:
100%
;
position
:
relative
;
width
:
100%
;
height
:
0
;
padding-top
:
100%
;
position
:
relative
;
}
.her-scoller
.good-five
.img-box
.img-show
{
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
z-index
:
2
;
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
z-index
:
2
;
}
.her-scoller
.good-five
.guding
{
position
:
relative
;
position
:
relative
;
}
.her-scoller
.good-five
.guding
.img-box
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
}
.her-scoller
.good-five
.good-info
{
padding
:
6
rpx
;
padding-bottom
:
0
;
padding
:
6
rpx
;
padding-bottom
:
0
;
}
.her-scoller
.good-five
.good-info
.good-name
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
block
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin-bottom
:
4
rpx
;
font-size
:
13px
;
width
:
100%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
block
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
margin-bottom
:
4
rpx
;
font-size
:
13px
;
width
:
100%
;
}
.her-scoller
.good-five
.good-info
.good-price-info
{
display
:
flex
;
justify-items
:
center
;
align-items
:
center
;
display
:
flex
;
justify-items
:
center
;
align-items
:
center
;
}
.her-scoller
.good-five
.good-info
.good-price-info
.price
{
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.her-scoller
.good-five
.good-info
.good-price-info
.buy
{
width
:
24px
;
text-align
:
right
;
width
:
24px
;
text-align
:
right
;
}
</
style
>
components/goods/style6.vue
View file @
1874162d
<
template
>
<view
style=
"padding: 12px; padding-bottom: 0;width:100%;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : '',
}"
>
<view
class=
"good-four"
v-for=
"(item, gli) in goodList"
:key=
"gli"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background:
goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : '',
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
>
<image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width: 100%;"
/>
</view>
<view
class=
"img-box"
>
<image
style=
"width: 100%; height: 100%;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/>
</view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{'color':mainColor}">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
""
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"`backgroundColor:$
{goodsInfo.buttonColor},color:${
goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4
? goodsInfo.buttonColor
: '#FFF'
}`"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="
goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4
? 'circle'
: 'square'
"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button
>
</view>
</view>
</view>
</view>
</view>
<view
style=
"padding: 12px; padding-bottom: 0;width:100%;"
:style=
"
{
'background-color': goodsInfo.backgroundColor,
'background-image': goodsInfo.backgroundPicUrl,
'border-color': goodsInfo.goodsStyle == 2 ? 'rgb(226, 226, 226)' : ''
}"
>
<view
class=
"good-four"
v-for=
"(item, gli) in goodList"
:key=
"gli"
@
click=
"openGood(item)"
:style=
"
{
border: goodsInfo.goodsStyle == 2 ? '1px solid rgb(226, 226, 226)' : '',
background: goodsInfo.goodsStyle == 1 || goodsInfo.goodsStyle == 2 ? '#FFF' : ''
}"
>
<view
class=
"tips"
v-if=
"goodsInfo.showGoodsTag"
><image
:src=
"goodsInfo.goodsTagPicUrl"
mode=
"widthFix"
style=
"width: 100%;"
/></view>
<view
class=
"img-box"
><image
style=
"width: 100%; height: 100%;"
:mode=
"goodsInfo.fill == 1 ? 'aspectFill' : 'aspectFit'"
:src=
"item.picUrl"
/></view>
<view
class=
"good-info"
>
<view
class=
"good-name"
v-if=
"goodsInfo.showGoodsName"
>
{{
item
.
name
}}
</view>
<view
class=
"good-price-info"
>
<view
class=
"price"
:style=
"
{ color: mainColor }">
{{
goodsInfo
.
showGoodsPrice
?
getPrice
(
item
.
price
)
:
''
}}
</view>
<view
class=
"buy"
v-if=
"goodsInfo.showBuyBtn"
@
click
.
stop=
"showSkuHandler(item)"
>
<u-icon
name=
"cart-o"
size=
"40"
:color=
"mainColor"
v-if=
"goodsInfo.buyBtn == 'cart'"
/>
<u-icon
name=
"add-o"
size=
"40"
:color=
"mainColor"
v-else-if=
"goodsInfo.buyBtn == 'add'"
/>
<u-button
type=
"primary"
size=
"mini"
:ripple=
"true"
:color=
"goodsInfo.buttonColor"
:custom-style=
"
`backgroundColor:$
{goodsInfo.buttonColor},color:${goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4 ? goodsInfo.buttonColor : '#FFF'}`
"
:plain="goodsInfo.buyBtnStyle == 2 || goodsInfo.buyBtnStyle == 4"
:shape="goodsInfo.buyBtnStyle == 3 || goodsInfo.buyBtnStyle == 4 ? 'circle' : 'square'"
v-else
>
{{
goodsInfo
.
buyBtnText
}}
</u-button>
</view>
</view>
</view>
</view>
<good-sku
v-if=
"showSku"
borderRadius=
"20"
v-model=
"showSku"
:good=
"sku"
:option-type=
"2"
></good-sku>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</view>
</
template
>
<
script
>
import
goodSku
from
'../goods/goodsku'
;
import
auth
from
'@/components/auth/index.vue'
;
export
default
{
props
:
[
"goodList"
,
"goodsInfo"
],
data
()
{
return
{
mainColor
:
""
,
activeKey
:
0
,
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
},
components
:
{
goodSku
,
auth
},
props
:
[
'goodList'
,
'goodsInfo'
],
data
()
{
return
{
mainColor
:
''
,
activeKey
:
0
,
showSku
:
false
,
sku
:
{},
showAuth
:
false
,
u
:
{}
};
},
created
()
{
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
openGood
(
item
)
{
uni
.
navigateTo
({
url
:
'/pages/goods/goods?GoodsId='
+
item
.
id
});
},
showSkuHandler
(
g
)
{
this
.
sku
=
g
;
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
if
(
!
this
.
u
)
{
this
.
u
=
{
nickName
:
'未登录'
,
avatarUrl
:
''
};
this
.
showAuth
=
true
;
}
else
{
this
.
showSku
=
true
;
}
},
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
'mall_UserInfo'
);
this
.
showAuth
=
false
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
}
}
};
</
script
>
<
style
>
.good-four
{
position
:
relative
;
margin-bottom
:
14px
;
display
:
flex
;
height
:
102px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
box-sizing
:
border-box
;
padding
:
0
1px
1px
0
;
overflow
:
hidden
;
position
:
relative
;
margin-bottom
:
14px
;
display
:
flex
;
height
:
102px
;
border
:
1
rpx
solid
transparent
;
border-radius
:
10
rpx
;
box-sizing
:
border-box
;
padding
:
0
1px
1px
0
;
overflow
:
hidden
;
}
.good-four
.tips
{
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
width
:
64
rpx
;
height
:
64
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
4
;
}
.good-four
.img-box
{
width
:
100px
;
height
:
100px
;
width
:
100px
;
height
:
100px
;
}
.good-four
.good-info
{
padding
:
12px
;
flex
:
1
;
width
:
1
rpx
;
border
:
10
rpx
;
padding-bottom
:
0
;
display
:
flex
;
flex-direction
:
column
;
/* width:20%; */
padding
:
12px
;
flex
:
1
;
width
:
1
rpx
;
border
:
10
rpx
;
padding-bottom
:
0
;
display
:
flex
;
flex-direction
:
column
;
/* width:20%; */
}
.good-four
.good-info
.good-name
{
font-size
:
13px
;
height
:
34px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
font-size
:
13px
;
height
:
34px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
}
.good-four
.good-info
.good-price-info
{
display
:
flex
;
justify-items
:
center
;
align-items
:
flex-end
;
height
:
22px
;
flex
:
1
;
padding-bottom
:
10
rpx
;
display
:
flex
;
justify-items
:
center
;
align-items
:
flex-end
;
height
:
22px
;
flex
:
1
;
padding-bottom
:
10
rpx
;
}
.good-four
.good-info
.good-price-info
.price
{
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
color
:
#ff4544
;
flex
:
1
;
font-size
:
14px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.good-four
.good-info
.good-price-info
.buy
{
width
:
24px
;
text-align
:
right
;
width
:
24px
;
text-align
:
right
;
}
</
style
>
components/rubik/index.vue
View file @
1874162d
...
...
@@ -28,8 +28,7 @@ export default {
backgroundImage
:
x
.
backgroundImage
,
backgroundRepeat
:
x
.
backgroundRepeat
,
backgroundSize
:
x
.
backgroundSize
,
backgroundPosition
:
x
.
backgroundPosition
,
border
:
'1px solid red'
backgroundPosition
:
x
.
backgroundPosition
};
if
(
this
.
ad
.
height
==
"auto"
)
{
x
.
formatStyle
.
position
=
"unset"
;
...
...
pages/goods/components/share/share.vue
View file @
1874162d
...
...
@@ -66,7 +66,7 @@ export default {
type
:
Boolean
,
default
:
true
,
},
i
d
:
{
goodI
d
:
{
type
:
Number
,
default
:
0
,
},
...
...
@@ -99,6 +99,7 @@ export default {
this
.
downLoadImage
(
arr
);
},
genernalHandler
()
{
//this.goodId
uni
.
navigateTo
({
url
:
"/pages/goods/draw"
,
});
...
...
pages/goods/goods.vue
View file @
1874162d
...
...
@@ -219,7 +219,7 @@
v-if=
"!isExsitGoods"
></u-empty>
<share
:id=
"id"
:
good-
id=
"id"
v-if=
"showShare"
:good-name=
"g.name"
:images=
"g.pic_url"
...
...
pages/index/index.vue
View file @
1874162d
...
...
@@ -98,6 +98,7 @@ export default {
mainColor
:
""
,
active
:
0
,
contentHeight
:
0
,
pageId
:
0
};
},
components
:
{
...
...
@@ -120,7 +121,11 @@ export default {
addialog
,
quicknav
},
onLoad
()
{
onLoad
(
options
)
{
console
.
log
(
options
,
'option'
);
if
(
options
&&
options
.
page_id
){
this
.
pageId
=
options
.
page_id
}
let
c
=
this
.
$uiConfig
.
is_bang
?
78
:
50
;
this
.
contentHeight
=
this
.
$utils
.
calcContentHeight
(
c
);
this
.
init
();
...
...
@@ -138,6 +143,7 @@ export default {
{
url
:
'/api/Mall/GetHome'
,
data
:
{
page_id
:
this
.
pageId
},
},
(
res
)
=>
{
...
...
pages/order/after-sale/refunds-detail.vue
View file @
1874162d
...
...
@@ -106,11 +106,11 @@
<view
class=
"reason"
>
{{
d
.
remark
}}
</view>
<view
class=
"grid-reasion"
>
<image
v-for=
"(x, i) in d.
pic_l
ist"
v-for=
"(x, i) in d.
VoucherL
ist"
:key=
"i"
:src=
"x"
class=
"img"
@
click=
"previewImage(i, d.
pic_l
ist)"
@
click=
"previewImage(i, d.
VoucherL
ist)"
mode=
"aspectFill"
/>
</view>
...
...
@@ -118,16 +118,16 @@
<view
style=
"margin-top: 40rpx;"
class=
"block"
>
<view
class=
"filed center"
>
<view
class=
"key"
>
服务单号
</view>
<view
class=
"val"
style=
"font-size: 24rpx;"
>
{{
d
.
order_n
o
}}
</view>
<view
class=
"val"
style=
"font-size: 24rpx;"
>
{{
d
.
ReOrderN
o
}}
</view>
<view
class=
"op"
>
<u-button
size=
"mini"
shape=
"circle"
@
click=
"paste(d.
order_n
o)"
<u-button
size=
"mini"
shape=
"circle"
@
click=
"paste(d.
ReOrderN
o)"
>
复制
</u-button
>
</view>
</view>
<view
class=
"filed"
>
<view
class=
"key"
>
申请时间
</view>
<view
class=
"val"
>
{{
d
.
created_at
}}
</view>
<view
class=
"val"
>
{{
d
.
CreateDate
}}
</view>
</view>
<view
class=
"filed split"
>
<view
class=
"key"
>
服务类型
</view>
...
...
@@ -166,7 +166,7 @@
<view
class=
"key"
>
快递公司
</view>
<view
class=
"val"
@
click=
"showExpressHandler"
>
<text
v-if=
"forms.
e
xpressId == -1"
v-if=
"forms.
E
xpressId == -1"
style=
"font-size: 13px; color: gray;"
>
请选择快递公司
</text
>
...
...
@@ -187,7 +187,7 @@
<view
class=
"val"
>
<input
type=
"text"
v-model=
"forms.
expressNo
"
v-model=
"forms.
ExpressNumber
"
placeholder=
"请输入快递单号"
/>
</view>
...
...
@@ -284,8 +284,9 @@ export default {
expressList
:
[],
showExpress
:
false
,
forms
:
{
expressId
:
-
1
,
expressNo
:
""
,
ReOrderId
:
-
1
,
ExpressId
:
-
1
,
ExpressNumber
:
""
,
expressName
:
""
,
},
currentStatus
:
0
,
...
...
@@ -332,9 +333,9 @@ export default {
tmplIds
:
that
.
d
.
template_message_list
,
complete
(
res
)
{
let
msg
=
""
;
if
(
that
.
forms
.
e
xpressId
==
-
1
)
{
if
(
that
.
forms
.
E
xpressId
==
-
1
)
{
msg
=
"请选择快递公司"
;
}
else
if
(
that
.
forms
.
expressNo
==
""
)
{
}
else
if
(
that
.
forms
.
ExpressNumber
==
""
)
{
msg
=
"请输入快递单号"
;
}
if
(
msg
==
""
)
{
...
...
@@ -349,7 +350,7 @@ export default {
id
:
that
.
id
,
express
:
that
.
forms
.
expressName
,
customer_name
:
""
,
express_no
:
that
.
forms
.
expressNo
,
express_no
:
that
.
forms
.
ExpressNumber
,
},
method
:
"POST"
,
},
...
...
@@ -386,7 +387,7 @@ export default {
this
.
showExpress
=
true
;
},
chosenExpressHandler
(
i
)
{
this
.
forms
.
e
xpressId
=
this
.
expressList
[
i
[
0
]].
id
;
this
.
forms
.
E
xpressId
=
this
.
expressList
[
i
[
0
]].
id
;
this
.
forms
.
expressName
=
this
.
expressList
[
i
[
0
]].
name
;
},
previewImage
(
i
,
images
)
{
...
...
@@ -412,7 +413,7 @@ export default {
},
init
()
{
this
.
isover
=
false
;
let
h
=
this
.
apiheader
();
this
.
request2
(
{
url
:
'/api/AppletOrder/GetAppletOrderAfterSaleInfo'
,
...
...
@@ -422,10 +423,10 @@ export default {
},
(
res
)
=>
{
this
.
d
=
res
.
data
;
this
.
expressList
=
res
.
data
.
OrderInfo
;
this
.
loading
=
false
;
this
.
currentStatus
=
this
.
d
.
ReOrderStatus
-
1
;
this
.
getExpressInfo
()
// if (this.d.ReOrderStatusName == 1) {
// this.currentStatus += 1;
// } else if (this.d.ReOrderStatusName == "待退款" || this.d.status_text == "已换货") {
...
...
@@ -436,6 +437,17 @@ export default {
}
);
},
getExpressInfo
(){
this
.
request2
(
{
url
:
'/api/appletorder/GetExpressInfo'
,
data
:
{}
},
(
res
)
=>
{
this
.
expressList
=
res
.
data
;
}
);
}
},
};
</
script
>
...
...
pages/order/express.vue
View file @
1874162d
...
...
@@ -3,18 +3,18 @@
<view
class=
"status-box"
>
<view
class=
"item"
>
<view
class=
"name"
>
快递公司:
</view>
<view
class=
"val"
>
{{
express
Info
.
ExpressName
}}
</view>
<view
class=
"val"
>
{{
express
}}
</view>
</view>
<view
class=
"item"
>
<view
class=
"name"
>
运单号:
</view>
<view
class=
"val"
>
{{
express
Info
.
ExpressNumber
}}
</view>
<view
class=
"val"
>
{{
express
_no
}}
</view>
</view>
<view
class=
"item"
>
<
!--
<
view
class=
"item"
>
<view
class=
"name"
>
运送状态:
</view>
<view
class=
"val"
:style=
"
{ color: mainColor }">
{{
expressInfo
.
Remark
d
.
status_text
}}
</view>
</view>
</view>
-->
</view>
<view
...
...
@@ -48,7 +48,7 @@
</view>
</
template
>
</u-time-line-item>
<u-time-line-item
nodeTop=
"2"
v-if=
"d.status == 3"
>
<!--
<u-time-line-item nodeTop="2" v-if="d.status == 3">
<template v-slot:node>
<view class="u-node" :style="{ background: mainColor }">
<u-icon name="success" color="#fff" :size="32"></u-icon>
...
...
@@ -61,13 +61,15 @@
<view class="u-order-time">{{ last.datetime }}</view>
</view>
</template>
</u-time-line-item>
<u-time-line-item
v-for=
"(x, i) in d
.list
"
:key=
"i"
>
</u-time-line-item>
-->
<u-time-line-item
v-for=
"(x, i) in d"
:key=
"i"
>
<!-- 此处没有自定义左边的内容,会默认显示一个点 -->
<
template
v-slot:content
>
<view
style=
"padding-bottom: 30rpx;"
:style=
"
{color:(i==0
&&
d.status!=3)?'#000 !important':'gray'}">
<view
class=
"u-order-desc"
>
{{
x
.
desc
}}
</view>
<view
class=
"u-order-time"
>
{{
x
.
datetime
}}
</view>
<view
style=
"padding-bottom: 30rpx;"
:style=
"
{color:(i==0)?'#000 !important':'gray'}">
<view
class=
"u-order-desc"
>
{{
x
.
AcceptStation
}}
</view>
<view
class=
"u-order-desc"
>
{{
x
.
Remark
}}
</view>
<view
class=
"u-order-time"
>
{{
x
.
AcceptTime
}}
</view>
</view>
</
template
>
</u-time-line-item>
...
...
@@ -81,11 +83,11 @@ export default {
data
()
{
return
{
mainColor
:
""
,
d
:
{}
,
d
:
[]
,
loading
:
false
,
OrderId
:
0
,
last
:
{},
expressInfo
:{},
express
:
''
,
express_no
:
''
,
address
:
''
,
};
},
...
...
@@ -94,26 +96,50 @@ export default {
title
:
"物流信息"
,
});
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
this
.
OrderId
=
option
.
OrderId
//
this.express = option.express || "圆通速递";
//
this.express_no = option.no || "YT2042624009816";
this
.
express
=
option
.
express
||
"圆通速递"
;
this
.
express_no
=
option
.
no
||
"YT2042624009816"
;
this
.
address
=
option
.
address
||
"四川成都市高新西区万景峰二期"
;
this
.
init
();
this
.
id
=
option
.
id
||
0
;
this
.
init
(
this
.
id
,
this
.
express_no
);
},
methods
:
{
init
()
{
this
.
request2
(
{
url
:
'/api/AppletOrder/GetAppletMyOrderExpressInfo'
,
data
:
{
OrderId
:
this
.
OrderId
}
},
(
res
)
=>
{
this
.
expressInfo
=
res
.
data
}
);
init
(
id
,
express_no
)
{
// let h = this.apiheader();
// this.request(
// {
// url: "",
// header: h,
// data: {
// r: "api/order/express-detail",
// express: this.express,
// express_no: this.express_no,
// customer_name: "",
// },
// },
// (res) => {
// this.loading = false;
// this.d = res.data.express;
// this.d.list = this.d.list.reverse();
// if (this.d.status == 3) {
// this.last = this.d.list[0];
// this.d.list.splice(0, 1);
// }
// }
// );
this
.
request2
(
{
url
:
"/api/AppletOrder/GetOrderExpressInfo"
,
data
:
{
ExpressId
:
id
,
ExpressNumber
:
express_no
,
},
},
(
res
)
=>
{
this
.
d
=
res
.
data
;
}
);
},
},
};
...
...
pages/order/order-detail.vue
View file @
1874162d
...
...
@@ -74,32 +74,33 @@
<view
class=
"good-price"
>
¥
{{
x
.
Final_Price
}}
</view>
</view>
</view>
<template
v-for=
"(e, ei) in
orders.detailExpress
"
>
<template
v-for=
"(e, ei) in
expressInfo
"
>
<view
:key=
"ei"
class=
"order-info-item peisong"
>
<
!--
<template
v-for=
"(ec, eci) in e.expressRelation
"
>
<
template
v-for=
"(ec, eci) in e.GoodsList
"
>
<view
class=
"field"
:key=
"eci"
v-if=
"e.
send_type == '2' && ec.order_detail_id == x.i
d"
v-if=
"e.
Type == '2' && ec.Id == x.DetailI
d"
>
<view
class=
"label"
>
配送方式
</view>
<view
class=
"content"
>
{{
e
.
express_content
}}
</view>
<view
class=
"content"
>
{{
e
.
Remark
}}
</view>
</view>
<view
class=
"field"
:key=
"eci"
@
click=
"goExpressHandler(e.
express, e.express_no
)"
v-if=
"e.
send_type == '1' && ec.order_detail_id == x.i
d"
@
click=
"goExpressHandler(e.
ExpressName, e.ExpressNumber,e.ExpressId
)"
v-if=
"e.
Type == '1' && ec.Id == x.DetailI
d"
>
<view
class=
"label"
>
配送方式
</view>
<view
class=
"content"
>
{{
e
.
express
}}
{{
e
.
express_no
}}
</view
>
{{
e
.
ExpressName
}}
{{
e
.
ExpressNumber
}}
</view
>
<view
style=
"margin-left: 10px;"
>
<u-icon
name=
"arrow"
size=
"32"
color=
"#000"
></u-icon>
</view>
</view>
</
template
>
-->
</
template
>
</view>
</template>
<view
...
...
@@ -220,16 +221,6 @@
>
立即支付
</u-button
>
</view>
<view
class=
"item"
v-if=
"orders.OrderStatus == '3'||orders.OrderStatus == '4' "
>
<u-button
shape=
"circle"
@
click=
"goExpressHandler(orders)"
size=
"medium"
:custom-style=
"customStyle"
>
查看物流
</u-button
>
</view>
<view
class=
"item"
v-if=
"orders.OrderStatus == '3'"
>
<u-button
shape=
"circle"
...
...
@@ -363,6 +354,7 @@ export default {
padding
:
"0 30rpx"
,
color
:
"#FFF"
,
},
expressInfo
:[],
Cancelmsg
:{
OrderId
:
0
,
Type
:
1
,
...
...
@@ -399,12 +391,19 @@ export default {
shouhuoHandler
()
{
this
.
showReviceModal
=
true
;
},
goExpressHandler
(
orders
)
{
uni
.
navigateTo
({
url
:
"/pages/order/express?OrderId="
+
orders
.
OrderId
+
'&address='
+
orders
.
DistrictAddress
+
orders
.
ShoppingAddress
});
},
goExpressHandler
(
express
,
no
,
id
)
{
uni
.
navigateTo
({
url
:
"/pages/order/express?express="
+
express
+
"&no="
+
no
+
"&address="
+
this
.
orders
.
DistrictAddress
+
this
.
orders
.
ShoppingAddress
+
"&id="
+
id
,
});
},
submitReviceGoodHandler
()
{
let
that
=
this
uni
.
requestSubscribeMessage
({
...
...
@@ -474,6 +473,7 @@ export default {
this
.
loading
=
false
;
this
.
initRecommend
();
this
.
getexpressInfo
(
res
.
data
.
OrderId
)
}
);
},
...
...
@@ -500,6 +500,20 @@ export default {
}
);
},
getexpressInfo
(
OrderId
){
this
.
request2
(
{
url
:
"/api/AppletOrder/GetAppletMyOrderExpressInfo"
,
data
:
{
OrderId
:
OrderId
,
},
},
(
res
)
=>
{
this
.
expressInfo
=
res
.
data
;
}
);
},
redirectGoods
(
id
)
{
uni
.
navigateTo
({
url
:
"/pages/goods/goods?id="
+
id
,
...
...
pages/user-center/user-center.vue
View file @
1874162d
...
...
@@ -6,7 +6,7 @@
<u-avatar
:src=
"user_info.avatar"
size=
"140"
style=
"margin-left: 50rpx;"
></u-avatar>
<view
style=
"display: flex;flex-direction: column;justify-content: center;"
>
<Text
style=
"color: #FFF;margin-left: 20rpx;font-size: 36rpx;"
@
click=
"login(user_info)"
>
{{
user_info
.
nickname
?
user_info
.
nickname
:
'立即登录'
}}
</Text>
<view
class=
"member"
@
click=
"goUrl('/pages/member/index/index')"
>
<view
class=
"member"
@
click=
"goUrl('/pages/member/index/index')"
v-if=
'user_info.nickname'
>
<image
:src=
"meueData.user_center.top_pic_url"
mode=
'aspectFill'
style=
"width: 26px;height: 26px;border-radius: 13px;"
></image>
<Text
style=
'margin-right: 10px;'
>
{{
user_info
.
identity
.
level_name
!=
null
?
user_info
.
identity
.
level_name
:
'普通用户'
}}
</Text>
</view>
...
...
@@ -16,7 +16,7 @@
<view
style=
"display: flex;flex-direction: column;align-items: center;"
v-if=
"meueData.user_center.top_style == 2"
>
<u-avatar
:src=
"user_info.avatar"
size=
"140"
></u-avatar>
<Text
style=
"color: #FFF;margin-left: 20rpx;font-size: 36rpx;"
@
click=
"login(user_info)"
>
{{
user_info
.
nickname
?
user_info
.
nickname
:
'立即登录'
}}
</Text>
<view
class=
"member"
@
click=
"goUrl('/pages/member/index/index')"
>
<view
class=
"member"
@
click=
"goUrl('/pages/member/index/index')"
v-if=
'user_info.nickname'
>
<image
:src=
"meueData.user_center.top_pic_url"
mode=
'aspectFill'
style=
"width: 26px;height: 26px;border-radius: 13px;"
></image>
<Text
style=
'margin-right: 10px;'
>
{{
user_info
.
identity
.
level_name
!=
null
?
user_info
.
identity
.
level_name
:
'普通用户'
}}
</Text>
</view>
...
...
@@ -99,8 +99,8 @@
</view>
</view>
<view
class=
"copyright"
>
<image
:src=
"meueData.user_center.copyright.pic_url"
style=
"width: 95px;height: 28
px;"
></image>
<Text
style=
"margin-top: 10rpx;"
>
{{
meueData
.
user_center
.
copyright
.
description
}}
</Text>
<image
:src=
"meueData.user_center.copyright.pic_url"
mode=
"widthFix"
style=
"width: 95
px;"
></image>
<Text
style=
"margin-top: 10rpx;
color: #666666;
"
>
{{
meueData
.
user_center
.
copyright
.
description
}}
</Text>
</view>
</view>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
...
...
plugin/api.js
View file @
1874162d
export
default
{
install
(
Vue
,
options
)
{
Vue
.
prototype
.
host
=
"https://wx.weibaoge.cn/web/index.php?_mall_id=1285"
Vue
.
prototype
.
host2
=
"https://mallApi.oytour.com"
//Vue.prototype.host2 = "https://mallApi.oytour.com"
//Vue.prototype.host2 = "http://mallapi.oytour.com"
Vue
.
prototype
.
request
=
function
(
param
,
success
,
failed
)
{
//网络请求
uni
.
request
({
url
:
this
.
host
+
"&r="
+
param
.
data
.
r
,
method
:
param
.
method
||
"GET"
,
header
:
param
.
header
||
{
'content-type'
:
"application/json"
},
data
:
param
.
data
,
success
:
res
=>
{
if
(
res
.
data
.
code
!=
0
&&
res
.
data
.
msg
!=
"商品未上架"
)
{
}
typeof
success
==
"function"
&&
success
(
res
.
data
);
},
fail
:
(
e
)
=>
{
console
.
log
(
"网络请求fail:"
+
JSON
.
stringify
(
e
));
uni
.
showModal
({
content
:
""
+
res
.
errMsg
});
typeof
failed
==
"function"
&&
failed
(
res
.
data
);
}
});
}
//Vue.prototype.host2 = "http://192.168.0.110:8200"
Vue
.
prototype
.
host2
=
"https://mallApi.oytour.com"
Vue
.
prototype
.
request2
=
function
(
param
,
success
,
failed
)
{
//网络请求
uni
.
request
({
...
...
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