Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
lumastoreapp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xieyishang
lumastoreapp
Commits
144b67c9
Commit
144b67c9
authored
Dec 26, 2020
by
000
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'feature_recommend_q'
Dev See merge request
!6
parents
d7b08afb
a9f20e26
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1728 additions
and
1124 deletions
+1728
-1124
App.vue
App.vue
+0
-2
components/yomol-upgrade/yomol-upgrade.vue
components/yomol-upgrade/yomol-upgrade.vue
+5
-27
manifest.json
manifest.json
+19
-4
pages/addEditEleProduct/addEditEleProduct.vue
pages/addEditEleProduct/addEditEleProduct.vue
+51
-24
pages/eleProduct/eleProduct.vue
pages/eleProduct/eleProduct.vue
+3
-1
pages/index/index.vue
pages/index/index.vue
+20
-17
pages/order/order.vue
pages/order/order.vue
+1
-1
pages/order/shopExamine/shopExamine.vue
pages/order/shopExamine/shopExamine.vue
+2
-4
pages/order/shopOrder.vue
pages/order/shopOrder.vue
+6
-1
pages/order/shoporderdetail/shoporderdetail.vue
pages/order/shoporderdetail/shoporderdetail.vue
+526
-470
pages/order/shoprefundorderdetail/shoprefundorderdetail.vue
pages/order/shoprefundorderdetail/shoprefundorderdetail.vue
+33
-29
pages/publishActivities/activityDetail/activityDetail.vue
pages/publishActivities/activityDetail/activityDetail.vue
+324
-84
pages/publishActivities/activityList/activityList.vue
pages/publishActivities/activityList/activityList.vue
+54
-51
pages/storeqrcode/storeqrcode.vue
pages/storeqrcode/storeqrcode.vue
+285
-388
pages/storeqrcode/storeqrcode2.vue
pages/storeqrcode/storeqrcode2.vue
+382
-0
utils/api/merchant.js
utils/api/merchant.js
+9
-9
utils/debug.js
utils/debug.js
+8
-12
No files found.
App.vue
View file @
144b67c9
...
...
@@ -64,7 +64,6 @@
var
rsult
=
hgService
.
checkIfLimited
();
//检测是否限制后台运行
if
(
rsult
.
isLimit
){
//限制了后台运行
hgService
.
requestIgnoreLimit
();
//申请
...
...
@@ -76,7 +75,6 @@
//var globalEvent = uni.requireNativePlugin('globalEvent'); //全局事件回调 任务启动时间,会有一定延时 一般一分钟内。
},
// hgServiceFun(){
// const pushLive = uni.requireNativePlugin('push-live');
// pushLive.startService({ //启动服务
...
...
components/yomol-upgrade/yomol-upgrade.vue
View file @
144b67c9
...
...
@@ -176,11 +176,8 @@
var
platform
=
uni
.
getSystemInfoSync
().
platform
//根据当前平台去后台检测版本号
//这是我的逻辑,自己自定义
if
(
debug
.
isdebug
){
}
else
{
if
(
!
debug
.
isdebug
)
{
//正式版的APP更新处理
uni
.
request
({
...
...
@@ -192,30 +189,11 @@
user_token
:
this
.
$store
.
state
.
token
,
},
success
:
(
result
)
=>
{
console
.
log
(
result
,
"
result
"
);
var
str
=
widgetInfo
.
version
;
var
str1
=
""
;
var
dian
=
0
;
for
(
let
i
=
0
;
i
<
str
.
length
;
i
++
){
if
(
str
[
i
]
==
"
.
"
){
if
(
dian
==
1
){
}
else
{
str1
+=
str
[
i
];
}
dian
++
;
}
else
{
str1
+=
str
[
i
];
}
}
let
appVersion
=
parseFloat
(
str1
);
//当前版本
let
nesVersion
=
parseFloat
(
result
.
data
.
data
.
version
);
//最新版本
let
appVersion
=
widgetInfo
.
versionCode
;
//当前版本
let
nesVersion
=
result
.
data
.
data
.
version
;
//最新版本
if
(
nesVersion
>
appVersion
)
{
if
(
result
.
data
.
data
.
pkgurl
!=
''
&&
result
.
data
.
data
.
downloadurl
==
''
)
{
this
.
type
=
"
pkg
"
;
this
.
url
=
result
.
data
.
data
.
pkgurl
;
this
.
title
=
"
1
"
;
...
...
manifest.json
View file @
144b67c9
...
...
@@ -3,12 +3,12 @@
//
"appid"
:
"__UNI__FC9419E"
,
"appid"
:
"__UNI__1EA80F1"
,
//这个是
web
的
"description"
:
"商家"
,
"versionName"
:
"1.
0.99
"
,
"versionCode"
:
1
99
,
"versionName"
:
"1.
102
"
,
"versionCode"
:
1
102
,
"transformPx"
:
false
,
"compatible"
:
{
"ignoreVersion"
:
true
,
//
true
表示忽略版本检查提示框,HBuilderX
1.9
.
0
及以上版本支持
"runtimeVersion"
:
"2.9.
3,2.9.7,2.9.8
"
,
//兼容的uni-app运行环境版本号,多个版本使用
,
分割
"runtimeVersion"
:
"2.9.
8,2.9.11,3.0.0,3.0.1
"
,
//兼容的uni-app运行环境版本号,多个版本使用
,
分割
"compilerVersion"
:
"2.9.8"
//兼容的编译器版本号
},
/*
5
+App特有相关weex
*/
...
...
@@ -164,7 +164,22 @@
}
},
"compilerVersion"
:
2
,
"nativePlugins"
:
{}
"nativePlugins"
:
{
"HG-Background"
:
{
"__plugin_info__"
:
{
"name"
:
"保活 前台运行"
,
"description"
:
"用于提高app存活概率或添加前台显示 q群:219508489"
,
"platforms"
:
"Android"
,
"url"
:
"https://ext.dcloud.net.cn/plugin?id=2203"
,
"android_package_name"
:
"com.app.lumastore"
,
"ios_bundle_id"
:
""
,
"isCloud"
:
true
,
"bought"
:
1
,
"pid"
:
"2203"
,
"parameters"
:
{}
}
}
}
},
/*
快应用特有相关
*/
"quickapp"
:
{},
...
...
pages/addEditEleProduct/addEditEleProduct.vue
View file @
144b67c9
...
...
@@ -341,6 +341,7 @@
},
data
()
{
return
{
linkage_id
:
''
,
is_datashow
:
true
,
bools
:
''
,
...
...
@@ -429,7 +430,13 @@
{}
],
isShow
:
false
,
chindformList
:[],
chindformList
:[],
myProps
:{
label
:
'
cate_name
'
,
value
:
'
cate_id
'
,
children
:
''
,
},
//上传图片相关的
c_pics
:
[],
c_pics1
:[],
...
...
@@ -611,6 +618,7 @@
}
},
async
findEleProduct
(
results
){
console
.
log
(
'
查找商品
'
)
uni
.
showLoading
({
title
:
'
请稍后
'
});
let
res
=
await
findEleProduct
({
code
:
results
.
code
});
...
...
@@ -662,6 +670,8 @@
this
.
codeDisabled
=
true
;
//条形码输入框是否禁止输入
this
.
c_pics
=
[{
code
:
0
,
data
:
res
.
data
.
photo
,
msg
:
"
success
"
,
time
:
"
1587101904
"
}];
// console.log(this.chindformList);
for
(
var
i
=
0
;
i
<
this
.
chindformList
.
length
;
i
++
)
{
if
(
this
.
chindformList
[
i
].
cate_id
==
res
.
data
.
cate_id
){
this
.
cate_name
=
this
.
chindformList
[
i
].
cate_name
;
...
...
@@ -669,6 +679,9 @@
}
}
}
},
myProps
(){
},
saoma
(
e
){
uni
.
scanCode
({
...
...
@@ -725,11 +738,11 @@
},
confirm
(
e
){
console
.
log
(
e
)
this
.
cate_name
=
e
.
item
.
cate_name
;
this
.
form
.
cate_id
=
e
.
item
.
cate_id
;
this
.
index
=
e
.
index
;
},
},
pickerone
(){
this
.
$refs
.
picker
.
show
()
// 显示
},
...
...
@@ -741,7 +754,8 @@
},
//分类选中
bindPickerChange
(
e
){
console
.
info
(
e
.
detail
.
value
);
console
.
info
(
e
.
detail
.
value
);
console
.
log
(
this
.
chindformList
)
this
.
cate_name
=
this
.
chindformList
[
e
.
detail
.
value
].
cate_name
;
this
.
form
.
cate_id
=
this
.
chindformList
[
e
.
detail
.
value
].
cate_id
;
this
.
index
=
e
.
detail
.
value
;
...
...
@@ -760,7 +774,8 @@
},
//修改的时候赋初始值
async
eleProductInfofun
(){
async
eleProductInfofun
(){
let
that
=
this
;
let
res
=
await
eleProductInfo
({
product_id
:
this
.
product_id
,
});
...
...
@@ -800,24 +815,32 @@
this
.
form
.
commission
=
res
.
data
.
commission
,
//返佣比例
this
.
form
.
sell_type
=
res
.
data
.
sell_type
,
// 售卖类型
this
.
form
.
mandatory
=
res
.
data
.
mandatory
this
.
video_photos
=
res
.
data
.
video_photos
;
//轮播
this
.
detail_photos
=
res
.
data
.
detail_photos
;
//详情
res
.
data
.
video_photos
.
map
(
item
=>
{
//轮播
this
.
c_pics1
.
push
({
code
:
0
,
data
:
item
,
msg
:
"
success
"
,
time
:
"
1587101904
"
})
})
res
.
data
.
detail_photos
.
map
(
item
=>
{
//详情
this
.
c_pics2
.
push
({
code
:
0
,
data
:
item
,
msg
:
"
success
"
,
time
:
"
1587101904
"
})
})
if
(
typeof
res
.
data
.
video_photos
==
'
object
'
){
this
.
video_photos
=
res
.
data
.
video_photos
;
//轮播
for
(
let
i
in
res
.
data
.
video_photos
){
this
.
c_pics1
.
push
({
code
:
0
,
data
:
res
.
data
.
video_photos
[
i
],
msg
:
"
success
"
,
time
:
"
1587101904
"
});
}
}
if
(
typeof
res
.
data
.
detail_photos
==
'
object
'
){
this
.
detail_photos
=
res
.
data
.
detail_photos
;
//详情
for
(
let
i
in
res
.
data
.
detail_photos
){
this
.
c_pics2
.
push
({
code
:
0
,
data
:
res
.
data
.
detail_photos
[
i
],
msg
:
"
success
"
,
time
:
"
1587101904
"
});
}
}
//下拉分类 初始值
this
.
chindformList
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
cate_id
==
res
.
data
.
cate_id
){
...
...
@@ -826,6 +849,8 @@
}
});
if
(
res
.
data
.
commodity_type
==
'
ordinary
'
)
{
this
.
ordinary
.
map
(
item
=>
{
if
(
this
.
linkage_product_id
==
item
.
product_id
){
...
...
@@ -890,6 +915,7 @@
// this.$api.msg("秒杀库存或限购数量不能为小数");
// return false;
// }
let
can
=
{
action
:
this
.
product_id
==
''
?
'
add
'
:
'
edit
'
,
linkage_id
:
this
.
linkage_id
,
...
...
@@ -982,7 +1008,8 @@
async
typeManagerfun
(){
let
res
=
await
typeManager
({});
if
(
res
.
code
==
0
){
this
.
chindformList
=
res
.
data
;
this
.
chindformList
=
res
.
data
;
if
(
this
.
product_id
!=
undefined
&&
this
.
product_id
!=
""
){
this
.
eleProductInfofun
();
}
...
...
pages/eleProduct/eleProduct.vue
View file @
144b67c9
...
...
@@ -230,9 +230,11 @@
this
.
goods_list
=
[];
this
.
page
=
1
;
this
.
isallshow
=
false
;
this
.
tabactive
=
1
,
// this.goods_product_list();
this
.
searchProduct
();
},
},
computed
:
{
staticUrl
()
{
//静态资源地址
return
this
.
$store
.
state
.
staticUrl
;
...
...
pages/index/index.vue
View file @
144b67c9
...
...
@@ -368,15 +368,6 @@
}
},
onLoad
()
{
getskipShop
({
type
:
'
bld
'
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
is_bld
=
res
.
data
.
is_bld
// this.is_bld = 1
}
})
//显示欢迎回来~
setTimeout
(()
=>
{
this
.
$refs
.
Welcome
.
show
();
...
...
@@ -410,6 +401,16 @@
// uni.stopPullDownRefresh();//结束下拉刷新
},
onShow
()
{
getskipShop
({
type
:
'
bld
'
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
is_bld
=
res
.
data
.
is_bld
// this.is_bld = 1
}
})
this
.
storeIndexfun
();
...
...
@@ -439,13 +440,21 @@
activity_nucleus
(
param
).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
$api
.
msg
(
res
.
msg
);
uni
.
showModal
({
title
:
'
提示
'
,
content
:
res
.
msg
,
showCancel
:
false
,
confirmText
:
'
确定
'
,
success
()
{
}
})
}
else
{
this
.
$api
.
msg
(
res
.
msg
);
}
})
return
;
}
else
if
(
res
.
scanType
==
'
EAN_13
'
)
{
}
else
{
uni
.
request
({
url
:
'
https://www.mxnzp.com/api/barcode/goods/details
'
,
//仅为示例,并非真实接口地址。
data
:
{
...
...
@@ -456,9 +465,7 @@
},
method
:
'
GET
'
,
success
:
(
results
)
=>
{
// console.log(results);
if
(
results
.
data
.
code
==
0
)
{
// this.$api.msg(results.data.msg);
results
.
isScanCode
=
false
;
results
.
code
=
res
.
result
;
uni
.
navigateTo
({
...
...
@@ -470,12 +477,9 @@
uni
.
navigateTo
({
url
:
'
/pages/addEditEleProduct/addEditEleProduct?results=
'
+
JSON
.
stringify
(
results
)
})
// console.log(results)
}
},
fail
:
(
results
)
=>
{
// console.log(results);
results
.
isScanCode
=
false
;
results
.
code
=
res
.
result
;
uni
.
navigateTo
({
...
...
@@ -564,7 +568,6 @@
this
.
is_luck_draw
=
res
.
data
.
shop_info
.
is_luck_draw
this
.
money_type
=
res
.
data
.
shop_info
.
money_type
this
.
activity_type
=
res
.
data
.
shop_info
.
activity_type
//判断是否有秒杀资格
console
.
log
(
this
.
shop_type
,
'
aa
'
)
}
else
{
this
.
$api
.
msg
(
res
.
msg
);
}
...
...
pages/order/order.vue
View file @
144b67c9
...
...
@@ -333,6 +333,6 @@
}
.orderlist
{
padding
:
10
0upx
24upx
0
24upx
;
box-sizing
:
border-box
;
padding
:
4
0upx
24upx
0
24upx
;
box-sizing
:
border-box
;
}
</
style
>
pages/order/shopExamine/shopExamine.vue
View file @
144b67c9
...
...
@@ -27,7 +27,7 @@ export default {
name
:
''
,
mobile
:
''
,
address
:
''
,
type
:
''
,
//退款退款 退款
type
:
1
,
//同意
refund_id
:
''
}
},
...
...
@@ -42,10 +42,8 @@ export default {
},
onLoad
(
option
){
// console.log(option)
this
.
type
=
option
.
type
;
console
.
log
(
option
)
this
.
refund_id
=
option
.
refund_id
;
// console.log(this.refund_id,this.type)
},
methods
:
{
refundExamine
(){
//提交
...
...
pages/order/shopOrder.vue
View file @
144b67c9
...
...
@@ -223,6 +223,7 @@ export default {
this
.
is_loading_done
=
false
;
this
.
pageNum
=
0
;
this
.
order
=
[];
this
.
refundOrder
=
[];
this
.
initializedata
();
},
onUnload
()
{
...
...
@@ -355,6 +356,7 @@ export default {
let
is_dianping
=
event
.
currentTarget
.
dataset
.
is_dianping
;
let
sale_status
=
event
.
currentTarget
.
dataset
.
sale_status
;
this
.
order
=
[];
this
.
refundOrder
=
[];
this
.
statusTab
=
statusTab
;
this
.
tabactive
=
statusTab
;
this
.
status
=
status
;
...
...
@@ -363,6 +365,9 @@ export default {
this
.
is_loading_done
=
false
;
this
.
currentTab
=
event
.
target
.
dataset
.
current
;
this
.
pageNum
=
0
;
console
.
log
(
this
.
refundOrder
,
'
aaaa
'
);
this
.
initializedata
();
},
// 拒绝退款原因关闭弹窗
...
...
@@ -637,7 +642,7 @@ export default {
duration
:
2000
,
icon
:
'
none
'
});
this
.
listDeal2
();
//确认收货成功自动刷新售后列表
//
this.listDeal2(); //确认收货成功自动刷新售后列表
}
else
{
this
.
$api
.
msg
(
res
.
msg
);
}
...
...
pages/order/shoporderdetail/shoporderdetail.vue
View file @
144b67c9
<
template
>
<!-- 商家查看自己店铺的订单详情 -->
<!-- 订单 order -->
<view
class=
"shoporderdetale xiangq yocode"
>
<view
class=
"beijingimg"
style=
"height:80px"
>
<!--
<view
class=
"onetitle"
>
{{
detail
.
orderstatus
}}
</view>
<view
class=
"twotitle"
>
{{
detail
.
statusdesc
}}
</view>
-->
</view>
<view
class=
"boxs"
>
<view
class=
"topbox_20 addresone"
v-if=
"detail.delivery_type>=1"
>
<view
class=
"ali-c"
>
<view
class=
"weizhiimg"
>
<image
class=
"imgs"
src=
"/static/news/address.png"
></image>
</view>
<view
class=
"flex1 ml-20 addrnamesv"
>
<view
class=
"sz_30 bt_hei"
>
{{
detail
.
addr
.
name
}}
{{
detail
.
addr
.
mobile
}}
</view>
<view
class=
"sz_30 bt_hei mt-10"
>
{{
detail
.
addr
.
addr
}}
</view>
</view>
</view>
</view>
<view
class=
"topbox_20 mt-60 addresone"
v-else
>
<view
class=
"ali-c"
>
<view
class=
"weizhiimg"
>
<image
class=
"imgs"
src=
"/static/news/storeicon.png"
></image>
</view>
<view
class=
"flex1 ml-20"
>
<view
class=
"sz_30 bt_hei"
>
到店支付
</view>
</view>
</view>
</view>
<view
class=
"topbox_20 mt-20"
>
<view
class=
"ali-c"
>
<view
class=
"tubiimg mr-20"
>
<image
class=
"imgs"
src=
"/static/news/storeicon.png"
></image>
</view>
<view
class=
"bt_min flex1"
>
{{
detail
.
shop_name
}}
</view>
</view>
<view
class=
"flex mt-30"
v-for=
'(item,index) in detail.products'
:key=
'index'
>
<view
class=
"tuimg br_10 ov"
>
<image
class=
"imgs"
:src=
"staticUrl+item.photo"
v-if=
"item.photo"
></image>
<image
class=
"imgs"
:src=
"staticUrl+detail.photo"
v-else
></image>
</view>
<view
class=
"flex1 ml-25 goodsboxs"
>
<view
class=
"sz_30 bt_hei twoline names"
style=
"height:65upx"
>
{{
item
.
goods_name
}}
</view>
<view
class=
"sz_26 bt_hei mt-10 prices"
>
价格
{{
item
.
fprice
}}
元
<!--
<text
class=
"ml-20 prices"
v-if=
"detail.buytype==0 && item.recprice >0"
>
充值价
{{
item
.
recprice
}}
元
</text>
-->
</view>
<view
class=
"sz_26 inp_hui mt-10 skunames"
>
规格:
{{
item
.
sku_name
}}
<text
class=
"ml-20"
></text>
</view>
<view
class=
"sz_26 inp_hui mt-10 sumns"
>
数量: x
{{
item
.
goodsnum
}}
</view>
</view>
</view>
</view>
<view
class=
"topbox_20 mt-20 "
>
<view
class=
"ali-z sz_30 bt_hei flex ali-c jus-b"
>
<view>
已优惠:
</view>
<view
style=
"color: red;font-size: 20upx;"
>
-¥
{{
detail
.
cprice
}}
</view>
</view>
</view>
<view
class=
"topbox_20 mt-20 "
>
<view
class=
"ali-z sz_30 bt_hei flex ali-c jus-b"
>
<view>
总计:
</view>
<view
style=
"color: red;"
>
¥
{{
detail
.
total
}}
</view>
</view>
</view>
<!-- 第二排 -->
<view
class=
"cellboxs cellboxstow"
v-if=
'logs'
>
<view
class=
"subsbox cellitems flex ali-c jus-b"
>
<view
class=
"name"
>
订单信息
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
>
<view
class=
"name"
>
订单编号
</view>
<view
class=
"vlas"
>
{{
logs
.
order_sn
}}
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
>
<view
class=
"name"
>
创建时间
</view>
<view
class=
"vlas"
>
{{
logs
.
createtime
}}
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
v-if=
"detail.status==4"
>
<view
class=
"name"
>
退款原因
</view>
<view
class=
"vlas"
>
{{
detail
.
refund_details
}}
</view>
</view>
</view>
<!-- 订单信息 -->
<!-- 联系客服 -->
<view
class=
"ordertelbox flex "
>
<view
class=
"itemboxss flex1 flex flexc"
@
tap=
"xlsj"
:data-tel=
'detail.addr.mobile'
>
<image
class=
"img"
src=
"/static/news/telicon1.png"
mode=
""
></image>
<view
class=
"name"
>
联系客户
</view>
</view>
<view
class=
"itemboxss flex1 flex flexc"
@
tap=
"lxpt"
>
<image
class=
"img"
src=
"/static/news/kefuicon.png"
mode=
""
></image>
<view
class=
"name"
>
联系平台
</view>
</view>
</view>
<!-- 猜你会买 -->
</view>
</view>
</
template
>
<
script
>
import
{
orderDetails
}
from
"
@/utils/api/api.js
"
;
export
default
{
data
(){
return
{
order_id
:
""
,
detail
:{
addr
:{
mobile
:
""
}},
logs
:{},
}
},
computed
:
{
staticUrl
()
{
//静态资源地址
return
this
.
$store
.
state
.
staticUrl
;
}
},
onLoad
(
options
)
{
this
.
order_id
=
options
.
order_id
;
this
.
initializedata
();
},
methods
:{
xlsj
(){
//联系客户
uni
.
makePhoneCall
({
phoneNumber
:
this
.
detail
.
addr
.
mobile
//仅为示例
});
},
//联系平台
lxpt
(){
uni
.
makePhoneCall
({
phoneNumber
:
'
15907083784
'
//仅为示例
});
},
initializedata
()
{
var
that
=
this
;
let
params
=
{
order_id
:
that
.
order_id
,
};
orderDetails
(
params
).
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
code
<
0
){
// app.showToast({title: res.msg});
this
.
$api
.
msg
(
res
.
msg
);
}
else
{
// that.setData({
// detail: res.data.detail,
// logs:res.data.logs,
// CONFIG: app.globalData.CONFIG
// })
this
.
detail
=
res
.
data
.
detail
;
this
.
logs
=
res
.
data
.
logs
;
//this.CONFIG =
}
})
},
callTel
:
function
(
e
)
{
uni
.
makePhoneCall
({
phoneNumber
:
e
.
currentTarget
.
dataset
.
tel
// 仅为示例,并非真实的电话号码
})
},
},
}
</
script
>
<
style
lang=
"scss"
>
/* pages/shop//order/weidianorder/weidianLine_item/weidianLine_item.wxss */
.ml-20
{
margin-left
:
20upx
;
}
.mt-20
{
margin-top
:
20upx
;
}
.mr-20
{
margin-right
:
20upx
;
}
.mt-30
{
margin-top
:
30upx
;
}
.ml-25
{
margin-left
:
25upx
;
}
.sz_30
{
font-size
:
30upx
;
}
.beijingimg
{
background
:
linear-gradient
(
#FF5A03
,
#FF4216
);
width
:
100%
;
height
:
300upx
;
position
:
absolute
;
top
:
0
;
z-index
:
1
;
padding-left
:
20upx
;
padding-top
:
25px
;
.onetitle
{
color
:
#FFFFFF
;
font-size
:
30upx
;
}
.twotitle
{
color
:
#FFFFFF
;
font-size
:
28upx
;
}
}
.addresone
{
margin-top
:
20px
;
}
.boxs
{
position
:
relative
;
z-index
:
2
;
width
:
100%
;
padding
:
24upx
;
box-sizing
:
border-box
;
}
.bt_min
{
font-size
:
30upx
;
}
.addrnamesv
{
font-size
:
30upx
;
}
.topbox_20
{
width
:
100%
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
14rpx
;
padding
:
20upx
;
box-sizing
:
border-box
;
font-size
:
30upx
;
}
.skunames
{
font-size
:
24upx
;
}
page
{
position
:
relative
;
padding-bottom
:
100upx
;
background
:
#F5F5F5
;
}
.weizhiimg
{
width
:
30upx
;
height
:
46upx
;
.imgs
{
width
:
30upx
;
height
:
46upx
;
}
}
.shuwuimg
{
width
:
67upx
;
height
:
67upx
;
border-radius
:
4upx
;
overflow
:
hidden
;
}
.btbox
{
width
:
190upx
;
height
:
77upx
;
background
:rgba
(
255
,
255
,
255
,
1
)
;
border-radius
:
4upx
;
}
.xiangyouimg
{
width
:
14upx
;
height
:
24upx
;
}
.dianhuimg
{
width
:
42upx
;
height
:
42upx
;
}
.kuai
{
width
:
40upx
;
height
:
40upx
;
text-align
:
center
;
line-height
:
40upx
;
font-size
:
24upx
;
font-weight
:
500
;
color
:rgba
(
255
,
255
,
255
,
1
)
;
}
.dibu_qr
{
position
:
fixed
;
bottom
:
0
;
width
:
100%
;
background
:rgba
(
255
,
255
,
255
,
1
)
;
padding
:
10upx
24upx
;
box-sizing
:
border-box
;
}
.beizhu
{
width
:
150upx
;
text-align
:
right
;
}
.tubiimg
{
width
:
27upx
;
height
:
24upx
;
.imgs
{
width
:
27upx
;
height
:
24upx
;
}
}
.tuimg
{
width
:
183upx
;
height
:
183upx
;
.imgs
{
width
:
183upx
;
height
:
183upx
;
}
}
view
{
line-height
:
112%
;
letter-spacing
:
3upx
}
.dianhuimg
{
width
:
43upx
;
height
:
43upx
;
}
.shuxian
{
width
:
1px
;
height
:
100upx
;
background
:rgba
(
242
,
242
,
242
,
1
)
;
}
.duanxian
{
width
:
45upx
;
height
:
1px
;
background
:
rgba
(
181
,
181
,
181
,
1
);
}
.cptjimg
{
width
:
100%
;
height
:
310upx
;
}
/* 取消弹窗 */
.zan-dialog__mask
{
position
:
fixed
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
10
;
background
:
rgba
(
0
,
0
,
0
,
.5
);
display
:
none
;
}
.zan-dialog__container
{
position
:
fixed
;
bottom
:
400upx
;
width
:
650upx
;
height
:
350upx
;
margin-left
:
50upx
;
background
:
#f8f8f8
;
transform
:
translateY
(
300%
);
transition
:
all
0
.4s
ease
;
z-index
:
12
;
border-radius
:
20upx
;
/* box-shadow: 0px 3px 3px 2px gainsboro; */
}
.zan-dialog--show
.zan-dialog__container
{
transform
:
translateY
(
0
);
}
.zan-dialog--show
.zan-dialog__mask
{
display
:
block
;
}
.goodsboxs
{
font-size
:
30upx
;
.names
{
font-size
:
30upx
;
}
.prices
{
font-size
:
30upx
;
}
.sumns
{
color
:rgb
(
192
,
190
,
190
)
;
}
}
//联系kefu 客服
.ordertelbox
{
margin
:
0
24upx
;
margin-top
:
20upx
;
height
:
89upx
;
background
:rgba
(
255
,
255
,
255
,
1
)
;
border-radius
:
0px
0px
14upx
14upx
;
.itemboxss
{
position
:
relative
;
height
:
89upx
;
line-height
:
89upx
;
.img
{
width
:
43upx
;
height
:
43upx
;
margin-right
:
20upx
;
}
.name
{
font-size
:
30upx
;
color
:rgba
(
0
,
0
,
0
,
1
)
;
}
}
.itemboxss
:nth-child
(
1
)
:after
{
content
:
""
;
width
:
1px
;
height
:
89px
;
background
:rgba
(
242
,
242
,
242
,
1
)
;
position
:
absolute
;
top
:
0
;
right
:
0
;
}
}
//客服end
//价格明细列表
.cellboxs
{
margin
:
20upx
0
;
margin-top
:
20upx
;
.cellitems
{
padding
:
0
20upx
;
height
:
88upx
;
line-height
:
88upx
;
border-bottom
:
1px
solid
#F5F1F1
;
background
:
#FFFFFF
;
.name
{
font-size
:
30upx
;
color
:rgba
(
0
,
0
,
0
,
1
)
;
}
.vlas
{
font-size
:
30upx
;
color
:rgba
(
0
,
0
,
0
,
1
)
;
}
}
.cellitems
:nth-last-child
(
1
)
{
border
:
0
;
}
.subsbox
{
.name
{
font-size
:
30upx
;
font-family
:
PingFang
SC
;
font-weight
:bold
;
color
:rgba
(
0
,
0
,
0
,
1
)
;
}
.vlas
{
color
:
#FF6900
;
.fuhao
{
font-size
:
30upx
;
}
.shuzi
{
font-family
:
PingFang
SC
;
font-weight
:bold
;
font-size
:
36upx
;
}
}
}
}
// .cellboxstow{
// margin-top: 0;
// margin-bottom: 0;
// }
<
template
>
<!-- 商家查看自己店铺的订单详情 -->
<!-- 订单 order -->
<view
class=
"shoporderdetale xiangq yocode"
>
<view
class=
"beijingimg"
style=
"height:80px"
>
<!--
<view
class=
"onetitle"
>
{{
detail
.
orderstatus
}}
</view>
<view
class=
"twotitle"
>
{{
detail
.
statusdesc
}}
</view>
-->
</view>
<view
class=
"boxs"
>
<view
class=
"topbox_20 addresone"
v-if=
"detail.delivery_type>=1"
>
<view
class=
"ali-c"
>
<view
class=
"weizhiimg"
>
<image
class=
"imgs"
src=
"/static/news/address.png"
></image>
</view>
<view
class=
"flex1 ml-20 addrnamesv"
>
<view
class=
"sz_30 bt_hei"
>
{{
detail
.
addr
.
name
}}
{{
detail
.
addr
.
mobile
}}
</view>
<view
class=
"sz_30 bt_hei mt-10"
>
{{
detail
.
addr
.
addr
}}
</view>
</view>
</view>
</view>
<view
class=
"topbox_20 mt-60 addresone"
v-else
>
<view
class=
"ali-c"
>
<view
class=
"weizhiimg"
>
<image
class=
"imgs"
src=
"/static/news/storeicon.png"
></image>
</view>
<view
class=
"flex1 ml-20"
>
<view
class=
"sz_30 bt_hei"
>
到店支付
</view>
</view>
</view>
</view>
<view
class=
"topbox_20 mt-20"
>
<view
class=
"ali-c"
>
<view
class=
"tubiimg mr-20"
>
<image
class=
"imgs"
src=
"/static/news/storeicon.png"
></image>
</view>
<view
class=
"bt_min flex1"
>
{{
detail
.
shop_name
}}
</view>
</view>
<view
class=
"flex mt-30"
v-for=
'(item,index) in detail.products'
:key=
'index'
>
<view
class=
"tuimg br_10 ov"
>
<image
class=
"imgs"
:src=
"staticUrl+item.photo"
v-if=
"item.photo"
></image>
<image
class=
"imgs"
:src=
"staticUrl+detail.photo"
v-else
></image>
</view>
<view
class=
"flex1 ml-25 goodsboxs"
>
<view
class=
"sz_30 bt_hei twoline names"
style=
"height:65upx"
>
{{
item
.
goods_name
}}
</view>
<view
class=
"sz_26 bt_hei mt-10 prices"
>
价格
{{
item
.
fprice
}}
元
<!--
<text
class=
"ml-20 prices"
v-if=
"detail.buytype==0 && item.recprice >0"
>
充值价
{{
item
.
recprice
}}
元
</text>
-->
</view>
<view
class=
"sz_26 inp_hui mt-10 skunames"
>
规格:
{{
item
.
sku_name
}}
<text
class=
"ml-20"
></text>
</view>
<view
class=
"sz_26 inp_hui mt-10 sumns"
>
数量: x
{{
item
.
goodsnum
}}
</view>
</view>
</view>
</view>
<view
class=
"topbox_20 mt-20 "
>
<view
class=
"ali-z sz_30 bt_hei flex ali-c jus-b"
>
<view>
已优惠:
</view>
<view
style=
"color: red;font-size: 20upx;"
>
-¥
{{
detail
.
cprice
}}
</view>
</view>
</view>
<view
class=
"topbox_20 mt-20 "
>
<view
class=
"ali-z sz_30 bt_hei flex ali-c jus-b"
>
<view>
总计:
</view>
<view
style=
"color: red;"
>
¥
{{
detail
.
total
}}
</view>
</view>
</view>
<!-- 第二排 -->
<view
class=
"cellboxs cellboxstow"
v-if=
'logs'
>
<view
class=
"subsbox cellitems flex ali-c jus-b"
>
<view
class=
"name"
>
订单信息
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
>
<view
class=
"name"
>
订单编号
</view>
<view
class=
"vlas"
>
{{
logs
.
order_sn
}}
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
>
<view
class=
"name"
>
创建时间
</view>
<view
class=
"vlas"
>
{{
logs
.
createtime
}}
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
v-if=
"detail.status==4"
>
<view
class=
"name"
>
退款原因
</view>
<view
class=
"vlas"
>
{{
detail
.
refund_details
}}
</view>
</view>
<view
class=
"cellitems flex ali-c jus-b"
>
<view
class=
"name"
style=
"width: 30%;"
>
订单备注:
</view>
<view
class=
"vlas"
style=
"text-align: left;"
>
{{
detail
.
message
==
''
?
'
无
'
:
detail
.
message
}}
</view>
</view>
</view>
<!-- 订单信息 -->
<!-- 联系客服 -->
<view
class=
"ordertelbox flex "
>
<view
class=
"itemboxss flex1 flex flexc"
@
tap=
"xlsj"
:data-tel=
'detail.addr.mobile'
>
<image
class=
"img"
src=
"/static/news/telicon1.png"
mode=
""
></image>
<view
class=
"name"
>
联系客户
</view>
</view>
<view
class=
"itemboxss flex1 flex flexc"
@
tap=
"lxpt"
>
<image
class=
"img"
src=
"/static/news/kefuicon.png"
mode=
""
></image>
<view
class=
"name"
>
联系平台
</view>
</view>
</view>
<!-- 猜你会买 -->
</view>
</view>
</
template
>
<
script
>
import
{
orderDetails
}
from
"
@/utils/api/api.js
"
;
export
default
{
data
()
{
return
{
order_id
:
""
,
detail
:
{
addr
:
{
mobile
:
""
}
},
logs
:
{},
}
},
computed
:
{
staticUrl
()
{
//静态资源地址
return
this
.
$store
.
state
.
staticUrl
;
}
},
onLoad
(
options
)
{
this
.
order_id
=
options
.
order_id
;
this
.
initializedata
();
},
methods
:
{
xlsj
()
{
//联系客户
uni
.
makePhoneCall
({
phoneNumber
:
this
.
detail
.
addr
.
mobile
//仅为示例
});
},
//联系平台
lxpt
()
{
uni
.
makePhoneCall
({
phoneNumber
:
'
15907083784
'
//仅为示例
});
},
initializedata
()
{
var
that
=
this
;
let
params
=
{
order_id
:
that
.
order_id
,
};
orderDetails
(
params
).
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
code
<
0
)
{
// app.showToast({title: res.msg});
this
.
$api
.
msg
(
res
.
msg
);
}
else
{
// that.setData({
// detail: res.data.detail,
// logs:res.data.logs,
// CONFIG: app.globalData.CONFIG
// })
this
.
detail
=
res
.
data
.
detail
;
this
.
logs
=
res
.
data
.
logs
;
//this.CONFIG =
}
})
},
callTel
:
function
(
e
)
{
uni
.
makePhoneCall
({
phoneNumber
:
e
.
currentTarget
.
dataset
.
tel
// 仅为示例,并非真实的电话号码
})
},
},
}
</
script
>
<
style
lang=
"scss"
>
/* pages/shop//order/weidianorder/weidianLine_item/weidianLine_item.wxss */
.ml-20
{
margin-left
:
20upx
;
}
.mt-20
{
margin-top
:
20upx
;
}
.mr-20
{
margin-right
:
20upx
;
}
.mt-30
{
margin-top
:
30upx
;
}
.ml-25
{
margin-left
:
25upx
;
}
.sz_30
{
font-size
:
30upx
;
}
.beijingimg
{
background
:
linear-gradient
(
#FF5A03
,
#FF4216
);
width
:
100%
;
height
:
300upx
;
position
:
absolute
;
top
:
0
;
z-index
:
1
;
padding-left
:
20upx
;
padding-top
:
25px
;
.onetitle
{
color
:
#FFFFFF
;
font-size
:
30upx
;
}
.twotitle
{
color
:
#FFFFFF
;
font-size
:
28upx
;
}
}
.addresone
{
margin-top
:
20px
;
}
.boxs
{
position
:
relative
;
z-index
:
2
;
width
:
100%
;
padding
:
24upx
;
box-sizing
:
border-box
;
}
.bt_min
{
font-size
:
30upx
;
}
.addrnamesv
{
font-size
:
30upx
;
}
.topbox_20
{
width
:
100%
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
14rpx
;
padding
:
20upx
;
box-sizing
:
border-box
;
font-size
:
30upx
;
}
.skunames
{
font-size
:
24upx
;
}
page
{
position
:
relative
;
padding-bottom
:
100upx
;
background
:
#F5F5F5
;
}
.weizhiimg
{
width
:
30upx
;
height
:
46upx
;
.imgs
{
width
:
30upx
;
height
:
46upx
;
}
}
.shuwuimg
{
width
:
67upx
;
height
:
67upx
;
border-radius
:
4upx
;
overflow
:
hidden
;
}
.btbox
{
width
:
190upx
;
height
:
77upx
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
4upx
;
}
.xiangyouimg
{
width
:
14upx
;
height
:
24upx
;
}
.dianhuimg
{
width
:
42upx
;
height
:
42upx
;
}
.kuai
{
width
:
40upx
;
height
:
40upx
;
text-align
:
center
;
line-height
:
40upx
;
font-size
:
24upx
;
font-weight
:
500
;
color
:
rgba
(
255
,
255
,
255
,
1
);
}
.dibu_qr
{
position
:
fixed
;
bottom
:
0
;
width
:
100%
;
background
:
rgba
(
255
,
255
,
255
,
1
);
padding
:
10upx
24upx
;
box-sizing
:
border-box
;
}
.beizhu
{
width
:
150upx
;
text-align
:
right
;
}
.tubiimg
{
width
:
27upx
;
height
:
24upx
;
.imgs
{
width
:
27upx
;
height
:
24upx
;
}
}
.tuimg
{
width
:
183upx
;
height
:
183upx
;
.imgs
{
width
:
183upx
;
height
:
183upx
;
}
}
view
{
line-height
:
112%
;
letter-spacing
:
3upx
}
.dianhuimg
{
width
:
43upx
;
height
:
43upx
;
}
.shuxian
{
width
:
1px
;
height
:
100upx
;
background
:
rgba
(
242
,
242
,
242
,
1
);
}
.duanxian
{
width
:
45upx
;
height
:
1px
;
background
:
rgba
(
181
,
181
,
181
,
1
);
}
.cptjimg
{
width
:
100%
;
height
:
310upx
;
}
/* 取消弹窗 */
.zan-dialog__mask
{
position
:
fixed
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
10
;
background
:
rgba
(
0
,
0
,
0
,
.5
);
display
:
none
;
}
.zan-dialog__container
{
position
:
fixed
;
bottom
:
400upx
;
width
:
650upx
;
height
:
350upx
;
margin-left
:
50upx
;
background
:
#f8f8f8
;
transform
:
translateY
(
300%
);
transition
:
all
0
.4s
ease
;
z-index
:
12
;
border-radius
:
20upx
;
/* box-shadow: 0px 3px 3px 2px gainsboro; */
}
.zan-dialog--show
.zan-dialog__container
{
transform
:
translateY
(
0
);
}
.zan-dialog--show
.zan-dialog__mask
{
display
:
block
;
}
.goodsboxs
{
font-size
:
30upx
;
.names
{
font-size
:
30upx
;
}
.prices
{
font-size
:
30upx
;
}
.sumns
{
color
:
rgb
(
192
,
190
,
190
);
}
}
//联系kefu 客服
.ordertelbox
{
margin
:
0
24upx
;
margin-top
:
20upx
;
height
:
89upx
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
0px
0px
14upx
14upx
;
.itemboxss
{
position
:
relative
;
height
:
89upx
;
line-height
:
89upx
;
.img
{
width
:
43upx
;
height
:
43upx
;
margin-right
:
20upx
;
}
.name
{
font-size
:
30upx
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
}
.itemboxss
:nth-child
(
1
)
:after
{
content
:
""
;
width
:
1px
;
height
:
89px
;
background
:
rgba
(
242
,
242
,
242
,
1
);
position
:
absolute
;
top
:
0
;
right
:
0
;
}
}
//客服end
//价格明细列表
.cellboxs
{
margin
:
20upx
0
;
margin-top
:
20upx
;
.cellitems
{
padding
:
0
20upx
;
height
:
88upx
;
line-height
:
88upx
;
border-bottom
:
1px
solid
#F5F1F1
;
background
:
#FFFFFF
;
.name
{
font-size
:
30upx
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
.vlas
{
font-size
:
30upx
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
}
.cellitems
:nth-last-child
(
1
)
{
border
:
0
;
}
.subsbox
{
.name
{
font-size
:
30upx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
.vlas
{
color
:
#FF6900
;
.fuhao
{
font-size
:
30upx
;
}
.shuzi
{
font-family
:
PingFang
SC
;
font-weight
:
bold
;
font-size
:
36upx
;
}
}
}
}
// .cellboxstow{
// margin-top: 0;
// margin-bottom: 0;
// }
</
style
>
pages/order/shoprefundorderdetail/shoprefundorderdetail.vue
View file @
144b67c9
...
...
@@ -2,12 +2,12 @@
<!-- 商家查看自己店铺的售后订单详情 -->
<!-- 订单 order -->
<view
class=
"shoporderdetale xiangq yocode"
>
<view
class=
"beijingimg"
style=
"height:80px"
>
<
!--
<view
class=
"onetitle"
>
{{
detail
.
orderstatus
}}
</view
>
<view
class=
"twotitle"
>
{{
detail
.
statusdesc
}}
</view>
--
>
<view
class=
"beijingimg"
>
<
image
src=
"https://luma.jxdsy.cn/static/applet5/2020/index/group_img/defeated.png"
mode=
""
style=
"width: 100%;height: 240upx;"
></image
>
<view
class=
"twotitle"
>
{{
detail
.
desc
}}
</view
>
</view>
<view
class=
"boxs"
>
<view
class=
"topbox_20
addresone
"
>
<view
class=
"topbox_20
mt-20
"
>
<view
class=
"ali-c"
>
<view
class=
"weizhiimg"
><image
class=
"imgs"
src=
"/static/news/address.png"
></image></view>
<view
class=
"flex1 ml-20 addrnamesv"
>
...
...
@@ -26,15 +26,15 @@
</view>
-->
<!-- 售后说明 -->
<view
class=
"topbox_20 mt-20"
>
<view
class=
"topbox_20 mt-20"
v-if=
"detail.refund_datail != '' || detail.refund_pics.length>0 "
>
<view
style=
"font-size: 30upx;font-weight: 500;"
>
售后说明
</view>
<view
class=
"mt-20
"
>
{{
detail
.
refund_datail
?
detail
.
refund_datail
:
'
暂无说明
'
}}
</view>
<view
v-if=
"detail.refund_pics.length>0
"
>
<view
class=
"mt-20
refund_datail"
>
{{
detail
.
refund_datail
}}
</view>
<view
class=
"datail_img
"
>
<image
:src=
"staticUrl + item"
mode=
""
v-for=
"(item, index) in detail.refund_pics"
style=
"width: 2
44upx;height: 220upx;padding: 0 20upx 0 0;margin: 10upx 0
upx;"
style=
"width: 2
20upx;height: 196upx;flex-grow: 1;padding: 4
upx;"
></image>
</view>
</view>
...
...
@@ -126,7 +126,7 @@ export default {
data
()
{
return
{
refund_id
:
''
,
detail
:
''
//售后详情
detail
:
{
adress
:{}}
//售后详情
// logs:{},
};
},
...
...
@@ -200,24 +200,21 @@ export default {
font-size
:
30upx
;
}
.beijingimg
{
background
:
linear-gradient
(
#ff5a03
,
#ff4216
);
//
background: linear-gradient(#ff5a03, #ff4216);
width
:
100%
;
height
:
300upx
;
position
:
absolute
;
top
:
0
;
z-index
:
1
;
padding-left
:
20upx
;
padding-top
:
25px
;
.onetitle
{
color
:
#ffffff
;
font-size
:
30upx
;
}
// padding: 30upx 24upx;
position
:
relative
;
.twotitle
{
color
:
#ffffff
;
font-size
:
28upx
;
position
:
absolute
;
z-index
:
99
;
top
:
60upx
;
color
:
rgba
(
255
,
255
,
255
,
1
);
font-size
:
38upx
;
font-weight
:
500
;
line-height
:
40upx
;
margin-left
:
40upx
;
}
}
.addresone
{
margin-top
:
20px
;
}
...
...
@@ -225,7 +222,8 @@ export default {
position
:
relative
;
z-index
:
2
;
width
:
100%
;
padding
:
24upx
;
padding
:
0upx
24upx
;
// margin-top: 60upx;
box-sizing
:
border-box
;
}
.bt_min
{
...
...
@@ -463,9 +461,15 @@ view {
}
}
}
// .cellboxstow{
// margin-top: 0;
// margin-bottom: 0;
// }
.datail_img
{
// width: 100%;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
start
;
align-items
:
center
;
flex-wrap
:
wrap
;
}
.refund_datail
{
margin-top
:
20upx
;
}
</
style
>
pages/publishActivities/activityDetail/activityDetail.vue
View file @
144b67c9
<
template
>
<view>
<view
class=
""
>
<view
class=
""
style=
"text-align: center;height: 120upx;line-height: 120upx;font-weight: bold;font-size: 32upx;"
>
已有
<text
style=
"color: #21B94C;font-size: 60upx;"
>
{{
receivePeopleNumber
}}
</text>
人领取 还剩
{{
unreceivePeopleNumber
}}
人未核销
<view
class=
"projuctTab flex"
>
<view
class=
"tabitems flex1"
:class=
"
{active:tabactive==1}" @tap="taggletab(1)">
<view
class=
"tabtitle"
>
参与人员
</view>
<!-- (
{{
count
[
0
]
}}
) -->
</view>
<view
class=
"tabitems flex1"
:class=
"
{active:tabactive==2}" @tap="taggletab(2)">
<view
class=
"tabtitle"
>
核销人员
</view>
<!-- (
{{
count
[
1
]
}}
) -->
</view>
</view>
<view
class=
""
style=
"height: 160upx;padding: 0 24upx;background-color: rgb(255, 255, 255);margin-bottom: 20upx;"
v-if=
"getDetail.length > 0 "
v-for=
"(item,index) in getDetail"
>
<view
class=
"fx "
style=
"justify-content: space-between;background-color: #fff; align-items: center;
height: 100%"
>
<view
class=
"fx"
style=
"width: 75%;align-items: center;"
>
<view
style=
"height: 120upx;width: 120upx;border-radius: 120upx;text-align: center;line-height: 80upx;overflow: hidden;"
>
<image
:src=
"item.face"
style=
"display: inline;"
></image>
<view
class=
""
style=
"margin-top:90upx ;"
:hidden=
"!(tabactive==1)"
>
<view
class=
""
>
<view
class=
""
style=
"text-align: center;height: 120upx;line-height: 120upx;font-weight: bold;font-size: 32upx;"
>
已有
<text
style=
"color: #21B94C;font-size: 60upx;"
>
{{
receivePeopleNumber
}}
</text>
人参与
</view>
</view>
<view
class=
""
style=
"height: 100upx;padding: 0 24upx;background-color: rgb(255, 255, 255);margin-bottom: 2upx;"
v-for=
"(item,index) in getAllDetail"
>
<view
class=
"fx "
style=
"justify-content: space-between;background-color: #fff; align-items: center;height: 100%"
>
<view
class=
"fx"
style=
"width: 75%;align-items: center;"
>
<view
style=
"height: 80upx;width: 80upx;border-radius: 120upx;text-align: center;line-height: 80upx;overflow: hidden;"
>
<image
:src=
"item.face"
style=
"display: inline;"
></image>
</view>
<view
style=
"margin:0 0 0 10upx;width: 75%;padding: 20upx 10upx;"
>
<view
style=
"font: 34upx 微软雅黑;padding-bottom:10upx ;"
class=
"oneline"
>
{{
item
.
nickname
}}
</view>
<view
style=
"font-size:20upx;color:rgb(116, 113, 113);padding-top: 10upx;"
>
{{
item
.
create_time
}}
</view>
</view>
</view>
<view
style=
"margin:0 0 0 10upx;width: 75%;padding: 20upx 10upx;"
>
<view
style=
"font: 34upx 微软雅黑;padding-bottom:10upx ;"
class=
"oneline"
>
{{
item
.
nickname
}}
</view
>
<
view
style=
"font-size:20upx;color:rgb(116, 113, 113);padding-top: 10upx;"
>
{{
item
.
verification_time
}}
</view
>
<view
style=
"width: 15%;height: 104upx;"
>
<
!--
<image
src=
"/static/lingqu.png"
mode=
""
style=
"width:100% ;height: 100%;display: inline;"
></image>
--
>
</view>
<!-- 关注插槽 -->
<!--
<slot
name=
"before"
></slot>
-->
</view>
<view
style=
"width: 15%;height: 104upx;"
>
<!--
<text
style=
"color:#DC143C;padding: 0 12upx;border-radius: 10upx;font-size: 32upx;"
>
</text>
-->
<image
src=
"/static/lingqu.png"
mode=
""
style=
"width:100% ;height: 100%;display: inline;"
></image>
</view>
<!-- 关注插槽 -->
<!--
<slot
name=
"before"
></slot>
-->
<!--
<slot
name=
"content"
>
</slot>
-->
</view>
<view
v-if=
"getAllDetail.length
<
=
0
"
style=
"text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;"
>
<image
src=
"https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png"
mode=
""
></image>
</view>
</view>
<view
class=
""
style=
"margin-top:90upx ;"
:hidden=
"tabactive==1"
>
<view
class=
""
>
<view
class=
""
style=
"text-align: center;height: 120upx;line-height: 120upx;font-weight: bold;font-size: 32upx;"
>
已有
<text
style=
"color: #21B94C;font-size: 60upx;"
>
{{
enterPeopleNumber
}}
</text>
人核销
</view>
</view>
<!--
<slot
name=
"content"
>
</slot>
-->
</view>
<view
v-if=
"getDetail.length
<
=
0
"
style=
"text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;"
>
还没有人领取~~
<view
class=
""
style=
"height: 100upx;padding: 0 24upx;background-color: rgb(255, 255, 255);margin-bottom: 2upx;"
v-for=
"(item,index) in getScanDetail"
>
<view
class=
"fx "
style=
"justify-content: space-between;background-color: #fff; align-items: center;
height: 100%"
>
<view
class=
"fx"
style=
"width: 75%;align-items: center;"
>
<view
style=
"height: 80upx;width: 80upx;border-radius: 120upx;text-align: center;line-height: 80upx;overflow: hidden;"
>
<image
:src=
"item.face"
style=
"display: inline;"
></image>
</view>
<view
style=
"margin:0 0 0 10upx;width: 75%;padding: 20upx 10upx;"
>
<view
style=
"font: 34upx 微软雅黑;padding-bottom:10upx ;"
class=
"oneline"
>
{{
item
.
nickname
}}
</view>
<view
style=
"font-size:20upx;color:rgb(116, 113, 113);padding-top: 10upx;"
>
{{
item
.
verification_time
}}
</view>
</view>
</view>
<view
style=
"width: 10%;height: 70upx;"
>
<image
src=
"/static/lingqu.png"
mode=
""
style=
"width:100% ;height: 100%;display: inline;"
></image>
</view>
<!-- 关注插槽 -->
<!--
<slot
name=
"before"
></slot>
-->
</view>
<!--
<slot
name=
"content"
>
</slot>
-->
</view>
<view
v-if=
"getScanDetail.length
<
=
0
"
style=
"text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;"
>
<image
src=
"https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png"
mode=
""
></image>
</view>
</view>
</view>
</
template
>
...
...
@@ -46,51 +105,22 @@
activity_user
}
from
'
@/utils/api/merchant.js
'
;
export
default
{
data
(){
data
()
{
return
{
shop_id
:
''
,
activity_id
:
''
,
getDetail
:[],
page
:
1
,
receivePeopleNumber
:
0
,
unreceivePeopleNumber
:
0
,
shop_id
:
''
,
activity_id
:
''
,
getAllDetail
:
[],
// 参与人员列表
getScanDetail
:
[],
//核销人员列表
allpage
:
0
,
// 参与人员分页数
scanpage
:
0
,
//核销人员分页数
enterPeopleNumber
:
0
,
//核销人数
receivePeopleNumber
:
0
,
//参与人数
// unreceivePeopleNumber: 0,
tabactive
:
1
,
}
},
onReachBottom
()
{
activity_user
({
shop_id
:
this
.
shop_id
,
activity_id
:
this
.
activity_id
,
nucleus
:
1
,
page
:
this
.
page
}).
then
(
res
=>
{
if
(
res
.
code
==
0
&&
res
.
data
.
list
.
length
>
0
){
this
.
page
++
this
.
getDetail
=
res
.
data
.
list
;
this
.
receivePeopleNumber
=
res
.
data
.
receivePeopleNumber
;
this
.
unreceivePeopleNumber
=
res
.
data
.
unreceivePeopleNumber
;
uni
.
stopPullDownRefresh
();
}
else
{
uni
.
$api
.
msg
(
'
没有更多数据了
'
)
}
})
},
onPullDownRefresh
()
{
this
.
page
=
1
activity_user
({
shop_id
:
this
.
shop_id
,
activity_id
:
this
.
activity_id
,
nucleus
:
1
}).
then
(
res
=>
{
if
(
res
.
code
==
0
){
this
.
getDetail
=
res
.
data
.
list
this
.
receivePeopleNumber
=
res
.
data
.
receivePeopleNumber
;
this
.
unreceivePeopleNumber
=
res
.
data
.
unreceivePeopleNumber
;
uni
.
stopPullDownRefresh
();
}
})
},
onLoad
(
options
)
{
let
that
=
this
that
.
activity_id
=
options
.
activity_id
...
...
@@ -100,28 +130,238 @@
that
.
shop_id
=
res
.
data
.
shop_id
}
})
activity_user
({
shop_id
:
that
.
shop_id
,
activity_id
:
that
.
activity_id
,
nucleus
:
1
}).
then
(
res
=>
{
if
(
res
.
code
==
0
){
this
.
getDetail
=
res
.
data
.
list
;
this
.
receivePeopleNumber
=
res
.
data
.
receivePeopleNumber
;
this
.
unreceivePeopleNumber
=
res
.
data
.
unreceivePeopleNumber
;
this
.
activityUserAll
(
that
.
shop_id
,
that
.
activity_id
);
//获取参与人员
},
/**
* 触底事件
*/
onReachBottom
()
{
// console.log('触底了',this.tabactive)
if
(
this
.
tabactive
==
1
)
{
this
.
allpage
++
// this.activityUserAll(this.shop_id, this.activity_id, 0, this.allpage)
activity_user
({
shop_id
:
shop_id
,
activity_id
:
activity_id
,
nucleus
:
0
,
page
:
this
.
allpage
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
getScanDetail
=
[...
this
.
getScanDetail
,...
res
.
data
.
list
]
this
.
receivePeopleNumber
=
res
.
data
.
receivePeopleNumber
;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
}
else
if
(
this
.
tabactive
==
2
)
{
this
.
scanpage
++
activity_user
({
shop_id
:
shop_id
,
activity_id
:
activity_id
,
nucleus
:
1
,
page
:
this
.
scanpage
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
getScanDetail
=
[
this
.
getScanDetail
,...
res
.
data
.
list
]
this
.
enterPeopleNumber
=
res
.
data
.
receivePeopleNumber
;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
// this.activityUserScan(this.shop_id, this.activity_id, 1, this.scanpage)
}
else
{
return
false
;
}
},
/**
* 下拉刷新
*/
onPullDownRefresh
()
{
this
.
allpage
=
1
this
.
scanpage
=
1
this
.
activityUserAll
(
this
.
shop_id
,
this
.
activity_id
,
)
this
.
activityUserScan
(
this
.
shop_id
,
this
.
activity_id
)
uni
.
stopPullDownRefresh
();
},
methods
:
{
taggletab
(
index
)
{
this
.
tabactive
=
index
;
if
(
index
==
1
)
{
this
.
activityUserAll
(
this
.
shop_id
,
this
.
activity_id
,
)
}
else
if
(
index
==
2
)
{
this
.
activityUserScan
(
this
.
shop_id
,
this
.
activity_id
)
}
})
},
/**
* @param {Number} nucleus
* @param {Number} activity_id
* @param {Number} shop_id
*/
activityUserAll
(
shop_id
,
activity_id
,
nucleus
=
0
,
pages
=
0
)
{
activity_user
({
shop_id
:
shop_id
,
activity_id
:
activity_id
,
nucleus
:
nucleus
,
page
:
pages
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
getAllDetail
=
res
.
data
.
list
this
.
receivePeopleNumber
=
res
.
data
.
receivePeopleNumber
;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
},
/**
* @param {Number} nucleus
* @param {Number} activity_id
* @param {Number} shop_id
*/
activityUserScan
(
shop_id
,
activity_id
,
nucleus
=
1
,
pages
=
0
)
{
activity_user
({
shop_id
:
shop_id
,
activity_id
:
activity_id
,
nucleus
:
nucleus
,
page
:
pages
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
getScanDetail
=
res
.
data
.
list
this
.
enterPeopleNumber
=
res
.
data
.
receivePeopleNumber
;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
}
},
}
</
script
>
<
style
>
page
{
background-color
:
#EEEEEE
;
<
style
lang=
"scss"
>
.projuctlist
{
margin
:
130upx
24upx
;
padding-top
:
18upx
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
14upx
;
.itempro
{
position
:
relative
;
border-bottom
:
1px
solid
rgba
(
220
,
220
,
220
,
1
);
padding
:
20upx
;
.thumbnail
{
width
:
170upx
;
height
:
170upx
;
border-radius
:
6upx
;
margin-right
:
27upx
;
margin-left
:
20upx
;
}
.infobox
{
.title
{
font-size
:
34upx
;
color
:
rgba
(
51
,
51
,
51
,
1
);
//margin-bottom: 5upx;
}
.time
{
//margin-bottom: 5upx;
}
.time
,
.price
{
font-size
:
30upx
;
color
:
rgba
(
153
,
153
,
153
,
1
);
}
}
.btnbox
{
position
:
absolute
;
bottom
:
5px
;
right
:
5px
;
.btns
{
width
:
100upx
;
height
:
60upx
;
line-height
:
60upx
;
text-align
:
center
;
border
:
1upx
solid
rgba
(
160
,
160
,
160
,
1
);
border-radius
:
4upx
;
font-size
:
30upx
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
.btnboxdel
{
margin-left
:
16upx
;
}
.btnboxxj
{
background
:
#FF6900
;
color
:
#FFFFFF
;
border
:
0
;
margin-left
:
16upx
;
}
}
}
}
.projuctTab
{
background
:
#FFFFFF
;
width
:
100%
;
height
:
98upx
;
line-height
:
98upx
;
position
:
fixed
;
top
:
0
;
/* #ifdef H5 */
top
:
86upx
;
/* #endif */
left
:
0
;
z-index
:
99
;
.tabitems
{
text-align
:
center
;
.tabtitle
{
text-align
:
center
;
height
:
98upx
;
line-height
:
98upx
;
font-size
:
30upx
;
display
:
inline-block
;
box-sizing
:
border-box
;
color
:
#333333
;
}
}
.tabitems.active
{
.tabtitle
{
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#FF6900
;
border-bottom
:
1px
solid
#FF6900
;
}
}
}
.fx
{
display
:
flex
;
}
...
...
pages/publishActivities/activityList/activityList.vue
View file @
144b67c9
...
...
@@ -15,7 +15,7 @@
<view
class=
"projuctlist"
:hidden=
"!(tabactive==1)"
>
<view
class=
""
v-if=
"start_activity.length>0"
>
<checkbox-group
>
<checkbox-group>
<!-- 单个商品 -->
<view
class=
"itempro flex "
v-for=
"(item,index) in start_activity"
:key=
"index"
@
click=
"jumpDetail(item.activity_id)"
>
<!--
<label
class=
"ali-c"
>
...
...
@@ -23,40 +23,43 @@
</label>
-->
<image
class=
"thumbnail"
:src=
"staticUrl + item.picture"
mode=
""
></image>
<view
class=
"infobox"
style=
"width: 70%;"
>
<view
class=
"title oneline"
style=
"height:45upx ;"
>
{{
item
.
goods_name
}}
</view>
<!--
<view
class=
"time"
>
上架时间:
{{
item
.
create_time
}}
</view>
-->
<view>
<view
style=
"font-size:26rpx;font-weight:bold;"
>
领取时间:
</view>
<view
style=
"font-size:24rpx;color:#656565"
>
{{
item
.
start
}}
—
{{
item
.
end
}}
</view>
</view>
</view>
<view
class=
"btnbox flex"
>
<view
class=
"btnbox flex"
>
<!--
<view
class=
"btns btnboxdel"
@
tap=
"deleteEleProductfun(item,index)"
>
删 除
</view>
-->
<!--
<view
class=
"btns btnboxxj"
@
tap=
"Selectiondata(item)"
v-if=
"tabactive==1 && isselect==1"
>
加入活动
</view>
-->
<!--
<view
class=
"btns btnboxxj"
@
tap=
"sold_outfun(item.id,1,index)"
v-else-if=
"tabactive==1"
>
下 架
</view>
-->
<!--
<view
class=
"btns btnboxxj"
@
tap=
"sold_outfun(item.id,0,index)"
v-show=
"tabactive==2"
>
上 架
</view>
-->
<!--
<view
class=
"btns btnboxxj"
@
click=
"setSpecs(item.product_id)"
>
规格
</view>
-->
<view
>
<view
class=
"btnboxdel flex"
style=
"align-items: center;"
@
click.stop=
"switch1Change"
>
活动开关:
<switch
:data-activity_id=
"item.activity_id"
:checked=
"item.state==1"
@
change=
"switch1Change"
/>
<view
class=
"btns btnboxdel"
@
tap.stop=
"tochanges(item,index)"
>
修 改
</view>
<view>
<view
class=
"btnboxdel flex"
style=
"align-items: center;"
@
click.stop=
"switch1Change"
>
活动开关:
<switch
:data-activity_id=
"item.activity_id"
:checked=
"item.state==1"
@
change=
"switch1Change"
/>
<view
class=
"btns btnboxdel"
@
tap.stop=
"tochanges(item,index)"
>
修 改
</view>
</view>
</view>
</view>
</view>
</checkbox-group>
</view>
<view
v-if=
"start_activity.length
<
=
0
"
style=
"text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;"
>
还没有人领取~~
<image
src=
"https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png"
mode=
""
></image>
</view>
</view>
<view
class=
"projuctlist"
:hidden=
"!(tabactive==2)"
>
<view
class=
""
v-if=
"end_activity.length > 0"
>
<checkbox-group
>
<checkbox-group>
<!-- 单个商品 -->
<view
class=
"itempro flex "
v-for=
"(item,index) in end_activity"
:key=
"index"
@
click=
"jumpDetail(item.activity_id)"
>
<!--
<label
class=
"ali-c"
>
...
...
@@ -86,7 +89,7 @@
</checkbox-group>
</view>
<view
v-if=
"end_activity.length
<
=
0
"
style=
"text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;"
>
还没有人领取~~
<image
src=
"https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png"
mode=
""
></image>
</view>
</view>
...
...
@@ -109,8 +112,8 @@
page
:
0
,
start_activity
:
[],
end_activity
:
[],
endpages
:
0
,
startpages
:
0
endpages
:
0
,
startpages
:
0
}
},
...
...
@@ -130,8 +133,8 @@
})
},
//下拉刷新
onPullDownRefresh
(){
if
(
this
.
tabactive
==
1
)
{
onPullDownRefresh
()
{
if
(
this
.
tabactive
==
1
)
{
this
.
startpages
=
0
activity_select
({
shop_id
:
this
.
shop_id
,
...
...
@@ -143,8 +146,8 @@
uni
.
stopPullDownRefresh
();
}
})
}
else
if
(
this
.
tabactive
==
2
)
{
}
else
if
(
this
.
tabactive
==
2
)
{
this
.
endpages
=
0
activity_select
({
shop_id
:
this
.
shop_id
,
...
...
@@ -156,34 +159,34 @@
uni
.
stopPullDownRefresh
();
}
})
}
},
//上拉触底
onReachBottom
(){
onReachBottom
()
{
if
(
this
.
tabactive
==
1
)
{
activity_select
({
shop_id
:
this
.
shop_id
,
page
:
++
this
.
startpages
,
is_date
:
2
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
start_activity
=
[...
this
.
start_activity
,
...
res
.
data
.
data
]
}
})
activity_select
({
shop_id
:
this
.
shop_id
,
page
:
++
this
.
startpages
,
is_date
:
2
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
start_activity
=
[...
this
.
start_activity
,
...
res
.
data
.
data
]
}
})
}
else
if
(
this
.
tabactive
==
2
)
{
activity_select
({
shop_id
:
this
.
shop_id
,
page
:
++
this
.
endpages
,
is_date
:
1
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
end_activity
=
[...
this
.
this
.
end_activity
,
...
res
.
data
.
data
]
}
})
}
activity_select
({
shop_id
:
this
.
shop_id
,
page
:
++
this
.
endpages
,
is_date
:
1
}).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
end_activity
=
[...
this
.
end_activity
,
...
res
.
data
.
data
]
}
})
}
},
onShow
()
{
...
...
@@ -214,10 +217,10 @@
},
methods
:
{
jumpDetail
(
activity_id
){
jumpDetail
(
activity_id
)
{
uni
.
navigateTo
({
url
:
`/pages/publishActivities/activityDetail/activityDetail?activity_id=
${
activity_id
}
`
url
:
`/pages/publishActivities/activityDetail/activityDetail?activity_id=
${
activity_id
}
`
})
},
//修改活动
...
...
@@ -227,14 +230,14 @@
url
:
`/pages/publishActivities/publishActivity/publishActivity?id=
${
data
.
activity_id
}
&type=edit`
,
})
},
// 查找产品
findEleProduct
(){
findEleProduct
()
{
},
switch1Change
(
e
)
{
if
(
e
.
type
==
'
change
'
)
{
if
(
e
.
type
==
'
change
'
)
{
console
.
log
(
e
)
if
(
e
.
detail
.
value
)
{
activity_close
({
...
...
@@ -258,10 +261,10 @@
}
})
}
}
else
{
return
;
}
else
{
return
;
}
},
//交互end
taggletab
(
index
)
{
...
...
pages/storeqrcode/storeqrcode.vue
View file @
144b67c9
<
template
>
<!-- 商家二维码 -->
<!-- 商家码 -->
<view
class=
"content yocode"
>
<view
class=
"submitbtn active"
@
tap=
"shareQrcode"
v-if=
"!qrShow"
>
生成
</view>
<!--
<view
class=
"submitbtn active"
@
tap=
"shareFc"
v-if=
"!qrShow"
>
生成
</view>
-->
<!-- @tap=" saveImage()" -->
<view
class=
"flex_row_c_c modalView"
v-if=
"qrShow"
:class=
"qrShow?'show':''"
>
<view
class=
"flex_column"
>
<!-- backgroundColor-white -->
<view
class=
" padding1vh border_radius_10px"
>
<image
:src=
"poster.finalPath"
mode=
"widthFix"
class=
"posterImage"
></image>
<image
class=
"bctpbtns"
src=
"/static/bctp.png"
mode=
""
@
tap.prevent.stop=
"saveImage()"
></image>
<image
class=
"fxhbbtns"
src=
"/static/fxhb.png"
mode=
""
@
tap.prevent.stop=
"share()"
></image>
</view>
<view
class=
"flex_row marginTop2vh"
>
<!--
<button
type=
"primary"
class=
"buttons"
size=
"mini"
@
tap.prevent.stop=
"saveImage()"
>
保存图片
</button>
<button
type=
"primary"
class=
"buttons"
size=
"mini"
@
tap.prevent.stop=
"hideQr()"
>
关闭
</button>
-->
<!--
<button
type=
"primary"
class=
"buttons"
size=
"mini"
@
tap.prevent.stop=
"share()"
>
分享图片
</button>
-->
</view>
</view>
</view>
<!--
<button
type=
"primary"
class=
"buttons mt-40 ml-20 mr-20"
@
tap=
"shareFc()"
>
生成店铺二维码
</button>
-->
<view
class=
"hideCanvasView"
>
<canvas
class=
"hideCanvas"
canvas-id=
"default_PosterCanvasId"
:style=
"
{width: (poster.width||0) + 'px', height: (poster.height||0) + 'px'}">
</canvas>
</view>
</view>
</
template
>
<
script
>
import
_app
from
'
@/utils/QS-SharePoster/app.js
'
;
import
getSharePoster
from
'
@/utils/QS-SharePoster/QS-SharePoster.js
'
;
// import {usersEquity} from "@/utils/api/partner_center.js";
// import {shareQrcode} from "@/utils/api/user.js"
import
{
createQrcode
as
shareQrcode
}
from
"
@/utils/api/api.js
"
;
export
default
{
data
()
{
return
{
poster
:
{},
qrShow
:
false
,
canvasId
:
'
default_PosterCanvasId
'
,
type
:
"
1
"
,
url
:
""
,
shopInfo
:{},
shop_name
:
""
,
shop_id
:
0
,
//url传过来的
}
},
computed
:
{
staticUrl
()
{
//静态资源地址 正式
return
this
.
$store
.
state
.
staticUrl
;
},
staticUrl1
()
{
//静态资源地址 测试
return
this
.
$store
.
state
.
staticUrl1
;
},
statictowUrl
(){
return
this
.
$store
.
state
.
statictowUrl
;
},
userInfo
()
{
return
this
.
$store
.
state
.
userInfo
;
},
uploadurl
(){
return
this
.
$store
.
state
.
uploadurl
;
}
},
onLoad
(
opdata
)
{
this
.
type
=
opdata
.
type
;
this
.
shop_id
=
opdata
.
shop_id
;
//this.shareFc();//自动生成
this
.
shopInfo
=
uni
.
getStorageSync
(
'
userInfo
'
);
this
.
shop_name
=
this
.
shopInfo
.
shop_name
;
this
.
shareQrcode
();
},
methods
:
{
//生成二维码
async
shareQrcode
(){
// uni.showLoading({
// title: '加载中'
// });
let
res
=
await
shareQrcode
({
type
:
3
,
//固定的
//shareid: app.globalData.storeInfo.shop_id
shareid
:
this
.
$store
.
state
.
userInfo
.
shop_id
,
//店铺id
})
if
(
res
.
code
==
0
){
this
.
url
=
res
.
data
.
file
;
// let qrcodeurl = window.location.port=="8080"?this.staticUrl1+this.url:this.staticUrl+this.url;
// let qrcodeurl = window.location.port=="8080"?this.staticUrl1+this.url:this.staticUrl1+this.url;
// let qrcodeurl = this.staticUrl1+this.url;
let
qrcodeurl
=
this
.
staticUrl1
+
this
.
url
;
this
.
url
=
qrcodeurl
;
// https://zxluma.jxdsy.cn/attachs/
//console.info(res.data.file,"路径");
// uni.showLoading({
// title: '生成成功'
// });
this
.
shareFc
();
}
else
{
uni
.
showLoading
({
title
:
'
生成失败
'
});
this
.
$api
.
msg
(
res
.
msg
);
}
setTimeout
(
function
()
{
uni
.
hideLoading
();
},
2000
);
},
//生成海报
async
shareFc
()
{
//debugger
try
{
if
(
!
this
.
poster
.
finalPath
)
{
let
backgroundImage
;
let
rqcodeobj
=
{}
// 二维码
rqcodeobj
=
{
text
:
'
开发测试
'
,
size
:
150
,
//bgObj.width*0.2
dx
:
380
,
//bgObj.width*0.05
dy
:
765
//bgObj.height - bgObj.width*0.25
}
//计算名称的x轴
let
len
=
this
.
shop_name
.
length
;
let
cha
=
0
;
//差值
let
dxsss
=
0
;
//xy 坐标
if
(
len
<=
10
){
//小于
cha
=
10
-
len
;
dxsss
=
160
+
cha
*
12
;
}
else
{
//大于
cha
=
len
-
10
;
dxsss
=
160
-
cha
*
12
;
}
console
.
log
(
"
计算出来的dx
"
,
dxsss
);
const
d
=
await
getSharePoster
({
// backgroundImage:"/static/news/sjrwm.png",
backgroundImage
:
this
.
statictowUrl
+
"
static/applet5/images/uts/sjrwm.png
"
,
//暂时使用这个
// backgroundImage:"http://q37tb0wtc.bkt.clouddn.com/sjrwm.png",
// backgroundImage:"https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super",
// backgroundImage:"https://luma.jxdsy.cn/attachs/2019/07/29/thumb_5d3ecaa81b681.jpg",
type
:
'
testShareType
'
,
posterCanvasId
:
this
.
canvasId
,
// qrCodeArray: ({bgObj, type, bgScale}) => {
// return [rqcodeobj]
// },
imagesArray
:
({
bgObj
,
type
,
bgScale
})
=>
{
//接收的第一个参数为背景图片的信息, 第二个参数是自定义标识(感觉这里用不到), 图片为示例图片
const
dx
=
bgObj
.
width
*
0.3
;
return
[
//二维码
//二维码放进去
{
url
:
this
.
url
,
// //"https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?qua=high&where=super",//
dx
:
155
,
//bgObj.width*0.05
dy
:
350
,
//bgObj.height - bgObj.width*0.25
dWidth
:
250
,
// 因为设置了圆形图片 所以要乘以2
dHeight
:
250
},
]
},
textArray
:
({
bgObj
,
type
,
bgScale
})
=>
{
const
fontSize
=
bgObj
.
width
*
0.045
;
const
lineHeight
=
bgObj
.
height
*
0.04
;
return
[
/**
* 商家名称居中 10个字 160/640 刚刚好
* 11个字
*
* 10个以后 每多加一个字 大概要 160- 多出来的个数- 12
*
*
* 10个以下 每少一个字 大概要 160 + 12
*
* ***/
// 文字 先干了
{
text
:
this
.
shop_name
,
//,`测试商家名称测试商家是遭`,//10个字正好
fontWeight
:
'
bold
'
,
size
:
24
,
color
:
'
#ffffff
'
,
alpha
:
1
,
textAlign
:
'
left
'
,
textBaseline
:
'
middle
'
,
infoCallBack
(
textLength
)
{
//dx 160是侧面对齐
return
{
dx
:
dxsss
,
//136,//bgObj.width - textLength - fontSize
dy
:
635
//bgObj.height - lineHeight*2
}
}
},
]
},
setCanvasWH
:
({
bgObj
,
type
,
bgScale
})
=>
{
// 为动态设置画布宽高的方法,
this
.
poster
=
bgObj
;
},
setDraw
:
({
Context
,
bgObj
,
type
,
bgScale
})
=>
{
// Context.setFillStyle('black');
// Context.setGlobalAlpha(0.3);
// Context.fillRect(0, bgObj.height - bgObj.height*0.2, bgObj.width, bgObj.height*0.2);
}
});
console
.
log
(
'
海报生成成功, 临时路径:
'
+
d
.
poster
.
tempFilePath
)
this
.
poster
.
finalPath
=
d
.
poster
.
tempFilePath
;
}
this
.
qrShow
=
true
;
}
catch
(
e
)
{
_app
.
hideLoading
();
_app
.
showToast
(
JSON
.
stringify
(
e
));
console
.
log
(
JSON
.
stringify
(
e
));
}
},
saveImage
()
{
// #ifndef H5
uni
.
saveImageToPhotosAlbum
({
filePath
:
this
.
poster
.
finalPath
,
success
(
res
)
{
_app
.
showToast
(
'
保存成功
'
);
}
})
// #endif
// #ifdef H5
_app
.
showToast
(
'
保存了
'
);
// #endif
},
share
()
{
// #ifdef APP-PLUS
_app
.
getShare
(
false
,
false
,
2
,
''
,
''
,
''
,
this
.
poster
.
finalPath
,
false
,
false
);
// #endif
// #ifndef APP-PLUS
_app
.
showToast
(
'
分享了
'
);
// #endif
},
hideQr
()
{
this
.
qrShow
=
false
;
}
}
}
</
script
>
<
style
lang=
"scss"
>
.hideCanvasView
{
position
:
relative
;
}
.hideCanvas
{
position
:
fixed
;
top
:
-99999upx
;
left
:
-99999upx
;
z-index
:
-99999
;
}
.flex_row_c_c
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
}
.modalView
{
width
:
100%
;
height
:
100%
;
// position: fixed;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
opacity
:
0
;
outline
:
0
;
transform
:
scale
(
3
);
perspective
:
2500upx
;
// background: rgba(0, 0, 0, 0.6);
transition
:
all
.3s
ease-in-out
;
pointer-events
:
none
;
backface-visibility
:
hidden
;
z-index
:
999
;
}
.modalView.show
{
opacity
:
1
;
transform
:
scale
(
1
);
pointer-events
:
auto
;
}
.flex_column
{
display
:
flex
;
flex-direction
:
column
;
}
.backgroundColor-white
{
background-color
:
white
;
}
.border_radius_10px
{
border-radius
:
10px
;
position
:
relative
;
.bctpbtns
{
position
:
absolute
;
z-index
:
10000
;
right
:
0
;
bottom
:
200px
;
width
:
57upx
;
height
:
189upx
;
}
.fxhbbtns
{
position
:
absolute
;
z-index
:
10000
;
right
:
0
;
bottom
:
100px
;
width
:
57upx
;
height
:
189upx
;
}
}
.padding1vh
{
/* padding: 1vh; */
}
.posterImage
{
/* width: 60vw; */
width
:
100vw
;
height
:
100vh
;
}
.flex_row
{
display
:
flex
;
flex-direction
:
row
;
}
.marginTop2vh
{
margin-top
:
2vh
;
}
.buttons
{
background
:
#ff6900
!
important
;
line-height
:
40px
!
important
;
}
</
style
>
<
template
>
<view
:style=
"
{height:windowHeight+'px',background:show?'#EC6919':''}">
<!-- 只要他得高度 -->
<image
:src=
"avaterSrc"
class=
"w1005 posf"
style=
"left: -1000px;"
mode=
"widthFix"
@
load=
'imgH'
></image>
<view
class=
"w1005"
>
<canvas
:style=
"
{height:bgHeight+'px',width:'100%'}" class="bgf" canvas-id="myCanvas">
</canvas>
</view>
<image
class=
"bctpbtns"
v-if=
'show'
src=
"/static/bctp.png"
@
tap.prevent.stop=
"saveImage()"
></image>
<image
class=
"fxhbbtns"
v-if=
'show'
src=
"/static/fxhb.png"
@
tap.prevent.stop=
"share()"
></image>
<uni-popup
type=
'bottom'
:show=
'popupShow'
@
change=
"change"
style=
"z-index: 999999999 !important;"
>
<view
class=
"bgf mb-10"
style=
"border-radius: 20upx;z-index: 999999999 !important;"
>
<view
class=
"tc s30 lh90 br-b"
@
tap.stop=
"shareToFriend(1)"
>
微信好友
</view>
<view
class=
"tc s30 lh90 br-b"
@
tap.stop=
"shareToFriend(2)"
>
微信朋友圈
</view>
<view
class=
"tc s30 lh90"
@
tap.stop=
"shareToFriend(3)"
>
微信收藏
</view>
</view>
</uni-popup>
</view>
</
template
>
<
script
>
import
{
createQrcode
as
shareQrcode
}
from
"
@/utils/api/api.js
"
;
import
uniPopup
from
'
@/components/uni-popup/uni-popup.vue
'
;
export
default
{
components
:{
uniPopup
},
data
()
{
return
{
show
:
false
,
//是否显示隐藏
qrcode_url
:
''
,
//二维码路径
avaterSrc
:
''
,
//本地背景图片
qrcodeurl
:
''
,
//生成的二维码
bgHeight
:
667
,
//背景图的高度
windowHeight
:
0
,
//可视区域高度
windowWidth
:
375
,
//屏幕宽度
imgUrl
:
''
,
//生成的canvas图片
popupShow
:
false
,
//底部弹窗
rpx
:
0
,
shopname
:
''
}
},
computed
:
{
staticUrl
()
{
//静态资源地址 正式
return
this
.
$store
.
state
.
staticUrl
;
},
staticUrl1
()
{
//静态资源地址 测试
return
this
.
$store
.
state
.
staticUrl1
;
},
statictowUrl
(){
return
this
.
$store
.
state
.
statictowUrl
;
},
userInfo
()
{
return
this
.
$store
.
state
.
userInfo
;
},
uploadurl
(){
return
this
.
$store
.
state
.
uploadurl
;
}
},
onLoad
(
opdata
)
{
this
.
windowWidth
=
uni
.
getSystemInfoSync
().
windowWidth
;
this
.
windowHeight
=
uni
.
getSystemInfoSync
().
windowHeight
;
this
.
rpx
=
uni
.
getSystemInfoSync
().
windowWidth
/
375
;
this
.
shop_id
=
opdata
.
shop_id
;
this
.
shopname
=
opdata
.
shop_name
;
//商品名称
this
.
createGoodsQrcode
();
},
methods
:
{
filePath
(
type
,
wxType
){
if
(
this
.
imgUrl
==
''
){
///没保存
uni
.
showLoading
({
title
:
'
正在保图片...
'
});
uni
.
canvasToTempFilePath
({
//保存canvas
canvasId
:
'
myCanvas
'
,
success
:(
res
)
=>
{
uni
.
hideLoading
();
this
.
imgUrl
=
res
.
tempFilePath
;
//#ifdef APP-PLUS
uni
.
showLoading
({
title
:
'
请稍后...
'
,
mask
:
true
});
uni
.
share
({
//分享给朋友圈
provider
:
'
weixin
'
,
scene
:
wxType
,
//WXSceneSession聊天界面 WXSenceTimeline朋友圈
type
:
2
,
imageUrl
:
res
.
tempFilePath
,
success
:
ret
=>
{
uni
.
hideLoading
();
},
fail
:
err
=>
{
console
.
log
(
err
)
}
});
//#endif
},
fail
:(
err
)
=>
{
uni
.
hideLoading
();
this
.
$api
.
msg
(
'
图片保存失败
'
);
},
},
this
)
}
else
{
//保存过了
//#ifdef APP-PLUS
uni
.
showLoading
({
title
:
'
请稍后...
'
,
mask
:
true
});
uni
.
share
({
//分享给朋友圈
provider
:
'
weixin
'
,
scene
:
wxType
,
//WXSceneSession聊天界面 WXSenceTimeline朋友圈
type
:
2
,
imageUrl
:
this
.
imgUrl
,
success
:
ret
=>
{
uni
.
hideLoading
();
},
fail
:
err
=>
{
console
.
log
(
err
)
}
});
//#endif
}
},
shareToFriend
(
type
){
let
wxType
=
''
;
if
(
type
==
3
){
//收藏
wxType
=
'
WXSceneFavorite
'
;
}
else
{
//1聊天界面 2朋友圈
if
(
type
==
1
){
wxType
=
'
WXSceneSession
'
;
}
else
{
wxType
=
'
WXSenceTimeline
'
;
}
}
this
.
filePath
(
type
,
wxType
);
},
change
(
e
)
{
if
(
!
e
.
show
)
{
this
.
popupShow
=
false
}
},
share
()
{
//分享到
this
.
popupShow
=
true
;
},
saveImage
(){
//保存图片
uni
.
showLoading
({
title
:
'
正在保存图片...
'
,
mask
:
true
});
if
(
this
.
imgUrl
==
''
){
uni
.
canvasToTempFilePath
({
//保存canvas
canvasId
:
'
myCanvas
'
,
success
:(
res
)
=>
{
uni
.
hideLoading
();
this
.
imgUrl
=
res
.
tempFilePath
;
console
.
log
(
this
.
imgUrl
)
uni
.
saveImageToPhotosAlbum
({
//保存到相册
filePath
:
res
.
tempFilePath
,
success
:(
res
)
=>
{
uni
.
showToast
({
title
:
'
图片保存成功
'
,
icon
:
'
none
'
});
},
fail
:
function
(
err
){
console
.
log
(
err
)
this
.
$api
.
msg
(
'
图片保存失败
'
);
}
})
},
fail
:(
err
)
=>
{
uni
.
hideLoading
();
this
.
$api
.
msg
(
'
图片保存失败
'
);
},
},
this
)
}
else
{
uni
.
saveImageToPhotosAlbum
({
//保存到相册
filePath
:
this
.
imgUrl
,
success
:(
res
)
=>
{
uni
.
hideLoading
();
uni
.
showToast
({
title
:
'
图片保存成功
'
,
icon
:
'
none
'
,
duration
:
2000
});
},
fail
:
function
(
res
){
uni
.
hideLoading
();
this
.
$api
.
msg
(
'
图片保存失败
'
);
}
})
}
},
imgH
(
e
){
this
.
bgHeight
=
e
.
detail
.
height
/
2
;
//得到背景图高度
},
createGoodsQrcode
(){
//生成二维码
uni
.
showLoading
({
title
:
'
二维码生成中...
'
,
mask
:
true
});
shareQrcode
({
type
:
3
,
//店铺二维码
shareid
:
this
.
shop_id
,
//店铺id
}).
then
(
res
=>
{
uni
.
hideLoading
();
if
(
res
.
code
==
0
){
this
.
qrcodeurl
=
this
.
staticUrl1
+
res
.
data
.
file
;
this
.
avater
();
}
else
{
this
.
qrcodeurl
=
''
;
this
.
$api
.
msg
(
"
生成二维码失败
"
);
this
.
avater
();
}
})
},
avater
(){
//主图下载
console
.
log
(
this
.
statictowUrl
+
"
static/applet5/images/uts/sjrwm.png
"
,)
uni
.
showLoading
({
title
:
'
图片下载中...
'
,
mask
:
true
});
uni
.
downloadFile
({
//下载图片到本地
url
:
this
.
statictowUrl
+
"
static/applet5/images/uts/sjrwm.png
"
,
//背景主图片, //主图
success
:
res
=>
{
uni
.
hideLoading
();
if
(
res
.
statusCode
==
200
){
//下载成功
this
.
avaterSrc
=
res
.
tempFilePath
;
this
.
drawPosters
(
this
.
avaterSrc
)
}
else
{
this
.
avaterSrc
=
''
;
this
.
drawPosters
(
this
.
avaterSrc
)
}
},
fail
:
err
=>
{
uni
.
hideLoading
();
this
.
avaterSrc
=
''
;
this
.
drawPosters
(
avaterSrc
);
this
.
$api
.
msg
(
"
图片下载失败
"
);
}
})
},
drawPosters
(
avaterSrc
){
let
rpx
=
this
.
rpx
;
uni
.
showLoading
({
title
:
'
正在绘制海报...
'
,
mask
:
true
});
const
ctx
=
uni
.
createCanvasContext
(
'
myCanvas
'
,
this
);
//创建画布
ctx
.
setFillStyle
(
'
#FFFFFF
'
);
ctx
.
fillRect
(
0
,
0
,
this
.
windowWidth
,
this
.
bgHeight
);
if
(
avaterSrc
){
//主图
ctx
.
drawImage
(
avaterSrc
,
0
,
0
,
this
.
windowWidth
,
this
.
bgHeight
);
}
if
(
this
.
qrcodeurl
){
//二维码
ctx
.
drawImage
(
this
.
qrcodeurl
,
(
this
.
windowWidth
-
210
*
rpx
)
/
2
,
220
,
210
*
rpx
,
220
*
rpx
);
}
if
(
this
.
shopname
){
//店铺名字
ctx
.
setFillStyle
(
'
#ffffff
'
);
ctx
.
setFontSize
((
18
*
rpx
).
toFixed
(
0
));
ctx
.
fillText
(
this
.
shopname
,(
this
.
windowWidth
-
ctx
.
measureText
(
this
.
shopname
).
width
)
/
2
,
470
);
}
uni
.
hideLoading
();
ctx
.
draw
();
this
.
show
=
true
;
},
}
}
</
script
>
<
style
>
.posf
{
position
:
fixed
;
}
.bctpbtns
{
position
:
absolute
;
z-index
:
10000
;
right
:
0
;
bottom
:
240px
;
width
:
57
upx
;
height
:
189
upx
;
}
.fxhbbtns
{
position
:
absolute
;
z-index
:
10000
;
right
:
0
;
bottom
:
130px
;
width
:
57
upx
;
height
:
189
upx
;
}
.br-b
{
border-bottom
:
1px
solid
#BCBCBC
;
}
</
style
>
pages/storeqrcode/storeqrcode2.vue
0 → 100644
View file @
144b67c9
<
template
>
<!-- 商家二维码 -->
<!-- 商家码 -->
<view
class=
"content yocode"
>
<view
class=
"submitbtn active"
@
tap=
"shareQrcode"
v-if=
"!qrShow"
>
生成
</view>
<!--
<view
class=
"submitbtn active"
@
tap=
"shareFc"
v-if=
"!qrShow"
>
生成
</view>
-->
<!-- @tap=" saveImage()" -->
<view
class=
"flex_row_c_c modalView"
v-if=
"qrShow"
:class=
"qrShow?'show':''"
>
<view
class=
"flex_column"
>
<!-- backgroundColor-white -->
<view
class=
" padding1vh border_radius_10px"
>
<image
:src=
"poster.finalPath"
mode=
"widthFix"
class=
"posterImage"
></image>
<image
class=
"bctpbtns"
src=
"/static/bctp.png"
mode=
""
@
tap.prevent.stop=
"saveImage()"
></image>
<image
class=
"fxhbbtns"
src=
"/static/fxhb.png"
mode=
""
@
tap.prevent.stop=
"share()"
></image>
</view>
<view
class=
"flex_row marginTop2vh"
>
<!--
<button
type=
"primary"
class=
"buttons"
size=
"mini"
@
tap.prevent.stop=
"saveImage()"
>
保存图片
</button>
<button
type=
"primary"
class=
"buttons"
size=
"mini"
@
tap.prevent.stop=
"hideQr()"
>
关闭
</button>
-->
<!--
<button
type=
"primary"
class=
"buttons"
size=
"mini"
@
tap.prevent.stop=
"share()"
>
分享图片
</button>
-->
</view>
</view>
</view>
<!--
<button
type=
"primary"
class=
"buttons mt-40 ml-20 mr-20"
@
tap=
"shareFc()"
>
生成店铺二维码
</button>
-->
<view
class=
"hideCanvasView"
>
<canvas
class=
"hideCanvas"
canvas-id=
"default_PosterCanvasId"
:style=
"
{width: (poster.width||0) + 'px', height: (poster.height||0) + 'px'}">
</canvas>
</view>
</view>
</
template
>
<
script
>
import
_app
from
'
@/utils/QS-SharePoster/app.js
'
;
import
getSharePoster
from
'
@/utils/QS-SharePoster/QS-SharePoster.js
'
;
// import {usersEquity} from "@/utils/api/partner_center.js";
// import {shareQrcode} from "@/utils/api/user.js"
import
{
createQrcode
as
shareQrcode
}
from
"
@/utils/api/api.js
"
;
export
default
{
data
()
{
return
{
poster
:
{},
qrShow
:
false
,
canvasId
:
'
default_PosterCanvasId
'
,
type
:
"
1
"
,
url
:
""
,
shopInfo
:{},
shop_name
:
""
,
shop_id
:
0
,
//url传过来的
}
},
onLoad
(
opdata
)
{
this
.
type
=
opdata
.
type
;
this
.
shop_id
=
opdata
.
shop_id
;
//this.shareFc();//自动生成
this
.
shopInfo
=
uni
.
getStorageSync
(
'
userInfo
'
);
this
.
shop_name
=
this
.
shopInfo
.
shop_name
;
this
.
shareQrcode
();
},
methods
:
{
//生成二维码
async
shareQrcode
(){
// uni.showLoading({
// title: '加载中'
// });
let
res
=
await
shareQrcode
({
type
:
3
,
//固定的
//shareid: app.globalData.storeInfo.shop_id
shareid
:
this
.
$store
.
state
.
userInfo
.
shop_id
,
//店铺id
})
if
(
res
.
code
==
0
){
this
.
url
=
res
.
data
.
file
;
// let qrcodeurl = window.location.port=="8080"?this.staticUrl1+this.url:this.staticUrl+this.url;
// let qrcodeurl = window.location.port=="8080"?this.staticUrl1+this.url:this.staticUrl1+this.url;
// let qrcodeurl = this.staticUrl1+this.url;
let
qrcodeurl
=
this
.
staticUrl1
+
this
.
url
;
this
.
url
=
qrcodeurl
;
// https://zxluma.jxdsy.cn/attachs/
//console.info(res.data.file,"路径");
// uni.showLoading({
// title: '生成成功'
// });
this
.
shareFc
();
}
else
{
uni
.
showLoading
({
title
:
'
生成失败
'
});
this
.
$api
.
msg
(
res
.
msg
);
}
setTimeout
(
function
()
{
uni
.
hideLoading
();
},
2000
);
},
//生成海报
async
shareFc
()
{
//debugger
try
{
if
(
!
this
.
poster
.
finalPath
)
{
let
backgroundImage
;
let
rqcodeobj
=
{}
// 二维码
rqcodeobj
=
{
text
:
'
开发测试
'
,
size
:
150
,
//bgObj.width*0.2
dx
:
380
,
//bgObj.width*0.05
dy
:
765
//bgObj.height - bgObj.width*0.25
}
//计算名称的x轴
let
len
=
this
.
shop_name
.
length
;
let
cha
=
0
;
//差值
let
dxsss
=
0
;
//xy 坐标
if
(
len
<=
10
){
//小于
cha
=
10
-
len
;
dxsss
=
160
+
cha
*
12
;
}
else
{
//大于
cha
=
len
-
10
;
dxsss
=
160
-
cha
*
12
;
}
console
.
log
(
"
计算出来的dx
"
,
dxsss
);
const
d
=
await
getSharePoster
({
// backgroundImage:"/static/news/sjrwm.png",
backgroundImage
:
this
.
statictowUrl
+
"
static/applet5/images/uts/sjrwm.png
"
,
//暂时使用这个
// backgroundImage:"http://q37tb0wtc.bkt.clouddn.com/sjrwm.png",
// backgroundImage:"https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super",
// backgroundImage:"https://luma.jxdsy.cn/attachs/2019/07/29/thumb_5d3ecaa81b681.jpg",
type
:
'
testShareType
'
,
posterCanvasId
:
this
.
canvasId
,
// qrCodeArray: ({bgObj, type, bgScale}) => {
// return [rqcodeobj]
// },
imagesArray
:
({
bgObj
,
type
,
bgScale
})
=>
{
//接收的第一个参数为背景图片的信息, 第二个参数是自定义标识(感觉这里用不到), 图片为示例图片
const
dx
=
bgObj
.
width
*
0.3
;
return
[
//二维码
//二维码放进去
{
url
:
this
.
url
,
// //"https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?qua=high&where=super",//
dx
:
155
,
//bgObj.width*0.05
dy
:
350
,
//bgObj.height - bgObj.width*0.25
dWidth
:
250
,
// 因为设置了圆形图片 所以要乘以2
dHeight
:
250
},
]
},
textArray
:
({
bgObj
,
type
,
bgScale
})
=>
{
const
fontSize
=
bgObj
.
width
*
0.045
;
const
lineHeight
=
bgObj
.
height
*
0.04
;
return
[
/**
* 商家名称居中 10个字 160/640 刚刚好
* 11个字
*
* 10个以后 每多加一个字 大概要 160- 多出来的个数- 12
*
*
* 10个以下 每少一个字 大概要 160 + 12
*
* ***/
// 文字 先干了
{
text
:
this
.
shop_name
,
//,`测试商家名称测试商家是遭`,//10个字正好
fontWeight
:
'
bold
'
,
size
:
24
,
color
:
'
#ffffff
'
,
alpha
:
1
,
textAlign
:
'
left
'
,
textBaseline
:
'
middle
'
,
infoCallBack
(
textLength
)
{
//dx 160是侧面对齐
return
{
dx
:
dxsss
,
//136,//bgObj.width - textLength - fontSize
dy
:
635
//bgObj.height - lineHeight*2
}
}
},
]
},
setCanvasWH
:
({
bgObj
,
type
,
bgScale
})
=>
{
// 为动态设置画布宽高的方法,
this
.
poster
=
bgObj
;
},
setDraw
:
({
Context
,
bgObj
,
type
,
bgScale
})
=>
{
// Context.setFillStyle('black');
// Context.setGlobalAlpha(0.3);
// Context.fillRect(0, bgObj.height - bgObj.height*0.2, bgObj.width, bgObj.height*0.2);
},
});
console
.
log
(
'
海报生成成功, 临时路径:
'
+
d
.
poster
.
tempFilePath
)
this
.
poster
.
finalPath
=
d
.
poster
.
tempFilePath
;
console
.
log
(
this
.
poster
.
finalPath
)
}
this
.
qrShow
=
true
;
}
catch
(
e
)
{
_app
.
hideLoading
();
_app
.
showToast
(
JSON
.
stringify
(
e
));
console
.
log
(
JSON
.
stringify
(
e
));
console
.
log
(
'
海报生成成功, 临时路径:
'
+
d
.
poster
.
tempFilePath
)
}
},
saveImage
()
{
// #ifndef H5
uni
.
saveImageToPhotosAlbum
({
filePath
:
this
.
poster
.
finalPath
,
success
(
res
)
{
_app
.
showToast
(
'
保存成功
'
);
}
})
// #endif
// #ifdef H5
_app
.
showToast
(
'
保存了
'
);
// #endif
},
share
()
{
// #ifdef APP-PLUS
_app
.
getShare
(
false
,
false
,
2
,
''
,
''
,
''
,
this
.
poster
.
finalPath
,
false
,
false
);
// #endif
// #ifndef APP-PLUS
_app
.
showToast
(
'
分享了
'
);
// #endif
},
hideQr
()
{
this
.
qrShow
=
false
;
}
}
}
</
script
>
<
style
lang=
"scss"
>
.hideCanvasView
{
position
:
relative
;
}
.hideCanvas
{
position
:
fixed
;
top
:
-99999upx
;
left
:
-99999upx
;
z-index
:
-99999
;
}
.flex_row_c_c
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
}
.modalView
{
width
:
100%
;
height
:
100%
;
// position: fixed;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
opacity
:
0
;
outline
:
0
;
transform
:
scale
(
3
);
perspective
:
2500upx
;
// background: rgba(0, 0, 0, 0.6);
transition
:
all
.3s
ease-in-out
;
pointer-events
:
none
;
backface-visibility
:
hidden
;
z-index
:
999
;
}
.modalView.show
{
opacity
:
1
;
transform
:
scale
(
1
);
pointer-events
:
auto
;
}
.flex_column
{
display
:
flex
;
flex-direction
:
column
;
}
.backgroundColor-white
{
background-color
:
white
;
}
.border_radius_10px
{
border-radius
:
10px
;
position
:
relative
;
.bctpbtns
{
position
:
absolute
;
z-index
:
10000
;
right
:
0
;
bottom
:
200px
;
width
:
57upx
;
height
:
189upx
;
}
.fxhbbtns
{
position
:
absolute
;
z-index
:
10000
;
right
:
0
;
bottom
:
100px
;
width
:
57upx
;
height
:
189upx
;
}
}
.padding1vh
{
/* padding: 1vh; */
}
.posterImage
{
/* width: 60vw; */
width
:
100vw
;
height
:
100vh
;
}
.flex_row
{
display
:
flex
;
flex-direction
:
row
;
}
.marginTop2vh
{
margin-top
:
2vh
;
}
.buttons
{
background
:
#ff6900
!
important
;
line-height
:
40px
!
important
;
}
</
style
>
utils/api/merchant.js
View file @
144b67c9
...
...
@@ -38,12 +38,12 @@ export function getActivityList(data){
//判断商家类型 商品入库
export
function
getskipShop
(
data
){
return
request
.
post
(
"
/
user/skipShop
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
user/skipShop
"
,
data
,
{
noAuth
:
true
});
}
//获取分类 列表
export
function
getshopclass
(
data
){
return
request
.
post
(
"
/
ele/weigh
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/weigh
"
,
data
,
{
noAuth
:
true
});
}
...
...
@@ -52,7 +52,7 @@ export function getshopclass(data){
*/
//获取分类 列表
export
function
activity_nucleus
(
data
){
return
request
.
post
(
"
/
ele/activity_nucleus
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_nucleus
"
,
data
,
{
noAuth
:
true
});
}
/**
...
...
@@ -60,7 +60,7 @@ export function activity_nucleus(data){
* @param {Object} data
*/
export
function
activity_add
(
data
){
return
request
.
post
(
"
/
ele/activity_add
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_add
"
,
data
,
{
noAuth
:
true
});
}
/**
...
...
@@ -68,7 +68,7 @@ export function activity_add(data){
* @param {Object} data
*/
export
function
activity_select
(
data
){
return
request
.
post
(
"
/
ele/activity_select
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_select
"
,
data
,
{
noAuth
:
true
});
}
/**
...
...
@@ -76,7 +76,7 @@ export function activity_select(data){
* @param {Object} data
*/
export
function
activity_close
(
data
){
return
request
.
post
(
"
/
ele/activity_close
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_close
"
,
data
,
{
noAuth
:
true
});
}
/**
...
...
@@ -84,7 +84,7 @@ export function activity_close(data){
* @param {} data
*/
export
function
activity_find
(
data
){
return
request
.
post
(
"
/
ele/activity_find
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_find
"
,
data
,
{
noAuth
:
true
});
}
...
...
@@ -93,7 +93,7 @@ export function activity_find(data){
* @param {} data
*/
export
function
activity_user
(
data
){
return
request
.
post
(
"
/
ele/activity_user
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_user
"
,
data
,
{
noAuth
:
true
});
}
...
...
@@ -102,5 +102,5 @@ export function activity_user(data){
* @param {} data
*/
export
function
activity_update
(
data
){
return
request
.
post
(
"
/
ele/activity_update
"
,
data
,
{
noAuth
:
true
});
return
request
.
post
(
"
ele/activity_update
"
,
data
,
{
noAuth
:
true
});
}
\ No newline at end of file
utils/debug.js
View file @
144b67c9
...
...
@@ -4,18 +4,14 @@ module.exports = {
//是否为开发调试环境 true为本地环境 false 为正式环境
//
isdebug:false,//正式
isdebug
:
true
,
//测试
isdebug
:
false
,
//正式
//
isdebug:true,//测试
// xqdebug:false,//正式权限
xqdebug
:
true
,
//发布审核权限 也是测试环境的 主要用于ios
/**
* PS
*
* 正式环境 选 false !
* 本地开发环境 选 true
*
* */
xqdebug
:
true
,
//发布审核权限 也是测试环境的 主要用于ios
// #ifdef APP-PLUS
// isdebug:false,//正式 APP里面绝对是正式
// #endif
}
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