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

View File

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