This commit is contained in:
DESKTOP-GMUNQ1B\k 2024-03-15 14:42:18 +08:00
parent ce652a8ce2
commit 987c8a33ae

View File

@ -3,103 +3,83 @@
<div class="selCard mb14">
<el-form :model="tableFrom" ref="searchForm" size="small" label-width="85px" inline>
<el-form-item label="订单状态:" style="display: block;" prop="status">
<el-radio-group v-model="tableFrom.status" type="button" @change="getList(1),getCardList()">
<el-radio-button label>全部 {{ '(' +orderChartType.all?orderChartType.all:0 + ')' }}</el-radio-button>
<el-radio-button label="1">待付款 {{ '(' +orderChartType.unpaid?orderChartType.unpaid:0+ ')' }}</el-radio-button>
<el-radio-button label="2">待发货 {{ '(' +orderChartType.unshipped?orderChartType.unshipped:0+ ')' }}</el-radio-button>
<el-radio-button label="3">待收货 {{ '(' +orderChartType.untake?orderChartType.untake:0+ ')' }}</el-radio-button>
<el-radio-button label="4">待评价 {{ '(' +orderChartType.unevaluate?orderChartType.unevaluate:0+ ')' }}</el-radio-button>
<el-radio-button label="5">交易完成 {{ '(' +orderChartType.complete?orderChartType.complete:0+ ')' }}</el-radio-button>
<el-radio-button label="6">已退款 {{ '(' +orderChartType.refund?orderChartType.refund:0+ ')' }}</el-radio-button>
<el-radio-button label="7">已删除 {{ '(' +orderChartType.del?orderChartType.del:0+ ')' }}</el-radio-button>
<el-radio-group v-model="tableFrom.status" type="button" @change="getList(1), getCardList()">
<el-radio-button label>全部 {{ '(' + orderChartType.all ? orderChartType.all : 0 + ')' }}</el-radio-button>
<el-radio-button label="1">待付款 {{ '(' + orderChartType.unpaid ? orderChartType.unpaid : 0 + ')'
}}</el-radio-button>
<el-radio-button label="2">待发货 {{ '(' + orderChartType.unshipped ? orderChartType.unshipped : 0 + ')'
}}</el-radio-button>
<el-radio-button label="3">待收货 {{ '(' + orderChartType.untake ? orderChartType.untake : 0 + ')'
}}</el-radio-button>
<el-radio-button label="4">待评价 {{ '(' + orderChartType.unevaluate ? orderChartType.unevaluate : 0 + ')'
}}</el-radio-button>
<el-radio-button label="5">交易完成 {{ '(' + orderChartType.complete ? orderChartType.complete : 0 + ')'
}}</el-radio-button>
<el-radio-button label="6">已退款 {{ '(' + orderChartType.refund ? orderChartType.refund : 0 + ')'
}}</el-radio-button>
<el-radio-button label="7">已删除 {{ '(' + orderChartType.del ? orderChartType.del : 0 + ')'
}}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="时间选择:">
<el-date-picker v-model="timeVal" value-format="yyyy/MM/dd" format="yyyy/MM/dd" size="small" type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 280px;" :picker-options="pickerOptions" @change="onchangeTime" />
<el-date-picker v-model="timeVal" value-format="yyyy/MM/dd" format="yyyy/MM/dd" size="small" type="daterange"
placement="bottom-end" placeholder="自定义时间" style="width: 280px;" :picker-options="pickerOptions"
@change="onchangeTime" />
</el-form-item>
<el-form-item label="发货方式:" prop="filter_delivery">
<el-select
v-model="tableFrom.filter_delivery"
placeholder="请选择"
class="filter-item selWidth"
clearable
@change="getList(1),getCardList()"
>
<el-option
v-for="item in dliveryWayList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="tableFrom.filter_delivery" placeholder="请选择" class="filter-item selWidth" clearable
@change="getList(1), getCardList()">
<el-option v-for="item in dliveryWayList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="商品名称:" prop="store_name">
<el-input v-model="tableFrom.store_name" placeholder="请输入商品名称" class="selWidth" clearable @keyup.enter.native="getList(1),getCardList()" />
<el-input v-model="tableFrom.store_name" placeholder="请输入商品名称" class="selWidth" clearable
@keyup.enter.native="getList(1), getCardList()" />
</el-form-item>
<el-form-item label="总单单号:" prop="group_order_sn">
<el-input v-model="tableFrom.group_order_sn" placeholder="请输入总单订单号" class="selWidth" clearable @keyup.enter.native="getList(1),getCardList()" />
<el-input v-model="tableFrom.group_order_sn" placeholder="请输入总单订单号" class="selWidth" clearable
@keyup.enter.native="getList(1), getCardList()" />
</el-form-item>
<el-form-item label="商品类型:" prop="filter_product">
<el-select
v-model="tableFrom.filter_product"
placeholder="请选择"
class="selWidth"
clearable
@change="getList(1),getCardList()"
>
<el-option
v-for="item in productTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="tableFrom.filter_product" placeholder="请选择" class="selWidth" clearable
@change="getList(1), getCardList()">
<el-option v-for="item in productTypeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="活动类型:" prop="activity_type">
<el-select
v-model="tableFrom.activity_type"
placeholder="请选择"
class="selWidth"
clearable
@change="getList(1),getCardList()"
>
<el-option
v-for="item in activityList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="tableFrom.activity_type" placeholder="请选择" class="selWidth" clearable
@change="getList(1), getCardList()">
<el-option v-for="item in activityList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="支付方式:" prop="pay_type">
<el-select
v-model="tableFrom.pay_type"
clearable
placeholder="请选择"
class="selWidth"
@change="getList(1),getCardList()"
>
<el-select v-model="tableFrom.pay_type" clearable placeholder="请选择" class="selWidth"
@change="getList(1), getCardList()">
<el-option label="余额" value="0" />
<el-option label="微信" value="1" />
<el-option label="支付宝" value="2" />
</el-select>
</el-form-item>
<el-form-item label="关键字:" prop="keywords">
<el-input v-model="tableFrom.keywords" placeholder="请输入订单号/收货人/联系方式" class="selWidth" clearable @keyup.enter.native="getList(1),getCardList()" />
<el-input v-model="tableFrom.keywords" placeholder="请输入订单号/收货人/联系方式" class="selWidth" clearable
@keyup.enter.native="getList(1), getCardList()" />
</el-form-item>
<el-form-item label="用户信息:" prop="username">
<el-input v-model="tableFrom.username" placeholder="请输入用户昵称/手机号" class="selWidth" clearable @keyup.enter.native="getList(1),getCardList()" />
</el-form-item>
<el-input v-model="tableFrom.username" placeholder="请输入用户昵称/手机号" class="selWidth" clearable
@keyup.enter.native="getList(1), getCardList()" />
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
<el-button size="small" @click="searchReset()">重置</el-button>
<el-button size="small" @click="searchReset()">重置</el-button>
</el-form-item>
</el-form>
</div>
<cards-data v-if="cardLists.length>0" :card-lists="cardLists" />
<cards-data v-if="cardLists.length > 0" :card-lists="cardLists" />
<el-card>
<el-tabs v-if="headeNum.length > 0" v-model="tableFrom.order_type" @tab-click="getList(1),getCardList(),getHeaderList()">
<el-tab-pane v-for="(item,index) in headeNum" :key="index" :name="item.order_type.toString()" :label="item.title +'('+item.count +')' " />
<el-tabs v-if="headeNum.length > 0" v-model="tableFrom.order_type"
@tab-click="getList(1), getCardList(), getHeaderList()">
<el-tab-pane v-for="(item, index) in headeNum" :key="index" :name="item.order_type.toString()"
:label="item.title + '(' + item.count + ')'" />
</el-tabs>
<div class="mt5">
<el-button size="small" type="primary" class="mr14" @click="orderCancellation('')">订单核销</el-button>
@ -112,21 +92,15 @@
<el-dropdown-item command="2">导出发货单</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-upload
style="display:inline-block;"
size="small"
class="mr14 ml5"
:headers="myHeaders"
:action="fileUrl"
:on-success="handleSuccess"
:show-file-list="false"
>
<el-upload style="display:inline-block;" size="small" class="mr14 ml5" :headers="myHeaders" :action="fileUrl"
:on-success="handleSuccess" :show-file-list="false">
<el-button size="small">导入批量发货</el-button>
</el-upload>
<el-button size="small" @click="getDeliveryList">批量发货记录</el-button>
<el-button size="small" @click="batchSend">批量发送货</el-button>
</div>
<el-table v-loading="listLoading" :data="tableData.data" size="small" class="table mt20" highlight-current-row :cell-class-name="addTdClass">
<el-table v-loading="listLoading" :data="tableData.data" size="small" class="table mt20" highlight-current-row
:cell-class-name="addTdClass">
<el-table-column type="expand">
<template slot-scope="props">
<el-form label-position="left" inline class="demo-table-expand">
@ -149,14 +123,20 @@
<template slot="header" slot-scope="scope">
<el-popover placement="top-start" width="100" trigger="hover" class="tabPop">
<div>
<span class="spBlock onHand" :class="{'check': chkName === 'dan'}" @click="onHandle('dan',scope.$index)">选中本页</span>
<span class="spBlock onHand" :class="{'check': chkName === 'duo'}" @click="onHandle('duo')">选中全部</span>
<span class="spBlock onHand" :class="{ 'check': chkName === 'dan' }"
@click="onHandle('dan', scope.$index)">选中本页</span>
<span class="spBlock onHand" :class="{ 'check': chkName === 'duo' }"
@click="onHandle('duo')">选中全部</span>
</div>
<el-checkbox slot="reference" :value="(chkName === 'dan' && checkedPage.indexOf(tableFrom.page) > -1) || chkName === 'duo'" @change="changeType" />
<el-checkbox slot="reference"
:value="(chkName === 'dan' && checkedPage.indexOf(tableFrom.page) > -1) || chkName === 'duo'"
@change="changeType" />
</el-popover>
</template>
<template slot-scope="scope">
<el-checkbox :value="checkedIds.indexOf(scope.row.order_id) > -1 || (chkName === 'duo' && noChecked.indexOf(scope.row.order_id) === -1)" @change="(v)=>changeOne(v,scope.row)" />
<el-checkbox
:value="checkedIds.indexOf(scope.row.order_id) > -1 || (chkName === 'duo' && noChecked.indexOf(scope.row.order_id) === -1)"
@change="(v) => changeOne(v, scope.row)" />
</template>
</el-table-column>
<el-table-column label="订单编号" min-width="170">
@ -165,7 +145,7 @@
<span v-show="scope.row.is_del > 0" style="color: #ED4014;display: block;">用户已删除</span>
</template>
</el-table-column>
<el-table-column prop="real_name" label="收货人/订购人" min-width="130" />
<el-table-column label="商品信息" min-width="330">
<template slot-scope="scope">
@ -173,12 +153,16 @@
<div class="demo-image__preview">
<el-image :src="val.cart_info.product.image" :preview-src-list="[val.cart_info.product.image]" />
</div>
<span class="tabBox_tit">{{ val.cart_info.product.store_name + ' | ' }}{{ val.cart_info.productAttr.sku }}</span>
<span class="tabBox_tit">{{ val.cart_info.product.store_name + ' | ' }}{{ val.cart_info.productAttr.sku
}}</span>
<span class="tabBox_pice">
<span v-if="scope.row.activity_type === 2 && val.cart_info.productPresellAttr">{{ ''+ val.cart_info.productPresellAttr.presell_price + ' x '+ val.product_num }}</span>
<span v-else-if="scope.row.activity_type === 3 && val.cart_info.productAssistAttr">{{ '¥'+ val.cart_info.productAssistAttr.assist_price + ' x '+ val.product_num }}</span>
<span v-else>{{ ''+ val.cart_info.productAttr.price + ' x '+ val.product_num }}</span>
<em v-if="val.refund_num < val.product_num && val.refund_num >= 0" style="color: red;font-style: normal;">(-{{ val.product_num - val.refund_num }})</em>
<span v-if="scope.row.activity_type === 2 && val.cart_info.productPresellAttr">{{ '' +
val.cart_info.productPresellAttr.presell_price + ' x ' + val.product_num }}</span>
<span v-else-if="scope.row.activity_type === 3 && val.cart_info.productAssistAttr">{{ '¥' +
val.cart_info.productAssistAttr.assist_price + ' x ' + val.product_num }}</span>
<span v-else>{{ '' + val.cart_info.productAttr.price + ' x ' + val.product_num }}</span>
<em v-if="val.refund_num < val.product_num && val.refund_num >= 0"
style="color: red;font-style: normal;">(-{{ val.product_num - val.refund_num }})</em>
</span>
</div>
</template>
@ -205,7 +189,8 @@
<span v-if="scope.row.is_del === 0">
<span v-if="scope.row.paid === 0">待付款</span>
<span v-else>
<span v-if="scope.row.order_type === 0 || scope.row.order_type === 2">{{ scope.row.status | orderStatusFilter }}</span>
<span v-if="scope.row.order_type === 0 || scope.row.order_type === 2">{{ scope.row.status |
orderStatusFilter }}</span>
<span v-else>{{ scope.row.status | takeOrderStatusFilter }}</span>
</span>
</span>
@ -216,16 +201,24 @@
<el-table-column key="8" label="操作" min-width="150" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click="onOrderDetails(scope.row.order_id)">详情</el-button>
<el-button v-if="orderFilter(scope.row)" type="text" size="small" @click="onRefundDetail(scope.row.order_sn)">查看退款单</el-button>
<el-button v-if="scope.row.paid === 0 && scope.row.is_del===0 && scope.row.activity_type != 2" type="text" size="small" @click="edit(scope.row.order_id)">编辑</el-button>
<el-button v-if="(scope.row.order_type == 0 || scope.row.order_type == 2) && scope.row.status === 0 && scope.row.paid === 1" type="text" size="small" @click="send(scope.row,scope.row.order_id)">发送货</el-button>
<el-button v-if="scope.row.is_del !== 0" type="text" size="small" @click.native="handleDelete(scope.row, scope.$index)">删除</el-button>
<el-button v-if="scope.row.order_type == 1 && scope.row.status === 0 && scope.row.paid === 1" type="text" size="small" @click.native="orderCancellation(scope.row.verify_code)">去核销</el-button>
<el-button v-if="orderFilter(scope.row)" type="text" size="small"
@click="onRefundDetail(scope.row.order_sn)">查看退款单</el-button>
<el-button v-if="scope.row.paid === 0 && scope.row.is_del === 0 && scope.row.activity_type != 2" type="text"
size="small" @click="edit(scope.row.order_id)">编辑</el-button>
<el-button
v-if="(scope.row.order_type == 0 || scope.row.order_type == 2) && scope.row.status === 0 && scope.row.paid === 1"
type="text" size="small" @click="send(scope.row, scope.row.order_id)">发送货</el-button>
<el-button v-if="scope.row.is_del !== 0" type="text" size="small"
@click.native="handleDelete(scope.row, scope.$index)">删除</el-button>
<el-button v-if="scope.row.order_type == 1 && scope.row.status === 0 && scope.row.paid === 1" type="text"
size="small" @click.native="orderCancellation(scope.row.verify_code)">去核销</el-button>
</template>
</el-table-column>
</el-table>
<div class="block">
<el-pagination background :page-size="tableFrom.limit" :current-page="tableFrom.page" layout="total, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange" @current-change="pageChange" />
<el-pagination background :page-size="tableFrom.limit" :current-page="tableFrom.page"
layout="total, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange"
@current-change="pageChange" />
</div>
</el-card>
<!--记录-->
@ -236,7 +229,9 @@
<el-table-column prop="change_time" label="操作时间" align="center" min-width="280" />
</el-table>
<div class="block">
<el-pagination :page-size="tableFromLog.limit" :current-page="tableFromLog.page" layout="prev, pager, next, jumper" :total="tableDataLog.total" @size-change="handleSizeChangeLog" @current-change="pageChangeLog" />
<el-pagination :page-size="tableFromLog.limit" :current-page="tableFromLog.page"
layout="prev, pager, next, jumper" :total="tableDataLog.total" @size-change="handleSizeChangeLog"
@current-change="pageChangeLog" />
</div>
</el-dialog>
<!--编辑-->
@ -263,158 +258,130 @@
</span>
</el-dialog>
<!--发送货-->
<el-dialog :title="isBatch ? '批量发货':'订单发送货'" :visible.sync="sendVisible" width="900px" :before-close="handleClose">
<el-dialog :title="isBatch ? '批量发货' : '订单发送货'" :visible.sync="sendVisible" width="900px"
:before-close="handleClose">
<el-form ref="shipment" :model="shipment" :rules="rules" label-width="120px" @submit.native.prevent>
<el-form-item v-if="isResend && noLogistics != 3 && tableFrom.order_type != 2" :label="shipment.delivery_type == 1 || shipment.delivery_type == 4 ? '原快递公司:' : '送货人姓名:'">
<el-form-item v-if="isResend && noLogistics != 3 && tableFrom.order_type != 2"
:label="shipment.delivery_type == 1 || shipment.delivery_type == 4 ? '原快递公司:' : '送货人姓名:'">
<span>{{ original.delivery_name }}</span>
</el-form-item>
<el-form-item v-if="isResend && noLogistics != 3 && tableFrom.order_type != 2" :label="shipment.delivery_type == 1 || shipment.delivery_type == 4 ? '原快递单号:' : '送货人手机号:'">
<el-form-item v-if="isResend && noLogistics != 3 && tableFrom.order_type != 2"
:label="shipment.delivery_type == 1 || shipment.delivery_type == 4 ? '原快递单号:' : '送货人手机号:'">
<span>{{ original.delivery_id }}</span>
</el-form-item>
<el-form-item label="选择类型:" prop="delivery_type">
<el-radio-group v-model="shipment.delivery_type" @change="changeSend">
<el-radio v-if="!isBatch && tableFrom.order_type != 2 && orderType != 1" :label="1">手动发货</el-radio>
<el-radio :label="3" class="radio"> {{orderType == 1 ? '虚拟发货' : '无需物流'}}</el-radio>
<el-radio v-if="isDump==1 && tableFrom.order_type != 2 && orderType !=1 && !isBatch" :label="4" class="radio">电子面单打印</el-radio>
<el-radio v-if="tableFrom.order_type != 2 && orderType !=1" :label="2">自己配送</el-radio>
<el-radio v-if="tableFrom.order_type != 2 && orderType !=1 && !isBatch" :label="5">同城配送</el-radio>
<!-- <el-radio v-if="!isBatch && tableFrom.order_type != 2 && orderType != 1" :label="1">手动发货</el-radio>
<el-radio :label="3" class="radio"> {{ orderType == 1 ? '虚拟发货' : '无需物流' }}</el-radio>
<el-radio v-if="isDump == 1 && tableFrom.order_type != 2 && orderType != 1 && !isBatch" :label="4"
class="radio">电子面单打印</el-radio> -->
<el-radio v-if="tableFrom.order_type != 2 && orderType != 1" :label="2">自己配送</el-radio>
<!-- <el-radio v-if="tableFrom.order_type != 2 && orderType != 1 && !isBatch" :label="5">同城配送</el-radio> -->
</el-radio-group>
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType !=1" label="选择发货点:" prop="station_id">
<el-select
v-model="shipment.station_id"
size="small"
placeholder="请选择配送发货点"
class="pageWidth"
>
<el-option
v-for="(item,index) in storeList"
:key="item.value+index"
:label="item.label"
:value="item.value"
/>
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType != 1" label="选择发货点:"
prop="station_id">
<el-select v-model="shipment.station_id" size="small" placeholder="请选择配送发货点" class="pageWidth">
<el-option v-for="(item, index) in storeList" :key="item.value + index" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item v-if="(shipment.delivery_type == 1 || shipment.delivery_type == 4) && tableFrom.order_type != 2 && orderType !=1" label="快递公司:" prop="delivery_name">
<el-select
filterable
v-model="shipment.delivery_name"
size="small"
placeholder="请选择快递公司"
class="pageWidth"
@change="getTempsLst(shipment.delivery_name)"
>
<el-option
v-for="item in deliveryList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-form-item
v-if="(shipment.delivery_type == 1 || shipment.delivery_type == 4) && tableFrom.order_type != 2 && orderType != 1"
label="快递公司:" prop="delivery_name">
<el-select filterable v-model="shipment.delivery_name" size="small" placeholder="请选择快递公司" class="pageWidth"
@change="getTempsLst(shipment.delivery_name)">
<el-option v-for="item in deliveryList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType !=1" label="包裹重量(kg)" prop="cargo_weight">
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType != 1"
label="包裹重量(kg)" prop="cargo_weight">
<el-input-number v-model="shipment.cargo_weight" style="width: 200px;" size="small" placeholder="请输入包裹重量" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType !=1" label="配送备注:" >
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType != 1" label="配送备注:">
<el-input type="textarea" v-model="shipment.mark" size="small" class="pageWidth" placeholder="请输入配送单备注" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 1 && tableFrom.order_type != 2 && orderType !=1" label="快递单号:" prop="delivery_id">
<el-form-item v-if="shipment.delivery_type == 1 && tableFrom.order_type != 2 && orderType != 1" label="快递单号:"
prop="delivery_id">
<el-input v-model="shipment.delivery_id" size="small" class="pageWidth" placeholder="请输入快递单号" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType !=1" label="电子面单:" prop="temp_id">
<el-select
v-model="shipment.temp_id"
size="small"
placeholder="请选择电子面单"
class="pageWidth"
>
<el-option
v-for="(item,index) in eleTempsLst"
:key="item.temp_id+index"
:label="item.title"
:value="item.temp_id"
/>
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType != 1" label="电子面单:"
prop="temp_id">
<el-select v-model="shipment.temp_id" size="small" placeholder="请选择电子面单" class="pageWidth">
<el-option v-for="(item, index) in eleTempsLst" :key="item.temp_id + index" :label="item.title"
:value="item.temp_id" />
</el-select>
<el-button type="text" @click="getPicture()">预览</el-button>
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType !=1" label="寄件人姓名:" prop="from_name">
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType != 1" label="寄件人姓名:"
prop="from_name">
<el-input v-model="shipment.from_name" size="small" class="pageWidth" placeholder="请输入寄件人姓名" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType !=1" label="寄件人电话:" prop="from_tel">
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType != 1" label="寄件人电话:"
prop="from_tel">
<el-input v-model="shipment.from_tel" size="small" class="pageWidth" placeholder="请输入寄件人电话" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 2 && tableFrom.order_type != 2 && orderType !=1" label="送货人姓名:" prop="to_name">
<el-form-item v-if="shipment.delivery_type == 2 && tableFrom.order_type != 2 && orderType != 1" label="送货人姓名:"
prop="to_name">
<el-input v-model="shipment.to_name" size="small" maxlength="10" class="pageWidth" placeholder="请输入送货人姓名" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 2 && tableFrom.order_type != 2 && orderType !=2" label="送货人手机号:" prop="to_phone">
<el-form-item v-if="shipment.delivery_type == 2 && tableFrom.order_type != 2 && orderType != 2" label="送货人手机号:"
prop="to_phone">
<el-input v-model="shipment.to_phone" size="small" class="pageWidth" placeholder="请输入送货人手机号" />
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType !=1" label="寄件人地址:" prop="from_addr">
<el-input v-model="shipment.from_addr" type="textarea" size="small" class="pageWidth" placeholder="请输入寄件人地址" />
<el-form-item v-if="shipment.delivery_type == 4 && tableFrom.order_type != 2 && orderType != 1" label="寄件人地址:"
prop="from_addr">
<el-input v-model="shipment.from_addr" type="textarea" size="small" class="pageWidth"
placeholder="请输入寄件人地址" />
</el-form-item>
<el-form-item v-if="shipment.type != 4 && activityType != 2 && (productList.length > 1 || productNum > 1)" label="分单发货:">
<el-switch
v-model="shipment.is_split"
:active-value="1"
:inactive-value="0"
:width="55"
active-text="开启"
inactive-text="关闭"
/>
<el-form-item v-if="shipment.type != 4 && activityType != 2 && (productList.length > 1 || productNum > 1)"
label="分单发货:">
<el-switch v-model="shipment.is_split" :active-value="1" :inactive-value="0" :width="55" active-text="开启"
inactive-text="关闭" />
<p class="area-desc">可选择表格中的商品单独发货发货后会生成新的订单且不能撤回请谨慎操作</p>
</el-form-item>
<el-form-item v-if="shipment.is_split == 1 && tableFrom.order_type != 2 && (productList.length > 1 || productNum > 1)" label="">
<el-table
ref="multipleSelection"
:data="productList"
tooltip-effect="dark"
size="mini"
class="table-line"
:row-key="(row) => { return row.product_id }"
@selection-change="handleSelectionChange"
>
<el-table-column align="center" type="selection" :reserve-selection="true" min-width="50"/>
<el-form-item
v-if="shipment.is_split == 1 && tableFrom.order_type != 2 && (productList.length > 1 || productNum > 1)"
label="">
<el-table ref="multipleSelection" :data="productList" tooltip-effect="dark" size="mini" class="table-line"
:row-key="(row) => { return row.product_id }" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection" :reserve-selection="true" min-width="50" />
<el-table-column align="center" label="商品信息" min-width="200">
<template slot-scope="scope">
<div class="acea-row" style="align-items: center;">
<div class="demo-image__preview">
<el-image :src="scope.row.cart_info.product.image" :preview-src-list="[scope.row.cart_info.product.image]" />
<el-image :src="scope.row.cart_info.product.image"
:preview-src-list="[scope.row.cart_info.product.image]" />
</div>
<span class="priceBox" style="width: 150px;">{{scope.row.cart_info.product.store_name}}</span>
<span class="priceBox" style="width: 150px;">{{ scope.row.cart_info.product.store_name }}</span>
</div>
</template>
</el-table-column>
<el-table-column align="center" label="规格" min-width="80">
<template slot-scope="scope">
<span class="priceBox">{{scope.row.cart_info.productAttr.sku}}</span>
<span class="priceBox">{{ scope.row.cart_info.productAttr.sku }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="商品售价" min-width="80">
<template slot-scope="scope">
<span class="priceBox">{{scope.row.cart_info.productAttr.price}}</span>
<span class="priceBox">{{ scope.row.cart_info.productAttr.price }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="总数" min-width="80">
<template slot-scope="scope">
<span class="priceBox">{{scope.row.stock_num}}</span>
<span class="priceBox">{{ scope.row.stock_num }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="待发数量" align="center" min-width="120">
<template slot-scope="scope">
<el-input
v-model="scope.row['product_num_input']"
type="number"
:min="0"
:max="scope.row.refund_num"
size="small"
class="priceBox"
@blur="limitCount(scope.row)"
/>
<el-input v-model="scope.row['product_num_input']" type="number" :min="0" :max="scope.row.refund_num"
size="small" class="priceBox" @blur="limitCount(scope.row)" />
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-form-item label="备注:" prop="remark">
<el-input v-model="shipment.remark" type="textarea" class="pageWidth" placeholder="请输入备注" />
</el-form-item>
</el-form>
@ -428,17 +395,8 @@
<img :src="pictureUrl" class="pictures">
</el-dialog>
<!--详情-->
<order-detail
ref="orderDetail"
:orderId="orderId"
@closeDrawer="closeDrawer"
@changeDrawer="changeDrawer"
@reSend="reSend"
@onOrderRefund="onOrderRefund"
@send="send"
@getList="getList"
:drawer="drawer"
></order-detail>
<order-detail ref="orderDetail" :orderId="orderId" @closeDrawer="closeDrawer" @changeDrawer="changeDrawer"
@reSend="reSend" @onOrderRefund="onOrderRefund" @send="send" @getList="getList" :drawer="drawer"></order-detail>
<!--导出订单列表-->
<file-list ref="exportList" />
<!--导出订单列表-->
@ -529,7 +487,7 @@ export default {
type: this.$route.query.order_type || '1',
username: '',
filter_delivery: '',
filter_product : '',
filter_product: '',
pay_type: '',
order_id: this.$route.query.id ? this.$route.query.id : '',
activity_type: ''
@ -622,10 +580,10 @@ export default {
storeList: [], //
multipleSelection: [],
shipment: {
delivery_type: 1,
delivery_type: 2,
station_id: '',
is_split:"0",
split:[]
is_split: "0",
split: []
},
original: {
delivery_name: '',
@ -698,7 +656,7 @@ export default {
},
methods: {
/**重置 */
searchReset(){
searchReset() {
this.timeVal = []
this.tableFrom.date = ""
this.$refs.searchForm.resetFields()
@ -706,7 +664,7 @@ export default {
},
//
limitCount(row) {
if (row.stock > row.product_num)row.stock = row.product_num
if (row.stock > row.product_num) row.stock = row.product_num
},
changeDrawer(v) {
this.drawer = v;
@ -719,7 +677,7 @@ export default {
this.multipleSelection = val
const data = []
this.multipleSelection.map((item) => {
data.push({id:item.order_product_id,num:item.product_num})
data.push({ id: item.order_product_id, num: item.product_num })
})
this.ids = data
},
@ -760,13 +718,13 @@ export default {
temp_id: ""
// temp_id: data.mer_config_temp_id
}
if(data.mer_from_com != ''){
if (data.mer_from_com != '') {
this.getTempsLst(data.mer_from_com)
}
})
.catch((res) => {
this.$message.error(res.message)
})
.catch((res) => {
this.$message.error(res.message)
})
},
//
getStoreList() {
@ -778,7 +736,7 @@ export default {
},
changeSend(e) {
this.$refs['shipment'].clearValidate();
if(e == 3){
if (e == 3) {
//
this.shipment.is_split = '0';
delete this.shipment.split;
@ -798,18 +756,18 @@ export default {
},
//
batchSend() {
if (!this.allCheck&&this.checkedIds.length == 0) {
if (!this.allCheck && this.checkedIds.length == 0) {
return this.$message.warning('请先选择订单')
} else {
this.isBatch = true
this.sendVisible = true
this.shipment.delivery_type = 2
this.shipment.select_type = this.allCheck ? 'all' : 'select'
if(this.allCheck){
if (this.allCheck) {
this.shipment.where = this.tableFrom
}else{
} else {
this.shipment.order_id = this.checkedIds
}
}
}
},
handleClose() {
@ -909,15 +867,15 @@ export default {
})
},
// 退
onOrderRefund(id){
this.$refs.orderRefund.getOrderDetails(id)
onOrderRefund(id) {
this.$refs.orderRefund.getOrderDetails(id)
},
// 退
refundSuccess(){
refundSuccess() {
setTimeout(() => {
this.drawer = false;
this.getList();
},500)
}, 500)
},
//
addTdClass(val) {
@ -940,18 +898,18 @@ export default {
async exports(value) {
let excelData = JSON.parse(JSON.stringify(this.tableFrom)), data = []
excelData.page = 1
excelData.ids = this.checkedIds.toString()
excelData.ids = this.checkedIds.toString()
let pageCount = 1
let lebData = {};
for (let i = 0; i < pageCount; i++) {
lebData = value == 1 ? await this.downOrderData(excelData) : await this.downInvoiceData(excelData)
pageCount = Math.ceil(lebData.count/excelData.limit)
pageCount = Math.ceil(lebData.count / excelData.limit)
if (lebData.export.length) {
data = data.concat(lebData.export)
excelData.page++
}
}
}
createWorkBook(lebData.header, lebData.title, data, lebData.foot,lebData.filename);
createWorkBook(lebData.header, lebData.title, data, lebData.foot, lebData.filename);
return
},
/**订单 */
@ -990,12 +948,12 @@ export default {
orderCancellation(code) {
const that = this
that.$refs.orderCancellate.dialogVisible = true;
if(code) {
that.$refs.orderCancellate.productDetails(code)
that.$refs.orderCancellate.isColum = true;
}else{
that.$refs.orderCancellate.isColum = false;
that.$refs.orderCancellate.resetData()
if (code) {
that.$refs.orderCancellate.productDetails(code)
that.$refs.orderCancellate.isColum = true;
} else {
that.$refs.orderCancellate.isColum = false;
that.$refs.orderCancellate.resetData()
}
},
//
@ -1077,9 +1035,9 @@ export default {
this.$confirm(
'您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!',
'提示', {
confirmButtonText: '确定',
type: 'error'
}
confirmButtonText: '确定',
type: 'error'
}
)
}
},
@ -1110,8 +1068,8 @@ export default {
pay_postage: res.data.pay_postage,
total_price: res.data.total_price,
integral_price: res.data.integral_price,
coupon_price: (Number(res.data.coupon_price) + Number(res.data.svip_discount)).toFixed(2) ,
pay_price: (Number(res.data.total_price) + Number(res.data.pay_postage) - Number(res.data.coupon_price) - Number(res.data.svip_discount)).toFixed(2)
coupon_price: (Number(res.data.coupon_price) + Number(res.data.svip_discount)).toFixed(2),
pay_price: (Number(res.data.total_price) + Number(res.data.pay_postage) - Number(res.data.coupon_price) - Number(res.data.svip_discount)).toFixed(2)
}
this.loading = false
}).catch(({ message }) => {
@ -1132,21 +1090,22 @@ export default {
this.formValidate.pay_price = (this.formValidate.total_price + this.formValidate.pay_postage - this.formValidate.coupon_price).toFixed(2)
},
//
send(row,id) {
send(row, id) {
this.isBatch = false
this.sendVisible = true
this.isResend = false
this.orderId = id
this.activityType = row.activity_type
this.orderType = row.is_virtual
this.shipment.delivery_type = this.orderType === 1 ? 3 : 1
// this.shipment.delivery_type = this.orderType === 1 ? 3 : 1
this.shipment.delivery_type = 2;
row.orderProduct.forEach(item => {
item.stock_num = item.product_num
})
this.productList = row.orderProduct
this.productNum = row.orderProduct && row.orderProduct[0] && row.orderProduct[0]['product_num'] || 0
this.productNum = row.orderProduct && row.orderProduct[0] && row.orderProduct[0]['product_num'] || 0
delete this.shipment.order_id
if(this.tableFrom.order_type == 2)this.shipment.delivery_type = 3
// if (this.tableFrom.order_type == 2) this.shipment.delivery_type = 3
},
sendReset() {
this.shipment = {
@ -1186,13 +1145,13 @@ export default {
this.shipment.delivery_name = this.shipment.to_name
this.shipment.delivery_id = this.shipment.to_phone
}
if(this.shipment.is_split != '0' && this.shipment.is_split && this.orderType != 2){
if (this.shipment.is_split != '0' && this.shipment.is_split && this.orderType != 2) {
if (!this.multipleSelection.length) {
return this.$message.warning('请选择拆单商品!')
}
const data = []
this.multipleSelection.map((item) => {
data.push({id:item.order_product_id,num:item.product_num_input})
data.push({ id: item.order_product_id, num: item.product_num_input })
})
this.ids = data
this.shipment.split = this.ids
@ -1207,7 +1166,7 @@ export default {
this.sendVisible = false
this.$message.success(res.message)
this.getList('')
if(this.drawer)this.$refs.orderDetail.getInfo(id);
if (this.drawer) this.$refs.orderDetail.getInfo(id);
// this.$refs[name].resetFields()
this.sendReset()
}).catch(({ message }) => {
@ -1218,7 +1177,7 @@ export default {
this.$message.success(res.message)
this.getList('')
// this.$refs[name].resetFields()
if(this.drawer)this.$refs.orderDetail.getInfo(id);
if (this.drawer) this.$refs.orderDetail.getInfo(id);
this.sendReset()
//
if (res.data.label) this.printImg(res.data.label);
@ -1295,25 +1254,30 @@ export default {
</script>
<style lang="scss" scoped>
.pictures{
.pictures {
max-width: 100%;
}
.area-desc{
.area-desc {
margin: 0;
color: #999;
font-size: 12px;
}
.spBlock {
cursor: pointer;
display: block;
padding: 5px 0;
}
.check {
color: #00a2d4;
}
.el-icon-arrow-down {
font-size: 12px;
}
.tabBox_tit {
width: 53%;
font-size: 12px !important;
@ -1322,23 +1286,28 @@ export default {
padding: 5px 0;
box-sizing: border-box;
}
::v-deep .row-bg {
.cell {
color: red !important;
}
}
::v-deep .table-line th.is-leaf{
::v-deep .table-line th.is-leaf {
line-height: 20px;
}
.headTab{
.headTab {
position: relative;
.headBtn{
.headBtn {
position: absolute;
right: 0;
top: -6px;
}
}
.dropdown{
.dropdown {
padding: 0 10px;
border: 1px solid var(--prev-color-primary);
margin-right: 10px;