Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
S
shop-new
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
王天霸
shop-new
Commits
0f1fff43
提交
0f1fff43
authored
3月 16, 2023
作者:
王天霸
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '1.1.19'
# Conflicts: # src/views/system/order/index.vue
上级
f8d0c118
c8f1da08
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
1211 行增加
和
871 行删除
+1211
-871
fillMainInf.vue
src/views/entry/fillMainInf.vue
+9
-1
index.vue
src/views/system/order/index.vue
+10
-4
index2.vue
src/views/system/order/index2.vue
+1179
-864
index.vue
src/views/system/shop/index.vue
+13
-2
没有找到文件。
src/views/entry/fillMainInf.vue
浏览文件 @
0f1fff43
...
...
@@ -17,7 +17,13 @@
<el-form-item>
<p
class=
"main-form-title"
>
企业资质信息
</p>
</el-form-item>
<el-form-item
label=
"企业类型:"
prop=
"organization_type"
inline-message=
"true"
>
<el-radio-group
v-model=
"mainForm.organization_type"
size=
"mini"
>
<el-radio
:label=
"2"
>
小规模
</el-radio>
<el-radio
:label=
"1"
>
一般纳税人
</el-radio>
</el-radio-group>
<span
class=
"tips-text"
><i
class=
"el-icon-warning h-warning"
></i>
请正确选择企业类型,会影响提现时所需发票的性质。小规模需提供普票,一般纳税人需提供专票
</span>
</el-form-item>
<el-form-item
label=
"营业执照:"
prop=
"license"
>
<div
style=
"width:100%;height: 100%;display: flex;flex-direction: row;justify-content: normal;"
>
<div
style=
"padding-right:6px;"
>
...
...
@@ -272,6 +278,7 @@
submitTime
:
[],
// 主体信息
mainForm
:
{
organization_type
:
2
,
license
:
''
,
organization_name
:
''
,
license_number
:
''
,
...
...
@@ -289,6 +296,7 @@
// 主体信息校验
hasLicense
:
false
,
mainRules
:
{
organization_type
:[{
required
:
true
,
message
:
'企业类型'
,
trigger
:
'blur'
}],
license
:
[{
required
:
true
,
message
:
'请上传营业执照电子版'
,
validator
:
licenseValidator
}],
organization_name
:
[{
required
:
true
,
message
:
'企业名称不能为空'
,
trigger
:
'blur'
}],
license_number
:
[{
required
:
true
,
message
:
'统一社会代码不能为空'
,
trigger
:
'blur'
}],
...
...
src/views/system/order/index.vue
浏览文件 @
0f1fff43
...
...
@@ -206,7 +206,13 @@
</template>
</el-table-column> -->
<el-table-column
prop=
"refund_status"
label=
"售后状态"
width=
"180"
align=
"center"
:formatter=
"refundStatusFormatter"
></el-table-column>
:formatter=
"refundStatusFormatter"
>
<
template
slot-scope=
"scope"
>
{{
refundStatusFormatter
(
scope
.
row
.
refund_status
)
}}
<br/>
{{
timeFormatter
(
scope
.
row
.
after_sale_accomplish_time
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"remark"
label=
"订单备注"
width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
item
.
order
.
remark
?
item
.
order
.
remark
:
'暂无备注内容'
}}
...
...
@@ -220,7 +226,7 @@
<el-table-column
label=
"操作"
width=
"120"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"handleInfo(scope.row)"
>
详情
</el-button>
<el-button
:disabled=
"Number(scope.row.goods_status)!==0"
type=
"text"
<el-button
:disabled=
"Number(scope.row.goods_status)!==0
||(Number(scope.row.status)!=0&&Number(scope.row.status)!=-1)
"
type=
"text"
@
click=
"goShipping(scope.row.id,scope.row.goods_order_sn)"
>
去发货
</el-button>
</
template
>
</el-table-column>
...
...
@@ -555,7 +561,7 @@
},
/** 表格合并 列单元格 */
arraySpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
columnIndex
>
3
&&
columnIndex
!=
8
&&
columnIndex
!=
9
)
{
// 用于设置要合并开始的列号
if
(
columnIndex
>
3
&&
columnIndex
!=
6
&&
columnIndex
!=
8
&&
columnIndex
!=
9
)
{
// 用于设置要合并开始的列号
if
(
rowIndex
===
0
)
{
// 用于设置合并开始的行号
return
{
rowspan
:
100
,
// 合并的行数
...
...
@@ -637,7 +643,7 @@
return
res
},
/** 售后状态 */
refundStatusFormatter
(
row
,
column
,
cellValue
,
index
)
{
refundStatusFormatter
(
cellValue
)
{
let
statusText
=
'--'
if
(
cellValue
==
1
)
{
statusText
=
'申请仅退款'
...
...
src/views/system/order/index2.vue
浏览文件 @
0f1fff43
<
template
>
<div
class=
"app-container"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
label-width=
"85px"
class=
"queryFormInline"
size=
"small"
>
<el-form-item
label=
"付款状态"
prop=
"payStatus"
>
<el-select
v-model=
"queryParams.payStatus"
placeholder=
"付款状态"
size=
"small"
>
<el-option
v-for=
"item in payOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<el-card
class=
"box-cardone"
>
<div
style=
"position: relative;"
class=
"clearfixall"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"全部订单"
name=
"fourth"
>
<div
slot=
"label"
>
全部订单
{{
'('
+
totalall
+
')'
}}
</div>
</el-tab-pane>
<el-tab-pane
name=
"first"
>
<!--
<div
slot=
"label"
>
待发货
{{
activeName
==
'first'
?
'('
+
total1
+
')'
:
'(0)'
}}
</div>
-->
<div
slot=
"label"
>
待发货
{{
'('
+
total1
+
')'
}}
</div>
</el-tab-pane>
<el-tab-pane
name=
"second"
>
<div
slot=
"label"
>
待收货
{{
'('
+
total2
+
')'
}}
</div>
</el-tab-pane>
<el-tab-pane
label=
"已收货"
name=
"five"
>
<div
slot=
"label"
>
已收货
{{
'('
+
total5
+
')'
}}
</div>
</el-tab-pane>
<el-tab-pane
label=
"已完成"
name=
"third"
>
<div
slot=
"label"
>
已完成
{{
'('
+
total4
+
')'
}}
</div>
</el-tab-pane>
<el-tab-pane
label=
"异常订单"
name=
"six"
>
<div
slot=
"label"
>
异常订单
{{
'('
+
total3
+
')'
}}
</div>
</el-tab-pane>
</el-tabs>
<div
v-show=
"activeName == 'first' "
style=
"position: absolute; top: -2px; right: 0;"
>
<el-tooltip
v-if=
"channel_id == 0"
class=
"item"
effect=
"dark"
content=
"查看2021年10月8日23:00之前的订单"
placement=
"bottom-end"
>
<el-button
size=
"small"
@
click=
"gotoOldShop"
>
查看老订单
</el-button>
</el-tooltip>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-position"
@
click=
"handleExportDeliveryOrder"
>
批量发货
</el-button>
</div>
<div
v-show=
"activeName == 'fourth' "
style=
"position: absolute; top: -2px; right: 0;"
>
<el-tooltip
v-if=
"channel_id == 0"
class=
"item"
effect=
"dark"
content=
"查看2021年10月8日23:00之前的订单"
placement=
"bottom-end"
>
<el-button
size=
"small"
@
click=
"gotoOldShop"
>
查看老订单
</el-button>
</el-tooltip>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-download"
@
click=
"handleAllOrderExport"
>
导出订单
</el-button>
</div>
<div
v-show=
"activeName == 'second' || activeName == 'third'"
style=
"position: absolute; top: -2px; right: 0;"
>
<el-tooltip
v-if=
"channel_id == 0"
class=
"item"
effect=
"dark"
content=
"查看2021年10月8日23:00之前的订单"
placement=
"bottom-end"
>
<el-button
size=
"small"
@
click=
"gotoOldShop"
>
查看老订单
</el-button>
</el-tooltip>
</div>
</div>
<div
class=
"overMain"
>
<div
class=
"form-box"
>
<el-form
class=
"form-params"
ref=
"form"
:model=
"form"
label-width=
"120px"
:inline=
"true"
size=
"small"
>
<el-form-item
label=
"云仓订单号:"
>
<el-input
style=
"width:220px;"
v-model=
"form.order_sn"
placeholder=
"请输入总订单号"
/>
</el-form-item>
<el-form-item
label=
"发货状态"
prop=
"goodsStatus"
>
<el-select
v-model=
"queryParams.goodsStatus"
placeholder=
"发货状态"
size=
"small"
>
<el-option
v-for=
"item in goodsOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<el-form-item
label=
"商品名称:"
>
<el-input
v-model=
"form.goods_name"
placeholder=
"请输入商品名称"
/>
</el-form-item>
<el-form-item
label=
"订单状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"订单状态"
size=
"small"
>
<el-option
v-for=
"item in orderOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<el-form-item
label=
"收货人:"
>
<el-input
v-model=
"form.real_name"
placeholder=
"请输入收货人"
/>
</el-form-item>
<el-form-item
label=
"商品名字"
prop=
"GoodsName"
>
<el-input
v-model=
"queryParams.GoodsName"
placeholder=
"请输商品名字"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-form-item
label=
"联系电话:"
>
<el-input
v-model=
"form.Tel"
placeholder=
"请输入联系电话"
/>
</el-form-item>
<el-form-item
label=
"订单号"
prop=
"order_sn"
>
<el-input
v-model=
"queryParams.order_sn"
placeholder=
"请输订单号"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-form-item
label=
"结算状态:"
prop=
"settlement_status"
v-show=
"activeName == 'fourth' "
>
<el-select
v-model=
"form.settlement_status"
placeholder=
"请选择结算状态"
style=
"width:150px;"
>
<el-option
label=
"全部"
value=
"-1"
></el-option>
<el-option
label=
"已结算"
value=
"1"
></el-option>
<el-option
label=
"未结算"
value=
"0"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"下单时间"
prop=
"addTimeInterval"
>
<el-date-picker
size=
"small"
v-model=
"queryParams.addTimeInterval"
type=
"daterange"
align=
"left"
unlink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
></el-date-picker>
<el-form-item
label=
"是否售后:"
prop=
"is_after_sale"
v-show=
"activeName == 'fourth' "
>
<el-select
v-model=
"form.is_after_sale"
placeholder=
"请选择售后状态"
style=
"width:150px;"
>
<el-option
label=
"全部"
value=
"-1"
></el-option>
<el-option
label=
"是"
value=
"1"
></el-option>
<el-option
label=
"否"
value=
"0"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"订单状态:"
prop=
"status"
v-show=
"activeName == 'fourth' "
>
<el-select
v-model=
"form.status"
placeholder=
"请选择订单状态"
style=
"width:150px;"
>
<el-option
label=
"全部"
value=
"-1"
></el-option>
<el-option
label=
"待发货"
value=
"1"
></el-option>
<el-option
label=
"待收货"
value=
"2"
></el-option>
<el-option
label=
"已收货"
value=
"5"
></el-option>
<el-option
label=
"已完成"
value=
"3"
></el-option>
<el-option
label=
"异常订单"
value=
"4"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"下单时间:"
v-show=
"activeName == 'first' || activeName == 'fourth' "
>
<el-date-picker
style=
"width:280px;"
v-model=
"form.dateTime"
type=
"daterange"
align=
"left"
unaLink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"收货人名字"
prop=
"shipname"
>
<el-input
v-model=
"queryParams.shipname"
placeholder=
"请输收货人名字"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-form-item
label=
"发货时间:"
v-show=
"activeName == 'second' "
>
<el-date-picker
v-model=
"form.sendTime"
type=
"daterange"
align=
"left"
unaLink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"手机号"
prop=
"Tel"
>
<el-input
v-model=
"queryParams.Tel"
placeholder=
"请输手机号"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-form-item
label=
"收货时间:"
v-show=
"activeName == 'five' "
>
<el-date-picker
v-model=
"form.qiansTime"
type=
"daterange"
align=
"left"
unaLink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"完成时间:"
v-show=
"activeName == 'third' "
>
<el-date-picker
v-model=
"form.finishTime"
type=
"daterange"
align=
"left"
unaLink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
@
click=
"handleExport"
>
导出订单
</el-button>
<el-button
type=
"primary"
plain
icon=
"el-icon-position"
@
click=
"handleDelivery"
>
批量发货
</el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-search"
@
click=
"search"
>
搜索
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-refresh"
@
click=
"resetBtn(true)"
>
重置
</el-button>
</el-form-item>
</el-form>
</div>
<!-- 表头 -->
<div
class=
"table-header-spe"
>
<el-table
class=
"title_table hxz-el-table"
align=
"center"
>
<!--
<el-table-column
align=
"center"
width=
"55"
v-if=
"activeName == 'fourth' "
>
-->
<!--
<template
slot=
"header"
slot-scope=
"scope"
>
-->
<!--
<el-checkbox
v-model=
"allTablesChecked"
></el-checkbox>
-->
<!--
</
template
>
-->
<!-- </el-table-column>-->
<!-- <el-table-column label="订单号" align="center" width="220" ></el-table-column>-->
<el-table-column
label=
"商品名称"
align=
"center"
></el-table-column>
<el-table-column
label=
"规格/数量/金额"
align=
"center"
></el-table-column>
<el-table-column
label=
"下单/发货/完成时间"
align=
"center"
width=
"180"
></el-table-column>
<el-table-column
label=
"发货类型"
align=
"center"
width=
"120"
></el-table-column>
<el-table-column
label=
"运费"
align=
"center"
width=
"100"
></el-table-column>
<el-table-column
label=
"收货人"
align=
"center"
width=
"200"
></el-table-column>
<!-- <el-table-column label="联系电话" align="center" width="120"></el-table-column> -->
<el-table-column
label=
"售后状态"
align=
"center"
width=
"180"
></el-table-column>
<el-table-column
label=
"订单备注"
align=
"center"
width=
"120"
></el-table-column>
<el-table-column
label=
"物流信息"
align=
"center"
width=
"120"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
width=
"120"
></el-table-column>
</el-table>
</div>
<el-table
v-loading=
"loading"
:data=
"orderList"
:height=
"tableHeight"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"商品名称"
align=
"center"
width=
"200"
>
<div
class=
"table-all-con"
>
<el-card
v-for=
"(item, index) in tableDataList"
:key=
"index"
class=
"order-card"
>
<div
slot=
"header"
class=
"el-card-header-spe"
>
<div
style=
"float:left;"
>
<span>
订单状态:
</span>
<span>
{{ orderStatusFormatter(item.order.status) }}
</span>
<span
style=
"margin: 0 0 0 30px;"
>
云仓订单号:
</span>
<span>
{{ item.order.order_sn }}
</span>
</div>
<div
style=
"float:right;"
>
<span>
结算状态:
</span>
<span>
{{ settlementFormat(item.order.settlement_status) }}
</span>
</div>
</div>
<div
class=
"item-table"
>
<el-table
border
:show-header=
"false"
:span-method=
"arraySpanMethod"
:data=
"item.order_goods"
>
<!-- <el-table-column type="selection" width="55" align="center" v-if="activeName == 'fourth' "></el-table-column>-->
<!-- <el-table-column prop="goods_order_sn" label="订单号" width="220" align="center"></el-table-column>-->
<el-table-column
prop=
"title"
label=
"商品名称"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
style=
"display: flex;justify-content: space-around;flex-direction: row;"
>
<el-image
v-if=
"scope.row.Img!=''"
style=
"width: 60px; height: 50px"
:src=
"scope.row.Img"
fit=
"fill"
></el-image>
<span>
{{
scope
.
row
.
GoodsName
}}
</span>
<div
class=
"img-title-table"
>
<img
v-if=
"scope.row.thumb"
style=
"width:60px;height:60px;"
:src=
"scope.row.thumb"
/>
<div
class=
"ml10"
>
{{
scope
.
row
.
title
}}
</div>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"order_sn"
/>
<el-table-column
label=
"商品ID"
align=
"center"
prop=
"GoodsId"
/>
<el-table-column
label=
"规格"
align=
"center"
prop=
"SpecDes"
/>
<el-table-column
label=
"数量"
align=
"center"
prop=
"Quantity"
/>
<el-table-column
label=
"订单金额"
align=
"center"
prop=
"Money"
/>
<el-table-column
label=
"结算价格"
align=
"center"
prop=
"SellerMoney"
/>
<!-- <el-table-column label="来源" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <p v-if="scope.row.Pt==0">供应链中台</p>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!--<el-table-column label="收货人姓名" align="center" prop=""/>-->
<el-table-column
label=
"收货人信息"
align=
"center"
width=
"300"
>
<el-table-column
label=
"规格/数量/金额"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
style=
"width:80%;margin:0 auto; text-align: left;"
>
<span
><i
class=
"el-icon-user"
></i>
{{
scope
.
row
.
Shipname
}}
</span>
<br/>
<span
><i
class=
"el-icon-phone-outline"
></i>
{{
scope
.
row
.
Tel
}}
</span>
<br/>
<i
class=
"el-icon-location-information"
></i>
{{
scope
.
row
.
Province
}}
{{
scope
.
row
.
City
}}
{{
scope
.
row
.
Area
}}
{{
scope
.
row
.
Town
}}
{{
scope
.
row
.
Address
}}
{{
scope
.
row
.
goods_option_title
?
scope
.
row
.
goods_option_title
:
'--'
}}
<br
/>
x
{{
scope
.
row
.
total
?
scope
.
row
.
total
:
'--'
}}
<br
/>
{{
scope
.
row
.
goods_price
/
100
?
scope
.
row
.
goods_price
/
100
:
'--'
}}
元
<br
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"created_time"
label=
"下单时间"
width=
"200"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
timeFormatter
(
scope
.
row
.
created_time
)
}}
</span><br
/>
<span
:class=
"
{ 'red-text' : sendTimeFormatter(scope.row.send_time) == '未发货' }">
{{
sendTimeFormatter
(
scope
.
row
.
send_time
)
}}
</span><br
/>
<span
:class=
"
{ 'red-text' : updatedTimeFormatter(scope.row.updated_time) == '未完成' }">
{{
updatedTimeFormatter
(
scope
.
row
.
updated_time
,
scope
.
row
.
goods_status
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"dispatch_price"
width=
"120"
label=
"发货类型"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.send_time==0"
>
-
</div>
<div
v-else
>
<span
v-if=
"scope.row.type==1"
>
快递
</span>
<span
v-if=
"scope.row.type==2"
>
自行配送
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"付款时间"
align=
"center"
prop=
"Paytime"
/>
<el-table-column
label=
"确认收货"
align=
"center"
prop=
"ConfirmTime"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
prop=
"dispatch_price"
width=
"100"
label=
"运费"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
v-if=
"scope.row.PayStatus==1 && scope.row.GoodsStatus == 0 || scope.row.GoodsStatus == 3"
size=
"mini"
type=
"text"
@
click=
"fahuo(scope.row)"
>
去发货
</el-button>
<el-divider
direction=
"vertical"
v-if=
"scope.row.PayStatus==1 && scope.row.GoodsStatus == 0 || scope.row.GoodsStatus == 3"
></el-divider>
<el-button
v-else-if=
"scope.row.PayStatus==1 && scope.row.GoodsStatus == 1 || scope.row.GoodsStatus == 2 && scope.row.DeliverNo"
size=
"mini"
type=
"text"
@
click=
"handleWl(scope.row)"
v-loading=
"loading"
>
物流
</el-button>
<el-divider
direction=
"vertical"
v-else-if=
"scope.row.PayStatus==1 && scope.row.GoodsStatus == 1 || scope.row.GoodsStatus == 2 && scope.row.DeliverNo"
></el-divider>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleUpdate(scope.row)"
>
详情
</el-button>
{{
item
.
order
.
dispatch_price
/
100
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"phone"
width=
"200"
label=
"收货人"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
item
.
order
.
real_name
}}
<br
/>
{{
item
.
order
.
mobile
}}
<br
/>
{{
item
.
order
.
provice
}}{{
item
.
order
.
city
}}{{
item
.
order
.
district
}}{{
item
.
order
.
street
}}{{
item
.
order
.
address
}}
</
template
>
</el-table-column>
<!-- <el-table-column prop="mobile" label="联系电话" width="120" align="center">
<template slot-scope="scope">
{{ item.order.mobile }}
</template>
</el-table-column> -->
<el-table-column
prop=
"refund_status"
label=
"售后状态"
width=
"180"
align=
"center"
:formatter=
"refundStatusFormatter"
></el-table-column>
<el-table-column
prop=
"remark"
label=
"订单备注"
width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
item
.
order
.
remark
?
item
.
order
.
remark
:
'暂无备注内容'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"物流信息"
label=
"物流信息"
width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"handleExpressInfo(scope.row)"
>
查看物流
</el-button>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"120"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"handleInfo(scope.row)"
>
详情
</el-button>
<el-button
:disabled=
"Number(scope.row.goods_status)!==0"
type=
"text"
@
click=
"goShipping(scope.row.id,scope.row.goods_order_sn)"
>
去发货
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"queryParams.pageNum"
:limit
.
sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 详情 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"70%"
append-to-body
class=
"order-details"
:close-on-click-modal=
"false"
>
<el-col
:span=
"24"
class=
"card-box"
v-loading=
"loading"
>
<el-card>
<div
slot=
"header"
>
<span>
订单信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<table
cellspacing=
"0"
style=
"width: 100%;"
>
<tbody>
<tr>
<td>
<div
class=
"cell"
>
订单编号
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.order_sn"
>
{{form.order_sn}}
</div>
</td>
<td>
<div
class=
"cell"
>
第三方订单号
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.tx_sn"
>
{{form.tx_sn}}
</div>
</td>
<td>
<div
class=
"cell"
>
父订单号
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.parent_order_sn"
>
{{form.parent_order_sn}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
商品总价格
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.SellerMoney"
>
{{form.SellerMoney}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品实付价格
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Money"
>
{{form.Money}}
</div>
</td>
<td>
<div
class=
"cell"
>
数量
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Quantity"
>
{{form.Quantity}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
下单时间
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Addtime"
>
{{form.Addtime}}
</div>
</td>
<td>
<div
class=
"cell"
>
付款时间
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Paytime"
>
{{form.Paytime}}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
v-loading=
"loading"
>
<el-card>
<div
slot=
"header"
>
<span>
商品信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<table
cellspacing=
"0"
style=
"width: 100%;"
>
<tbody>
<tr>
<td>
<div
class=
"cell"
>
商品图
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Img"
><img
:src=
"form.Img"
alt=
""
width=
"320"
height=
"198"
></div>
</td>
<td>
<div
class=
"cell"
>
商品ID
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.GoodsId"
>
{{form.GoodsId}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
商品名
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.GoodsName"
>
{{form.GoodsName}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品规格
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.SpecDes"
>
{{form.SpecDes}}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
<!--物流信息-->
<el-col
:span=
"24"
class=
"card-box"
v-loading=
"loading"
>
<el-card>
<div
slot=
"header"
>
<span>
物流信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<table
cellspacing=
"0"
style=
"width: 100%;"
>
<tbody>
<tr>
<td>
<div
class=
"cell"
>
收货人姓名
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Shipname"
>
{{form.Shipname}}
</div>
</td>
<td>
<div
class=
"cell"
>
收货人电话
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Tel"
>
{{form.Tel}}
</div>
</td>
<td>
<div
class=
"cell"
>
收货人地址
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Address"
>
{{form.Address}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
快递公司
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.DeliverName"
>
{{form.DeliverName}}
</div>
</td>
<td>
<div
class=
"cell"
>
快递单号
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.DeliverNo"
>
{{form.DeliverNo}}
</div>
</td>
<td>
<div
class=
"cell"
>
发货时间
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Delivertime"
>
{{form.Delivertime}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
运费
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Freight"
>
{{form.Freight}}
</div>
</td>
<td>
<div
class=
"cell"
>
查看物流信息
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.DeliverNo"
>
<el-button
size=
"big"
type=
"text"
@
click=
"handleWl(form)"
>
点击查看
</el-button>
</div>
<div
class=
"cell"
v-else
>
<el-button
size=
"big"
type=
"text"
@
click=
"fahuo(form)"
>
去发货
</el-button>
<!-- 分页 -->
<div
class=
"footer_pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage"
:page-sizes=
"[20, 40, 60, 80, 100]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
>
</el-pagination>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
v-loading=
"loading"
>
<el-card>
<div
slot=
"header"
>
<span>
其他
</span>
<!-- 订单详情 对话框 -->
<el-dialog
title=
"订单详情"
width=
"85%"
:close-on-click-modal=
"false"
:destroy-on-close=
"true"
:visible
.
sync=
"detailDialog"
center
:before-close=
"handleClose"
>
<div
style=
"height:100%;"
>
<order-detail
:order-detail=
"order_detail"
:order-goods-detail=
"order_goods_detail"
:express-lists=
"expressLists"
@
updateOrder=
"updateOrder"
/>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<table
cellspacing=
"0"
style=
"width: 100%;"
>
<tbody>
<tr>
<td>
<div
class=
"cell"
>
售后时长
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.AftersaleTime"
>
{{form.AftersaleTime}}
</div>
</td>
<td>
<div
class=
"cell"
>
售后过期时间
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.AfterSaleOverTime"
>
{{form.AfterSaleOverTime}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
备注
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.Remark"
>
{{form.Remark}}
</div>
</td>
<td>
<div
class=
"cell"
>
用户备注
</div>
</td>
<td>
<div
class=
"cell"
v-if=
"form.UserRemark"
>
{{form.UserRemark}}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<!-- 去发货 -->
<el-dialog
:title=
"title2"
:visible
.
sync=
"open2"
width=
"60%"
append-to-body
v-loading=
"loading"
style=
"height: 40%"
>
<el-form
:model=
"sendGoods"
ref=
"sendGoods"
label-width=
"100px;"
>
<el-row>
<el-col
:span=
"16"
:offset=
"3"
>
<el-form-item
label=
"快递公司"
prop=
"deliverName"
>
<el-select
v-model=
"sendGoods.deliverName"
filterable
clearable
placeholder=
"请选择快递公司"
@
change=
"selectValue"
style=
"width:70%"
>
<el-option
v-for=
"item in expressList"
:key=
"item.value"
:label=
"item.label"
size=
"small"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"16"
:offset=
"3"
>
<el-form-item
label=
"快递单号"
prop=
"deliverNo"
>
<el-input
v-model=
"sendGoods.deliverNo"
placeholder=
"请输快递单号"
clearable
size=
"small"
style=
"width:70%"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:span=
"24"
>
<el-col
:span=
"2"
:offset=
"21"
>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm()"
>
提 交
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
<!-- 物流信息 -->
<el-dialog
:title=
"title3"
:visible
.
sync=
"open3"
width=
"60%"
append-to-body
v-loading=
"loading"
>
<el-timeline
:reverse=
"reverse"
style=
"padding: 10px 60px;"
>
<el-timeline-item
v-loading=
"loading"
v-for=
"(activity, index) in expressInfo"
:key=
"index"
:timestamp=
"activity.time"
>
{{activity.context}}
</el-timeline-item>
</el-timeline>
</el-dialog>
</el-card>
<!-- 批量发货 -->
<el-dialog
title=
"批量发货流程"
:visible
.
sync=
"isDeliveryOpen"
width=
"60%"
center
>
<!-- 批量发货 -->
<el-dialog
title=
"批量发货流程"
:visible
.
sync=
"isDeliveryOpen"
width=
"60%"
center
:before-close=
"cancelExport"
:close-on-click-modal=
"false"
:destroy-on-close=
"true"
>
<el-steps
:active=
"3"
align-center
style=
"width:95%;margin: 0 auto;"
>
<el-step
title=
"导出发货Excel表单"
description=
""
>
<
template
slot=
"icon"
>
...
...
@@ -475,252 +267,639 @@
</el-step>
</el-steps>
<div
class=
"delivery-data-con"
>
<el-upload
action=
""
class=
"upload-demo"
:auto-upload=
"false"
:limit =
'1'
accept=
"*/*"
:on-change =
'importExcel'
:on-remove =
'removeDevExcel'
ref=
"upload"
><el-button
size=
"small"
type=
"primary"
>
上传批量发货Excel表单
</el-button>
<!-- <i slot="tip" class="el-upload__tip el-icon-info">请选取文本文件</i>-->
<div>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-download"
@
click=
"handleExportUnSendOrder"
>
导出订单
</el-button>
</div>
<div>
<el-upload
action=
""
class=
"upload-demo"
:auto-upload=
"false"
:limit=
"1"
accept=
"*/*"
:on-change=
"importExcel"
:on-remove=
"removeDevExcel"
ref=
"upload"
>
<el-button
size=
"small"
type=
"primary"
>
上传批量发货Excel表单
</el-button>
</el-upload>
<!-- <el-upload-->
<!-- class="upload-demo"-->
<!-- action="http://127.0.0.1:20001/Administration/MediaApiLhUploadHandler"-->
<!-- :on-preview="handlePreview"-->
<!-- :on-remove="handleRemove"-->
<!-- :before-remove="beforeRemove"-->
<!-- multiple-->
<!-- :limit="1"-->
<!-- :on-exceed="handleExceed"-->
<!-- :file-list="fileList">-->
<!-- <el-button size="small" type="primary" >上传批量发货Excel表单</el-button>-->
<!--<!– <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>–>-->
<!-- </el-upload>-->
<!-- <div class="submit-dev-form">-->
<!-- <el-button type="primary">上传批量发货Excel表单</el-button>-->
<!-- </div>-->
<!-- <div class="submit-dev-excel"></div>-->
</div>
</div>
<div
class=
"delivery-tips-con"
>
<p
style=
"text-align: center"
>
常见问题
</p>
<p>
1、批量发货规则
</p>
<p>
必须正确填写了“快递公司 快递单号”才会导入并更改订单状态为已发货!
</p>
<p>
2、如何获取一个批量发货的excel文件?
</p>
<p>
在商户后台左侧菜单的 “订单中心” 》“订单列表”里面可以将订单导出为Excel格式的文件,您可以在这里自由导出订单
</p>
<p>
3、导出excel文件后,批量发货需要输入什么信息?
</p>
<p>
在我们的导出的excel文件中,打开里面有“快递单号 快递公司”。 您可以在将正确的快递发货单号,快递公司填入对应的列里面,和对应的订单号一对应。然后保存提交,就可以用于批量发货了
</p>
<p>
1、批量发货流程
</p>
<p>
【导出订单数据】按钮,获取待发货订单数据表
</p>
<p>
打开导出的待发货订单数据表,填写【快递公司】和【快递单号】信息
</p>
<p>
点击【上传批量发货Excel表单】按钮,选择填写完成的待发货订单数据表并上传,点击【确定】按钮即可完成批量发货
</p>
<p>
2、注意事项
</p>
<p>
请注意,必须正确填写【快递公司】名称和【快递单号】才会导入并发货成功
</p>
<p>
表格的其它信息请勿做修改,否则会导致批量发货不成功
</p>
<p>
常用快递公司名称(按此名称填写)
</p>
<p>
【顺丰快递】【天天快递】【韵达快递】【圆通快递】【中通快递】【中国邮政】
</p>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel
Delivery
"
>
取 消
</el-button>
<el-button
@
click=
"cancel
Export
"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"subDelivery"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 查看物流 -->
<el-dialog
title=
"物流信息"
width=
"50%"
class=
"cutclass"
:close-on-click-modal=
"false"
:destroy-on-close=
"true"
:visible
.
sync=
"dialogExpress"
append-to-body
>
<div
class=
"logistics"
>
<el-timeline>
<el-timeline-item
v-for=
"(activity, index) in activities"
:key=
"index"
:icon=
"activity.icon"
:type=
"activity.type"
color=
"#0bbd87"
:size=
"activity.size"
:timestamp=
"activity.msg_time"
>
{{activity.content}}
</el-timeline-item>
</el-timeline>
<div
v-if=
"activities.length == 0"
>
暂无物流信息
</div>
</div>
</el-dialog>
<!-- fahuo -->
<el-dialog
title=
"发货"
:visible
.
sync=
"goShippingDialog"
width=
"25%"
:modal-append-to-body=
"false"
:close-on-click-modal=
"false"
:append-to-body=
"true"
>
<div
style=
"margin: 0 10%"
>
<el-form
ref=
"form"
label-width=
"100px"
>
<el-form-item
label=
"发货类型:"
>
<el-radio-group
v-model=
"radioshop"
@
change=
"radioshopclick()"
>
<el-radio
:label=
"1"
>
快递发货
</el-radio>
<el-radio
:label=
"2"
>
自行配送
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"快递公司:"
>
<el-select
size=
"mini"
v-model=
"expressNum"
filterable
placeholder=
"请选择快递公司"
style=
"width: 100%;"
>
<el-option
v-for=
"item in expressLists"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="快递公司:" v-if="radioshop == 2">
<el-input size="mini" v-model="expressNum1" placeholder="请输入快递公司"></el-input>
</el-form-item> -->
<el-form-item
label=
"快递单号:"
>
<el-input
size=
"mini"
v-model=
"express_sn"
placeholder=
"请输入快递单号"
></el-input>
</el-form-item>
</el-form>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"goShippingDialog = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"handleGoShipping"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 批量发货 展示失败数据-->
<el-dialog
title=
"批量发货提醒"
center
width=
"60%"
class=
"delivery-fail-data-dialog"
:visible
.
sync=
"dialogDeliveryInfor"
:close-on-click-modal=
"false"
append-to-body
:before-close=
"closeDeliverFailDialog"
>
<div
class=
"delivery-fail-table-con"
>
<p
class=
"delivery-table-tip"
>
部分订单发货失败,失败订单信息如下表所示
</p>
<el-table
border
:data=
"failDeliveryList"
>
<el-table-column
prop=
"goods_order_sn"
label=
"商品订单号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"order_sn"
label=
"总订单号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"goods_status"
label=
"状态"
align=
"center"
></el-table-column>
<el-table-column
prop=
"reason"
label=
"原因"
align=
"center"
></el-table-column>
</el-table>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
@
click=
"cancelDeliveryInfor"
>
取 消
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"exportFailDeliveryExcel"
>
导出失败订单
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
XLSX
from
"xlsx"
;
import
{
listOrder
,
getOrder
,
sendOrder
,
getExpressInfo
,
updateOrder
,
getExpressList
,
exportOrder
,
deliveryOrder
}
from
'@/api/module/order'
import
{
dateFormat
}
from
'@/utils'
import
{
indexInfo
}
from
'@/api/webSite'
import
{
listOrder
,
exportOrder
,
orderInfo
,
expressInfoNew
,
deliveryOrder
,
expressList
,
getOrderTabData
,
exportUnSendOrderGoodsData
,
deliveryOrderExport
}
from
'@/api/module/order'
import
{
dateFormat
}
from
'@/utils'
import
OrderDetail
from
'./components/orderDetail.vue'
import
XLSX
from
"xlsx"
import
{
isArray
}
from
"../../../utils/validate"
;
export
default
{
name
:
"order"
,
components
:
{
OrderDetail
},
data
()
{
return
{
pickerOptions
:
{
shortcuts
:
[{
text
:
'最近一周'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
7
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
}
},
{
text
:
'最近一个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
30
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
}
},
{
text
:
'最近三个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
90
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
}
}]
},
//-------------------
fullHeight
:
0
,
tableHeight
:
0
,
fullscreenLoading
:
false
,
// 时间线正序
reverse
:
false
,
// 遮罩层
loading
:
false
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
goShippingDialog
:
false
,
radioshop
:
1
,
expressNum
:
''
,
expressNum1
:
''
,
express_sn
:
''
,
goods_ids
:
''
,
// channel_id
channel_id
:
''
,
//
sellerId
:
0
,
currentPage
:
1
,
pageSize
:
20
,
total
:
0
,
// 折扣金额表格数据
orderList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
// 弹出层标题2
title2
:
""
,
// 是否显示弹出层2
open2
:
false
,
// 是否显示弹出层
open3
:
false
,
isDeliveryOpen
:
false
,
// 批量发货对话框
// 弹出层标题2
title3
:
""
,
//快递公司
expressList
:
[],
//商品状态
goodsOptions
:
[
{
label
:
"全部状态"
,
value
:
-
1
},
{
label
:
"未发货"
,
value
:
0
},
{
label
:
"已发货"
,
value
:
1
},
{
label
:
"已收货"
,
value
:
2
},
{
label
:
"配货中"
,
value
:
3
},
{
label
:
"拒收"
,
value
:
4
},
],
//支付状态 付款状态:0:未付款,1:已付款,2申请退款,3,退款中,4已退款5退款申请失败(申请后20天内未处理)
payOptions
:
[
{
label
:
"全部状态"
,
value
:
-
1
},
{
label
:
"未付款"
,
value
:
0
},
{
label
:
"已付款"
,
value
:
1
},
{
label
:
"申请退款"
,
value
:
2
},
{
label
:
"退款中"
,
value
:
3
},
{
label
:
"已退款"
,
value
:
4
},
{
label
:
"退款申请失败"
,
value
:
5
},
],
//订单状态:0:未处理,1,已作废,2,待退货,3,已退货,4,异常订单,10已处理
orderOptions
:
[
{
label
:
"全部状态"
,
value
:
-
1
},
{
label
:
"未处理"
,
value
:
0
},
{
label
:
"已作废"
,
value
:
1
},
{
label
:
"待退货"
,
value
:
2
},
{
label
:
"已退货"
,
value
:
3
},
{
label
:
"异常订单"
,
value
:
4
},
{
label
:
"已处理"
,
value
:
10
},
],
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
payStatus
:
null
,
goodsStatus
:
null
,
status
:
null
,
GoodsName
:
null
,
order_sn
:
null
,
shipname
:
null
,
Tel
:
null
,
beginTime
:
0
,
endTime
:
0
,
addTimeInterval
:
[]
},
sendGoods
:
{
orderSn
:
""
,
deliverNo
:
""
,
deliverName
:
""
,
deliverCode
:
""
,
},
expressInfo
:
[],
// 表单参数
form
:
{},
jsonData
:
[],
excelList
:
[]
};
total1
:
''
,
//待发货
total2
:
''
,
//待收货
total5
:
''
,
//已收货
total4
:
''
,
//已完成
total3
:
''
,
//异常订单
totalall
:
''
,
//全部订单
activeName
:
'fourth'
,
form
:
{
order_sn
:
''
,
goods_name
:
''
,
real_name
:
''
,
Tel
:
''
,
settlement_status
:
''
,
status
:
''
,
dateTime
:
[],
finishTime
:
[],
qiansTime
:
[],
sendTime
:
[],
is_after_sale
:
''
},
goodsStatus
:
0
,
tableDataList
:
[],
// 后台返回所有数据
detailDialog
:
false
,
isDeliveryOpen
:
false
,
excelList
:
[],
order_detail
:
{
remark
:
[]
},
// 订单信息
order_goods_detail
:
[],
// 订单商品信息
expressLists
:
[],
fullHeight
:
''
,
tableHeight
:
null
,
allTablesChecked
:
false
,
// 订单导出 入参
exportParams
:
{},
// 查看物流窗口
dialogExpress
:
false
,
activities
:
[],
// 批量发货 失败数据展示 窗口
dialogDeliveryInfor
:
false
,
failDeliveryList
:
[],
// 批量发货 失败table数据
}
},
watch
:
{
// fullHeight(val, oldval) {
// const contheight = document.getElementsByClassName('box-cardone')[0].clientHeight
// this.tableHeight = contheight - val - 250;
// // const heights = contheight
// // document.getElementsByClassName('cardHeight')[0].style.height = heights + 'px'
// }
},
created
()
{
this
.
getList
();
this
.
getExpress
();
this
.
$nextTick
(()
=>
{
this
.
fullHeight
=
document
.
getElementsByClassName
(
'box-card'
)[
0
].
clientHeight
// this.$nextTick(() => {
// this.fullHeight = document.getElementsByClassName('clearfixall')[0].clientHeight
// })
},
mounted
()
{
/** 获取 seller_id*/
this
.
sellerId
=
this
.
$store
.
state
.
user
.
sellerid
;
/** 获取渠道id */
this
.
getChannelId
()
// 订单列表 搜索
this
.
getListOrder
()
//
this
.
getExpressList
()
},
methods
:
{
radioshopclick
(){
this
.
express_sn
=
''
let
data
=
{
type
:
this
.
radioshop
}
expressList
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
this
.
expressLists
=
res
.
data
.
expressLists
}
})
},
watch
:
{
fullHeight
(
val
)
{
let
formHeight
=
document
.
getElementsByClassName
(
'clearfix'
)[
0
].
clientHeight
this
.
tableHeight
=
val
-
formHeight
-
110
goShipping
(
id
,
goods_order_sn
)
{
this
.
goods_ids
=
goods_order_sn
;
this
.
titleInfo
=
'去发货'
this
.
expressNum
=
''
this
.
expressNum1
=
''
this
.
express_sn
=
''
this
.
goShippingDialog
=
true
},
// 保证日期初始化格式
'queryParams.addTimeInterval'
()
{
// select组件,clear的时候,将addTimeInterval的值,初始化为null,判断当其值为null时,赋值为数组
if
(
!
this
.
queryParams
.
addTimeInterval
&&
typeof
(
this
.
queryParams
.
addTimeInterval
)
!==
"undefined"
)
{
this
.
queryParams
.
addTimeInterval
=
[];
this
.
queryParams
.
beginTime
=
0
;
this
.
queryParams
.
endTime
=
0
;
handleGoShipping
()
{
if
(
!
this
.
express_sn
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'请输入快递单号'
})
return
}
// 物流公司,名称
let
expressName
=
''
if
(
!
this
.
expressNum
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'请选择快递公司'
})
return
}
this
.
expressLists
.
map
((
item
)
=>
{
if
(
item
.
value
==
this
.
expressNum
)
{
expressName
=
item
.
label
}
})
let
paramsObj
=
{
type
:
this
.
radioshop
,
goods_order_sn
:
[],
//this.goods_ids,
express_company_name
:
expressName
,
// 快递公司 名称
express_sn
:
this
.
express_sn
,
// 快递单号
//express_code: ''
}
paramsObj
.
goods_order_sn
.
push
(
this
.
goods_ids
);
//console.log(11111,paramsObj);
deliveryOrder
(
paramsObj
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
this
.
$message
({
type
:
'success'
,
message
:
'发货成功'
});
this
.
goShippingDialog
=
false
this
.
getListOrder
();
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
res
.
message
?
res
.
message
:
'发货失败'
});
}
});
},
methods
:
{
// 获取所有物流
getExpress
()
{
getExpressList
().
then
(
res
=>
{
if
(
res
.
code
===
1
&&
res
.
data
)
{
this
.
expressList
=
res
.
data
.
expressLists
;
}
else
{
this
.
$message
({
message
:
'数据出错啦!'
,
type
:
'error'
});
/** 判断渠道 值=0才显示 查看历史数据 链接 */
getChannelId
()
{
let
ssa
=
window
.
location
.
host
const
data
=
{
type
:
2
,
site_type
:
4
,
// domain: ssa,
}
indexInfo
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
this
.
channel_id
=
res
.
data
.
channel
.
id
}
});
},
// 选择的物流数据
selectValue
(
value
)
{
this
.
sendGoods
.
deliverCode
=
value
;
},
//物流
handleWl
:
function
(
row
)
{
this
.
loading
=
true
;
this
.
sendGoods
.
deliverCode
=
row
.
DeliverCode
;
this
.
sendGoods
.
deliverName
=
row
.
DeliverName
;
this
.
sendGoods
.
deliverNo
=
row
.
DeliverNo
;
this
.
sendGoods
.
orderSn
=
row
.
order_sn
;
getExpressInfo
(
this
.
sendGoods
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
code
===
1
)
{
this
.
open3
=
true
;
this
.
title3
=
"物流信息"
;
this
.
expressInfo
=
res
.
data
.
data
;
}
else
{
let
msg
=
res
.
msg
||
'数据出错了'
;
this
.
$message
({
type
:
'error'
,
message
:
msg
});
/** 查看老订单 */
gotoOldShop
()
{
window
.
location
.
href
=
'http://oldpop.jxhh.com/'
},
checkSelectable
(
row
,
index
)
{
},
/** 表格合并 列单元格 */
arraySpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
columnIndex
>
3
&&
columnIndex
!=
8
&&
columnIndex
!=
9
)
{
// 用于设置要合并开始的列号
if
(
rowIndex
===
0
)
{
// 用于设置合并开始的行号
return
{
rowspan
:
100
,
// 合并的行数
colspan
:
1
// 合并的列数,设为0则直接不显示
}
}
else
{
return
{
rowspan
:
0
,
colspan
:
0
}
}
}
},
formatter
(
time
)
{
return
dateFormat
(
time
*
1000
,
'Y-m-d H:i:s'
)
},
/** 一般时间 格式化 */
timeFormatter
(
time
)
{
if
(
time
)
{
return
dateFormat
(
time
*
1000
,
'Y-m-d H:i:s'
)
}
else
{
return
'--'
}
},
/** 发货时间 格式化 */
sendTimeFormatter
(
time
)
{
if
(
time
)
{
return
dateFormat
(
time
*
1000
,
'Y-m-d H:i:s'
)
}
else
{
return
'未发货'
}
},
/** 发货时间 格式化 */
updatedTimeFormatter
(
time
,
status
)
{
if
(
time
&&
status
==
2
)
{
return
dateFormat
(
time
*
1000
,
'Y-m-d H:i:s'
)
}
else
{
return
'未完成'
}
},
/** 订单状态 */
orderStatusFormatter
(
status
)
{
//
<
el
-
option
label
=
"全部"
value
=
"-1"
><
/el-option
>
//
<
el
-
option
label
=
"待发货"
value
=
"1"
><
/el-option
>
//
<
el
-
option
label
=
"待收货"
value
=
"2"
><
/el-option
>
//
<
el
-
option
label
=
"已收货"
value
=
"5"
><
/el-option
>
//
<
el
-
option
label
=
"已完成"
value
=
"3"
><
/el-option
>
//
<
el
-
option
label
=
"异常订单"
value
=
"4"
><
/el-option
>
if
(
status
===
-
1
)
{
return
'订单取消'
}
else
if
(
status
===
0
)
{
return
'待付款'
}
else
if
(
status
===
1
)
{
return
'待发货'
}
else
if
(
status
===
2
)
{
return
'待收货'
}
else
if
(
status
===
3
)
{
return
'已完成'
}
else
if
(
status
===
4
)
{
return
'异常订单'
}
else
if
(
status
===
5
)
{
return
'已收货'
}
else
{
return
''
// 保险,返回空
}
},
/** 结算状态 */
settlementFormat
(
status
)
{
let
res
=
''
;
if
(
status
==
0
)
{
res
=
'未结算'
}
else
if
(
status
==
1
)
{
res
=
'已结算'
}
else
{
res
=
''
}
return
res
},
/** 售后状态 */
refundStatusFormatter
(
row
,
column
,
cellValue
,
index
)
{
let
statusText
=
'--'
if
(
cellValue
==
1
)
{
statusText
=
'申请仅退款'
}
else
if
(
cellValue
==
2
)
{
statusText
=
'同意仅退款,退款完成'
}
else
if
(
cellValue
==
3
)
{
statusText
=
'卖家拒绝退款,售后关闭'
}
else
if
(
cellValue
==
4
)
{
statusText
=
'申请退货退款'
}
else
if
(
cellValue
==
5
)
{
statusText
=
'同意退货退款,等待买家退货'
}
else
if
(
cellValue
==
6
)
{
statusText
=
'拒绝退货退款,售后关闭'
}
else
if
(
cellValue
==
7
)
{
statusText
=
'买家退货,等待卖家收货'
}
else
if
(
cellValue
==
8
)
{
statusText
=
'同意退货退款,退款完成'
}
else
if
(
cellValue
==
9
)
{
statusText
=
'拒绝收货,售后关闭'
}
else
if
(
cellValue
==
10
)
{
statusText
=
'买家取消售后,售后关闭'
}
return
statusText
},
// 重置
resetBtn
(
iscall
)
{
this
.
form
=
{
order_sn
:
''
,
goods_name
:
''
,
real_name
:
''
,
Tel
:
''
,
dateTime
:
[],
finishTime
:
[],
qiansTime
:
[],
sendTime
:
[],
settlement_status
:
''
,
is_after_sale
:
''
}
this
.
currentPage
=
1
this
.
pageSize
=
20
if
(
iscall
)
{
this
.
getListOrder
()
}
},
// tab切换
handleClick
(
tab
,
event
)
{
this
.
total
=
0
switch
(
this
.
activeName
)
{
case
'first'
:
this
.
goodsStatus
=
1
//待发货
break
case
'second'
:
this
.
goodsStatus
=
2
//待收货
break
case
'third'
:
this
.
goodsStatus
=
3
//已完成。
break
case
'five'
:
this
.
goodsStatus
=
5
//已收货
break
case
'six'
:
this
.
goodsStatus
=
4
//异常订单
break
case
'fourth'
:
this
.
goodsStatus
=
0
//全部订单
break
// case 'oldVersion':
// window.open('http://oldpop.jxhh.com/')
// break
default
:
break
}
this
.
resetBtn
(
false
)
this
.
getListOrder
()
},
handleClose
()
{
this
.
detailDialog
=
false
this
.
getListOrder
()
},
/** 获取 订单 状态对应数量 */
getOrderTab
()
{
getOrderTabData
().
then
(
res
=>
{
//console.log("获取订单状态和对应订单数量",res);
if
(
res
.
code
===
1
&&
res
.
data
.
length
>
0
)
{
// 1 表示 代发货;2 表示 待收货
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
)
{
// total1: '',//待发货
// total2: '',//待收货
// total5:'',//已收货
// total4:'',//已完成
// total3:'',//异常订单
// totalall:'',//全部订单
if
(
res
.
data
[
i
].
status
===
1
)
{
//待发货
this
.
total1
=
res
.
data
[
i
].
count
>
999
?
'999+'
:
res
.
data
[
i
].
count
;
}
else
if
(
res
.
data
[
i
].
status
===
2
)
{
//待收货
this
.
total2
=
res
.
data
[
i
].
count
>
999
?
'999+'
:
res
.
data
[
i
].
count
;
}
else
if
(
res
.
data
[
i
].
status
===
3
)
{
//已完成
this
.
total4
=
res
.
data
[
i
].
count
>
999
?
'999+'
:
res
.
data
[
i
].
count
;
}
else
if
(
res
.
data
[
i
].
status
===
5
)
{
//已收货
this
.
total5
=
res
.
data
[
i
].
count
>
999
?
'999+'
:
res
.
data
[
i
].
count
;
}
else
if
(
res
.
data
[
i
].
status
===
4
)
{
//异常订单
this
.
total3
=
res
.
data
[
i
].
count
>
999
?
'999+'
:
res
.
data
[
i
].
count
;
}
else
if
(
res
.
data
[
i
].
status
===
0
)
{
//全部订单
this
.
totalall
=
res
.
data
[
i
].
count
>
999
?
'999+'
:
res
.
data
[
i
].
count
;
}
}
}
});
},
//发货
fahuo
:
function
(
row
)
{
const
order_sn
=
row
.
order_sn
this
.
sendGoods
.
orderSn
=
order_sn
this
.
open2
=
true
;
this
.
title2
=
"去发货"
;
// 搜索 操作
search
()
{
this
.
currentPage
=
1
;
this
.
getListOrder
();
},
// 批量发货
handleDelivery
(){
this
.
isDeliveryOpen
=
true
;
// 获取订单列表
getListOrder
()
{
this
.
tableDataList
=
[]
let
params
=
{
page
:
this
.
currentPage
,
limit
:
this
.
pageSize
,
seller_id
:
this
.
sellerId
,
}
// if(this.$route.query.timeout==24){
// params.is_time_out=true
// }
if
(
this
.
form
.
order_sn
!=
''
)
{
params
[
'order_sn'
]
=
this
.
form
.
order_sn
}
if
(
this
.
form
.
goods_name
!=
''
)
{
params
[
'goods_name'
]
=
this
.
form
.
goods_name
}
if
(
this
.
form
.
real_name
!=
''
)
{
params
[
'real_name'
]
=
this
.
form
.
real_name
}
if
(
this
.
form
.
Tel
!=
''
)
{
params
[
'mobile'
]
=
this
.
form
.
Tel
}
if
(
this
.
form
.
is_after_sale
==
'0'
||
this
.
form
.
is_after_sale
==
'1'
)
{
params
[
'is_after_sale'
]
=
this
.
form
.
is_after_sale
}
if
(
this
.
goodsStatus
==
0
)
{
if
(
this
.
form
.
status
==
''
||
this
.
form
.
status
==
'-1'
)
{
params
[
'status'
]
=
this
.
goodsStatus
}
else
{
params
[
'status'
]
=
this
.
form
.
status
}
}
else
{
params
[
'status'
]
=
this
.
goodsStatus
}
if
(
this
.
form
.
settlement_status
==
'0'
||
this
.
form
.
settlement_status
==
'1'
)
{
params
[
'settlement_status'
]
=
this
.
form
.
settlement_status
}
if
(
this
.
form
.
dateTime
&&
this
.
form
.
dateTime
.
length
==
2
)
{
params
[
'created_start_time'
]
=
new
Date
(
this
.
form
.
dateTime
[
0
]).
getTime
()
/
1000
;
params
[
'created_end_time'
]
=
new
Date
(
this
.
form
.
dateTime
[
1
]).
getTime
()
/
1000
;
}
if
(
this
.
form
.
finishTime
&&
this
.
form
.
finishTime
.
length
==
2
)
{
params
[
'finish_start_time'
]
=
new
Date
(
this
.
form
.
finishTime
[
0
]).
getTime
()
/
1000
;
params
[
'finish_end_time'
]
=
new
Date
(
this
.
form
.
finishTime
[
1
]).
getTime
()
/
1000
;
}
if
(
this
.
form
.
qiansTime
&&
this
.
form
.
qiansTime
.
length
==
2
)
{
params
[
'sign_order_start_time'
]
=
new
Date
(
this
.
form
.
qiansTime
[
0
]).
getTime
()
/
1000
;
params
[
'sign_order_end_time'
]
=
new
Date
(
this
.
form
.
qiansTime
[
1
]).
getTime
()
/
1000
;
}
if
(
this
.
form
.
sendTime
&&
this
.
form
.
sendTime
.
length
==
2
)
{
params
[
'send_start_time'
]
=
new
Date
(
this
.
form
.
sendTime
[
0
]).
getTime
()
/
1000
;
params
[
'send_end_time'
]
=
new
Date
(
this
.
form
.
sendTime
[
1
]).
getTime
()
/
1000
;
}
listOrder
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
// 获取 订单 状态对应数量
this
.
getOrderTab
()
// 每次订单 查询成功,保存查询参数,供商品导出接口使用(入参)
this
.
exportParams
=
params
;
//console.log("初始赋值:",this.exportParams);
this
.
total
=
res
.
data
.
count
||
0
this
.
tableDataList
=
res
.
data
.
data
}
else
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
message
?
res
.
message
:
"查询订单失败"
});
}
})
},
// row 当前行 column 当前列 rowIndex 当前行号, columnIndex 当前列号
listSpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
columnIndex
===
1
)
{
if
(
rowIndex
%
2
===
0
)
{
return
{
rowspan
:
2
,
colspan
:
1
};
}
else
{
return
{
rowspan
:
0
,
colspan
:
0
};
}
}
},
/**
* [待发货] 页签 导出订单 操作
* 导出逻辑,根据 当前 搜索条件,导出所有订单
* */
handleExportUnSendOrder
()
{
let
params
=
this
.
exportParams
;
delete
params
.
page
;
delete
params
.
limit
;
delete
params
.
seller_id
;
delete
params
.
status
;
exportUnSendOrderGoodsData
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
1
)
{
const
aLink
=
document
.
createElement
(
'a'
);
aLink
.
href
=
res
.
data
.
file_url
;
aLink
.
download
=
'待发货订单.xls'
;
//下载的文件名
aLink
.
style
.
display
=
'none'
;
document
.
body
.
appendChild
(
aLink
);
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
this
.
$message
({
type
:
'success'
,
message
:
'导出成功,注意下载表格'
});
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
res
.
message
?
res
.
message
:
'导出失败'
});
}
});
},
/**
* [全部订单] 页签 订单导出
* 导出逻辑,根据 当前 搜索条件,导出所有订单
* */
handleAllOrderExport
()
{
let
params
=
this
.
exportParams
;
delete
params
.
page
;
delete
params
.
limit
;
// delete params.seller_id;
// delete params.status;
// delete params.settlement_status;
exportOrder
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
1
)
{
const
aLink
=
document
.
createElement
(
'a'
);
aLink
.
href
=
res
.
data
.
file_url
;
//aLink.download = '订单.xls'; //下载的文件名
aLink
.
style
.
display
=
'none'
;
document
.
body
.
appendChild
(
aLink
);
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
res
.
message
?
res
.
message
:
'导出失败'
});
}
});
},
// 上传批量发货Excel表单前
importExcel
(
file
,
fileList
)
{
//this.excelList = fileList;
this
.
excelList
=
[];
let
_this
=
this
;
_this
.
file2Xce
(
file
).
then
(
item
=>
{
...
...
@@ -728,24 +907,27 @@
// xlsxJson就是解析出来的json数据,数据格式如下
// [{sheetName: sheet1, sheet: sheetData }]
if
(
item
[
0
]
&&
item
[
0
].
sheet
&&
item
[
0
].
sheet
.
length
)
{
//_this.tableData = item[0].sheet //把数据塞到表格预览
console
.
log
(
743
,
item
[
0
].
sheet
);
this
.
excelList
=
item
[
0
].
sheet
//_this.tableDataList = item[0].sheet //把数据塞到表格预览
// this.excelList = item[0].sheet
item
[
0
].
sheet
.
map
((
item
,
index
)
=>
{
this
.
excelList
.
push
({
goods_order_sn
:
item
[
'商品订单号'
].
toString
().
trim
(),
express_name
:
item
[
'快递公司'
].
toString
().
trim
(),
express_sn
:
item
[
'快递单号'
].
toString
().
trim
()
})
})
}
}
})
.
catch
(
error
=>
{
loading
.
close
();
})
},
/**
* 解析文件
* @param {Object} file
*/
file2Xce
(
file
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
const
reader
=
new
FileReader
();
reader
.
onload
=
function
(
e
)
{
reader
.
onload
=
function
(
e
)
{
const
data
=
e
.
target
.
result
;
this
.
wb
=
XLSX
.
read
(
data
,
{
type
:
"binary"
...
...
@@ -764,231 +946,364 @@
},
removeDevExcel
(
file
,
fileList
)
{
this
.
excelList
=
[];
//console.log(781,this.excelList);
},
// ---------
// tableToExcel(list){
// // 列标题,逗号隔开,每一个逗号就是隔开一个单元格
// let title = `订单编号,第三方订单号,goodsFee,goodsStatus,orderStatus,goodsId,name,price,skuName\n`;
// //增加\t为了不让表格显示科学计数法或者其他格式
// for(let i = 0 ; i
<
list
.
length
;
i
++
){
// for(let item in list[i]){
// title += `${list[i][item] + '\t'},`;
// }
// title += '\n';
// }
// //encodeURIComponent解决中文乱码
// let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(title);
// //通过创建a标签实现
// var link = document.createElement("a");
// link.href = uri;
// //对下载的文件命名
// link.download = "json数据表.csv";
// document.body.appendChild(link);
// link.click();
// document.body.removeChild(link);
// } ,
// --------------
// 订单导出
handleExport
(
row
)
{
const
rowIds
=
this
.
ids
;
let
query
=
{
page
:
1
,
limit
:
100
}
exportOrder
(
query
).
then
(
res
=>
{
if
(
res
.
code
===
1
)
{
const
link
=
document
.
createElement
(
'a'
);
link
.
href
=
res
.
data
;
//link.download = '订单.xls'; //下载的文件名
link
.
style
.
display
=
'none'
;
document
.
body
.
appendChild
(
link
);
link
.
click
();
document
.
body
.
removeChild
(
link
);
}
});
// return
// this.$confirm('是否确认导出所选择的订单的数据?','警告',{
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(async()=> {
// this.loading = true;
// let delResult = await exportOrder(ids);
// this.loading = false;
// if(delResult.code === 1) {
// this.$message({type: 'success',message: delResult.msg});
// }
// if(delResult.code === 0) {
// this.$message({type: 'error',message: delResult.msg});
// }
// }).catch(()=> {});
},
dateIfAddZero
:
function
(
time
)
{
return
time
<
10
?
'0'
+
time
:
time
/** 批量发货 - 导入表格 */
handleExportDeliveryOrder
()
{
this
.
isDeliveryOpen
=
true
;
this
.
excelList
=
[];
},
/** 查询折扣金额列表 */
getList
()
{
this
.
loading
=
true
;
listOrder
(
this
.
queryParams
).
then
(
response
=>
{
this
.
from
=
response
.
data
.
list
;
this
.
orderList
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
/** 取消 批量上传发货 */
cancelExport
()
{
this
.
$refs
.
upload
.
clearFiles
();
this
.
isDeliveryOpen
=
false
;
this
.
excelList
=
[];
//console.log(88,this.excelList);
},
/** 提交导入数据 */
subDelivery
()
{
this
.
failDeliveryList
=
[];
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{};
this
.
resetForm
(
"form"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
if
(
this
.
queryParams
.
addTimeInterval
.
length
===
2
)
{
this
.
queryParams
.
beginTime
=
new
Date
(
this
.
queryParams
.
addTimeInterval
[
0
]).
getTime
()
/
1000
;
this
.
queryParams
.
endTime
=
new
Date
(
this
.
queryParams
.
addTimeInterval
[
1
]).
getTime
()
/
1000
;
}
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
queryParams
.
beginTime
=
0
;
this
.
queryParams
.
endTime
=
0
;
this
.
handleQuery
();
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
order_sn
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 详情按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
this
.
loading
=
true
const
order_sn
=
row
.
order_sn
||
this
.
ids
getOrder
(
order_sn
).
then
(
response
=>
{
//console.log("请求原始数据:",response);
this
.
loading
=
false
this
.
form
=
response
.
data
.
parms
;
this
.
form
.
Delivertime
=
dateFormat
(
response
.
data
.
parms
.
Delivertime
*
1000
,
"Y-m-d H:i:s"
);
this
.
form
.
Addtime
=
dateFormat
(
response
.
data
.
parms
.
Addtime
*
1000
,
"Y-m-d H:i:s"
);
this
.
expressList
=
response
.
data
.
expressLists
;
this
.
open
=
true
;
this
.
title
=
"订单详情"
;
});
},
/** 发货按钮 */
submitForm
()
{
this
.
$refs
[
"sendGoods"
].
validate
(
valid
=>
{
if
(
valid
)
{
sendOrder
(
this
.
sendGoods
).
then
(
response
=>
{
if
(
response
.
code
==
1
)
{
this
.
msgSuccess
(
"发货成功"
);
this
.
open2
=
false
;
this
.
open
=
false
;
this
.
getList
();
if
(
this
.
excelList
.
length
===
0
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'请先上传填写好的表格数据'
});
return
}
});
if
(
this
.
excelList
.
length
>
0
&&
this
.
excelList
[
0
].
goods_order_sn
&&
this
.
excelList
[
0
].
express_name
&&
this
.
excelList
[
0
].
express_sn
)
{
deliveryOrderExport
(
this
.
excelList
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
data
&&
res
.
data
.
fail_list
&&
res
.
data
.
fail_list
.
length
>
0
)
{
this
.
failDeliveryList
=
res
.
data
.
fail_list
;
this
.
failDeliveryList
.
forEach
((
item
)
=>
{
item
[
'goods_status'
]
=
'发货失败'
})
this
.
dialogDeliveryInfor
=
true
;
this
.
$message
({
type
:
'warning'
,
message
:
'部分订单发货成功,失败订单可以导出'
});
}
else
{
this
.
isDeliveryOpen
=
false
;
this
.
excelList
=
[];
this
.
$refs
.
upload
.
clearFiles
();
this
.
$message
({
type
:
'success'
,
message
:
'批量发货成功'
});
}
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
res
.
message
?
res
.
message
:
'批量发货失败'
});
}
this
.
getListOrder
();
});
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
'部分订单未填写物流公司或物流单号,请完善后再上传'
});
}
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
order_sns
=
row
.
order_sn
||
this
.
ids
;
this
.
$confirm
(
'是否确认删除折扣金额编号为"'
+
order_sns
+
'"的数据项?'
,
"警告"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
()
{
return
delOrder
(
order_sns
);
}).
then
(()
=>
{
this
.
getList
();
this
.
msgSuccess
(
"删除成功"
);
}).
catch
(
function
()
{
/** 导出 table数据 */
exportFailDeliveryExcel
()
{
let
list
=
[];
list
=
this
.
failDeliveryList
;
let
exportList
=
[];
this
.
failDeliveryList
.
forEach
(
item
=>
{
let
obj
=
{};
obj
[
'goods_order_sn'
]
=
item
.
goods_order_sn
obj
[
'order_sn'
]
=
item
.
order_sn
obj
[
'goods_status'
]
=
item
.
goods_status
obj
[
'reason'
]
=
item
.
reason
exportList
.
push
(
obj
);
});
// 列标题,逗号隔开,每一个逗号就是隔开一个单元格
let
title
=
`商品订单号,总订单号,发货状态,失败原因\n`
;
//增加\t为了不让表格显示科学计数法或者其他格式
for
(
let
i
=
0
;
i
<
exportList
.
length
;
i
++
)
{
for
(
let
item
in
exportList
[
i
])
{
title
+=
`
${
exportList
[
i
][
item
]
+
'
\
t'
}
,`
;
}
title
+=
'
\
n'
;
}
//encodeURIComponent解决中文乱码
let
uri
=
'data:text/csv;charset=utf-8,
\
ufeff'
+
encodeURIComponent
(
title
);
//通过创建a标签实现
var
link
=
document
.
createElement
(
"a"
);
link
.
href
=
uri
;
//对下载的文件命名
link
.
download
=
"发货失败订单汇总表.csv"
;
document
.
body
.
appendChild
(
link
);
link
.
click
();
document
.
body
.
removeChild
(
link
);
},
/
/ 取消批量发货
cancelDelivery
()
{
/
** 关闭 发货失败 数据展示 */
cancelDelivery
Infor
()
{
this
.
isDeliveryOpen
=
false
;
this
.
excelList
=
[]
;
this
.
dialogDeliveryInfor
=
false
;
},
// 提交导入数据
subDelivery
()
{
if
(
this
.
excelList
.
length
===
0
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'请先上传填写好的表格数据'
});
/** 关闭 发货失败窗口 前 */
closeDeliverFailDialog
()
{
this
.
cancelDeliveryInfor
();
this
.
failDeliveryList
=
[];
},
/** 导出 发货失败的数据 */
exportFailDeliverList
()
{
this
.
failDeliveryList
=
[];
},
/** 查看物流信息 */
handleExpressInfo
(
row
)
{
// 如果 商品订单没有发货,则不用请求了
if
(
row
.
goods_status
==
0
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'您还未发货,暂无物流信息'
});
return
}
if
(
this
.
excelList
.
length
>
0
&&
this
.
excelList
[
0
].
id
&&
this
.
excelList
[
0
].
express_name
&&
this
.
excelList
[
0
].
express_sn
&&
this
.
excelList
[
0
].
express_code
)
{
deliveryOrder
(
this
.
excelList
).
then
(
res
=>
{
//console.log(954,res)
if
(
res
.
code
===
1
)
{
this
.
isDeliveryOpen
=
false
;
this
.
$message
({
type
:
'success'
,
message
:
'批量发货成功'
});
this
.
getList
();
}
else
{
let
msg
=
res
.
message
||
'批量发货失败'
this
.
$message
({
type
:
'error'
,
message
:
msg
});
let
params
=
{
goods_order_sn
:
row
.
goods_order_sn
,
sku_id
:
row
.
goods_option_id
}
expressInfoNew
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
1
&&
res
.
data
)
{
this
.
dialogExpress
=
true
this
.
activities
=
res
.
data
.
order_track
?
res
.
data
.
order_track
:
[];
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
res
.
message
?
res
.
message
:
'获取数据失败'
});
}
})
},
// 订单详情
handleInfo
(
row
)
{
let
order_id
=
row
.
order_id
orderInfo
({
order_id
:
order_id
}).
then
(
res
=>
{
if
(
res
.
code
==
1
&&
res
.
data
)
{
this
.
detailDialog
=
true
// 留言备注,需要单独处理
let
remarkList
=
[]
// res.data.order.remark 返回数据格式比较多,不判断了
try
{
remarkList
=
JSON
.
parse
(
res
.
data
.
order
.
seller_remark
)
}
catch
(
e
)
{
remarkList
=
[]
}
res
.
data
.
order
.
remark
=
remarkList
this
.
order_detail
=
res
.
data
.
order
;
// 商品订单数据 array
this
.
order_goods_detail
=
res
.
data
.
order_goods_detail
?
res
.
data
.
order_goods_detail
:
[];
// 能否修改买家信息 字段动态添加
// 1,商品订单,只要要发货的,就不能再修改,2,修改过一次的,不能再修改
let
isEditBuyerInfo
=
false
;
if
(
this
.
order_detail
.
is_update_address
==
1
)
{
isEditBuyerInfo
=
true
}
else
{
if
(
this
.
order_goods_detail
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
this
.
order_goods_detail
.
length
;
i
++
)
{
if
(
this
.
order_goods_detail
[
i
].
goods_status
>
0
)
{
isEditBuyerInfo
=
true
break
;
}
}
});
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
'导入表格数据有误'
});
}
}
}
//methods结束
this
.
order_detail
[
'isEditBuyerInfo'
]
=
isEditBuyerInfo
;
//console.log('备注留言返回原始数据',res.data.order.remark);
// this.$router.push({path: '/system/goods/management'});
}
else
if
(
res
.
code
==
0
)
{
let
msg
=
res
.
message
?
res
.
message
:
'暂无数据'
this
.
$message
({
type
:
'error'
,
message
:
msg
});
}
})
},
/** 更新 订单备注 */
updateOrder
(
id
)
{
let
row
=
{
order_id
:
id
}
this
.
handleInfo
(
row
);
},
// 获取物流信息
getExpressList
()
{
let
data
=
{
type
:
this
.
radioshop
}
expressList
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
this
.
expressLists
=
res
.
data
.
expressLists
}
})
},
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
this
.
getListOrder
()
},
handleCurrentChange
(
val
)
{
this
.
currentPage
=
val
this
.
getListOrder
()
},
/** 时间格式处理 */
// dateTimeChange(val) {
// if( !Array.isArray(val) ) {
// this.form.dateTime = [];
// }
//
// },
},
};
</
script
>
<
style
scoped
lang=
"scss"
type=
"text/stylus"
>
.order-details
{
::v-deep
.el-dialog
{
height
:
80%
;
overflow
:
hidden
;
<
style
scoped
>
.box-cardone
{
height
:
100%
;
}
::v-deep
.el-range-editor.el-input__inner
{
width
:
100%
;
}
::v-deep
.el-dialog__body
{
height
:
calc
(
100%
-
120px
);
overflow-x
:
hidden
;
overflow-y
:
scroll
;
::v-deep
.el-card__body
{
height
:
calc
(
100%
-
50px
);
/* overflow: auto; */
}
.overMain
{
height
:
729px
;
overflow
:
auto
;
padding-top
:
15px
;
}
.scollbox
{
/* height: calc(100% - 50px); */
/* overflow-y: hidden; */
}
::v-deep
.el-tabs__header
{
margin
:
0
;
}
::v-deep
.queryFormInline
{
.el-form-item
:nth-child
(
1
)
{
margin-bottom
:
10px
;
.form-box
{
/*margin-bottom: 20px;*/
/*padding-top: 10px;*/
}
.form-params
{
/*background-color: #F7F8FA;*/
}
.delivery-tips-con
,
.delivery-data-con
{
width
:
80%
;
margin
:
5px
auto
;
::v-deep
.form-params
.el-form-item
{
margin
:
5px
0
5px
0
;
}
.img-title-table
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.footer_pagination
{
text-align
:
center
;
/* width: 100%; */
margin-top
:
15px
;
/* position: fixed;
bottom: 50px;
left: 35%;
z-index: 1000;
background-color: white; */
}
.delivery-data-con
{
height
:
100px
;
margin
:
40px
auto
;
width
:
80%
;
margin
:
10px
auto
;
font-weight
:
bold
;
display
:
flex
;
justify-content
:
space-around
;
align-items
:
center
;
flex-direction
:
row
;
}
.upload-demo
{
text-align
:
center
;
}
//.submit-dev-form {
// text-align : center;
//}
//.submit-dev-excel {
// overflow-x:hidden;
// overflow-y:scroll;
//}
.delivery-tips-con
{
width
:
80%
;
margin
:
60px
auto
0
;
font-weight
:
bold
;
}
/*.delivery-data-con {*/
/* height: 100px;*/
/* margin: 20px auto;*/
/*}*/
.upload-demo
{
text-align
:
center
;
}
/* 订单卡片 样式 */
.order-card
{
margin
:
10px
0
12px
;
}
.order-card
::v-deep
.el-card__header
{
padding
:
0
;
min-height
:
fit-content
;
}
.el-card-header-spe
{
overflow
:
hidden
;
/* 此为父元素,子元素都浮动了,所以,这样处理,撑开自己的高度 */
font-size
:
14px
;
padding
:
10px
12px
;
background-color
:
#f0f0f5
;
/*background-color: #909399;*/
}
.table-header-spe
{
background-color
:
#F7F8FA
;
padding
:
0
34px
0
22px
;
margin
:
5px
0
;
}
::v-deep
.title_table
{
/*width: calc(100% - 94px) !important;*/
/*margin: 0 40px;*/
}
::v-deep
.title_table
.el-table__body-wrapper
{
display
:
none
!important
;
height
:
0
!important
;
}
::v-deep
.title_table
tr
th
{
border-bottom
:
0
!important
;
}
::v-deep
.title_table
::before
{
height
:
0
;
}
.table-all-con
{
/* height: calc(100% - 190px); */
/* margin-bottom: 40px; */
/* overflow: auto; */
}
.el-card-header-spe
{
/* overflow: hidden; */
}
.ml10
{
margin-left
:
10px
;
}
.red-text
{
font-size
:
12px
;
color
:
red
!important
;
}
/* 批量发货 对话框 */
.delivery-fail-data-dialog
{
height
:
100%
;
overflow
:
hidden
;
}
.delivery-fail-data-dialog
::v-deep
.el-dialog
{
height
:
80%
;
overflow
:
hidden
;
}
::v-deep
.el-step__title.is-finish
{
color
:
#333
.delivery-fail-data-dialog
::v-deep
.el-dialog
.el-dialog__body
{
height
:
calc
(
100%
-
120px
);
overflow
:
auto
;
padding
:
15px
20px
;
}
.delivery-table-tip
{
padding
:
0
;
margin
:
0
0
15px
;
text-align
:
center
;
}
</
style
>
src/views/system/shop/index.vue
浏览文件 @
0f1fff43
...
...
@@ -19,7 +19,10 @@
</div>
<el-form
ref=
"mainForm"
:model=
"mainForm"
label-width=
"180px"
class=
"main-form-con"
size=
"small"
>
<el-form-item
label=
"企业类型:"
prop=
"organization_type"
inline-message=
"true"
>
<span
v-if=
"mainForm.organization_type==2"
>
小规模
</span>
<span
v-if=
"mainForm.organization_type==1"
>
一般纳税人
</span>
</el-form-item>
<el-form-item
label=
"营业执照:"
prop=
"license"
>
<div
style=
"width:100%;height: 100%;display: flex;flex-direction: row;justify-content: normal;"
>
<div
style=
"padding-right:6px;"
>
...
...
@@ -252,7 +255,13 @@
<el-dialog
title=
"编辑店铺信息"
:visible
.
sync=
"isOpen"
width=
"65%"
class=
"shopinf-edit"
center
:destroy-on-close=
"true"
:close-on-click-modal=
"false"
:before-close=
"handleCancel"
>
<el-form
v-if=
"isOpen"
ref=
"editForm"
class=
"editForm"
:model=
"editForm"
:rules=
"editRules"
label-width=
"180px"
size=
"small"
>
<!--
<el-form-item
label=
"企业类型:"
prop=
"organization_type"
inline-message=
"true"
>
<el-radio-group
v-model=
"editForm.organization_type"
size=
"mini"
>
<el-radio
:label=
"2"
>
小规模
</el-radio>
<el-radio
:label=
"1"
>
一般纳税人
</el-radio>
</el-radio-group>
<span
class=
"tips-text"
><i
class=
"el-icon-warning h-warning"
></i>
请正确选择企业类型,会影响提现时所需发票的性质。小规模需提供普票,一般纳税人需提供专票
</span>
</el-form-item>
-->
<el-form-item
label=
"电商平台经验:"
prop=
"is_business_experience"
>
<el-radio-group
v-model=
"editForm.is_business_experience"
>
<el-radio
:label=
"1"
>
有
</el-radio>
...
...
@@ -402,6 +411,7 @@
reviewResult
:
'加载中。。'
,
isMainItem
:
true
,
// 主体/企业信息 是否可以修改,目前暂时不能
mainForm
:
{
organization_type
:
1
,
license
:
''
,
organization_name
:
''
,
license_number
:
''
,
...
...
@@ -454,6 +464,7 @@
// 编辑
isOpen
:
false
,
editForm
:
{
// organization_type:2,
is_business_experience
:
''
,
store_name
:
''
,
scope
:
[],
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论