Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rs-cloud-platform-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周健威
rs-cloud-platform-ui
Commits
badf6f8a
Commit
badf6f8a
authored
Dec 23, 2020
by
lixy
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into dev
# Conflicts: # src/api/website/order/index.js
parents
05079707
668b6368
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1264 additions
and
3 deletions
+1264
-3
index.js
src/api/userManagement/index.js
+11
-0
index.js
src/api/website/order/index.js
+29
-0
index.js
src/router/index.js
+26
-2
complaint.vue
src/views/contactService/complaint.vue
+206
-0
contact.vue
src/views/contactService/contact.vue
+205
-0
feedback.vue
src/views/contactService/feedback.vue
+205
-0
index.vue
src/views/orderManagement/orderList/index.vue
+375
-1
orderSendDetail.vue
src/views/orderManagement/orderList/orderSendDetail.vue
+37
-0
send.vue
src/views/orderManagement/orderList/send.vue
+170
-0
No files found.
src/api/userManagement/index.js
View file @
badf6f8a
...
@@ -43,3 +43,14 @@ export function userAddressList(query) {
...
@@ -43,3 +43,14 @@ export function userAddressList(query) {
data
:
query
data
:
query
});
});
}
}
/**
* 联系客服-意见反馈-订单投诉列表
*/
export
function
feedbackInfoList
(
query
)
{
return
fetch
({
url
:
'/api/website/feedbackInfo/getAll'
,
method
:
'get'
,
params
:
query
});
}
src/api/website/order/index.js
View file @
badf6f8a
...
@@ -8,7 +8,35 @@ export function getCustomList(obj) {
...
@@ -8,7 +8,35 @@ export function getCustomList(obj) {
params
:
obj
params
:
obj
});
});
}
}
// 订单列表
export
function
getOrderList
(
query
)
{
return
fetch
({
url
:
'api/website/orderInfo/getOrderList'
,
method
:
'get'
,
params
:
query
});
}
/**
* 订单发货
*/
export
function
sendGoods
(
query
)
{
return
fetch
({
url
:
'api/website/orderInfo/orderSend'
,
method
:
'post'
,
data
:
query
});
}
/**
* 发票发货
*/
export
function
invoiceSend
(
query
)
{
return
fetch
({
url
:
'api/website/orderInfo/invoiceSend'
,
method
:
'post'
,
data
:
query
});
}
// 定制转订单
// 定制转订单
export
function
createOrder
(
obj
)
{
export
function
createOrder
(
obj
)
{
return
fetch
({
return
fetch
({
...
@@ -17,3 +45,4 @@ export function createOrder(obj) {
...
@@ -17,3 +45,4 @@ export function createOrder(obj) {
data
:
obj
data
:
obj
});
});
}
}
src/router/index.js
View file @
badf6f8a
...
@@ -199,5 +199,29 @@ export const asyncRouterMap = [{
...
@@ -199,5 +199,29 @@ export const asyncRouterMap = [{
authority
:
'aboutUs'
authority
:
'aboutUs'
}]
}]
}
},
];
{
path
:
'/contactService'
,
component
:
Layout
,
name
:
'联系我们'
,
icon
:
'setting'
,
authority
:
'contactService'
,
children
:
[{
path
:
'contact'
,
component
:
_import
(
'contactService/contact'
),
name
:
'联系客服'
,
authority
:
'contact'
},
{
path
:
'feedback'
,
component
:
_import
(
'contactService/feedback'
),
name
:
'意见反馈'
,
authority
:
'feedback'
},
{
path
:
'complaint'
,
component
:
_import
(
'contactService/complaint'
),
name
:
'意见反馈'
,
authority
:
'complaint'
}]
}];
src/views/contactService/complaint.vue
0 → 100644
View file @
badf6f8a
<
template
>
<div
class=
"user-list"
>
<!-- 头部 -->
<div
class=
"head"
>
<div>
订单投诉
</div>
</div>
<!-- 主体 -->
<div
class=
"app-container calendar-list-container"
>
<!-- 数据列表 -->
<el-table
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"用户ID"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
userId
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"姓名"
prop=
"name"
></el-table-column>
<el-table-column
align=
"center"
label=
"电话"
prop=
"phone"
></el-table-column>
<el-table-column
align=
"center"
label=
"订单编号"
prop=
"orderNo"
></el-table-column>
<el-table-column
align=
"center"
label=
"创建时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
crtTime
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"内容"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
content
}}
</
template
>
</el-table-column>
<!-- <el-table-column align="center" label="状态">-->
<!-- <template slot-scope="scope">-->
<!-- <!– 根据状态获取对应中文 –>-->
<!-- {{ getStatus(scope.row.status) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
</div>
</div>
</template>
<
script
type=
"javascript"
>
import
{
feedbackInfoList
}
from
'api/userManagement/index'
import
{
timestamp2Date
}
from
'@/utils/dateUtils'
;
export
default
{
name
:
'userManagement'
,
computed
:{
getStatus
(
status
)
{
return
(
status
)
=>
{
let
a
=
""
switch
(
status
)
{
case
0
:
a
=
'启用'
;
break
;
case
1
:
a
=
'禁用'
;
break
;
default
:
a
=
'未知'
;
break
}
return
a
}
},
},
data
()
{
return
{
times
:
[],
listLoading
:
false
,
list
:
[],
// 用户列表
total
:
0
,
// 总条数
listQuery
:
{
page
:
1
,
limit
:
20
,
type
:
3
//1、联系客服,2、意见反馈,3、订单反馈
},
invoiceDialogVisible
:
false
,
// 查看发票弹窗
addressDialogVisible
:
false
// 查看地址弹窗
}
},
created
()
{
this
.
getList
()
},
methods
:{
/**
* 搜索
*/
handleSearch
(){
this
.
listQuery
.
page
=
1
this
.
getList
()
// 获取用户列表
},
/**
* 查看发票-返回界面
*/
invoiceEvent
(){
this
.
invoiceDialogVisible
=
false
},
/**
* 查看地址-返回界面
*/
addressEvent
(){
this
.
addressDialogVisible
=
false
},
/**
* 启用、禁用
*/
changeStatus
(
row
){
this
.
$confirm
(
"是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(()
=>
{
// 0、启用,1、禁用
updateStatus
({
id
:
row
.
userId
,
status
:
row
.
status
==
1
?
0
:
1
}).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}).
catch
(()
=>
{})
},
/**
* 查看发票
*/
handleInvoice
(){
this
.
invoiceDialogVisible
=
true
},
/**
* 查看地址
*/
handleAddress
(){
this
.
addressDialogVisible
=
true
},
/**
* 清除搜索
*/
handleCleanSearch
(){
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
mobile
:
undefined
,
// 手机号
realName
:
undefined
,
// 真实姓名
userId
:
undefined
,
// 用户id
status
:
undefined
,
// 0:启用 1:禁用
registrationTimeBegin
:
undefined
,
// 开始时间
registrationTimeEnd
:
undefined
// 结束时间
}
this
.
times
=
[]
this
.
getList
()
// 获取用户列表
},
/**
* 获取用户列表
*/
getList
(){
this
.
listLoading
=
true
feedbackInfoList
(
this
.
listQuery
).
then
(
response
=>
{
if
(
response
.
status
==
200
){
response
.
data
.
data
.
map
(
function
(
item
){
item
.
crtTimeStr
=
timestamp2Date
(
item
.
createTime
);
})
this
.
list
=
response
.
data
.
data
;
this
.
total
=
response
.
data
.
totalCount
;
this
.
listLoading
=
false
;
}
else
{
this
.
listLoading
=
false
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
}
}
}
</
script
>
<
style
lang=
"scss"
>
.user-list
{
.head
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
8px
20px
;
width
:
100%
;
border-bottom
:
1px
solid
#e6e6e6
;
height
:
57px
;
}
}
</
style
>
src/views/contactService/contact.vue
0 → 100644
View file @
badf6f8a
<
template
>
<div
class=
"user-list"
>
<!-- 头部 -->
<div
class=
"head"
>
<div>
联系客服
</div>
</div>
<!-- 主体 -->
<div
class=
"app-container calendar-list-container"
>
<!-- 数据列表 -->
<el-table
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"用户ID"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
userId
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"姓名"
prop=
"name"
></el-table-column>
<el-table-column
align=
"center"
label=
"电话"
prop=
"phone"
></el-table-column>
<el-table-column
align=
"center"
label=
"创建时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
crtTime
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"内容"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
content
}}
</
template
>
</el-table-column>
<!-- <el-table-column align="center" label="状态">-->
<!-- <template slot-scope="scope">-->
<!-- <!– 根据状态获取对应中文 –>-->
<!-- {{ getStatus(scope.row.status) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
</div>
</div>
</template>
<
script
type=
"javascript"
>
import
{
feedbackInfoList
}
from
'api/userManagement/index'
import
{
timestamp2Date
}
from
'@/utils/dateUtils'
;
export
default
{
name
:
'userManagement'
,
computed
:{
getStatus
(
status
)
{
return
(
status
)
=>
{
let
a
=
""
switch
(
status
)
{
case
0
:
a
=
'启用'
;
break
;
case
1
:
a
=
'禁用'
;
break
;
default
:
a
=
'未知'
;
break
}
return
a
}
},
},
data
()
{
return
{
times
:
[],
listLoading
:
false
,
list
:
[],
// 用户列表
total
:
0
,
// 总条数
listQuery
:
{
page
:
1
,
limit
:
20
,
type
:
1
//1、联系客服,2、意见反馈,3、订单反馈
},
invoiceDialogVisible
:
false
,
// 查看发票弹窗
addressDialogVisible
:
false
// 查看地址弹窗
}
},
created
()
{
this
.
getList
()
},
methods
:{
/**
* 搜索
*/
handleSearch
(){
this
.
listQuery
.
page
=
1
this
.
getList
()
// 获取用户列表
},
/**
* 查看发票-返回界面
*/
invoiceEvent
(){
this
.
invoiceDialogVisible
=
false
},
/**
* 查看地址-返回界面
*/
addressEvent
(){
this
.
addressDialogVisible
=
false
},
/**
* 启用、禁用
*/
changeStatus
(
row
){
this
.
$confirm
(
"是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(()
=>
{
// 0、启用,1、禁用
updateStatus
({
id
:
row
.
userId
,
status
:
row
.
status
==
1
?
0
:
1
}).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}).
catch
(()
=>
{})
},
/**
* 查看发票
*/
handleInvoice
(){
this
.
invoiceDialogVisible
=
true
},
/**
* 查看地址
*/
handleAddress
(){
this
.
addressDialogVisible
=
true
},
/**
* 清除搜索
*/
handleCleanSearch
(){
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
mobile
:
undefined
,
// 手机号
realName
:
undefined
,
// 真实姓名
userId
:
undefined
,
// 用户id
status
:
undefined
,
// 0:启用 1:禁用
registrationTimeBegin
:
undefined
,
// 开始时间
registrationTimeEnd
:
undefined
// 结束时间
}
this
.
times
=
[]
this
.
getList
()
// 获取用户列表
},
/**
* 获取用户列表
*/
getList
(){
this
.
listLoading
=
true
feedbackInfoList
(
this
.
listQuery
).
then
(
response
=>
{
if
(
response
.
status
==
200
){
response
.
data
.
data
.
map
(
function
(
item
){
item
.
crtTimeStr
=
timestamp2Date
(
item
.
createTime
);
})
this
.
list
=
response
.
data
.
data
;
this
.
total
=
response
.
data
.
totalCount
;
this
.
listLoading
=
false
;
}
else
{
this
.
listLoading
=
false
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
}
}
}
</
script
>
<
style
lang=
"scss"
>
.user-list
{
.head
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
8px
20px
;
width
:
100%
;
border-bottom
:
1px
solid
#e6e6e6
;
height
:
57px
;
}
}
</
style
>
src/views/contactService/feedback.vue
0 → 100644
View file @
badf6f8a
<
template
>
<div
class=
"user-list"
>
<!-- 头部 -->
<div
class=
"head"
>
<div>
意见反馈
</div>
</div>
<!-- 主体 -->
<div
class=
"app-container calendar-list-container"
>
<!-- 数据列表 -->
<el-table
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"用户ID"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
userId
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"姓名"
prop=
"name"
></el-table-column>
<el-table-column
align=
"center"
label=
"电话"
prop=
"phone"
></el-table-column>
<el-table-column
align=
"center"
label=
"创建时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
crtTime
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"内容"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
content
}}
</
template
>
</el-table-column>
<!-- <el-table-column align="center" label="状态">-->
<!-- <template slot-scope="scope">-->
<!-- <!– 根据状态获取对应中文 –>-->
<!-- {{ getStatus(scope.row.status) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
</div>
</div>
</template>
<
script
type=
"javascript"
>
import
{
feedbackInfoList
}
from
'api/userManagement/index'
import
{
timestamp2Date
}
from
'@/utils/dateUtils'
;
export
default
{
name
:
'userManagement'
,
computed
:{
getStatus
(
status
)
{
return
(
status
)
=>
{
let
a
=
""
switch
(
status
)
{
case
0
:
a
=
'启用'
;
break
;
case
1
:
a
=
'禁用'
;
break
;
default
:
a
=
'未知'
;
break
}
return
a
}
},
},
data
()
{
return
{
times
:
[],
listLoading
:
false
,
list
:
[],
// 用户列表
total
:
0
,
// 总条数
listQuery
:
{
page
:
1
,
limit
:
20
,
type
:
2
//1、联系客服,2、意见反馈,3、订单反馈
},
invoiceDialogVisible
:
false
,
// 查看发票弹窗
addressDialogVisible
:
false
// 查看地址弹窗
}
},
created
()
{
this
.
getList
()
},
methods
:{
/**
* 搜索
*/
handleSearch
(){
this
.
listQuery
.
page
=
1
this
.
getList
()
// 获取用户列表
},
/**
* 查看发票-返回界面
*/
invoiceEvent
(){
this
.
invoiceDialogVisible
=
false
},
/**
* 查看地址-返回界面
*/
addressEvent
(){
this
.
addressDialogVisible
=
false
},
/**
* 启用、禁用
*/
changeStatus
(
row
){
this
.
$confirm
(
"是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(()
=>
{
// 0、启用,1、禁用
updateStatus
({
id
:
row
.
userId
,
status
:
row
.
status
==
1
?
0
:
1
}).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}).
catch
(()
=>
{})
},
/**
* 查看发票
*/
handleInvoice
(){
this
.
invoiceDialogVisible
=
true
},
/**
* 查看地址
*/
handleAddress
(){
this
.
addressDialogVisible
=
true
},
/**
* 清除搜索
*/
handleCleanSearch
(){
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
mobile
:
undefined
,
// 手机号
realName
:
undefined
,
// 真实姓名
userId
:
undefined
,
// 用户id
status
:
undefined
,
// 0:启用 1:禁用
registrationTimeBegin
:
undefined
,
// 开始时间
registrationTimeEnd
:
undefined
// 结束时间
}
this
.
times
=
[]
this
.
getList
()
// 获取用户列表
},
/**
* 获取用户列表
*/
getList
(){
this
.
listLoading
=
true
feedbackInfoList
(
this
.
listQuery
).
then
(
response
=>
{
if
(
response
.
status
==
200
){
response
.
data
.
data
.
map
(
function
(
item
){
item
.
crtTimeStr
=
timestamp2Date
(
item
.
createTime
);
})
this
.
list
=
response
.
data
.
data
;
this
.
total
=
response
.
data
.
totalCount
;
this
.
listLoading
=
false
;
}
else
{
this
.
listLoading
=
false
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
}
}
}
</
script
>
<
style
lang=
"scss"
>
.user-list
{
.head
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
8px
20px
;
width
:
100%
;
border-bottom
:
1px
solid
#e6e6e6
;
height
:
57px
;
}
}
</
style
>
src/views/orderManagement/orderList/index.vue
View file @
badf6f8a
This diff is collapsed.
Click to expand it.
src/views/orderManagement/orderList/orderSendDetail.vue
0 → 100644
View file @
badf6f8a
<
template
>
<el-dialog
title=
"订单详情"
:visible
.
sync=
"isVisible"
></el-dialog>
</
template
>
<
script
type=
"javascript"
>
export
default
{
props
:
[
'oneRow'
],
name
:
'orderSendDetail'
,
data
()
{
return
{
isVisible
:
false
,
}
},
created
()
{
},
watch
:
{
isVisible
(
newValue
,
oldValue
)
{
if
(
!
newValue
)
{
this
.
$emit
(
'detailEvent'
,
false
)
}
}
},
mounted
()
{
this
.
isVisible
=
true
},
methods
:
{
/**
* 弹框-取消
* */
cancel
()
{
this
.
$emit
(
'detailEvent'
,
false
)
},
sure
:
function
()
{
this
.
$emit
(
'detailEvent'
,
false
)
}
}
}
</
script
>
src/views/orderManagement/orderList/send.vue
0 → 100644
View file @
badf6f8a
<
template
>
<el-dialog
:title=
"title"
:visible
.
sync=
"isVisible"
width=
"600px"
class=
"send-main"
>
<div
class=
"invoice-item"
>
<div
class=
"flex-aic-jcb"
>
<div
class=
"invoice-item-text"
><label>
{{
oneRow
.
orderEInvoice
.
titleType
==
1
?
"公司名称"
:
"个人名称"
}}
:
{{
oneRow
.
orderEInvoice
.
titleName
}}
</label>
</div>
<div
style=
"
color: #0a84ff;
font-size: 12px;
background: #d9eafa;
border-radius: 2px;
padding: 2px 5px;
"
>
{{
oneRow
.
orderEInvoice
.
type
==
1
?
"普通发票"
:
"增值税专用发票"
}}
-
{{
oneRow
.
orderEInvoice
.
titleType
==
1
?
"企业"
:
"个人"
}}
</div>
</div>
<div
class=
"invoice-item-text"
v-if=
"oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"
><label>
地址:
{{
oneRow
.
orderEInvoice
.
province
}}{{
oneRow
.
orderEInvoice
.
city
}}{{
oneRow
.
orderEInvoice
.
town
}}{{
oneRow
.
orderEInvoice
.
address
}}
</label>
</div>
<div
class=
"invoice-item-text"
v-if=
"oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"
>
<label>
电话:
{{
oneRow
.
orderEInvoice
.
phone
}}
</label>
</div>
<div
class=
"invoice-item-text"
v-if=
"oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"
>
<label>
开户行:
{{
oneRow
.
orderEInvoice
.
openBank
}}
</label></div>
<div
class=
"invoice-item-text"
v-if=
"oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"
><label>
账号:
{{
oneRow
.
orderEInvoice
.
account
}}
</label></div>
<div
class=
"flex-aic-jcb"
>
<span
class=
"invoice-item-text"
v-if=
"oneRow.orderEInvoice.titleType == 1"
><label>
税号:
{{
oneRow
.
orderEInvoice
.
taxCode
}}
</label></span>
</div>
</div>
<div
class=
"send-info"
>
<div
class=
"flex-aic-jcb"
>
<label>
联系人:
{{
oneRow
.
receiveName
}}
</label>
<label
style=
"border:1px solid #409EFF;color: #409EFF;font-size: 12px;padding: 2px 6px;border-radius:4px;"
>
个人信息
</label>
</div>
<div
style=
"margin: 10px 0;"
><label>
手机号:
{{
oneRow
.
receivePhone
}}
</label></div>
<div><label>
地址:
{{
oneRow
.
receiveAddress
}}
</label></div>
</div>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-row>
<el-form-item
label=
"快递公司"
prop=
"trackingImg"
>
<el-input
style=
"width:300px"
v-model=
"form.trackingImg"
placeholder=
"请输入快递公司"
:maxlength=
"40"
></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"快递单号"
prop=
"trackingNumber"
>
<el-input
style=
"width:300px"
v-model=
"form.trackingNumber"
placeholder=
"请输入快递单号"
:maxlength=
"40"
></el-input>
</el-form-item>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<el-button
type=
"primary"
v-if=
"!isClick"
@
click=
"okSend('form')"
>
发 货
</el-button>
<el-button
type=
"primary"
v-else
style=
"opacity: 0.6;"
disabled
>
发 货
</el-button>
</div>
</el-dialog>
</
template
>
<
script
type=
"javascript"
>
import
{
sendGoods
,
invoiceSend
}
from
'api/website/order/index'
export
default
{
props
:
[
'oneRow'
,
'title'
],
name
:
'send'
,
data
()
{
return
{
isClick
:
false
,
// 是否点击了发货
rules
:
{
trackingImg
:
{
required
:
true
,
message
:
'请输入快递公司'
,
trigger
:
'blur'
},
trackingNumber
:
{
required
:
true
,
message
:
'请输入快递单号'
,
trigger
:
'blur'
}
},
form
:
{
orderId
:
this
.
oneRow
.
orderId
,
trackingNumber
:
undefined
,
// 快递单号
trackingImg
:
undefined
// 快递公司
},
isVisible
:
false
,
}
},
watch
:
{
isVisible
(
newValue
,
oldValue
)
{
if
(
!
newValue
)
{
this
.
$emit
(
'sendEvent'
,
false
)
}
}
},
mounted
()
{
this
.
isVisible
=
true
},
methods
:
{
/**
* 弹框-取消
* */
cancel
()
{
this
.
$emit
(
'sendEvent'
,
false
)
},
/**
* 发货
*/
okSend
(
formName
)
{
let
_this
=
this
if
(
this
.
isClick
){
return
}
this
.
isClick
=
true
setTimeout
(
function
(){
_this
.
isClick
=
false
},
2000
)
const
set
=
this
.
$refs
;
set
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
this
.
title
==
'发票发货'
){
invoiceSend
(
this
.
form
).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
$emit
(
'sendEvent'
,
true
)
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}
else
{
// 订单发货
sendGoods
(
this
.
form
).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
$emit
(
'sendEvent'
,
true
)
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}
}
})
}
}
}
</
script
>
<
style
lang=
"scss"
>
.send-main
{
.send-info
{
border
:
1px
solid
#eee
;
padding
:
20px
;
margin-bottom
:
20px
;
margin-top
:
20px
;
}
.invoice-item
{
padding
:
20px
;
border
:
1px
solid
#eee
;
.invoice-item-text
{
margin-top
:
10px
;
}
.invoice-item-text
:first-child
{
margin-top
:
0
;
}
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment