Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
singleStore
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
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Max
singleStore
Commits
39a1415c
Commit
39a1415c
authored
Jul 16, 2021
by
June
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.0.0
parent
c2d6013b
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
775 additions
and
474 deletions
+775
-474
components/goods-popup/index.vue
components/goods-popup/index.vue
+4
-5
components/inputNumber/index.vue
components/inputNumber/index.vue
+6
-1
components/pull-list/index.vue
components/pull-list/index.vue
+4
-0
config/global.js
config/global.js
+136
-0
config/index.js
config/index.js
+2
-2
ext.json
ext.json
+1
-1
lib/eventBus/index.js
lib/eventBus/index.js
+42
-0
mixins/order_operation.js
mixins/order_operation.js
+7
-108
mixins/order_status.js
mixins/order_status.js
+11
-0
pages/carts/index.vue
pages/carts/index.vue
+59
-13
pages/category/index.vue
pages/category/index.vue
+4
-3
pages/order/components/order-btn.vue
pages/order/components/order-btn.vue
+220
-67
pages/order/confirm-order.vue
pages/order/confirm-order.vue
+94
-77
pages/order/order-detail.vue
pages/order/order-detail.vue
+106
-56
pages/order/order-list.vue
pages/order/order-list.vue
+30
-107
readme.md
readme.md
+4
-1
subPages/address/index.vue
subPages/address/index.vue
+34
-20
subPages/afterSales/apply.vue
subPages/afterSales/apply.vue
+1
-0
subPages/afterSales/components/goods-box.vue
subPages/afterSales/components/goods-box.vue
+6
-1
subPages/afterSales/detail.vue
subPages/afterSales/detail.vue
+1
-1
subPages/storeInfo/index.vue
subPages/storeInfo/index.vue
+1
-9
utils/vue_extend.js
utils/vue_extend.js
+2
-2
No files found.
components/goods-popup/index.vue
View file @
39a1415c
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
index
index
}"
}"
:max="~~item.inventory"
:max="~~item.inventory"
:min="
~~item.origin_number_sku
"
:min="
0
"
@change="numberChange"
@change="numberChange"
/>
/>
</view>
</view>
...
@@ -61,7 +61,7 @@
...
@@ -61,7 +61,7 @@
v-for=
"tiered_pri in item.tiered_pri"
v-for=
"tiered_pri in item.tiered_pri"
:key=
"tiered_pri.num"
:key=
"tiered_pri.num"
>
>
¥{{tiered_pri.price }}
<text
class=
"ml-1"
>
≥{{tiered_pri.num +
'/' +
item.unit}}
</text>
¥{{tiered_pri.price }}
<text
class=
"ml-1"
>
≥{{tiered_pri.num + item.unit}}
</text>
</view>
</view>
</view>
</view>
</view>
</view>
...
@@ -125,7 +125,7 @@ export default {
...
@@ -125,7 +125,7 @@ export default {
this
.
skuData
=
JSON
.
parse
(
JSON
.
stringify
(
params
.
skuData
))
this
.
skuData
=
JSON
.
parse
(
JSON
.
stringify
(
params
.
skuData
))
this
.
skuData
.
forEach
(
item
=>
{
this
.
skuData
.
forEach
(
item
=>
{
item
.
tiered_pri
=
item
.
tiered_pri
&&
typeof
item
.
tiered_pri
===
'
string
'
?
JSON
.
parse
(
item
.
tiered_pri
)
:
''
item
.
tiered_pri
=
item
.
tiered_pri
&&
typeof
item
.
tiered_pri
===
'
string
'
?
JSON
.
parse
(
item
.
tiered_pri
)
:
''
item
.
counts
=
~~
item
.
origin_number_sku
item
.
counts
=
0
})
})
this
.
total
()
this
.
total
()
this
.
$refs
.
goodsPopup
.
open
()
this
.
$refs
.
goodsPopup
.
open
()
...
@@ -178,7 +178,7 @@ export default {
...
@@ -178,7 +178,7 @@ export default {
handleCart
()
{
handleCart
()
{
const
skuData
=
this
.
skuData
const
skuData
=
this
.
skuData
if
(
this
.
totalCounts
===
0
)
return
this
.
$toast
({
title
:
'
请选择购买数量
'
})
if
(
this
.
totalCounts
===
0
)
return
this
.
$toast
({
title
:
'
请选择购买数量
'
})
if
(
!
this
.
judgePay
(
skuData
))
return
this
.
$toast
({
title
:
'
购买数量不能少于起购数量
'
})
//
if(!this.judgePay(skuData)) return this.$toast({title: '购买数量不能少于起购数量'})
const
fn
=
[]
const
fn
=
[]
for
(
let
i
=
0
,
j
=
skuData
.
length
;
i
<
j
;
i
++
)
{
for
(
let
i
=
0
,
j
=
skuData
.
length
;
i
<
j
;
i
++
)
{
if
(
skuData
[
i
].
counts
)
{
if
(
skuData
[
i
].
counts
)
{
...
@@ -207,7 +207,6 @@ export default {
...
@@ -207,7 +207,6 @@ export default {
console
.
log
(
skuData
)
console
.
log
(
skuData
)
if
(
skuData
.
length
===
0
)
return
if
(
skuData
.
length
===
0
)
return
if
(
this
.
totalCounts
===
0
)
return
this
.
$toast
({
title
:
'
请选择购买数量
'
})
if
(
this
.
totalCounts
===
0
)
return
this
.
$toast
({
title
:
'
请选择购买数量
'
})
// if(this.totalPrice === 0) return this.$toast({title: '请选择规格数量'})
if
(
!
this
.
judgePay
(
skuData
))
return
this
.
$toast
({
title
:
'
购买数量不能少于起购数量
'
})
if
(
!
this
.
judgePay
(
skuData
))
return
this
.
$toast
({
title
:
'
购买数量不能少于起购数量
'
})
const
sku_ids
=
[]
const
sku_ids
=
[]
const
cart_numbers
=
[]
const
cart_numbers
=
[]
...
...
components/inputNumber/index.vue
View file @
39a1415c
...
@@ -10,9 +10,10 @@
...
@@ -10,9 +10,10 @@
type=
"number"
type=
"number"
v-model=
"calVal"
v-model=
"calVal"
@
confirm=
"inputVal"
@
confirm=
"inputVal"
@
focus=
"inputFocus"
@
blur=
"inputVal"
@
blur=
"inputVal"
/>
/>
<view
<view
class=
"btn iconfont icon-hao flex j-center a-center"
class=
"btn iconfont icon-hao flex j-center a-center"
:class=
"(max && (calVal >= max)) ? 'disabled' : null"
:class=
"(max && (calVal >= max)) ? 'disabled' : null"
@
click.stop=
"add"
@
click.stop=
"add"
...
@@ -85,6 +86,7 @@ export default {
...
@@ -85,6 +86,7 @@ export default {
this
.
calVal
+=
1
this
.
calVal
+=
1
},
},
inputVal
(
e
)
{
inputVal
(
e
)
{
this
.
$emit
(
'
inputBlur
'
)
let
inputVal
=
~~
e
.
detail
.
value
let
inputVal
=
~~
e
.
detail
.
value
const
max
=
this
.
max
const
max
=
this
.
max
const
min
=
this
.
min
const
min
=
this
.
min
...
@@ -96,6 +98,9 @@ export default {
...
@@ -96,6 +98,9 @@ export default {
this
.
$toast
({
title
:
`数量不能少于
${
min
}
`
})
this
.
$toast
({
title
:
`数量不能少于
${
min
}
`
})
}
}
this
.
calVal
=
inputVal
this
.
calVal
=
inputVal
},
inputFocus
()
{
this
.
$emit
(
'
inputFocus
'
)
}
}
}
}
}
}
...
...
components/pull-list/index.vue
View file @
39a1415c
...
@@ -48,6 +48,10 @@ export default {
...
@@ -48,6 +48,10 @@ export default {
refresherStatus
:
false
// 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
refresherStatus
:
false
// 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
}
}
},
},
created
()
{
console
.
log
(
this
.
refresherEnabled
)
},
methods
:
{
methods
:
{
// 触底
// 触底
scrolltolower
()
{
scrolltolower
()
{
...
...
config/global.js
0 → 100644
View file @
39a1415c
// 详细看文档
export
const
cOrder_status
=
{
'
os0_osd1
'
:
{
text
:
'
待接单
'
,
},
'
os1_osd11
'
:
{
text
:
'
待付款
'
,
},
'
os1_osd12
'
:
{
text
:
'
待付款(已支付定金)
'
,
},
'
os6_osd61
'
:
{
text
:
'
待发货
'
,
},
'
os7_osd71
'
:
{
text
:
'
待收货
'
,
},
'
os10_osd101
'
:
{
text
:
'
已收货
'
,
},
'
os11_osd111
'
:
{
text
:
'
退款审核中
'
,
},
'
os11_osd112
'
:
{
text
:
'
退款审核中
'
,
},
'
os11_osd113
'
:
{
text
:
'
退款审核中
'
,
},
'
os11_osd114
'
:
{
text
:
'
退货审核中
'
,
},
'
os11_osd115
'
:
{
text
:
'
退货审核中
'
,
},
'
os11_osd116
'
:
{
text
:
'
退款退货审核中
'
,
},
'
os11_osd117
'
:
{
text
:
'
退款退货审核中
'
,
},
'
os9_osd91
'
:
{
text
:
'
退款中
'
,
},
'
os9_osd93
'
:
{
text
:
'
退货中
'
,
},
'
os9_osd92
'
:
{
text
:
'
退货退款中
'
,
},
'
os5_osd53
'
:
{
text
:
'
交易完成
'
,
},
//2是关闭,osd(order_status_d) 看文档吧,2全部关闭
'
os2_osd28
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd29
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd21
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd23
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd26
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd210
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd211
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd22
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd25
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd27
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd212
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd213
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd214
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd215
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd216
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd217
'
:
{
text
:
'
交易关闭
'
,
},
}
export
const
pay_type
=
{
0
:
'
——
'
,
1
:
'
微信
'
,
2
:
'
支付宝
'
,
3
:
'
线下4余额
'
,
6
:
'
格利支付
'
,
7
:
'
现金
'
,
8
:
'
欠款
'
,
9
:
'
转账(私)
'
,
10
:
'
转账(公)
'
,
11
:
'
转账(微信)
'
,
12
:
'
转账(支付宝)
'
,
13
:
'
微信-格利
'
,
14
:
'
支付宝-格利
'
,
15
:
'
企业网银-格利
'
,
16
:
'
个人网银-格利
'
}
export
const
weeks
=
{
1
:
'
周一
'
,
2
:
'
周二
'
,
3
:
'
周三
'
,
4
:
'
周四
'
,
5
:
'
周五
'
,
6
:
'
周六
'
,
7
:
'
周日
'
,
}
\ No newline at end of file
config/index.js
View file @
39a1415c
const
env
=
{
const
env
=
{
release
:
'
https://www.gelifood.com
'
,
// 正式版
release
:
'
https://www.gelifood.com
'
,
// 正式版
trial
:
'
https://
d
.gelifood.com
'
,
// 体验版
trial
:
'
https://
www
.gelifood.com
'
,
// 体验版
develop
:
'
https://
d
.gelifood.com
'
// 开发版
develop
:
'
https://
www
.gelifood.com
'
// 开发版
}
}
// 不考虑其他端小程序直接这样配置
// 不考虑其他端小程序直接这样配置
...
...
ext.json
View file @
39a1415c
{
{
"extEnable"
:
true
,
"extEnable"
:
true
,
"extAppid"
:
"wx
d170058f4ad8fec
d"
,
"extAppid"
:
"wx
537e892e36fbf79
d"
,
"ext"
:
{
"ext"
:
{
"appid"
:
"wxd170058f4ad8fecd"
"appid"
:
"wxd170058f4ad8fecd"
}
}
...
...
lib/eventBus/index.js
0 → 100644
View file @
39a1415c
/**
* @desc 事件通讯
*/
class
EventBus
{
constructor
(
arg
)
{
this
.
events
=
{}
}
/**
* @desc 事件监听
*/
$on
(
key
,
fn
)
{
if
(
!
this
.
events
[
key
])
{
this
.
events
[
key
]
=
[]
}
this
.
events
.
push
(
fn
)
}
/**
* @desc 事件派发
*/
$emit
()
{
const
key
=
Array
.
prototype
.
splice
.
call
(
arguments
)
const
curE
=
this
.
events
[
key
]
curE
.
apply
(
this
,
arguments
)
}
/**
* @desc 取消事件监听
*/
$off
(
key
)
{
const
events
=
this
.
events
for
(
let
i
=
0
,
j
=
events
.
length
;
i
++
)
{
if
(
events
[
key
])
{
// 移除事件的监听
this
.
events
.
splice
(
i
,
1
)
}
}
}
}
export
default
EventBus
\ No newline at end of file
mixins/order_operation.js
View file @
39a1415c
import
{
cancelOrder
,
remindOrder
,
applyBack
,
undoOrder
,
recieveOrder
,
recieveOrderRefund
,
addRefundTime
}
from
"
@/apis/order.js
"
import
{
cancelOrder
,
remindOrder
,
applyBack
,
undoOrder
,
recieveOrder
,
recieveOrderRefund
,
addRefundTime
}
from
"
@/apis/order.js
"
import
createOrder
from
'
@/utils/modules/pay.js
'
import
createOrder
from
'
@/utils/modules/pay.js
'
import
{
isFunction
}
from
'
@/utils/types.js
'
import
{
isFunction
}
from
'
@/utils/types.js
'
// 详细看文档
import
{
cOrder_status
}
from
'
@/config/global.js
'
const
cOrder_status
=
{
'
os0_osd1
'
:
{
text
:
'
待接单
'
,
},
'
os1_osd11
'
:
{
text
:
'
待付款
'
,
},
'
os1_osd12
'
:
{
text
:
'
待付款(已支付定金)
'
,
},
'
os6_osd61
'
:
{
text
:
'
待发货
'
,
},
'
os7_osd71
'
:
{
text
:
'
待收货
'
,
},
'
os10_osd101
'
:
{
text
:
'
已收货
'
,
},
'
os11_osd111
'
:
{
text
:
'
待发货退款审核
'
,
},
'
os11_osd112
'
:
{
text
:
'
待收货退款审核
'
,
},
'
os11_osd113
'
:
{
text
:
'
已收货退款审核
'
,
},
'
os11_osd114
'
:
{
text
:
'
待收货退货审核
'
,
},
'
os11_osd115
'
:
{
text
:
'
已收货退货审核
'
,
},
'
os11_osd116
'
:
{
text
:
'
待收货退款退货审核
'
,
},
'
os11_osd117
'
:
{
text
:
'
已收货退款退货审核
'
,
},
'
os9_osd91
'
:
{
text
:
'
退款中
'
,
},
'
os9_osd93
'
:
{
text
:
'
退货中
'
,
},
'
os9_osd92
'
:
{
text
:
'
退货退款中
'
,
},
'
os5_osd53
'
:
{
text
:
'
交易完成
'
,
},
//2是关闭,osd(order_status_d) 看文档吧,2全部关闭
'
os2_osd28
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd29
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd21
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd23
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd26
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd211
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd22
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd25
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd27
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd212
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd213
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd214
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd215
'
:
{
text
:
'
交易关闭
'
},
'
os2_osd216
'
:
{
text
:
'
交易关闭
'
,
},
'
os2_osd217
'
:
{
text
:
'
交易关闭
'
,
},
}
const
order_mixin
=
{
const
order_mixin
=
{
filters
:
{
filters
:
{
cOrderStatus
(
key
)
{
cOrderStatus
(
key
)
{
...
@@ -137,7 +33,7 @@ const order_mixin = {
...
@@ -137,7 +33,7 @@ const order_mixin = {
this
.
$toast
({
title
:
'
提醒成功
'
})
this
.
$toast
({
title
:
'
提醒成功
'
})
}
}
}
catch
(
e
){
}
catch
(
e
){
this
.
$toast
({
title
:
'
提醒失败
'
})
this
.
$toast
({
title
:
e
.
msg
||
'
提醒失败
'
})
//TODO handle the exception
//TODO handle the exception
}
}
},
},
...
@@ -158,9 +54,12 @@ const order_mixin = {
...
@@ -158,9 +54,12 @@ const order_mixin = {
},
},
// 支付
// 支付
async
orderPay
(
order_sn
)
{
async
orderPay
(
order_sn
,
fn
)
{
await
createOrder
({
await
createOrder
({
order_sn
order_sn
,
successCb
:
()
=>
{
fn
&&
isFunction
(
fn
)
&&
fn
()
}
})
})
},
},
...
...
mixins/order_status.js
0 → 100644
View file @
39a1415c
import
{
cOrder_status
}
from
'
@/config/global.js
'
const
order_status
=
{
filters
:
{
cOrderStatus
(
key
)
{
return
cOrder_status
[
key
].
text
||
''
}
},
}
export
default
order_status
\ No newline at end of file
pages/carts/index.vue
View file @
39a1415c
...
@@ -39,12 +39,14 @@
...
@@ -39,12 +39,14 @@
:key=
"item.goods_id"
:key=
"item.goods_id"
@
click.stop=
"handleDetail(item.goods_id)"
@
click.stop=
"handleDetail(item.goods_id)"
>
>
<view
class=
"w-100 flex j-star a-center"
>
<view
class=
"w-100 flex j-star a-center"
style=
"position: relative;"
>
<view
class=
"mr-1"
<view
class=
"flex a-center j-center checked_box"
@
click.stop=
"selectGoods(index, item)"
>
:class=
"item.checked ? 'agreement-icon_active' : 'agreement-icon'"
<view
@
click.stop=
"selectGoods(index, item)"
class=
"mr-1"
/>
:class=
"item.checked ? 'agreement-icon_active' : 'agreement-icon'"
/>
</view>
<image
<image
class=
"goods-cover mr-2"
class=
"goods-cover mr-2"
:src=
"baseUrl + '/' + item.goods_thumb"
:src=
"baseUrl + '/' + item.goods_thumb"
...
@@ -77,6 +79,8 @@
...
@@ -77,6 +79,8 @@
innerIdx: cartIdx
innerIdx: cartIdx
}"
}"
@change="numberChange"
@change="numberChange"
@inputFocus="inputFocus"
@inputBlur="inputBlur"
/>
/>
</view>
</view>
</view>
</view>
...
@@ -110,7 +114,7 @@
...
@@ -110,7 +114,7 @@
<text>
{{
totalPrice
}}
</text>
<text>
{{
totalPrice
}}
</text>
</
template
>
</
template
>
<
template
v-else
>
<
template
v-else
>
<text>
待确认
</text>
<text>
¥—
</text>
</
template
>
</
template
>
</text>
</text>
<view
class=
"font-28 py-2 px-1 primary"
@
click=
"removeCart"
>
移除
</view>
<view
class=
"font-28 py-2 px-1 primary"
@
click=
"removeCart"
>
移除
</view>
...
@@ -119,7 +123,6 @@
...
@@ -119,7 +123,6 @@
</template>
</template>
</template>
</template>
</template>
</template>
</view>
</view>
</template>
</template>
...
@@ -144,7 +147,14 @@
...
@@ -144,7 +147,14 @@
if
(
cartList
[
i
].
checked
)
{
if
(
cartList
[
i
].
checked
)
{
for
(
var
k
=
0
;
k
<
cartList
[
i
].
list
.
length
;
k
++
)
{
for
(
var
k
=
0
;
k
<
cartList
[
i
].
list
.
length
;
k
++
)
{
if
(
cartList
[
i
].
list
[
k
].
checked
)
{
if
(
cartList
[
i
].
list
[
k
].
checked
)
{
counts
+=
+
cartList
[
i
].
list
[
k
].
cart_number
var
cart_number
=
+
cartList
[
i
].
list
[
k
].
cart_number
var
origin_number_sku
=
+
cartList
[
i
].
list
[
k
].
origin_number_sku
if
(
origin_number_sku
&&
origin_number_sku
>=
cart_number
)
{
counts
+=
origin_number_sku
}
else
{
counts
+=
cart_number
}
}
}
}
}
}
}
...
@@ -172,7 +182,8 @@ export default {
...
@@ -172,7 +182,8 @@ export default {
data
()
{
data
()
{
return
{
return
{
baseUrl
,
baseUrl
,
cartList
:
[]
cartList
:
[],
showMask
:
false
}
}
},
},
...
@@ -192,7 +203,6 @@ export default {
...
@@ -192,7 +203,6 @@ export default {
filters
:
{
filters
:
{
defaultCounts
(
origin_number_sku
,
cart_number
)
{
defaultCounts
(
origin_number_sku
,
cart_number
)
{
// ~~cart.origin_number_sku > ~~cart.cart_number ? cart.origin_number_sku : cart.cart_number
// ~~cart.origin_number_sku > ~~cart.cart_number ? cart.origin_number_sku : cart.cart_number
console
.
log
(
origin_number_sku
,
cart_number
)
return
~~
origin_number_sku
>
~~
cart_number
?
origin_number_sku
:
cart_number
return
~~
origin_number_sku
>
~~
cart_number
?
origin_number_sku
:
cart_number
}
}
},
},
...
@@ -207,7 +217,14 @@ export default {
...
@@ -207,7 +217,14 @@ export default {
totalPrice
()
{
totalPrice
()
{
return
this
.
cartList
.
filter
(
item
=>
item
.
checked
).
reduce
((
pre
,
cur
)
=>
{
return
this
.
cartList
.
filter
(
item
=>
item
.
checked
).
reduce
((
pre
,
cur
)
=>
{
return
pre
+
cur
.
list
.
filter
(
i
=>
i
.
checked
).
reduce
((
p
,
c
)
=>
{
return
pre
+
cur
.
list
.
filter
(
i
=>
i
.
checked
).
reduce
((
p
,
c
)
=>
{
return
p
+
(
c
.
cart_price
*
c
.
cart_number
)
const
cart_number
=
+
c
.
cart_number
const
origin_number_sku
=
+
c
.
origin_number_sku
if
(
origin_number_sku
&&
origin_number_sku
>=
cart_number
)
{
return
p
+
(
c
.
cart_price
*
origin_number_sku
)
}
else
{
return
p
+
(
c
.
cart_price
*
cart_number
)
}
return
},
0
)
},
0
)
},
0
).
toFixed
(
2
)
},
0
).
toFixed
(
2
)
}
}
...
@@ -232,6 +249,7 @@ export default {
...
@@ -232,6 +249,7 @@ export default {
},
},
handleDetail
(
id
)
{
handleDetail
(
id
)
{
if
(
this
.
showMask
)
return
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
`/pages/goods/detail?goods_id=
${
id
}
`
url
:
`/pages/goods/detail?goods_id=
${
id
}
`
})
})
...
@@ -269,7 +287,6 @@ export default {
...
@@ -269,7 +287,6 @@ export default {
},
},
// 移除购物车
// 移除购物车
removeCart
()
{
removeCart
()
{
const
cartList
=
this
.
cartList
const
cartList
=
this
.
cartList
...
@@ -320,6 +337,14 @@ export default {
...
@@ -320,6 +337,14 @@ export default {
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
`/pages/order/confirm-order?params=
${
encodeURIComponent
(
JSON
.
stringify
(
params
))}
`
url
:
`/pages/order/confirm-order?params=
${
encodeURIComponent
(
JSON
.
stringify
(
params
))}
`
})
})
},
inputFocus
()
{
this
.
showMask
=
true
},
inputBlur
()
{
this
.
showMask
=
false
}
}
}
}
}
}
...
@@ -355,7 +380,16 @@ export default {
...
@@ -355,7 +380,16 @@ export default {
.agreement-icon_active
{
.agreement-icon_active
{
@include
selected
(
34rpx
,
34rpx
);
@include
selected
(
34rpx
,
34rpx
);
}
}
.checked_box
{
position
:
absolute
;
top
:
50%
;
z-index
:
1
;
transform
:translateY
(
-50
%
)
;
width
:
48rpx
;
height
:
160rpx
;
}
.goods-cover
{
.goods-cover
{
margin-left
:
48rpx
;
flex
:
0
0
160rpx
;
flex
:
0
0
160rpx
;
width
:
160rpx
;
width
:
160rpx
;
height
:
160rpx
;
height
:
160rpx
;
...
@@ -410,5 +444,17 @@ export default {
...
@@ -410,5 +444,17 @@ export default {
background-color
:
$primary
;
background-color
:
$primary
;
}
}
}
}
.mask
{
position
:
fixed
;
left
:
0
;
right
:
0
;
top
:
0
;
bottom
:
0
;
width
:
100%
;
height
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
0
);
z-index
:
999
;
}
}
}
</
style
>
</
style
>
pages/category/index.vue
View file @
39a1415c
...
@@ -161,10 +161,11 @@ export default {
...
@@ -161,10 +161,11 @@ export default {
storeInfo
:
state
=>
state
.
user
.
storeInfo
storeInfo
:
state
=>
state
.
user
.
storeInfo
})
})
},
},
async
created
()
{
//
async created() {
this
.
getCate
()
//
this.getCate()
},
//
},
onShow
()
{
onShow
()
{
this
.
getCate
()
this
.
getCateGoods
()
this
.
getCateGoods
()
if
(
this
.
token
)
{
if
(
this
.
token
)
{
this
.
setCount
()
this
.
setCount
()
...
...
pages/order/components/order-btn.vue
View file @
39a1415c
<!-- 虽然冗余,但是清晰 -->
<
template
>
<
template
>
<view
class=
"order-info"
>
<view
class=
"order-info"
>
<slot
name=
"total"
></slot>
<slot
name=
"total"
></slot>
<!-- 2是交易关闭,5是交易完成,订单都已经结束,不展示按钮 -->
<view
class=
"w-100 flex j-end a-center flex-wrap"
v-if=
"!['2', '5'].includes(item.order_status)"
>
<view
class=
"w-100 flex j-end a-center"
v-if=
"!['0', '2', '5'].includes(item.order_status)"
>
<!-- 先款后货 -->
<template
v-if=
"item.order_status === '1'"
>
<template
v-if=
"item.goods_before_pay === '0'"
>
<slot
name=
"time"
></slot>
<!-- 待接单 -->
<view
v-if=
"item.order_status_d === '11'"
class=
"btn ml-2 pay"
@
click.stop=
"handlePay(item.order_sn, index)"
>
待支付
</view>
<template
v-if=
"item.order_status === '0'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleCancle(item.order_sn, index)"
>
取消订单
</view>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleCancle(item.order_sn, index)"
>
取消订单
</view>
</
template
>
</
template
>
<
template
v-else-if=
"item.order_status === '6'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 1, index)"
>
申请退款
</view>
<!-- 待付款 -->
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRemind(item.order_sn, item.order_id, index)"
>
提醒发货
</view>
<
template
v-else-if=
"item.order_status === '1'"
>
</
template
>
<slot
name=
"time"
></slot>
<
template
v-else-if=
"item.order_status === '7'"
>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handlePay(item.order_sn, index)"
>
立即支付
</view>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, item.order_status_d === '71' ? 2 : 1, index)"
>
申请退款
</view>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleCancle(item.order_sn, index)"
>
取消订单
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRecieve(item.order_sn)"
>
确认收货
</view>
</
template
>
</
template
>
<
template
v-else-if=
"item.order_status === '11'"
>
<!-- 待发货 -->
<view
<
template
v-else-if=
"item.order_status === '6'"
>
class=
"btn ml-2 cancle"
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 1, index)"
>
申请退款
</view>
v-if=
"item.order_status_d === '111'"
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRemind(item.order_sn, item.order_id, index)"
>
提醒发货
</view>
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
</
template
>
>
撤销退款申请
</view>
<view
<!-- 待收货 -->
class=
"btn ml-2 cancle"
<
template
v-else-if=
"item.order_status === '7'"
>
v-if=
"item.order_status_d === '112'"
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 1, index)"
>
申请退款
</view>
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRecieve(item.order_sn)"
>
确认收货
</view>
>
撤销退款申请
</view>
</
template
>
<view
class=
"btn ml-2 cancle"
<!-- 已收货 -->
v-if=
"item.order_status_d === '113'"
<
template
v-else-if=
"item.order_status === '10'"
>
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleApplyRefund(item)"
>
申请售后
</view>
>
撤销退款申请
</view>
</
template
>
<view
class=
"btn ml-2 cancle"
<!-- 退款退货审核 -->
v-if=
"item.order_status_d === '114'"
<
template
v-else-if=
"item.order_status === '11'"
>
@
click.stop=
"handleUndo(item.order_sn, 4, index)"
<view
>
撤销退货申请
</view>
class=
"btn ml-2 cancle"
<view
v-if=
"item.order_status_d === '111'"
class=
"btn ml-2 cancle"
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
v-if=
"item.order_status_d === '115'"
>
撤销退款申请
</view>
@
click.stop=
"handleUndo(item.order_sn, 4, index)"
<view
>
撤销退货申请
</view>
class=
"btn ml-2 cancle"
<view
v-if=
"item.order_status_d === '112'"
class=
"btn ml-2 cancle"
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
v-if=
"item.order_status_d === '116'"
>
撤销退款申请
</view>
@
click.stop=
"handleUndo(item.order_sn, 2, index)"
<view
>
撤销退款退货申请
</view>
class=
"btn ml-2 cancle"
<view
v-if=
"item.order_status_d === '113'"
class=
"btn ml-2 cancle"
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
v-if=
"item.order_status_d === '117'"
>
撤销退款申请
</view>
@
click.stop=
"handleUndo(item.order_sn, 2, index)"
<view
>
撤销退款退货申请
</view>
class=
"btn ml-2 cancle"
</
template
>
v-if=
"item.order_status_d === '114'"
<
template
v-else-if=
"item.order_status === '9'"
>
@
click.stop=
"handleUndo(item.order_sn, 4, index)"
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleAddRefund(item.order_sn)"
>
延长收款时间
</view>
>
撤销退货申请
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRefundMoney(item.order_sn)"
>
签收退款
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '115'"
@
click.stop=
"handleUndo(item.order_sn, 4, index)"
>
撤销退货申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '116'"
@
click.stop=
"handleUndo(item.order_sn, 2, index)"
>
撤销退款退货申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '117'"
@
click.stop=
"handleUndo(item.order_sn, 2, index)"
>
撤销退款退货申请
</view>
</
template
>
<!-- 退款中 -->
<
template
v-else-if=
"item.order_status === '9'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleAddRefund(item.order_sn)"
>
延长收款时间
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRefundMoney(item.order_sn)"
>
签收退款
</view>
</
template
>
</template>
</template>
<
template
v-else-if=
"item.order_status === '10'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleApplyRefund(item)"
>
申请售后
</view>
<!-- 先货后款 -->
<
template
v-else-if=
"item.goods_before_pay === '1'"
>
<!-- 待接单 -->
<template
v-if=
"item.order_status === '0'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleCancle(item.order_sn, index)"
>
取消订单
</view>
</
template
>
<!-- 待付款 -->
<!-- <template v-else-if="item.order_status === '1'">
</template> -->
<!-- 待发货 -->
<
template
v-else-if=
"item.order_status === '6'"
>
<!-- 未付款 -->
<template
v-if=
"item.pay_status === '0'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleCancle(item.order_sn, index)"
>
取消订单
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handlePay(item.order_sn, index)"
>
立即支付
</view>
</
template
>
<!-- 已付款 -->
<
template
v-else-if=
"item.pay_status === '2'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 1, index)"
>
申请退款
</view>
</
template
>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRemind(item.order_sn, item.order_id, index)"
>
提醒发货
</view>
</template>
<!-- 待收货 -->
<
template
v-else-if=
"item.order_status === '7'"
>
<!-- 未付款 -->
<template
v-if=
"item.pay_status === '0'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 4, index)"
>
申请退货
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRecieve(item.order_sn)"
>
确认收货
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handlePay(item.order_sn, index)"
>
立即支付
</view>
</
template
>
<!-- 已付款 -->
<
template
v-else-if=
"item.pay_status === '2'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 1, index)"
>
申请退款
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handleRecieve(item.order_sn)"
>
确认收货
</view>
</
template
>
</template>
<!-- 已收货 -->
<
template
v-else-if=
"item.order_status === '10'"
>
<!-- 未付款 -->
<template
v-if=
"item.pay_status === '0'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleBackMoney(item.order_sn, 4, index)"
>
申请退货
</view>
<view
class=
"btn ml-2 pay"
@
click.stop=
"handlePay(item.order_sn, index)"
>
立即支付
</view>
</
template
>
<!-- 已付款 -->
<
template
v-else-if=
"item.pay_status === '2'"
>
<view
class=
"btn ml-2 cancle"
@
click.stop=
"handleApplyRefund(item)"
>
申请售后
</view>
</
template
>
</template>
<!-- 退货退款审核 -->
<
template
v-else-if=
"item.order_status === '11'"
>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '111'"
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
>
撤销退款申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '112'"
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
>
撤销退款申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '113'"
@
click.stop=
"handleUndo(item.order_sn, 1, index)"
>
撤销退款申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '114'"
@
click.stop=
"handleUndo(item.order_sn, 4, index)"
>
撤销退货申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '115'"
@
click.stop=
"handleUndo(item.order_sn, 4, index)"
>
撤销退货申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '116'"
@
click.stop=
"handleUndo(item.order_sn, 2, index)"
>
撤销退款退货申请
</view>
<view
class=
"btn ml-2 cancle"
v-if=
"item.order_status_d === '117'"
@
click.stop=
"handleUndo(item.order_sn, 2, index)"
>
撤销退款退货申请
</view>
</
template
>
<!-- 退款中 -->
<
template
v-else-if=
"item.order_status === '9' && item.order_status_d === '91'"
>
<view
v-if=
"item.pay_status === '1'"
class=
"btn ml-2 cancle"
@
click.stop=
"handleAddRefund(item.order_sn)"
>
延长收款时间
</view>
<view
v-if=
"item.pay_status === '1'"
class=
"btn ml-2 pay"
@
click.stop=
"handleRefundMoney(item.order_sn)"
>
签收退款
</view>
</
template
>
</template>
</template>
</view>
</view>
</view>
</view>
</template>
</template>
...
@@ -71,6 +197,10 @@ export default {
...
@@ -71,6 +197,10 @@ export default {
item
:
{
item
:
{
type
:
Object
,
type
:
Object
,
required
:
true
required
:
true
},
otherData
:
{
// 因为订单详情的商品信息和订单管理的不一样,在订单详情,无法拿到订单商品的信息去,这个用于详情页点击申请售后, 订单管理不要填这个参数 handleApplyRefund这个方法用
type
:
Object
,
default
:
null
}
}
},
},
mixins
:
[
order_mixin
],
mixins
:
[
order_mixin
],
...
@@ -93,16 +223,20 @@ export default {
...
@@ -93,16 +223,20 @@ export default {
},
},
// 提醒发货
// 提醒发货
async
handleRemind
(
orderSn
,
orderId
,
idx
)
{
async
handleRemind
(
orderSn
,
orderId
)
{
uni
.
showLoading
()
await
this
.
orderRemind
(
orderSn
,
orderId
)
await
this
.
orderRemind
(
orderSn
,
orderId
)
uni
.
hideLoading
()
},
},
// 申请退款
// 申请退款
handleBackMoney
(
orderSn
,
type
,
idx
)
{
handleBackMoney
(
orderSn
,
type
,
idx
)
{
const
_type
=
{
1
:
'
退款
'
,
2
:
'
退货退款
'
,
3
:
'
取消订单
'
,
4
:
'
退货
'
}
this
.
$modal
({
this
.
$modal
({
content
:
'
您确定退款吗?
'
,
content
:
`您确定
${
_type
[
type
]}
吗?`
,
cb
:
()
=>
{
cb
:
()
=>
{
this
.
applyBack
(
orderSn
,
type
,
this
.
init
)
this
.
applyBack
(
orderSn
,
type
,
this
.
init
)
}
}
...
@@ -163,7 +297,7 @@ export default {
...
@@ -163,7 +297,7 @@ export default {
handleAddRefund
(
orderSn
)
{
handleAddRefund
(
orderSn
)
{
this
.
$modal
({
this
.
$modal
({
content
:
'
您确定
签收退款
吗?
'
,
content
:
'
您确定
延长收款时间
吗?
'
,
cb
:
()
=>
{
cb
:
()
=>
{
this
.
orderAddRefund
(
orderSn
,
this
.
init
)
this
.
orderAddRefund
(
orderSn
,
this
.
init
)
}
}
...
@@ -172,12 +306,30 @@ export default {
...
@@ -172,12 +306,30 @@ export default {
// 已收货申请售后
// 已收货申请售后
handleApplyRefund
(
item
)
{
handleApplyRefund
(
item
)
{
uni
.
navigateTo
({
const
otherData
=
this
.
otherData
url
:
'
/subPages/afterSales/apply
'
,
console
.
log
(
this
.
otherData
)
success
:
res
=>
{
if
(
!
otherData
)
{
res
.
eventChannel
.
emit
(
'
acceptDataFromOpenerPage
'
,
item
)
uni
.
navigateTo
({
url
:
'
/subPages/afterSales/apply
'
,
success
:
res
=>
{
res
.
eventChannel
.
emit
(
'
acceptDataFromOpenerPage
'
,
item
)
}
})
}
else
{
const
params
=
{
goods
:
otherData
.
goods
[
0
].
goods
,
sum_counts
:
otherData
.
totalCount
,
sum_amount
:
otherData
.
order
.
sum_amount
,
order_sn
:
otherData
.
order
.
order_sn
}
}
})
uni
.
navigateTo
({
url
:
'
/subPages/afterSales/apply
'
,
success
:
res
=>
{
res
.
eventChannel
.
emit
(
'
acceptDataFromOpenerPage
'
,
params
)
}
})
}
},
},
init
()
{
init
()
{
...
@@ -190,6 +342,7 @@ export default {
...
@@ -190,6 +342,7 @@ export default {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.order-info
{
.order-info
{
@include
borderBox
(
20rpx
,
30rpx
);
@include
borderBox
(
20rpx
,
30rpx
);
background-color
:
#fff
;
.primary
{
.primary
{
color
:
$primary
;
color
:
$primary
;
}
}
...
...
pages/order/confirm-order.vue
View file @
39a1415c
...
@@ -10,24 +10,23 @@
...
@@ -10,24 +10,23 @@
class=
"tab-item flex-1"
class=
"tab-item flex-1"
:class=
"current_tab === 2 ? 'tab-active' : null"
:class=
"current_tab === 2 ? 'tab-active' : null"
@
click=
"handleTab(2)"
@
click=
"handleTab(2)"
>
卖
家自提或找物流
</view>
>
买
家自提或找物流
</view>
</view>
</view>
<!-- v-show="current_tab === 1" -->
<!-- v-show="current_tab === 1" -->
<view
class=
"address"
>
<view
class=
"address"
>
<view
<view
v-if=
"
orderDetail.address.length === 0
"
v-if=
"
!orderDetail.address.address_id
"
class=
"font-32 font-bold"
class=
"font-32 font-bold"
hover-class=
"none"
@
click=
"handleAddress"
url=
"/subPages/address/index"
>
选择收货地址
</view>
>
选择收获地址
</view>
<view
class=
"flex j-between a-center w-100"
v-else
>
<view
class=
"flex j-between a-center w-100"
v-else
>
<view
class=
"flex-1"
@
click=
"handleAddress"
>
<view
class=
"flex-1"
@
click=
"handleAddress"
>
<view
class=
"mb-2"
>
<view
class=
"mb-2"
>
<text
class=
"font-32 font-bold mr-3"
>
{{
select_
address
.
consignee
}}
</text>
<text
class=
"font-32 font-bold mr-3"
>
{{
orderDetail
.
address
.
consignee
}}
</text>
<text
class=
"descColor"
>
{{
select_
address
.
mobile
}}
</text>
<text
class=
"descColor"
>
{{
orderDetail
.
address
.
mobile
}}
</text>
</view>
</view>
<view
class=
"descColor"
>
{{
select_address
.
p_cn
+
select_address
.
c_cn
+
select_address
.
d_cn
+
select_
address
.
address
}}
</view>
<view
class=
"descColor"
>
{{
orderDetail
.
address
.
p_cn
+
orderDetail
.
address
.
c_cn
+
orderDetail
.
address
.
d_cn
+
orderDetail
.
address
.
address
}}
</view>
</view>
</view>
<view
class=
"right-arrow"
/>
<view
class=
"right-arrow"
/>
</view>
</view>
...
@@ -41,7 +40,10 @@
...
@@ -41,7 +40,10 @@
</view>
</view>
<view
class=
"item"
>
<view
class=
"item"
>
<view
class=
"left"
>
自提时间
</view>
<view
class=
"left"
>
自提时间
</view>
<view>
{{
orderDetail
.
shop
.
pickup_hours
}}
</view>
<view
v-if=
"orderDetail.shop"
>
<text
class=
"mr-2"
>
{{
orderDetail
.
shop
.
pickup_start_day
|
parseWeek
}}
至
{{
orderDetail
.
shop
.
pickup_end_day
|
parseWeek
}}
</text>
<text>
{{
orderDetail
.
shop
.
pickup_hours
}}
</text>
</view>
</view>
</view>
<view
class=
"item"
>
<view
class=
"item"
>
<view
class=
"left"
>
联系电话
</view>
<view
class=
"left"
>
联系电话
</view>
...
@@ -67,24 +69,33 @@
...
@@ -67,24 +69,33 @@
:key=
"idx"
:key=
"idx"
>
>
<view
class=
"mt-2 mb-2"
>
规格:
{{
sku
.
specification
}}
</view>
<view
class=
"mt-2 mb-2"
>
规格:
{{
sku
.
specification
}}
</view>
<view
class=
"mb-2"
>
单价:
{{
sku
.
cart_price
+
'
/
'
+
sku
.
unit
}}
</view>
<view
class=
"mb-2"
>
单价:
{{
sku
.
is_inquiry
===
1
?
'
--
'
:
sku
.
cart_price
+
'
/
'
+
sku
.
unit
}}
</view>
<view
class=
"flex j-between a-center"
>
<view
class=
"flex j-between a-center"
>
<text>
数量:
{{
sku
.
cart_number
}}
</text>
<text>
数量:
{{
sku
.
cart_number
}}
</text>
<text>
小计:
<text
class=
"primaryColor"
>
{{
sku
.
is_inquiry
===
'
1
'
?
'
待确认
'
:
sku
.
cart_subtotal
}}
</text></text>
<text>
小计:
<text
class=
"primaryColor"
>
¥
{{
sku
.
is_inquiry
===
'
1
'
?
'
—
'
:
sku
.
cart_subtotal
}}
</text></text>
</view>
</view>
</view>
</view>
</block>
</block>
</view>
</view>
<view
class=
"wrap flex j-end a-center"
>
<template
v-if=
"judge.showTotal(orderDetail.shop.cartList2)"
>
共
<text
class=
"primaryColor"
>
{{
orderDetail
.
total_counts
||
0
}}
</text><text
class=
"mr-2"
>
件
</text>
合计:
<text
class=
"primaryColor"
>
¥
{{
orderDetail
.
sum_amount
||
0
}}
</text>
</
template
>
<
template
v-else
>
共
<text
class=
"primaryColor"
>
N
</text><text
class=
"mr-2"
>
件
</text>
合计:
<text
class=
"primaryColor"
>
¥-
</text>
</
template
>
</view>
<view
class=
"pay-info mb-2"
>
<view
class=
"pay-info mb-2"
>
<view
class=
"item py-
2
"
@
click=
"handleConcact"
>
<view
class=
"item py-
3
"
@
click=
"handleConcact"
>
<view
class=
"item-left"
>
开具发票
</view>
<view
class=
"item-left"
>
开具发票
</view>
<view
class=
"item-right flex-1"
>
<view
class=
"item-right flex-1"
>
<text
class=
"mr-2"
>
联系老板
</text>
<text
class=
"mr-2"
>
联系老板
</text>
<icon
class=
"right-arrow"
></icon>
<icon
class=
"right-arrow"
></icon>
</view>
</view>
</view>
</view>
<view
class=
"item py-
2
"
>
<view
class=
"item py-
3
"
>
<view
class=
"item-left"
>
买家留言
</view>
<view
class=
"item-left"
>
买家留言
</view>
<view
class=
"item-right flex-1"
>
<view
class=
"item-right flex-1"
>
<input
<input
...
@@ -95,13 +106,13 @@
...
@@ -95,13 +106,13 @@
/>
/>
</view>
</view>
</view>
</view>
<view
class=
"py-2"
>
<view>
<view
class=
"
pb-2
"
>
选择支付方式
</view>
<view
class=
"
mt-3
"
>
选择支付方式
</view>
<view
class=
"pay-item p
b-2
"
@
click=
"handlePayWay(form.goods_before_pay)"
>
<view
class=
"pay-item p
t-3
"
@
click=
"handlePayWay(form.goods_before_pay)"
>
<view>
在线支付
</view>
<view>
在线支付
</view>
<view
:class=
"!form.goods_before_pay ? 'select' : 'unselect'"
></view>
<view
:class=
"!form.goods_before_pay ? 'select' : 'unselect'"
></view>
</view>
</view>
<view
class=
"pay-item"
@
click=
"handlePayWay(form.goods_before_pay)"
>
<view
class=
"pay-item
py-3
"
@
click=
"handlePayWay(form.goods_before_pay)"
>
<view>
先货后款
</view>
<view>
先货后款
</view>
<view
:class=
"form.goods_before_pay ? 'select' : 'unselect'"
></view>
<view
:class=
"form.goods_before_pay ? 'select' : 'unselect'"
></view>
</view>
</view>
...
@@ -110,37 +121,17 @@
...
@@ -110,37 +121,17 @@
<view
class=
"w-100 flex j-end a-center confirm"
>
<view
class=
"w-100 flex j-end a-center confirm"
>
<text
class=
"font-24"
>
不含运费
</text>
<text
class=
"font-24"
>
不含运费
</text>
<text
class=
"total-price mx-4"
>
合计:
<text
class=
"total-price mx-4"
>
合计:
¥
<
template
v-if=
"judge.showTotal(orderDetail.shop.cartList2)"
>
<
template
v-if=
"judge.showTotal(orderDetail.shop.cartList2)"
>
<text>
{{
orderDetail
.
sum_amount
}}
</text>
<text>
{{
orderDetail
.
sum_amount
}}
</text>
</
template
>
</
template
>
<
template
v-else
>
<
template
v-else
>
<text>
待确认
</text>
<text>
—
</text>
</
template
>
</
template
>
</text>
</text>
<view
class=
"confirm-btn mr-2"
@
click=
"handleConfirm"
>
提交订单
</view>
<view
class=
"confirm-btn mr-2"
@
click=
"handleConfirm"
>
提交订单
</view>
</view>
</view>
<uni-popup
ref=
"popup"
type=
"center"
>
<scroll-view
scroll-y
class=
"address-popup"
v
>
<view
class=
"flex j-between a-center item w-100 py-2"
v-for=
"item in orderDetail.address"
:key=
"item.address_id"
@
click=
"handleAddressItem(item)"
>
<view
class=
"flex-1"
>
<view
class=
"mb-2"
>
<text
class=
"font-32 font-bold mr-3"
>
{{item.consignee}}
</text>
<text
class=
"descColor"
>
{{item.mobile}}
</text>
</view>
<view
class=
"descColor"
>
{{item.p_cn + item.c_cn + item.d_cn + item.address}}
</view>
</view>
<view
class=
"right-arrow"
/>
</view>
</scroll-view>
</uni-popup>
</view>
</view>
</template>
</template>
...
@@ -167,6 +158,7 @@ import { baseUrl } from '@/config/index.js'
...
@@ -167,6 +158,7 @@ import { baseUrl } from '@/config/index.js'
import
Validator
from
'
@/utils/validate.js
'
import
Validator
from
'
@/utils/validate.js
'
import
createOrder
from
'
@/utils/modules/pay.js
'
import
createOrder
from
'
@/utils/modules/pay.js
'
import
{
mapState
}
from
'
vuex
'
import
{
mapState
}
from
'
vuex
'
import
{
weeks
}
from
'
@/config/global.js
'
let
params
=
null
let
params
=
null
export
default
{
export
default
{
...
@@ -175,7 +167,6 @@ export default {
...
@@ -175,7 +167,6 @@ export default {
baseUrl
,
baseUrl
,
current_tab
:
1
,
current_tab
:
1
,
orderDetail
:
{},
orderDetail
:
{},
select_address
:
{},
form
:
{
form
:
{
from
:
6
,
// 来源:6专属小程序
from
:
6
,
// 来源:6专属小程序
buy_type
:
0
,
//购买类型:0默认加入购物车 1立即购买
buy_type
:
0
,
//购买类型:0默认加入购物车 1立即购买
...
@@ -192,7 +183,15 @@ export default {
...
@@ -192,7 +183,15 @@ export default {
onLoad
(
options
)
{
onLoad
(
options
)
{
params
=
JSON
.
parse
(
decodeURIComponent
(
options
.
params
))
params
=
JSON
.
parse
(
decodeURIComponent
(
options
.
params
))
this
.
getPreOrderData
(
params
)
this
.
form
=
Object
.
assign
(
this
.
form
,
params
)
this
.
form
=
Object
.
assign
(
this
.
form
,
params
)
uni
.
$on
(
'
getAddress
'
,
data
=>
{
this
.
$set
(
this
.
orderDetail
,
'
address
'
,
data
)
this
.
form
.
address_id
=
data
.
address_id
})
this
.
$once
(
'
hook:beforeDestroy
'
,
()
=>
{
uni
.
$off
(
'
getAddress
'
)
})
},
},
computed
:
{
computed
:
{
...
@@ -201,13 +200,20 @@ export default {
...
@@ -201,13 +200,20 @@ export default {
})
})
},
},
onShow
()
{
filters
:
{
if
(
params
)
{
parseWeek
(
key
)
{
this
.
getPreOrderData
(
params
)
console
.
log
(
key
)
}
if
(
!
key
)
return
''
return
weeks
[
key
]
||
''
},
},
},
// onShow() {
// if(params) {
// this.getPreOrderData(params)
// }
// },
methods
:
{
methods
:
{
handleTab
(
idx
)
{
handleTab
(
idx
)
{
if
(
idx
===
this
.
current_tab
)
return
if
(
idx
===
this
.
current_tab
)
return
...
@@ -225,12 +231,7 @@ export default {
...
@@ -225,12 +231,7 @@ export default {
const
{
status
,
data
}
=
await
preConfirmOrderData
(
params
)
const
{
status
,
data
}
=
await
preConfirmOrderData
(
params
)
if
(
status
)
{
if
(
status
)
{
this
.
orderDetail
=
data
this
.
orderDetail
=
data
// 如果有默认地址,那么默认选中地址,如果没有默认地址,那么就选择第一个为选中地址
this
.
form
.
address_id
=
data
.
address
.
address_id
||
''
// find可能会在ios系统低版本出问题
const
defaultAddress
=
data
.
address
.
find
(
item
=>
item
.
is_default
===
'
1
'
)
const
select_address
=
defaultAddress
?
defaultAddress
:
data
.
address
[
0
]
this
.
form
.
address_id
=
select_address
.
address_id
||
''
this
.
select_address
=
select_address
}
else
{
}
else
{
uni
.
navigateBack
()
uni
.
navigateBack
()
}
}
...
@@ -261,13 +262,13 @@ export default {
...
@@ -261,13 +262,13 @@ export default {
}
}
})
})
}
else
{
}
else
{
console
.
log
(
good_list
[
i
].
list
)
for
(
let
h
=
0
,
k
=
good_list
[
i
].
list
.
length
;
h
<
k
;
h
++
)
{
for
(
let
h
=
0
,
k
=
good_list
[
i
].
list
.
length
;
h
<
k
;
h
++
)
{
if
(
good_list
[
i
].
list
[
h
].
need_check
===
'
1
'
)
{
if
(
good_list
[
i
].
list
[
h
].
need_check
===
'
1
'
)
{
return
this
.
$modal
({
return
this
.
$modal
({
title
:
'
提示
'
,
title
:
'
提示
'
,
content
:
'
订单包含需要审核商品,需商户确认下单,是否继续下单?
'
,
content
:
'
订单包含需要审核商品,需商户确认下单,是否继续下单?
'
,
success
:
()
=>
{
cb
:
()
=>
{
console
.
log
(
'
111111111
'
)
this
.
confirm2Order
(
form
,
()
=>
{
this
.
confirm2Order
(
form
,
()
=>
{
uni
.
redirectTo
({
uni
.
redirectTo
({
url
:
'
/pages/order/order-list
'
url
:
'
/pages/order/order-list
'
...
@@ -287,10 +288,20 @@ export default {
...
@@ -287,10 +288,20 @@ export default {
})
})
}
}
})
})
}
else
if
(
this
.
form
.
goods_before_pay
===
1
)
{
return
this
.
$modal
({
title
:
'
提示
'
,
content
:
'
订单包含先货后款商品,需商户确认下单,是否继续下单?
'
,
cb
:
()
=>
{
this
.
confirm2Order
(
form
,
()
=>
{
uni
.
redirectTo
({
url
:
'
/pages/order/order-list
'
})
})
}
})
}
else
{
}
else
{
return
this
.
confirm2Order
(
form
,
async
order_sn
=>
{
return
this
.
confirm2Order
(
form
,
async
order_sn
=>
{
console
.
log
(
'
==============================
'
)
console
.
log
(
order_sn
)
if
(
!
order_sn
)
return
this
.
$toast
({
title
:
'
下单失败,订单编号不能未空
'
})
if
(
!
order_sn
)
return
this
.
$toast
({
title
:
'
下单失败,订单编号不能未空
'
})
createOrder
({
createOrder
({
order_sn
,
order_sn
,
...
@@ -345,14 +356,10 @@ export default {
...
@@ -345,14 +356,10 @@ export default {
// 更换地址
// 更换地址
handleAddress
()
{
handleAddress
()
{
this
.
$refs
.
popup
.
open
()
uni
.
navigateTo
({
},
url
:
`/subPages/address/index?navType=
${
false
}
`
})
// 选择弹窗的地址
// this.$refs.popup.open()
handleAddressItem
(
item
)
{
this
.
select_address
=
item
this
.
form
.
address_id
=
item
.
address_id
this
.
$refs
.
popup
.
close
()
},
},
// 支付方式
// 支付方式
...
@@ -362,6 +369,8 @@ export default {
...
@@ -362,6 +369,8 @@ export default {
async
confirm2Order
(
form
,
cb
)
{
async
confirm2Order
(
form
,
cb
)
{
try
{
try
{
console
.
log
(
'
===============
'
)
console
.
log
(
form
)
const
{
status
,
data
}
=
await
confirmOrder
(
form
)
const
{
status
,
data
}
=
await
confirmOrder
(
form
)
if
(
status
)
{
if
(
status
)
{
cb
&&
typeof
cb
===
'
function
'
&&
cb
(
data
.
order_sn
)
cb
&&
typeof
cb
===
'
function
'
&&
cb
(
data
.
order_sn
)
...
@@ -447,22 +456,30 @@ export default {
...
@@ -447,22 +456,30 @@ export default {
}
}
}
}
.address-popup
{
.wrap
{
@include
borderBox
(
20rpx
,
20rpx
);
box-sizing
:
border-box
;
width
:
700rpx
;
width
:
690rpx
;
height
:
700rpx
;
padding
:
24rpx
30rpx
;
margin
:
20rpx
auto
;
background-color
:
#fff
;
background-color
:
#fff
;
border-radius
:
10rpx
;
.item
{
border-bottom
:
1rpx
solid
$line
;
.right-arrow
{
flex
:
0
0
16rpx
;
margin-left
:
10rpx
;
@include
right_arrow
(
16rpx
,
34rpx
);
}
}
}
}
// .address-popup {
// @include borderBox(20rpx, 20rpx);
// width: 700rpx;
// height: 700rpx;
// background-color: #fff;
// border-radius: 10rpx;
// .item {
// border-bottom: 1rpx solid $line;
// .right-arrow {
// flex: 0 0 16rpx;
// margin-left: 10rpx;
// @include right_arrow(16rpx, 34rpx);
// }
// }
// }
.address-store
{
.address-store
{
@include
borderBox
(
0
,
20rpx
);
@include
borderBox
(
0
,
20rpx
);
width
:
690rpx
;
width
:
690rpx
;
...
...
pages/order/order-detail.vue
View file @
39a1415c
<
template
>
<
template
>
<view
class=
"wrapper"
>
<view
class=
"wrapper"
>
<view
class=
"order-status w-100"
>
<view
class=
"order-status w-100"
v-if=
'order_detail.order.order_status_d'
>
{{
order_detail
.
order
.
order_status
|
o
rderStatus
}}
{{
'
os
'
+
order_detail
.
order
.
order_status
+
'
_osd
'
+
order_detail
.
order
.
order_status_d
|
cO
rderStatus
}}
</view>
</view>
<view
class=
"goods w-100"
>
<view
class=
"goods w-100"
>
...
@@ -18,48 +18,67 @@
...
@@ -18,48 +18,67 @@
/>
/>
<view
class=
"title flex-1"
>
{{
item
.
goods_name
}}
</view>
<view
class=
"title flex-1"
>
{{
item
.
goods_name
}}
</view>
</view>
</view>
<block
<view
v-for=
"(s, sidx) in item.list"
class=
"sku-item"
v-for=
"(s, sidx) in item.goods"
:key=
"sidx"
:key=
"sidx"
>
>
<view
class=
"mt-2"
>
规格:
{{
s
.
goods_attr
}}
</view>
<view
class=
"mt-2"
>
{{
s
.
goods_attr
}}
</view>
<view
class=
"mt-2"
>
单价:
{{
s
.
goods_price
}}
</view>
<view
class=
"mt-2"
>
单价:
¥
{{
s
.
goods_price
+
'
/
'
+
s
.
goods_unit
}}
</view>
<view
class=
"mt-2 flex j-between a-center"
>
<view
class=
"mt-2 flex j-between a-center"
>
<text>
数量:
{{
s
.
cart_number
}}
</text>
<text>
数量:
{{
s
.
cart_number
}}
</text>
<text
class=
"primary"
>
小计:¥
{{
s
.
amount
}}
</text>
<text
class=
"primary"
>
小计:¥
{{
s
.
amount
}}
</text>
</view>
</view>
</
block
>
</
view
>
</view>
</view>
</block>
</block>
</view>
</view>
<view
class=
"wrap mt-2 flex j-end a-center"
>
<view
class=
"wrap mt-2 flex j-end a-center"
>
合计:
<text
class=
"primary"
>
{{
order_detail
.
totalCount
||
0
}}
</text><text
class=
"mr-2"
>
件
</text>
合计:
<text
class=
"primary"
>
¥
{{
order_detail
.
order
.
sum_amount
||
0
}}
</text>
共
<text
class=
"primary"
>
{{
order_detail
.
totalCount
||
0
}}
</text><text
class=
"mr-2"
>
件
</text>
合计:
<text
class=
"primary"
>
¥
{{
order_detail
.
order
.
sum_amount
||
0
}}
</text>
</view>
</view>
<view
class=
"mt-2 box"
v-if=
"order_detail.order.shipping_type === '1'"
>
<view
class=
"mt-2 box"
v-if=
"order_detail.order.shipping_type === '1'"
>
<view>
商家派送: 商家自行派送
<text
class=
"primary ml-1"
@
click=
"makePhoneCall()"
>
联系商家
</text></view>
<view
class=
"mt-2"
>
配送方式: 商家配送
<text
class=
"primary ml-1"
@
click=
"makePhoneCall()"
>
联系商家
</text></view>
<view
class=
"mt-2"
>
派送地址:
{{
order_detail
.
order
.
address_json
.
address1
+
order_detail
.
order
.
address_json
.
address2
}}
</view>
<view
class=
"item mt-2 w-100 flex j-start a-start"
>
<view
class=
"mt-2"
>
<view
class=
"hd"
>
配送地址:
</view>
<text
class=
"mr-2"
>
{{
order_detail
.
order
.
address_json
.
consignee
}}
</text>
<view
class=
"flex-1 flex flex-column j-start a-start"
>
<text>
{{
order_detail
.
order
.
address_json
.
mobile
}}
</text>
<text
class=
"mb-2"
>
{{
order_detail
.
order
.
address_json
.
address1
+
order_detail
.
order
.
address_json
.
address2
}}
</text>
<view>
<text
class=
"mr-2"
>
{{
order_detail
.
order
.
address_json
.
consignee
}}
</text>
<text>
{{
order_detail
.
order
.
address_json
.
mobile
}}
</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view
class=
"mt-2 box"
v-else
>
<view
class=
"mt-2 box"
v-else
>
<view>
商家派送: 买家自提
<text
class=
"primary ml-1"
@
click=
"makePhoneCall()"
>
联系商家
</text></view>
<view>
配送方式: 买家自提
<text
class=
"primary ml-1"
@
click=
"makePhoneCall()"
>
联系商家
</text></view>
<view
class=
"mt-2"
>
派送地址:
{{
order_detail
.
order
.
pickup_address
}}
</view>
<view
class=
"item mt-2 w-100 flex j-start a-start"
>
<view
class=
"mt-2"
>
<view
class=
"hd"
>
自提地址:
</view>
<text
class=
"mr-2"
>
店铺名称:
</text>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
shop_name
}}
</text>
<text>
{{
order_detail
.
order
.
pickup_address
}}
</text>
</view>
</view>
<view
class=
"item mt-2 w-100 flex j-start a-start"
>
<view
class=
"hd"
>
自提时间:
</view>
<view
class=
"flex-1"
>
<text
class=
"mr-2"
>
{{
order_detail
.
order
.
pickup_start_day
|
parseWeek
}}
至
{{
order_detail
.
order
.
pickup_end_day
|
parseWeek
}}
</text>
<text>
{{
order_detail
.
order
.
pickup_hours
}}
</text>
</view>
</view>
</view>
<view
class=
"mt-2"
>
<view
class=
"item mt-2 w-100 flex j-start a-start"
>
<text
class=
"mr-2"
>
自提时间:
</text>
<view
class=
"hd"
>
联系电话:
</view>
<text>
{{
order_detail
.
order
.
pickup_hours
}}
</text>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
shop_tel
}}
</text>
</view>
</view>
</view>
</view>
</view>
<
view
class=
"wrap mt-2"
>
发票: 发票信息参数(文字/图片等)
</view
>
<
!--
<view
class=
"wrap mt-2"
>
发票: 发票信息参数(文字/图片等)
</view>
--
>
<view
class=
"mt-2 box"
>
<view
class=
"mt-2 box"
>
<view
class=
"item w-100 flex j-start a-center"
>
<view
class=
"item w-100 flex j-start a-center"
>
...
@@ -69,26 +88,57 @@
...
@@ -69,26 +88,57 @@
<text
class=
"primary"
@
click=
"copyOrderSn"
>
复制
</text>
<text
class=
"primary"
@
click=
"copyOrderSn"
>
复制
</text>
</view>
</view>
</view>
</view>
<view
class=
"item w-100 flex j-start a-center"
>
<view
class=
"item
mt-2
w-100 flex j-start a-center"
>
<view
class=
"hd"
>
创建时间:
</view>
<view
class=
"hd"
>
创建时间:
</view>
<view
class=
"flex-1"
>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
add_time
|
parseTime
}}
</text>
<text>
{{
order_detail
.
order
.
add_time
|
parseTime
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"item mt-2 w-100 flex j-start a-center"
>
<view
class=
"hd"
>
先货后款:
</view>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
goods_before_pay
===
'
0
'
?
'
否
'
:
'
是
'
}}
</text>
</view>
</view>
<view
class=
"item mt-2 w-100 flex j-start a-center"
>
<view
class=
"hd"
>
付款时间:
</view>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
pay_time
|
parseTime
}}
</text>
</view>
</view>
<view
class=
"item mt-2 w-100 flex j-start a-center"
>
<view
class=
"hd"
>
发货时间:
</view>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
shipping_time
|
parseTime
}}
</text>
</view>
</view>
<view
class=
"item mt-2 w-100 flex j-start a-center"
>
<view
class=
"hd"
>
支付方式:
</view>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
pay_type
|
payType
}}
</text>
</view>
</view>
<view
class=
"item mt-2 w-100 flex j-start a-center"
>
<view
class=
"hd"
>
买家留言:
</view>
<view
class=
"flex-1"
>
<text>
{{
order_detail
.
order
.
postscript
||
'
——
'
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"mt-2 flex j-end a-center"
>
<view
class=
"btn-wrap mt-2 flex j-end a-center"
v-if=
"!['0', '2', '5'].includes(order_detail.order.order_status)"
>
<order-btn
:item=
"order_detail.order"
@
changeData=
'changeData'
>
<order-btn
:item=
"order_detail.order"
:otherData=
"order_detail"
@
changeData=
'changeData'
>
<countdown-t
<template
v-if=
"data.order.countdownT.goods_before_pay === '0' && data.order.countdownT.countdownT > 0"
>
slot=
"time"
<countdown-t
v-if=
"order_detail.order.goods_before_pay === '0' && order_detail.order.countdownT > 0"
slot=
"time"
:countdownNum=
"order_detail.order.countdownT"
:countdownNum=
"order_detail.order.countdownT"
:pauseTimer=
"pauseTimer"
:pauseTimer=
"pauseTimer"
:params=
"
{
:params=
"
{
index
index
}"
}"
@timerEnd="timerEnd"
@timerEnd="timerEnd"
/>
/>
</
template
>
</order-btn>
</order-btn>
</view>
</view>
...
@@ -101,19 +151,11 @@ import countdownT from './components/countdownT.vue'
...
@@ -101,19 +151,11 @@ import countdownT from './components/countdownT.vue'
import
{
orderDetail
}
from
'
@/apis/order.js
'
import
{
orderDetail
}
from
'
@/apis/order.js
'
import
{
makePhoneCall
}
from
'
@/utils/common.js
'
import
{
makePhoneCall
}
from
'
@/utils/common.js
'
import
{
baseUrl
}
from
'
@/config/index.js
'
import
{
baseUrl
}
from
'
@/config/index.js
'
import
order_status
from
'
@/mixins/order_status.js
'
import
{
pay_type
}
from
'
@/config/global.js
'
import
{
weeks
}
from
'
@/config/global.js
'
let
order_sn
=
null
let
order_sn
=
null
const
order_statsu
=
{
'
0
'
:
'
待接单
'
,
'
1
'
:
'
待付款
'
,
'
2
'
:
'
交易关闭
'
,
'
5
'
:
'
交易完成
'
,
'
6
'
:
'
待发货
'
,
'
7
'
:
'
待收货
'
,
'
9
'
:
'
退货退款中
'
,
'
10
'
:
'
已收货
'
,
'
11
'
:
'
退款退货审核
'
}
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -125,7 +167,7 @@ export default {
...
@@ -125,7 +167,7 @@ export default {
}
}
}
}
},
},
mixins
:
[
order_status
],
components
:
{
components
:
{
countdownT
,
countdownT
,
orderBtn
orderBtn
...
@@ -137,9 +179,12 @@ export default {
...
@@ -137,9 +179,12 @@ export default {
},
},
filters
:
{
filters
:
{
orderStatus
(
val
)
{
payType
(
key
)
{
console
.
log
(
val
)
console
.
log
(
key
)
return
order_statsu
[
val
]
||
''
return
pay_type
[
key
]
||
''
},
parseWeek
(
key
)
{
return
weeks
[
key
]
}
}
},
},
...
@@ -156,7 +201,7 @@ export default {
...
@@ -156,7 +201,7 @@ export default {
if
(
status
)
{
if
(
status
)
{
if
(
data
.
order
.
order_status
===
'
1
'
)
{
if
(
data
.
order
.
order_status
===
'
1
'
)
{
// item.pay_endTime = item.confirm_time === '0' ? 0 : ~~item.confirm_time + 3600
// item.pay_endTime = item.confirm_time === '0' ? 0 : ~~item.confirm_time + 3600
data
.
order
.
countdownT
=
~~
data
.
order
.
confirm_time
+
3600
-
data
.
order
.
confirm_
time
data
.
order
.
countdownT
=
~~
data
.
order
.
confirm_time
+
3600
-
data
.
time
// item.last_payTime = ''
// item.last_payTime = ''
}
else
{
}
else
{
data
.
order
.
countdownT
=
0
data
.
order
.
countdownT
=
0
...
@@ -166,7 +211,7 @@ export default {
...
@@ -166,7 +211,7 @@ export default {
goods
:
data
.
goods2
||
[],
goods
:
data
.
goods2
||
[],
order
:
data
.
order
||
{},
order
:
data
.
order
||
{},
totalCount
:
data
.
goods2
.
reduce
((
pre
,
cur
)
=>
{
totalCount
:
data
.
goods2
.
reduce
((
pre
,
cur
)
=>
{
return
pre
+
cur
.
list
.
reduce
((
p
,
c
)
=>
{
return
pre
+
cur
.
goods
.
reduce
((
p
,
c
)
=>
{
return
p
+
~~
c
.
cart_number
return
p
+
~~
c
.
cart_number
},
0
)
},
0
)
},
0
)
},
0
)
...
@@ -217,6 +262,14 @@ export default {
...
@@ -217,6 +262,14 @@ export default {
height
:
160rpx
;
height
:
160rpx
;
margin-right
:
20rpx
;
margin-right
:
20rpx
;
}
}
.sku-item
{
padding-bottom
:
20rpx
;
border-bottom
:
1rpx
solid
$line
;
&
:last-child
{
padding-bottom
:
0
;
border-bottom
:
none
;
}
}
}
}
}
}
...
@@ -233,10 +286,7 @@ export default {
...
@@ -233,10 +286,7 @@ export default {
@include
borderBox
(
20rpx
,
30rpx
);
@include
borderBox
(
20rpx
,
30rpx
);
background-color
:
#fff
;
background-color
:
#fff
;
.item
{
.item
{
margin-bottom
:
20rpx
;
&
:last-child
{
border-bottom
:
none
;
}
.hd
{
.hd
{
flex
:
0
0
140rpx
;
flex
:
0
0
140rpx
;
}
}
...
...
pages/order/order-list.vue
View file @
39a1415c
...
@@ -36,8 +36,8 @@
...
@@ -36,8 +36,8 @@
:key=
"item.order_sn"
:key=
"item.order_sn"
>
>
<view
class=
"w-100 item-inner"
>
<view
class=
"w-100 item-inner"
>
<view>
orderStatus==
{{
item
.
order_status
}}
————orderStatusD==
{{
item
.
order_status_d
}}
</view>
<
!--
<
view>
orderStatus==
{{
item
.
order_status
}}
————orderStatusD==
{{
item
.
order_status_d
}}
</view>
<view>
{{
item
.
order_sn
}}
</view>
<view>
{{
item
.
order_sn
}}
</view>
-->
<view
class=
"flex j-between a-center"
>
<view
class=
"flex j-between a-center"
>
<text
class=
"order-item"
>
{{
item
.
add_time
|
parseTime
}}
</text>
<text
class=
"order-item"
>
{{
item
.
add_time
|
parseTime
}}
</text>
<!--
<text
class=
"order-status"
>
{{
item
.
order_status
|
orderStatus
(
item
.
goods_before_pay
)
}}
</text>
-->
<!--
<text
class=
"order-status"
>
{{
item
.
order_status
|
orderStatus
(
item
.
goods_before_pay
)
}}
</text>
-->
...
@@ -45,7 +45,7 @@
...
@@ -45,7 +45,7 @@
<text
v-else
class=
"order-status"
>
{{
'
os
'
+
item
.
order_status
+
'
_osd
'
+
item
.
order_status_d
|
cOrderStatus
}}
</text>
<text
v-else
class=
"order-status"
>
{{
'
os
'
+
item
.
order_status
+
'
_osd
'
+
item
.
order_status_d
|
cOrderStatus
}}
</text>
</view>
</view>
<view
<view
class=
"w-100 mb-2"
class=
"w-100 mb-2
sku-item
"
v-for=
"(good, idx) in item.goods"
v-for=
"(good, idx) in item.goods"
:key=
"idx"
:key=
"idx"
>
>
...
@@ -57,7 +57,10 @@
...
@@ -57,7 +57,10 @@
/>
/>
<view
class=
"goods-info flex-1 flex j-between flex-column"
>
<view
class=
"goods-info flex-1 flex j-between flex-column"
>
<view
class=
"title"
>
{{
good
.
goods_name
}}
</view>
<view
class=
"title"
>
{{
good
.
goods_name
}}
</view>
<view
class=
"desc"
>
{{
good
.
specification
}}
</view>
<view
class=
"desc flex j-between a-center font-24"
>
<text>
{{
good
.
specification
}}
</text>
<text
class=
"primaryColor"
v-if=
"['212', '213', '214'].includes(item.order_status_d)"
>
{{
item
.
order_status_d
|
showTKStatus
}}
</text>
</view>
<view
class=
"w-100 flex j-between a-center"
>
<view
class=
"w-100 flex j-between a-center"
>
<text
class=
"price"
>
¥
{{
good
.
goods_price
}}
</text>
<text
class=
"price"
>
¥
{{
good
.
goods_price
}}
</text>
<text
class=
"desc"
>
x
{{
good
.
cart_number
}}
</text>
<text
class=
"desc"
>
x
{{
good
.
cart_number
}}
</text>
...
@@ -71,7 +74,7 @@
...
@@ -71,7 +74,7 @@
<order-btn
:item=
"item"
@
changeData=
'changeData'
>
<order-btn
:item=
"item"
@
changeData=
'changeData'
>
<view
class=
"w-100 flex j-end a-center mb-2"
slot=
"total"
>
<view
class=
"w-100 flex j-end a-center mb-2"
slot=
"total"
>
<text
class=
"mr-2"
>
共
<text
class=
"primary"
>
{{
item
.
sum_counts
}}
</text>
件
</text>
<text
class=
"mr-2"
>
共
<text
class=
"primary"
>
{{
item
.
sum_counts
}}
</text>
件
</text>
<text
class=
"primary"
>
¥
{{
item
.
sum_amount
}}
</text>
<text
class=
"primary"
>
合计:
¥
{{
item
.
sum_amount
}}
</text>
</view>
</view>
<countdown-t
<countdown-t
slot=
"time"
slot=
"time"
...
@@ -108,6 +111,12 @@ const formParams = {
...
@@ -108,6 +111,12 @@ const formParams = {
let
timer
=
null
let
timer
=
null
let
serviceTime
=
0
let
serviceTime
=
0
const
order_statusD
=
{
212
:
'
退款成功
'
,
213
:
'
退货成功
'
,
214
:
'
退款退货成功
'
}
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -137,7 +146,7 @@ export default {
...
@@ -137,7 +146,7 @@ export default {
},
},
{
{
status
:
5
,
status
:
5
,
name
:
'
退
货退款
'
,
name
:
'
退
款退货
'
,
data
:
[]
data
:
[]
},
},
{
{
...
@@ -159,8 +168,13 @@ export default {
...
@@ -159,8 +168,13 @@ export default {
this
.
loadMore
=
new
LoadMore
()
this
.
loadMore
=
new
LoadMore
()
},
},
mixins
:
[
order_mixin
],
mixins
:
[
order_mixin
],
filters
:
{
// 单独显示退款状态
showTKStatus
(
val
)
{
return
order_statusD
[
val
]
||
''
}
},
onLoad
(
options
)
{
onLoad
(
options
)
{
console
.
log
(
options
)
const
{
id
}
=
options
const
{
id
}
=
options
this
.
current_tab
=
Number
(
id
)
||
0
this
.
current_tab
=
Number
(
id
)
||
0
},
},
...
@@ -187,7 +201,6 @@ export default {
...
@@ -187,7 +201,6 @@ export default {
const
idx
=
this
.
current_tab
const
idx
=
this
.
current_tab
formParams
.
status
=
tab_list
[
idx
].
status
formParams
.
status
=
tab_list
[
idx
].
status
const
{
status
,
data
,
time
}
=
await
this
.
loadMore
.
getList
(
formParams
,
orderList
)
const
{
status
,
data
,
time
}
=
await
this
.
loadMore
.
getList
(
formParams
,
orderList
)
console
.
log
(
data
,
time
)
if
(
status
&&
data
)
{
if
(
status
&&
data
)
{
// 计算总数
// 计算总数
data
.
forEach
(
item
=>
{
data
.
forEach
(
item
=>
{
...
@@ -203,7 +216,6 @@ export default {
...
@@ -203,7 +216,6 @@ export default {
})
})
serviceTime
=
time
serviceTime
=
time
this
.
tab_list
[
idx
].
data
.
push
(...
data
)
this
.
tab_list
[
idx
].
data
.
push
(...
data
)
// this.runTimer()
}
}
},
},
...
@@ -218,106 +230,9 @@ export default {
...
@@ -218,106 +230,9 @@ export default {
this
.
$set
(
tab_list
[
current_tab
].
data
[
index
],
'
countdownT
'
,
0
)
this
.
$set
(
tab_list
[
current_tab
].
data
[
index
],
'
countdownT
'
,
0
)
},
},
// // 取消订单
// handleCancle(orderSn, idx) {
// this.$modal({
// content: '您确定取消该订单吗?',
// cb: () => {
// this.orderCancel(orderSn, this.init)
// }
// })
// },
// // 提醒发货
// async handleRemind(orderSn, orderId, idx) {
// uni.showLoading()
// await this.orderRemind(orderSn, orderId)
// uni.hideLoading()
// },
// // 申请退款
// handleBackMoney(orderSn, type, idx) {
// this.$modal({
// content: '您确定退款吗?',
// cb: () => {
// this.applyBack(orderSn, type, this.init)
// }
// })
// },
// // 支付
// handlePay(orderSn, idx) {
// this.orderPay(orderSn, this.init)
// },
// // 撤销
// handleUndo(orderSn, type, idx) {
// const cancle_type = {
// 1: {
// text: '退款',
// nextCode: '91'
// },
// 2: {
// text: '退货退款',
// nextCode: '92'
// },
// 3: {
// text: '取消订单',
// nextCode: '0' // ?、?
// },
// 4: {
// text: '退货',
// nextCode: '93'
// }
// }
// this.$modal({
// content: `您确定撤销${cancle_type[type].text}吗?`,
// cb: () => {
// this.orderUndo(orderSn, type, this.init)
// }
// })
// },
// // 确认收货
// handleRecieve(orderSn) {
// this.$modal({
// content: '您确定收货吗?',
// cb: () => {
// this.orderRecieve(orderSn, this.init)
// }
// })
// },
// handleRefundMoney(orderSn) {
// this.$modal({
// content: '您确定签收退款吗?',
// cb: () => {
// this.orderRefund(orderSn, this.init)
// }
// })
// },
// handleAddRefund(orderSn) {
// this.$modal({
// content: '您确定签收退款吗?',
// cb: () => {
// this.orderAddRefund(orderSn, this.init)
// }
// })
// },
// // 已收货申请售后
// handleApplyRefund(item) {
// uni.navigateTo({
// url: '/subPages/afterSales/apply',
// success: res => {
// res.eventChannel.emit('acceptDataFromOpenerPage', item)
// }
// })
// },
// 下拉刷新
// 下拉刷新
refresh
(
e
)
{
refresh
(
e
)
{
console
.
log
(
'
3333
'
)
this
.
init
()
this
.
init
()
},
},
...
@@ -400,6 +315,14 @@ export default {
...
@@ -400,6 +315,14 @@ export default {
color
:
$primary
;
color
:
$primary
;
}
}
}
}
.sku-item
{
padding-bottom
:
20rpx
;
border-bottom
:
1rpx
solid
$line
;
&
:last-child
{
padding-bottom
:
0
;
border-bottom
:
none
;
}
}
}
}
.order-info
{
.order-info
{
@include
borderBox
(
20rpx
,
30rpx
);
@include
borderBox
(
20rpx
,
30rpx
);
...
...
readme.md
View file @
39a1415c
...
@@ -38,4 +38,7 @@
...
@@ -38,4 +38,7 @@
+
自定义的导航栏的样式计算可以在vuex中处理(wxs计算)
+
自定义的导航栏的样式计算可以在vuex中处理(wxs计算)
+
详情有个深拷贝的问题。暂时通过JSON.stringify()处理
+
详情有个深拷贝的问题。暂时通过JSON.stringify()处理
+
所有的价格都是通过toFixed会可能出现精度问题。一般发现不了
+
所有的价格都是通过toFixed会可能出现精度问题。一般发现不了
+
确认订单页面要跳到地址列表页面选择
+
确认订单页面要跳到地址列表页面选择
\ No newline at end of file
签收退款 + 退款成功状态显示
\ No newline at end of file
subPages/address/index.vue
View file @
39a1415c
...
@@ -35,12 +35,19 @@ import LoadMore from '@/utils/load-more.js'
...
@@ -35,12 +35,19 @@ import LoadMore from '@/utils/load-more.js'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
list
:
[]
list
:
[],
navType
:
true
// 如果从确认订单过来,那么navType=false, 不能进入地址详情,只能选择
}
}
},
},
created
()
{
created
()
{
this
.
loadmore
=
new
LoadMore
()
this
.
loadmore
=
new
LoadMore
()
console
.
log
(
getCurrentPages
())
const
pages
=
getCurrentPages
()
const
prePages
=
pages
[
pages
.
length
-
2
].
__route__
if
(
prePages
===
'
pages/order/confirm-order
'
)
{
this
.
navType
=
false
}
},
},
onShow
()
{
onShow
()
{
...
@@ -88,27 +95,34 @@ export default {
...
@@ -88,27 +95,34 @@ export default {
},
},
// 删除地址
// 删除地址
async
handleDel
(
id
,
wrapIdx
,
innerIdx
)
{
//
async handleDel(id, wrapIdx, innerIdx) {
try
{
//
try{
const
{
status
,
data
}
=
await
delAddress
(
id
)
//
const { status, data } = await delAddress(id)
if
(
status
)
{
//
if(status) {
// 这里不会重新请求刷新数据
//
// 这里不会重新请求刷新数据
this
.
list
[
wrapIdx
].
splice
(
innerIdx
,
1
)
//
this.list[wrapIdx].splice(innerIdx, 1)
this
.
$toast
({
title
:
'
删除成功
'
})
//
this.$toast({title: '删除成功'})
}
//
}
}
catch
(
e
){
//
}catch(e){
this
.
$toast
({
title
:
e
.
msg
||
'
程序错误
'
})
//
this.$toast({title: e.msg || '程序错误'})
//TODO handle the exception
//
//TODO handle the exception
}
//
}
},
//
},
handleDetail
(
address
)
{
handleDetail
(
address
)
{
address
.
is_default
=
Number
(
address
.
is_default
)
if
(
this
.
navType
)
{
address
.
is_send_default
=
Number
(
address
.
is_send_default
)
address
.
is_default
=
Number
(
address
.
is_default
)
const
params
=
encodeURIComponent
(
JSON
.
stringify
(
address
))
address
.
is_send_default
=
Number
(
address
.
is_send_default
)
uni
.
navigateTo
({
const
params
=
encodeURIComponent
(
JSON
.
stringify
(
address
))
url
:
`/subPages/address/edit?params=
${
params
}
`
uni
.
navigateTo
({
})
url
:
`/subPages/address/edit?params=
${
params
}
`
})
}
else
{
console
.
log
(
'
选择地址
'
)
uni
.
$emit
(
'
getAddress
'
,
address
)
uni
.
navigateBack
()
}
}
}
}
}
}
}
...
...
subPages/afterSales/apply.vue
View file @
39a1415c
...
@@ -35,6 +35,7 @@ export default {
...
@@ -35,6 +35,7 @@ export default {
onLoad
(
ops
)
{
onLoad
(
ops
)
{
const
eventChannel
=
this
.
getOpenerEventChannel
()
const
eventChannel
=
this
.
getOpenerEventChannel
()
eventChannel
.
on
(
'
acceptDataFromOpenerPage
'
,
data
=>
{
eventChannel
.
on
(
'
acceptDataFromOpenerPage
'
,
data
=>
{
console
.
log
(
data
)
this
.
detail
=
data
this
.
detail
=
data
})
})
},
},
...
...
subPages/afterSales/components/goods-box.vue
View file @
39a1415c
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
/>
/>
<view
class=
"introduct flex j-between flex-column"
>
<view
class=
"introduct flex j-between flex-column"
>
<view
class=
"title"
>
{{
item
.
goods_name
}}
</view>
<view
class=
"title"
>
{{
item
.
goods_name
}}
</view>
<view
class=
"desc"
>
规格:
{{
item
.
specification
}}
</view>
<view
class=
"desc"
>
{{
item
.
specification
||
item
.
goods_attr
}}
</view>
<viwe
class=
"primaryColor"
>
¥
{{
item
.
goods_price
}}
</viwe>
<viwe
class=
"primaryColor"
>
¥
{{
item
.
goods_price
}}
</viwe>
</view>
</view>
</view>
</view>
...
@@ -34,6 +34,11 @@ export default {
...
@@ -34,6 +34,11 @@ export default {
type
:
Object
,
type
:
Object
,
required
:
true
required
:
true
}
}
},
mounted
()
{
console
.
log
(
this
.
goods
)
}
}
}
}
</
script
>
</
script
>
...
...
subPages/afterSales/detail.vue
View file @
39a1415c
...
@@ -41,7 +41,7 @@ export default {
...
@@ -41,7 +41,7 @@ export default {
submit
()
{
submit
()
{
applyBack
(
this
.
form
)
applyBack
(
this
.
form
)
.
then
(()
=>
{
.
then
(()
=>
{
this
.
$toast
({
title
:
'
申请成功
'
,
cb
:
()
=>
uni
.
navigateBack
()})
this
.
$toast
({
title
:
'
申请成功
'
,
cb
:
()
=>
uni
.
navigateBack
(
{
delta
:
2
}
)})
})
})
.
catch
(()
=>
this
.
$toast
({
title
:
'
申请失败
'
}))
.
catch
(()
=>
this
.
$toast
({
title
:
'
申请失败
'
}))
}
}
...
...
subPages/storeInfo/index.vue
View file @
39a1415c
...
@@ -50,15 +50,7 @@
...
@@ -50,15 +50,7 @@
import
{
mapState
}
from
'
vuex
'
import
{
mapState
}
from
'
vuex
'
import
{
baseUrl
}
from
'
@/config/index.js
'
import
{
baseUrl
}
from
'
@/config/index.js
'
import
dayjs
from
'
dayjs
'
import
dayjs
from
'
dayjs
'
let
weeks
=
{
import
{
weeks
}
from
'
@/config/global.js
'
1
:
'
周一
'
,
2
:
'
周二
'
,
3
:
'
周三
'
,
4
:
'
周四
'
,
5
:
'
周五
'
,
6
:
'
周六
'
,
7
:
'
周日
'
,
}
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
...
utils/vue_extend.js
View file @
39a1415c
...
@@ -12,6 +12,6 @@ Vue.prototype.$modal = Modal
...
@@ -12,6 +12,6 @@ Vue.prototype.$modal = Modal
Vue
.
prototype
.
$checkLogin
=
checkLogin
Vue
.
prototype
.
$checkLogin
=
checkLogin
Vue
.
filter
(
'
parseTime
'
,
timestamp
=>
{
Vue
.
filter
(
'
parseTime
'
,
timestamp
=>
{
if
(
!
timestamp
)
return
'
'
if
(
!~~
timestamp
)
return
'
——
'
return
dayjs
(
timestamp
*
1000
).
format
(
'
YYYY-MM-DD HH-mm-
ss
'
)
return
dayjs
(
timestamp
*
1000
).
format
(
'
YYYY-MM-DD HH:mm:
ss
'
)
})
})
\ No newline at end of file
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