Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
晓梦云飞
shopxo-uniapp
提交
274ce484
S
shopxo-uniapp
项目概览
晓梦云飞
/
shopxo-uniapp
与 Fork 源项目一致
Fork自
纵之格 / shopxo-uniapp
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
shopxo-uniapp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
274ce484
编写于
6月 30, 2022
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
商品详情支持默认选中第一个有效规格
上级
eb5e3f32
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
87 addition
and
15 deletion
+87
-15
pages/goods-detail/goods-detail.vue
pages/goods-detail/goods-detail.vue
+87
-15
未找到文件。
pages/goods-detail/goods-detail.vue
浏览文件 @
274ce484
...
...
@@ -84,9 +84,9 @@
<view
class=
"price-content padding-lg"
:style=
"(plugins_seckill_is_valid == 1) ? 'background-image: url('+plugins_seckill_data.bg_img+')' : ''"
>
<view
class=
"single-text"
>
<text
v-if=
"(show_field_price_text || null) != null"
class=
"price-icon radius va-m"
>
{{
show_field_price_text
}}
</text>
<text
class=
"sales-price va-m"
>
{{
currency_symbol
}}{{
goods
.
min
_price
}}
</text>
<text
class=
"sales-price va-m"
>
{{
currency_symbol
}}{{
goods
_spec_base
_price
}}
</text>
</view>
<view
v-if=
"(goods
.min_original_price || null) != null && goods.min_original_price > 0"
class=
"original-price margin-top-sm single-text"
>
{{
currency_symbol
}}{{
goods
.
min
_original_price
}}
</view>
<view
v-if=
"(goods
_spec_base_original_price || null) != null && goods_spec_base_original_price != 0"
class=
"original-price margin-top-sm single-text"
>
{{
currency_symbol
}}{{
goods_spec_base
_original_price
}}
</view>
</view>
<!-- 秒杀 -->
<view
v-if=
"plugins_seckill_is_valid == 1"
class=
"countdown-content padding-lg fr tc"
>
...
...
@@ -201,7 +201,7 @@
</view>
<!-- 门店 -->
<view
v-if=
"plugins_realstore_data != null"
class=
"plugins-realstore-container"
>
<view
v-if=
"plugins_realstore_data != null
&& plugins_realstore_data.length > 0
"
class=
"plugins-realstore-container"
>
<view
class=
"spacing-nav-title"
>
<text
class=
"line"
></text>
<text
class=
"text-wrapper"
>
相关门店
</text>
...
...
@@ -388,7 +388,7 @@
<view
class=
"goods-popup-base-content"
>
<view
class=
"goods-price"
>
<view
class=
"sales-price"
>
{{
currency_symbol
}}{{
goods_spec_base_price
}}
</view>
<view
v-if=
"(goods_spec_base_original_price || null) != null && goods_spec_base_original_price
>
0"
class=
"original-price"
>
{{
currency_symbol
}}{{
goods_spec_base_original_price
}}
</view>
<view
v-if=
"(goods_spec_base_original_price || null) != null && goods_spec_base_original_price
!=
0"
class=
"original-price"
>
{{
currency_symbol
}}{{
goods_spec_base_original_price
}}
</view>
</view>
<view
class=
"inventory"
>
<text
class=
"cr-gray"
>
库存
</text>
...
...
@@ -679,7 +679,10 @@
// 标签插件
plugins_label_data
:
null
,
// 智能工具插件
plugins_intellectstools_config
:
null
,
plugins_intellectstools_data
:
null
,
plugins_intellectstools_timer
:
null
,
plugins_intellectstools_timerout
:
null
,
// 客服插件
plugins_chat_data
:
null
,
// 门店插件
...
...
@@ -732,6 +735,8 @@
// 页面销毁时执行
onUnload
:
function
()
{
clearInterval
(
this
.
plugins_salerecords_timer
);
clearInterval
(
this
.
plugins_intellectstools_timer
);
clearInterval
(
this
.
plugins_intellectstools_timerout
);
},
// 监听滚动
...
...
@@ -784,6 +789,7 @@
common_app_is_online_service
:
app
.
globalData
.
get_config
(
'
config.common_app_is_online_service
'
),
common_app_customer_service_tel
:
app
.
globalData
.
get_config
(
'
config.common_app_customer_service_tel
'
),
plugins_is_goods_detail_poster
:
app
.
globalData
.
get_config
(
'
plugins_base.distribution.data.is_goods_detail_poster
'
),
plugins_intellectstools_config
:
app
.
globalData
.
get_config
(
'
plugins_base.intellectstools.data
'
),
});
// 底部业务导航按钮数量处理
...
...
@@ -837,7 +843,7 @@
buy_button
:
data
.
buy_button
||
null
,
top_nav_title_data
:
data
.
middle_tabs_nav
||
[],
goods_spec_base_price
:
goods
.
price
,
goods_spec_base_original_price
:
goods
.
original_price
,
goods_spec_base_original_price
:
goods
.
original_price
||
0
,
goods_spec_base_inventory
:
goods
.
inventory
,
goods_spec_base_images
:
goods
.
images
,
show_field_price_text
:
goods
.
show_field_price_text
==
'
价格
'
?
null
:
goods
.
show_field_price_text
.
replace
(
/<
[^
>
]
+>/g
,
""
)
||
null
,
...
...
@@ -882,6 +888,9 @@
// 购买记录提示
this
.
plugins_salerecords_tips_handle
();
// 默认选中第一个规格、必须是可以可售的商品
this
.
plugins_intellectstools_selected_spec_handle
();
}
else
{
this
.
setData
({
data_bottom_line_status
:
false
,
...
...
@@ -976,6 +985,62 @@
},
500
);
},
// 默认选中第一个规格、必须是可以可售的商品
plugins_intellectstools_selected_spec_handle
()
{
var
self
=
this
;
// 销毁之前的任务
clearInterval
(
self
.
plugins_intellectstools_timer
);
clearInterval
(
self
.
plugins_intellectstools_timerout
);
// 读取智能工具插件配置、是否开启
var
config
=
self
.
plugins_intellectstools_config
||
null
;
if
(
config
!=
null
&&
(
config
.
is_goods_detail_selected_first_spec
||
0
)
==
1
)
{
// 必须存在购买和加入购物车任意一个、规格必须多个
var
buy
=
self
.
buy_button
;
var
sku_count
=
app
.
globalData
.
get_length
(
self
.
goods_specifications_choose
);
if
(((
buy
.
is_buy
||
0
)
+
(
buy
.
is_cart
||
0
))
>
0
&&
sku_count
>
0
)
{
// 先清除价格展示信息
self
.
setData
({
goods_spec_base_price
:
'
...
'
,
goods_spec_base_original_price
:
'
...
'
});
var
num
=
0
;
var
timer
=
setInterval
(
function
()
{
var
spec
=
self
.
goods_specifications_choose
;
for
(
var
i
in
spec
)
{
// 清除价格展示信息、避免获取价格类型赋值
self
.
setData
({
goods_spec_base_price
:
'
...
'
,
goods_spec_base_original_price
:
'
...
'
});
// 必须不存在已选择项
var
active
=
spec
[
i
][
'
value
'
].
map
(
function
(
v
){
return
v
.
is_active
}).
join
(
''
)
||
null
;
if
(
active
==
null
)
{
var
status
=
false
;
for
(
var
k
in
spec
[
i
][
'
value
'
])
{
// 必须是可选和未选
if
(
!
status
&&
(
spec
[
i
][
'
value
'
][
k
][
'
is_disabled
'
]
||
null
)
==
null
&&
(
spec
[
i
][
'
value
'
][
k
][
'
is_dont
'
]
||
null
)
==
null
)
{
self
.
goods_specifications_handle
(
i
,
k
);
status
=
true
;
num
++
;
}
}
}
}
if
(
num
>=
sku_count
)
{
clearInterval
(
self
.
plugins_intellectstools_timer
);
}
},
100
);
var
timerout
=
setTimeout
(
function
()
{
clearInterval
(
self
.
plugins_intellectstools_timerout
);
},
20000
);
self
.
setData
({
plugins_intellectstools_timer
:
timer
,
plugins_intellectstools_timerout
:
timerout
});
}
}
},
// 不能选择规格处理
goods_specifications_choose_handle_dont
(
key
)
{
var
temp_data
=
this
.
goods_specifications_choose
||
[];
...
...
@@ -984,10 +1049,12 @@
}
// 是否不能选择
key
=
parseInt
(
key
);
for
(
var
i
in
temp_data
)
{
for
(
var
k
in
temp_data
[
i
][
'
value
'
])
{
if
(
i
>
key
)
{
temp_data
[
i
][
'
value
'
][
k
][
'
is_dont
'
]
=
'
spec-dont-choose
'
,
temp_data
[
i
][
'
value
'
][
k
][
'
is_disabled
'
]
=
''
;
temp_data
[
i
][
'
value
'
][
k
][
'
is_dont
'
]
=
'
spec-dont-choose
'
;
temp_data
[
i
][
'
value
'
][
k
][
'
is_disabled
'
]
=
''
;
temp_data
[
i
][
'
value
'
][
k
][
'
is_active
'
]
=
''
;
}
...
...
@@ -1054,7 +1121,7 @@
break
;
// 门店
case
'
plugins-realstore
'
:
var
temp_data_list
=
this
.
plugins_realstore_data
;
var
temp_data_list
=
this
.
plugins_realstore_data
||
[]
;
if
(
temp_data_list
.
length
==
1
)
{
app
.
globalData
.
url_open
(
temp_data_list
[
0
][
'
url
'
]);
}
else
{
...
...
@@ -1170,9 +1237,14 @@
goods_specifications_event
(
e
)
{
var
key
=
e
.
currentTarget
.
dataset
.
key
||
0
;
var
keys
=
e
.
currentTarget
.
dataset
.
keys
||
0
;
this
.
goods_specifications_handle
(
key
,
keys
);
},
// 规格选择处理
goods_specifications_handle
(
key
,
keys
)
{
var
temp_data
=
this
.
goods_specifications_choose
;
var
temp_images
=
this
.
goods_spec_base_images
;
// 不能选择和禁止选择跳过
if
((
temp_data
[
key
][
'
value
'
][
keys
][
'
is_dont
'
]
||
null
)
==
null
&&
(
temp_data
[
key
][
'
value
'
][
keys
][
'
is_disabled
'
]
||
null
)
==
null
)
{
// 规格选择
...
...
@@ -1197,13 +1269,13 @@
goods_spec_base_images
:
temp_images
,
buy_number
:
parseInt
(
this
.
goods
.
buy_min_number
)
||
1
,
});
// 不能选择规格处理
this
.
goods_specifications_choose_handle_dont
(
key
);
// 获取下一个规格类型
this
.
get_goods_specifications_type
(
key
);
// 获取规格详情
this
.
get_goods_specifications_detail
();
}
...
...
@@ -1226,8 +1298,8 @@
// 获取下一个规格类型
get_goods_specifications_type
(
key
)
{
var
temp_data
=
this
.
goods_specifications_choose
;
var
active_index
=
key
+
1
;
var
sku_count
=
temp_data
.
length
;
var
active_index
=
parseInt
(
key
)
+
1
;
var
sku_count
=
app
.
globalData
.
get_length
(
temp_data
)
;
if
(
active_index
<=
0
||
active_index
>=
sku_count
)
{
return
false
;
}
...
...
@@ -1309,7 +1381,7 @@
if
(
spec
.
length
<=
0
||
active_count
<
sku_count
)
{
this
.
setData
({
goods_spec_base_price
:
this
.
goods
.
price
,
goods_spec_base_original_price
:
this
.
goods
.
original_price
,
goods_spec_base_original_price
:
this
.
goods
.
original_price
||
0
,
goods_spec_base_inventory
:
this
.
goods
.
inventory
});
return
false
;
...
...
@@ -1361,7 +1433,7 @@
var
spec_base
=
data
.
spec_base
;
var
data
=
{
goods_spec_base_price
:
spec_base
.
price
,
goods_spec_base_original_price
:
spec_base
.
original_price
,
goods_spec_base_original_price
:
spec_base
.
original_price
||
0
,
goods_spec_base_inventory
:
parseInt
(
spec_base
.
inventory
),
plugins_wholesale_data
:
data
.
plugins_wholesale_data
||
null
,
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录