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
c8dc167b
Commit
c8dc167b
authored
Dec 31, 2020
by
lixy
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev'
parents
66e6ff8c
3d11dfbd
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
780 additions
and
487 deletions
+780
-487
index.js
src/api/website/order/index.js
+43
-0
dateUtils.js
src/utils/dateUtils.js
+4
-0
index.vue
src/views/orderManagement/orderList/index.vue
+453
-480
orderSendDetail.vue
src/views/orderManagement/orderList/orderSendDetail.vue
+74
-1
selectDataDialog.vue
src/views/orderManagement/orderList/selectDataDialog.vue
+203
-0
send.vue
src/views/orderManagement/orderList/send.vue
+1
-4
index.vue
src/views/userManagement/index.vue
+2
-2
No files found.
src/api/website/order/index.js
View file @
c8dc167b
...
...
@@ -46,3 +46,46 @@ export function createOrder(obj) {
});
}
/**
* 添加定制数据
*/
export
function
setOrderItem
(
obj
)
{
return
fetch
({
url
:
'/api/website/orderInfo/setOrderItem'
,
method
:
'post'
,
data
:
obj
});
}
/**
* 选择定制数据
*/
export
function
getItemByType
(
obj
)
{
return
fetch
({
url
:
'/api/website/orderInfo/getItemByType'
,
method
:
'get'
,
params
:
obj
});
}
/**
* 对公支付审核
*/
export
function
updatePayStatus
(
obj
)
{
return
fetch
({
url
:
'/api/website/orderInfo/updatePayStatus'
,
method
:
'post'
,
data
:
obj
});
}
/**
* 对公支付信息
*/
export
function
getCompanyInfoByType
(
query
)
{
return
fetch
({
url
:
'api/website/commonInfo/web/app/unauth/getByType'
,
method
:
'get'
,
params
:
query
});
}
src/utils/dateUtils.js
View file @
c8dc167b
...
...
@@ -38,6 +38,10 @@ export function convertDate2Str(object) {
export
function
timestamp2Date
(
timestamp
)
{
let
str
=
timestamp
+
''
if
(
str
.
length
==
10
){
timestamp
=
timestamp
*
1000
}
const
date
=
new
Date
(
timestamp
);
// 时间戳为10位需*1000,时间戳为13位的话不需乘1000
return
formatDate
(
date
,
'yyyy-MM-dd hh:mm:ss'
);
}
...
...
src/views/orderManagement/orderList/index.vue
View file @
c8dc167b
...
...
@@ -13,15 +13,14 @@
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"下单时间"
label-width=
"130px"
>
<el-form-item
label=
"下单时间"
>
<el-date-picker
v-model=
"times"
value-format=
"yyyy-MM-dd HH:mm:ss"
type=
"datetimerange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
...
...
@@ -30,11 +29,7 @@
<el-col
:span=
"8"
>
<el-form-item
label=
"商品类型"
>
<el-select
filterable
v-model=
"listQuery.type"
placeholder=
"请选择"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
:key=
"1"
label=
"标准数据"
:value=
"1"
></el-option>
<el-option
:key=
"2"
label=
"全部"
:value=
"2"
></el-option>
<el-option
:key=
"3"
label=
"全部"
:value=
"3"
></el-option>
...
...
@@ -43,37 +38,16 @@
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"订单状态"
>
<el-select
filterable
v-model=
"listQuery.status"
placeholder=
"请选择"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"item in orderStatusList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
<el-select
filterable
v-model=
"listQuery.status"
placeholder=
"请选择"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"item in orderStatusList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"付款状态"
>
<el-select
filterable
v-model=
"listQuery.payStatus"
placeholder=
"请选择"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-select
filterable
v-model=
"listQuery.payStatus"
placeholder=
"请选择"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
:key=
"1"
label=
"已支付"
:value=
"1"
></el-option>
<el-option
:key=
"2"
label=
"未支付"
:value=
"2"
></el-option>
</el-select>
...
...
@@ -83,9 +57,7 @@
<el-row>
<el-col
:span=
"8"
>
<el-button
type=
"primary"
@
click=
"handleFilter"
>
筛选
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clear_search"
>
清空筛选条件
</el-button
>
<el-button
type=
"primary"
plain
@
click=
"clear_search"
>
清空筛选条件
</el-button>
</el-col>
</el-row>
</el-form>
...
...
@@ -103,189 +75,64 @@
</div>
<div
v-for=
"item in list"
:key=
"item.orderId"
>
<div
class=
"order-no-top"
>
<span
class=
"order-no"
>
订单号:
{{
item
.
orderNo
}}
<span
style=
"
background: #f8ddbb;
color: #f59a23;
font-size: 12px;
padding: 2px 10px;
border-radius: 10px;
margin-left: 10px;
"
v-if=
"item.invoiceStatus >= 2"
>
已开票
</span
><span
style=
"
border: 1px solid #eee;
color: #1890ff;
font-size: 12px;
padding: 2px 10px;
border-radius: 10px;
margin-left: 10px;
"
v-else-if=
"item.invoiceId"
>
开发票
</span
></span
>
<span
class=
"order-time"
><span
style=
"
background: #1890ff;
color: #fff;
font-size: 12px;
padding: 2px 10px;
border-radius: 4px;
margin-right: 10px;
cursor: pointer;
"
@
click=
"handleInvoice(item)"
v-if=
"item.invoiceId && item.invoiceStatus == 1"
>
开发票
</span
>
下单时间:
{{
item
.
crtTime
}}
</span
>
<span
class=
"order-no"
>
订单号:
{{
item
.
orderNo
}}
<span
class=
"tag-invoice"
v-if=
"item.invoiceStatus>=2"
>
已开票
</span>
<span
class=
"tag-no"
v-else-if=
"item.invoiceId"
>
开发票
</span>
<span
class=
"tag-no"
style=
"color: #d9001b;"
v-if=
"item.type == 2"
>
定制
</span>
</span>
<span
class=
"order-time"
><span
class=
"tag-invoice-no"
@
click=
"handleInvoice(item)"
v-if=
"item.invoiceId && item.invoiceStatus == 1"
>
开发票
</span>
下单时间:
{{
item
.
crtTime
}}
</span>
</div>
<table
class=
"order-table-1"
>
<tr>
<td
class=
"goods-name"
>
{{
item
.
nickname
}}
</td>
<td
class=
"goods-phone"
>
{{
item
.
phone
}}
</td>
<td
class=
"goods-name"
>
{{
item
.
nickname
}}
</td>
<td
class=
"goods-phone"
>
{{
item
.
phone
}}
</td>
<td
class=
"goods-item"
v-if=
"item.type == 1"
>
<div
v-for=
"iitem in item.orderItemList"
:key=
"iitem.itemId"
class=
"flex-aic goods-ii"
>
<img
style=
"
width: 84px;
height: 62px;
border-radius: 8px;
object-fit: cover;
"
:src=
"iitem.itemPic"
/>
<span
v-if=
"iitem.type != 1"
>
{{
iitem
.
name
}}
</span>
<div
v-for=
"iitem in item.orderItemList"
:key=
"iitem.itemId"
class=
"flex-aic goods-ii"
>
<div
class=
"flex-aic-jcb"
style=
"width: 100%;"
>
<div
class=
"flex-aic"
>
<img
style=
"width: 84px;height: 62px;border-radius: 8px;object-fit: cover;margin-right: 6px;"
:src=
"iitem.itemPic"
>
<span
v-if=
"iitem.type != 1"
>
{{
iitem
.
name
}}
</span>
<div
v-else
>
<p>
卫星:
{{
iitem
.
detailJson
.
imageSatelliteType
}}
</p>
<p>
传感器:
{{
iitem
.
detailJson
.
imageSensorType
}}
</p>
<p>
分辨率:
{{
iitem
.
imageResolutionStr
}}
</p>
<p>
云量:
{{
iitem
.
detailJson
.
imageCloudage
}}
</p>
<p>
卫星:
{{
iitem
.
detailJson
.
imageSatelliteType
}}
</p>
<p>
传感器:
{{
iitem
.
detailJson
.
imageSensorType
}}
</p>
<p>
分辨率:
{{
iitem
.
imageResolutionStr
}}
</p>
<p>
云量:
{{
iitem
.
detailJson
.
imageCloudage
}}
</p>
</div>
</div>
<p
style=
"padding-right: 10px;"
>
{{
iitem
.
type
==
1
?
'标准数据'
:
iitem
.
type
==
2
?
'行业应用'
:
iitem
.
type
==
3
?
'影像图库'
:
iitem
.
type
}}
</p>
</div>
</div>
</td>
<td
class=
"goods-item"
v-if=
"item.type == 2"
>
<p>
区域范围:
{{
item
.
customerJson
.
provinceName
+
item
.
customerJson
.
cityName
+
item
.
customerJson
.
areaName
}}
</p>
<p>
采集时间:
{{
item
.
customerJson
.
startTimeStr
}}
至
{{
item
.
customerJson
.
endTimeStr
}}
</p>
<p
v-if=
"item.customerJson.type == 1"
>
分辨率:
{{
item
.
customerJson
.
resolution
}}
</p>
<p
v-if=
"item.customerJson.type != 3"
>
获取类型:
{{
item
.
customerJson
.
gainType
==
101
?
"数据API"
:
item
.
customerJson
.
gainType
==
102
?
"实体数据"
:
item
.
customerJson
.
gainType
==
201
?
"报告"
:
item
.
customerJson
.
gainType
==
202
?
"web平台"
:
item
.
customerJson
.
gainType
==
203
?
"其他"
:
item
.
customerJson
.
gainType
}}
</p>
<p
v-if=
"item.customerJson.type == 3"
>
定制类型:
{{
item
.
customerJson
.
dataType
}}
</p>
<p
v-if=
"item.customerJson.type == 3"
>
数据格式:
{{
item
.
customerJson
.
dataFormat
}}
</p>
</td>
<td
class=
"goods-remark"
>
{{
item
.
remark
?
item
.
remark
:
item
.
customerJson
?
item
.
customerJson
.
descr
:
""
}}
</td>
<td
class=
"send-way-item"
>
{{
item
.
sendType
==
1
?
"线上"
:
item
.
sendType
==
2
?
"线下"
:
"线上"
}}
</td>
<td
class=
"pay-way-item"
>
{{
item
.
payType
}}
</td>
<td
class=
"amount-item"
>
¥
{{
item
.
totalAmount
}}
</td>
<td
class=
"order-status-item"
:style=
"
item.status == 4
? 'color:#f6b725;'
: item.status == 5
? 'color:#0493fe;'
: item.status == 6
? 'color:#2fd96f;'
: item.status == 2
? 'color:#e83328;'
: ''
"
>
{{
item
.
status
==
2
?
"待付款"
:
item
.
status
==
4
?
"待发货"
:
item
.
status
==
5
?
"待收货"
:
item
.
status
==
6
?
"已完成"
:
item
.
status
==
-
2
?
"已取消"
:
item
.
status
==
-
1
?
"已删除"
:
item
.
status
}}
<div
class=
"flex-aic-jcb"
>
<div>
<p>
区域范围:
{{
item
.
customerJson
.
provinceName
+
item
.
customerJson
.
cityName
+
item
.
customerJson
.
areaName
}}
</p>
<p>
采集时间:
{{
item
.
customerJson
.
startTimeStr
}}
至
{{
item
.
customerJson
.
endTimeStr
}}
</p>
<p
v-if=
"item.customerJson.type == 1"
>
分辨率:
{{
item
.
customerJson
.
resolution
}}
</p>
<p
v-if=
"item.customerJson.type != 3"
>
获取类型:
{{
item
.
customerJson
.
gainType
==
101
?
'数据API'
:
item
.
customerJson
.
gainType
==
102
?
'实体数据'
:
item
.
customerJson
.
gainType
==
201
?
'报告'
:
item
.
customerJson
.
gainType
==
202
?
'web平台'
:
item
.
customerJson
.
gainType
==
203
?
'其他'
:
item
.
customerJson
.
gainType
}}
</p>
<p
v-if=
"item.customerJson.type==3"
>
定制类型:
{{
item
.
customerJson
.
dataType
}}
</p>
<p
v-if=
"item.customerJson.type==3"
>
数据格式:
{{
item
.
customerJson
.
dataFormat
}}
</p>
</div>
<p
style=
"padding-right: 10px;"
>
{{
item
.
customerJson
.
type
==
1
?
'编程需求'
:
item
.
customerJson
.
type
==
2
?
'专题应用需求'
:
item
.
customerJson
.
type
==
3
?
'影像图需求'
:
item
.
customerJson
.
type
}}
</p>
</div>
</td>
<td
style=
"padding: 20px; border-right: none"
>
<span
class=
"normal-btn"
v-if=
"item.status == 5 || item.status == 6"
@
click=
"handleSee(item)"
>
查看
</span
>
<span
class=
"normal-btn"
v-if=
"item.status == 4 && item.shippingStatus == 0"
@
click=
"handleSend(item)"
>
发货
</span
>
<td
class=
"goods-remark"
>
{{
item
.
remark
?
item
.
remark
:
item
.
customerJson
?
item
.
customerJson
.
descr
:
''
}}
</td>
<td
class=
"send-way-item"
>
{{
item
.
sendType
==
1
?
'线上'
:
item
.
sendType
==
2
?
'线下'
:
'线上'
}}
</td>
<td
class=
"pay-way-item"
:style=
"item.payType==3?'color:#f6b725;':item.payType==2?'color:#13a8ff;':'color:#73d721;'"
>
{{
item
.
payType
==
1
?
'微信支付'
:
item
.
payType
==
2
?
'支付宝'
:
item
.
payType
==
3
?
'对公支付'
:
item
.
payType
}}
</td>
<td
class=
"amount-item"
>
¥
{{
item
.
totalAmount
}}
</td>
<td
class=
"order-status-item"
v-if=
"item.payType==3"
:style=
"item.status==4?'color:#f6b725;':item.status==5?'color:#0493fe;':item.status==6?'color:#2fd96f;':item.status==2&& !item.payImg?'color:#e83328;':item.status==2&& item.payImg?'color:#13a8ff;':''"
>
{{
item
.
status
==
2
&&
!
item
.
payImg
?
'待付款'
:
item
.
status
==
2
&&
item
.
payImg
&&
!
item
.
auditStatus
?
'待审核'
:
item
.
status
==
2
&&
item
.
payImg
&&
item
.
auditStatus
==
2
?
'已拒绝'
:
item
.
status
==
4
?
'待发货'
:
item
.
status
==
5
?
'待收货'
:
item
.
status
==
6
?
'已完成'
:
item
.
status
==-
2
?
'已取消'
:
item
.
status
==-
1
?
'已删除'
:
item
.
status
}}
</td>
<td
class=
"order-status-item"
v-else
:style=
"item.status==4?'color:#f6b725;':item.status==5?'color:#0493fe;':item.status==6?'color:#2fd96f;':item.status==2?'color:#e83328;':''"
>
{{
item
.
status
==
2
?
'待付款'
:
item
.
status
==
4
?
'待发货'
:
item
.
status
==
5
?
'待收货'
:
item
.
status
==
6
?
'已完成'
:
item
.
status
==-
2
?
'已取消'
:
item
.
status
==-
1
?
'已删除'
:
item
.
status
}}
</td>
<td
style=
"padding: 20px;border-right: none;"
>
<span
class=
"normal-btn"
v-if=
"item.status==5 || item.status == 6"
@
click=
"handleSee(item)"
>
查看
</span>
<span
class=
"normal-btn"
v-if=
"item.status==4 && item.shippingStatus == 0 && item.type == 1"
@
click=
"handleSend(item)"
>
发货
</span>
<span
class=
"normal-btn"
v-if=
"item.status==4 && item.type == 2"
@
click=
"handleData(item)"
>
选择数据
</span>
<span
class=
"normal-btn"
style=
"border: 1px solid #13a8ff;color: #13a8ff;"
v-if=
"item.status==2 && item.payType == 3"
@
click=
"handleAudit(item)"
>
{{
item
.
auditStatus
?
'查看'
:
'待审核'
}}
</span>
</td>
</tr>
</table>
</div>
<div
v-if=
"list.length
<
=
0
"
>
<table
class=
"order-table-1"
>
<tr
style=
"text-align: center"
>
<td
style=
"padding: 20px; border-right: none"
>
暂无数据
</td>
</tr>
</table>
</div>
<div
style=
"width:100%;dispaly:flex;justify-content: center;margin-top:20px"
v-show=
"!listLoading"
>
<div
v-if=
"list.length
<
=
0
"
><table
class=
"order-table-1"
><tr
style=
"text-align: center;"
><td
style=
"padding: 20px;border-right: none;"
>
暂无数据
</td></tr></table></div>
<div
style=
"width:100%;dispaly:flex;justify-content: center;margin-top:20px"
v-show=
"!listLoading"
>
<el-pagination
style=
"margin-top: 20px"
@
size-change=
"handleSizeChange"
...
...
@@ -297,28 +144,67 @@
:total=
"total"
></el-pagination>
<!--查看发货信息-->
<order-send-detail
:oneRow=
"oneRow"
v-if=
"orderSendDetailVisible"
v-on:detailEvent=
"detailEvent"
></order-send-detail>
<order-send-detail
:oneRow=
"oneRow"
v-if=
"orderSendDetailVisible"
v-on:detailEvent=
"detailEvent"
></order-send-detail>
<!--发货弹窗-->
<send
v-if=
"sendVisible"
:one-row=
"oneRow"
v-on:sendEvent=
"sendEvent"
:title=
"title"
></send>
<send
v-if=
"sendVisible"
:one-row=
"oneRow"
v-on:sendEvent=
"sendEvent"
:title=
"title"
></send>
<!--定制数据-选择数据-->
<select-data-dialog
v-if=
"selectDataVisible"
:one-row=
"oneRow"
v-on:selectDataEvent=
"selectDataEvent"
></select-data-dialog>
<!--对公支付审核-->
<el-dialog
:visible=
"auditVisible"
title=
"对公支付审核"
@
close=
"cancel"
>
<label
style=
"color: red"
>
转账信息
</label>
<div
v-if=
"companyAccountInfo.detail"
style=
"border: 1px solid #eee;padding: 16px;margin: 20px 0;"
>
<div
style=
"margin-bottom: 20px;"
>
户名:
{{
companyAccountInfo
.
detail
.
accountName
}}
</div>
<div
style=
"margin-bottom: 20px;"
>
账号:
{{
companyAccountInfo
.
detail
.
account
}}
</div>
<div>
开户行:
{{
companyAccountInfo
.
detail
.
openBank
}}
</div>
</div>
<label
style=
"color: red"
>
上传信息
</label>
<div
style=
"border: 1px solid #eee;padding: 16px;margin-top: 20px;"
>
<div
class=
"flex-aic"
>
<label>
支付凭证:
</label>
<el-image
style=
"width: 100px; height: 100px;"
:src=
"oneRow.payImg"
:preview-src-list=
"[oneRow.payImg]"
>
</el-image>
</div>
</div>
<el-form
label-width=
"80px"
style=
"margin-top: 20px;"
ref=
"form"
:rules=
"rules"
:model=
"form"
v-if=
"!oneRow.auditStatus"
>
<el-row>
<el-form-item
label=
"审核结果"
prop=
"auditStatus"
>
<el-radio
v-model=
"form.auditStatus"
:label=
"1"
@
change=
"checkValid"
>
通过
</el-radio>
<el-radio
v-model=
"form.auditStatus"
:label=
"2"
@
change=
"checkValid"
>
拒绝
</el-radio>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"拒绝原因"
prop=
"auditReason"
v-if=
"form.auditStatus == 2"
>
<el-input
type=
"textarea"
v-model=
"form.auditReason"
placeholder=
"请输入拒绝原因"
:maxlength=
"400"
:row=
"4"
></el-input>
</el-form-item>
</el-row>
</el-form>
<div
v-else
>
<div
style=
"margin-bottom: 20px;margin-top: 20px;"
>
审核状态:
{{
oneRow
.
auditStatus
==
1
?
'已通过'
:
'已拒绝'
}}
</div>
<div
style=
"margin-bottom: 20px;"
>
拒绝原因:
{{
oneRow
.
auditReason
}}
</div>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
v-if=
"!oneRow.auditStatus"
>
<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>
<div
slot=
"footer"
class=
"dialog-footer"
v-else
>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</div>
</
template
>
<
script
type=
"javascript"
>
import
{
getOrderList
}
from
"api/website/order/index"
;
import
orderSendDetail
from
"./orderSendDetail"
;
import
send
from
'./send'
import
{
timestamp2DateAuto
}
from
"../../../utils/dateUtils"
;
export
default
{
components
:{
orderSendDetail
,
send
},
import
{
getOrderList
,
updatePayStatus
,
getCompanyInfoByType
}
from
"api/website/order/index"
;
import
orderSendDetail
from
"./orderSendDetail"
;
import
selectDataDialog
from
'./selectDataDialog'
import
send
from
'./send'
import
{
timestamp2DateAuto
}
from
"../../../utils/dateUtils"
;
export
default
{
components
:{
orderSendDetail
,
send
,
selectDataDialog
},
data
()
{
return
{
title
:
'订单发货'
,
...
...
@@ -335,6 +221,8 @@ export default {
{
id
:
-
2
,
name
:
'已取消'
},
// {id: -3, name: '退款'}
],
isClick
:
false
,
// 是否已点击审核
auditVisible
:
false
,
// 对公支付审核
listQuery
:
{
name
:
undefined
,
// 商品名称
page
:
1
,
...
...
@@ -345,18 +233,30 @@ export default {
keywords
:
undefined
,
// 订单搜索
status
:
undefined
,
// 订单状态:0、定制订单无价格 1--创建订单,2--待付款,3--已支付,4--已发货, 5--已收货, 6、已完成 -1、删除,-2、取消, -3 退款
},
form
:{
auditStatus
:
undefined
,
// 审核状态: 1、审核通过,2、审核拒绝
auditReason
:
undefined
,
// 审核理由
orderNo
:
undefined
// 订单号
},
rules
:
{
auditReason
:
{
required
:
true
,
message
:
'请输入拒绝原因'
,
trigger
:
'blur'
},
auditStatus
:
{
required
:
true
,
message
:
'请选择审核结果'
,
trigger
:
'change'
}
},
listLoading
:
false
,
times
:
[],
// 时间
list
:
[],
total
:
0
,
orderSendDetailVisible
:
false
,
// 查看弹窗
sendVisible
:
false
,
// 发货弹窗
oneRow
:
{}
// 当前操作项
oneRow
:
{},
// 当前操作项
selectDataVisible
:
false
,
// 选择数据
companyAccountInfo
:
{},
// 对公信息
};
},
created
()
{
this
.
listQuery
.
keywords
=
this
.
$route
.
query
.
orderNo
;
this
.
getList
()
this
.
companyInfoByType
()
// 获取对公信息
},
methods
:
{
handleFilter
()
{
...
...
@@ -371,12 +271,108 @@ export default {
this
.
listQuery
.
page
=
val
;
this
.
getList
();
},
/**
* 取消审核
*/
cancel
(){
this
.
auditVisible
=
false
},
/**
* 对公支付-待审核
*/
handleAudit
(
row
){
this
.
oneRow
=
row
this
.
form
=
{
auditStatus
:
undefined
,
// 审核状态: 1、审核通过,2、审核拒绝
auditReason
:
undefined
,
// 审核理由
orderNo
:
row
.
orderNo
// 订单号
}
this
.
auditVisible
=
true
;
},
/**
* 检测填写状态
*/
checkValid
(){
this
.
$refs
[
'form'
].
validateField
(
'auditStatus'
,
picError
=>
{
//审核结果
if
(
!
picError
)
{
console
.
log
(
'审核结果-已选择'
)
}
else
{
return
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
)
{
updatePayStatus
(
this
.
form
).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
auditVisible
=
false
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}
})
},
/**
* 查看弹窗关闭
*/
detailEvent
(){
this
.
orderSendDetailVisible
=
false
},
/**
* 获取对公信息
*/
companyInfoByType
(){
getCompanyInfoByType
({
type
:
2
}).
then
((
res
)
=>
{
if
(
res
.
status
==
200
){
if
(
res
.
data
.
length
>
0
){
res
.
data
[
0
].
detail
=
res
.
data
[
0
].
detail
?
JSON
.
parse
(
res
.
data
[
0
].
detail
):{}
this
.
companyAccountInfo
=
res
.
data
[
0
]
}
}
else
{
this
.
$notify
({
title
:
"失败"
,
message
:
res
.
message
,
type
:
"error"
,
duration
:
2000
,
});
}
});
},
/**
* 选择数据-关闭弹窗
*/
selectDataEvent
(
e
){
if
(
e
){
this
.
getList
()
}
this
.
selectDataVisible
=
false
},
/**
* 查看
*/
...
...
@@ -409,6 +405,13 @@ export default {
this
.
title
=
'订单发货'
this
.
sendVisible
=
true
},
/**
* 选择数据
*/
handleData
(
row
){
this
.
oneRow
=
row
this
.
selectDataVisible
=
true
},
/**
* 商品品牌列表
*/
...
...
@@ -461,131 +464,101 @@ export default {
this
.
getList
();
},
},
};
};
</
script
>
<
style
lang=
"scss"
>
.order-manage
{
.order-manage
{
padding
:
20px
;
.order-table-1
{
.order-table-1
{
width
:
100%
;
border
:
1px
solid
#eee
;
border-top
:
none
;
td
{
border-right
:
1px
solid
#e6e6e
6
;
td
{
border-right
:
1px
solid
#E6E6E
6
;
}
}
.order-filter
{
.order-filter
{
padding
:
24px
;
}
.el-tabs__item.is-active
,
.el-tabs__item
:hover
{
color
:
#f6211d
;
.el-tabs__item.is-active
,
.el-tabs__item
:hover
{
color
:
#F6211D
;
}
.order-table
{
background
:
#f5f6fa
;
border
:
1px
solid
#e6e6e6
;
display
:
flex
;
align-items
:
center
;
height
:
45px
;
label
{
color
:
#a3a6b4
;
.order-table
{
background
:
#F5F6FA
;
border
:
1px
solid
#E6E6E6
;
display
:
flex
;
align-items
:
center
;
height
:
45px
;
label
{
color
:
#A3A6B4
;
font-size
:
12px
;
display
:
flex
;
}
}
.normal-btn
{
border
:
1px
solid
#707070
;
border-radius
:
2px
;
height
:
24px
;
width
:
60px
;
margin-top
:
16px
;
font-size
:
12px
;
color
:
#919299
;
display
:
block
;
text-align
:
center
;
line-height
:
24px
;
cursor
:
pointer
;
}
.pay-btn
{
background
:
linear-gradient
(
90deg
,
#f6211d
,
#f9531f
);
color
:
#fff
;
border-radius
:
2px
;
height
:
24px
;
width
:
60px
;
font-size
:
12px
;
color
:
#fff
;
display
:
block
;
text-align
:
center
;
line-height
:
24px
;
cursor
:
pointer
;
.normal-btn
{
border
:
1px
solid
#707070
;
border-radius
:
2px
;
height
:
24px
;
width
:
60px
;
margin-top
:
16px
;
font-size
:
12px
;
color
:
#919299
;
display
:
block
;
text-align
:
center
;
line-height
:
24px
;
cursor
:
pointer
;
}
.pay-btn
{
background
:
linear-gradient
(
90deg
,
#f6211d
,
#f9531f
);
color
:
#fff
;
border-radius
:
2px
;
height
:
24px
;
width
:
60px
;
font-size
:
12px
;
color
:
#fff
;
display
:
block
;
text-align
:
center
;
line-height
:
24px
;
cursor
:
pointer
;
}
.goods-name
,
.goods-phone
,
.goods-remark
{
.goods-name
,
.goods-phone
,
.goods-remark
{
width
:
10%
;
justify-content
:
center
;
align-items
:
center
;
text-align
:
center
;
}
.goods-item
{
width
:
2
0%
;
.goods-item
{
width
:
3
0%
;
height
:
100%
;
padding-left
:
10px
;
align-items
:
center
;
.goods-ii
{
border-bottom
:
1px
solid
#e6e6e
6
;
.goods-ii
{
border-bottom
:
1px
solid
#E6E6E
6
;
padding
:
16px
;
}
.goods-ii
:last-child
{
.goods-ii
:last-child
{
border-bottom
:
none
;
}
}
.pay-way-item
,
.send-way-item
{
width
:
10%
;
.pay-way-item
,
.send-way-item
{
width
:
8%
;
height
:
100%
;
text-align
:
center
;
justify-content
:
center
;
align-items
:
center
;
}
.amount-item
{
img
{
object-fit
:
cover
;}
.amount-item
{
width
:
10%
;
height
:
100%
;
text-align
:
center
;
justify-content
:
center
;
align-items
:
center
;
}
.order-status-item
{
width
:
10
%
;
.order-status-item
{
width
:
8
%
;
height
:
100%
;
text-align
:
center
;
justify-content
:
center
;
align-items
:
center
;
}
.option-item
{
width
:
10
%
;
.option-item
{
width
:
8
%
;
height
:
100%
;
text-align
:
center
;
align-items
:
center
;
justify-content
:
center
;
flex-direction
:
column
;
}
.order-no
{
color
:
#43425d
;
.order-no
{
color
:
#43425D
;
font-size
:
13px
;
}
.order-time
{
.order-time
{
color
:
#919299
;
font-size
:
12px
;
}
.order-no-top
{
background
:
#f5f6fa
;
border
:
1px
solid
#e6e6e6
;
padding
:
14px
16px
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
16px
;
.order-no-top
{
background
:
#F5F6FA
;
border
:
1px
solid
#E6E6E6
;
padding
:
14px
16px
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
16px
;
}
.tag-invoice
{
background
:
#f8ddbb
;
color
:
#F59A23
;
font-size
:
12px
;
padding
:
2px
10px
;
border-radius
:
10px
;
margin-left
:
10px
;}
.tag-invoice-no
{
background
:
#1890FF
;
color
:
#fff
;
font-size
:
12px
;
padding
:
2px
10px
;
border-radius
:
4px
;
margin-right
:
10px
;
cursor
:
pointer
;}
.tag-no
{
border
:
1px
solid
#eee
;
color
:
#1890FF
;
font-size
:
12px
;
padding
:
2px
10px
;
border-radius
:
10px
;
margin-left
:
10px
;}
}
}
</
style
>
src/views/orderManagement/orderList/orderSendDetail.vue
View file @
c8dc167b
<
template
>
<el-dialog
title=
"订单详情"
:visible
.
sync=
"isVisible"
></el-dialog>
<el-dialog
title=
"发货详情"
:visible
.
sync=
"isVisible"
class=
"send-main"
>
<div
class=
"invoice-item"
v-if=
"oneRow.orderEInvoice && oneRow.invoiceStatus >= 3"
>
<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>
<el-form
label-width=
"80px"
style=
"margin-top: 20px;"
>
<el-row>
<el-form-item
label=
"快递公司"
>
<el-input
style=
"width:300px"
v-model=
"oneRow.orderEInvoice.trackingImg"
placeholder=
"请输入快递公司"
:maxlength=
"40"
disabled
></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"快递单号"
>
<el-input
style=
"width:300px"
v-model=
"oneRow.orderEInvoice.trackingNumber"
placeholder=
"请输入快递单号"
:maxlength=
"40"
disabled
></el-input>
</el-form-item>
</el-row>
</el-form>
</div>
<div
class=
"send-info"
v-if=
"oneRow.shippingStatus == 2"
>
<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>
<el-form
label-width=
"80px"
style=
"margin-top: 20px;"
>
<el-row>
<el-form-item
label=
"快递公司"
>
<el-input
style=
"width:300px"
v-model=
"oneRow.trackingImg"
placeholder=
"请输入快递公司"
:maxlength=
"40"
disabled
></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"快递单号"
>
<el-input
style=
"width:300px"
v-model=
"oneRow.trackingNumber"
placeholder=
"请输入快递单号"
:maxlength=
"40"
disabled
></el-input>
</el-form-item>
</el-row>
</el-form>
</div>
</el-dialog>
</
template
>
<
script
type=
"javascript"
>
export
default
{
...
...
@@ -35,3 +91,20 @@
}
}
</
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
;
}
}
}
</
style
>
src/views/orderManagement/orderList/selectDataDialog.vue
0 → 100644
View file @
c8dc167b
<
template
>
<el-dialog
title=
"选择数据"
:visible
.
sync=
"isVisible"
width=
"600px"
class=
"data-main"
>
<!--
<el-button
type=
"primary"
@
click=
"jumpUrl()"
>
新 增
</el-button>
-->
<div
class=
"flex-aic"
v-for=
"(iitem, index) in list"
style=
"position:relative;margin-bottom: 10px;"
>
<el-input
v-model=
"iitem.name"
placeholder=
"请输入关键字"
style=
"width: 60%;margin-right:10px;"
></el-input>
<div
class=
"ab-main"
v-if=
"iitem.showTab"
>
<p
v-for=
"item in iitem.dataList"
@
click=
"chooseItem(iitem, item)"
>
{{
item
.
name
}}
</p>
<p
v-if=
"iitem.dataList.length
<
=
0
"
@
click=
"chooseItem(iitem)"
>
无匹配内容
</p>
</div>
<el-button
type=
"primary"
@
click=
"handleChoose(iitem)"
slot=
"reference"
>
搜索
</el-button>
<el-button
type=
"primary"
v-if=
"index == list.length - 1"
@
click=
"handleAdd()"
style=
"margin-left: 10px;"
>
+
</el-button>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<el-button
type=
"primary"
v-if=
"!isClick"
@
click=
"okSend()"
>
提 交
</el-button>
<el-button
type=
"primary"
v-else
style=
"opacity: 0.6;"
disabled
>
提 交
</el-button>
</div>
</el-dialog>
</
template
>
<
script
type=
"javascript"
>
import
{
getItemByType
,
setOrderItem
}
from
'api/website/order/index'
export
default
{
props
:
[
'oneRow'
],
name
:
'selectDataDialog'
,
data
()
{
return
{
isClick
:
false
,
// 是否点击了发货
loading
:
false
,
list
:
[{
id
:
1
,
dataList
:
[],
name
:
''
}],
// 已选数组
isVisible
:
false
,
}
},
watch
:
{
isVisible
(
newValue
,
oldValue
)
{
if
(
!
newValue
)
{
this
.
$emit
(
'selectDataEvent'
,
false
)
}
}
},
mounted
()
{
this
.
isVisible
=
true
},
methods
:
{
/**
* 新增
*/
handleAdd
(){
this
.
list
.
push
({
id
:
this
.
list
.
length
+
1
,
dataList
:
[],
name
:
''
})
},
/**
* 选择数据
*/
chooseItem
(
iitem
,
item
){
if
(
item
){
iitem
.
checkedObj
=
item
iitem
.
name
=
item
.
name
}
else
{
iitem
.
checkedObj
=
undefined
iitem
.
name
=
''
}
iitem
.
showTab
=
false
this
.
$forceUpdate
()
},
/**
* 搜索
*/
handleChoose
(
row
){
this
.
list
.
map
(
function
(
item
){
item
.
showTab
=
false
;
})
this
.
getList
(
row
)
},
/**
* 弹框-取消
* */
cancel
()
{
this
.
$emit
(
'selectDataEvent'
,
false
)
},
/**
* 选择数据列表
*/
getList
(
row
)
{
let
_this
=
this
getItemByType
({
type
:
this
.
oneRow
.
type
,
name
:
row
.
name
}).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
row
.
dataList
=
response
.
data
row
.
showTab
=
true
_this
.
$forceUpdate
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
},
/**
* 新增-跳转界面
*/
jumpUrl
(){
if
(
this
.
oneRow
.
type
==
1
){
// 标准数据新增
}
else
if
(
this
.
oneRow
.
type
==
2
){
// 行业应用
this
.
$router
.
push
({
path
:
'/industryApplication/applicationList'
})
}
else
if
(
this
.
oneRow
.
type
==
3
){
// 影像图库
this
.
$router
.
push
({
path
:
'/webSiteManagement/imageLibrary'
})
}
},
/**
* 确定
*/
okSend
()
{
let
_this
=
this
if
(
this
.
isClick
){
return
}
this
.
isClick
=
true
setTimeout
(
function
(){
_this
.
isClick
=
false
},
2000
)
let
itemInfoDtoList
=
[]
this
.
list
.
map
(
function
(
item
){
if
(
item
.
checkedObj
){
let
p
=
{
id
:
item
.
checkedObj
.
id
,
type
:
item
.
checkedObj
.
type
// 类型 1、标准数据,2、影像图库,3、行业应用信息,
}
itemInfoDtoList
.
push
(
p
)
}
})
if
(
itemInfoDtoList
.
length
<=
0
){
this
.
$message
.
warning
(
"请选择数据"
)
return
;
}
let
params
=
{
orderId
:
this
.
oneRow
.
orderId
,
itemInfoDtoList
:
itemInfoDtoList
}
setOrderItem
(
params
).
then
((
response
)
=>
{
if
(
response
.
status
==
200
){
this
.
$notify
({
title
:
"成功"
,
message
:
"操作成功"
,
type
:
"success"
,
duration
:
2000
});
this
.
$emit
(
'selectDataEvent'
,
true
)
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
});
}
}
}
</
script
>
<
style
lang=
"scss"
>
.data-main
{
.el-dialog
{
height
:
calc
(
100vh
-
260px
);
min-height
:
300px
;
}
.el-dialog
.el-dialog__body
{
overflow
:
auto
;
height
:
calc
(
100vh
-
400px
);
min-height
:
150px
;
}
.ab-main
{
position
:
absolute
;
top
:
45px
;
padding
:
0
20px
;
border-radius
:
4px
;
width
:
60%
;
max-height
:
200px
;
overflow
:
auto
;
background
:
rgb
(
255
,
255
,
255
);
border
:
1px
solid
rgb
(
244
,
244
,
244
);
z-index
:
9
;
box-shadow
:
0
2px
12px
0
rgba
(
0
,
0
,
0
,.
1
);
p
{
cursor
:
pointer
;
padding-bottom
:
10px
;
border-bottom
:
1px
solid
#f4f4f4
;
}
p
:last-child
{
border-bottom
:
none
;
}
}
.
ab-main
:
:-
webkit-scrollbar
,
.
el-dialog__body
::-
webkit-scrollbar
{
width
:
0px
;}
}
</
style
>
src/views/orderManagement/orderList/send.vue
View file @
c8dc167b
<
template
>
<el-dialog
:title=
"title"
:visible
.
sync=
"isVisible"
width=
"600px"
class=
"send-main"
>
<div
class=
"invoice-item"
>
<div
class=
"invoice-item"
v-if=
"oneRow.orderEInvoice && title=='发票发货'"
>
<div
class=
"flex-aic-jcb"
>
<div
class=
"invoice-item-text"
><label>
{{
oneRow
.
orderEInvoice
.
titleType
==
1
?
"公司名称"
:
"个人名称"
}}
:
{{
oneRow
.
orderEInvoice
.
titleName
}}
</label>
</div>
<div
...
...
@@ -162,9 +162,6 @@
.invoice-item-text
{
margin-top
:
10px
;
}
.invoice-item-text
:first-child
{
margin-top
:
0
;
}
}
}
</
style
>
src/views/userManagement/index.vue
View file @
c8dc167b
...
...
@@ -19,7 +19,7 @@
<el-form-item
label=
"用户ID"
>
<el-input
v-model=
"listQuery.userId"
placeholder=
"请输入用户ID"
></el-input>
</el-form-item>
<el-form-item
label=
"
创建
时间"
>
<el-form-item
label=
"
注册
时间"
>
<el-date-picker
v-model=
"times"
type=
"datetimerange"
...
...
@@ -58,7 +58,7 @@
<!--
<img
style=
"width: 40px;height: 40px;border-radius: 50%;"
:src=
"scope.row.headimgurl"
@
click
.
stop=
"showPreview(scope.row.headimgurl)"
/>
-->
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"
创建
时间"
>
<el-table-column
align=
"center"
label=
"
注册
时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
crtTimeStr
}}
</
template
>
...
...
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