|
|
@@ -34,7 +34,26 @@
|
|
|
:data="dataList"
|
|
|
header-cell-class-name="table-header"
|
|
|
row-class-name="table-row-low"
|
|
|
+ @selection-change="selectionChangeHandle"
|
|
|
+ @expand-change="handleTableExpandChange"
|
|
|
style="width: 100%">
|
|
|
+ <!--<el-table-column type="expand">
|
|
|
+ <template slot-scope="props">
|
|
|
+ <el-form label-position="left">
|
|
|
+ <el-form-item label="收件地址">
|
|
|
+ <span class="expand-detail">{{ props.row.userAddrOrder.province }} </span>
|
|
|
+ <span class="expand-detail">{{ props.row.userAddrOrder.city }} </span>
|
|
|
+ <span class="expand-detail">{{ props.row.userAddrOrder.area }} </span>
|
|
|
+ <span class="expand-detail">{{ props.row.userAddrOrder.addr }} </span>
|
|
|
+ <span class="expand-detail">{{ props.row.userAddrOrder.receiverName }} </span>
|
|
|
+ <span class="expand-detail">{{ props.row.userAddrOrder.receiverMobile }} </span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </template>
|
|
|
+ </el-table-column>-->
|
|
|
+ <el-table-column
|
|
|
+ type="selection">
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
prop="serialNo"
|
|
|
@@ -68,7 +87,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
label="产品名"
|
|
|
- width="350"
|
|
|
+ width="300"
|
|
|
prop="prodName">
|
|
|
<template slot-scope="scope">
|
|
|
<el-tooltip placement="top">
|
|
|
@@ -147,10 +166,19 @@
|
|
|
<span v-if="scope.row.status == 3">已发货</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="status"
|
|
|
+ width="90"
|
|
|
+ label="pdf次数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.pdfDownloadTimes}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
:label="$t('crud.menu')"
|
|
|
- width="300"
|
|
|
+ width="280"
|
|
|
>
|
|
|
<template slot-scope="scope">
|
|
|
<div style="display: inline-block;float: left;">
|
|
|
@@ -178,7 +206,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 生成波次弹窗 -->
|
|
|
- <el-dialog
|
|
|
+ <!--<el-dialog
|
|
|
title="生成波次"
|
|
|
:visible.sync="generateWaveDialogVisible"
|
|
|
width="40%"
|
|
|
@@ -201,7 +229,7 @@
|
|
|
<el-button type="primary" @click="createWave">生 成</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <!-- 添加到已有波次弹窗 -->
|
|
|
+ <!– 添加到已有波次弹窗 –>
|
|
|
<el-dialog
|
|
|
title="添加到已有波次"
|
|
|
:visible.sync="addToWaveDialogVisible"
|
|
|
@@ -235,7 +263,7 @@
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="addToWave">添 加</el-button>
|
|
|
</div>
|
|
|
- </el-dialog>
|
|
|
+ </el-dialog>-->
|
|
|
<!-- 修改运单号弹窗 -->
|
|
|
<el-dialog
|
|
|
:append-to-body="true"
|
|
|
@@ -281,6 +309,7 @@
|
|
|
import {downloadPdf} from "@/utils/pdf";
|
|
|
import {downloadXls} from "@/utils/excel";
|
|
|
import {downloadZip} from "@/utils/zip";
|
|
|
+ import { saveAs } from 'file-saver';
|
|
|
|
|
|
export default {
|
|
|
data () {
|
|
|
@@ -369,6 +398,7 @@
|
|
|
wavePrintOrderPdfDownloadLoading: false,
|
|
|
modifyExpressBillVisible: false,
|
|
|
printOrder:{},
|
|
|
+ expandRowDetail:{}
|
|
|
}
|
|
|
},
|
|
|
components: {
|
|
|
@@ -521,7 +551,18 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- addToWave(){
|
|
|
+ handleTableExpandChange(row){
|
|
|
+ // this.expandRowDetail = {};
|
|
|
+ // 修改
|
|
|
+ this.$http({
|
|
|
+ url: this.$http.adornUrl(`/printOrder/printOrder/findWavePrintOrderAddr`),
|
|
|
+ method: 'GET',
|
|
|
+ params: this.$http.adornParams({waveId: row.waveId, orderNumber: row.orderNumber})
|
|
|
+ }).then(({ data }) => {
|
|
|
+ // this.expandRowDetail = data;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /*addToWave(){
|
|
|
if(!this.wave.selectWaveId){
|
|
|
this.$message({
|
|
|
message: "请选择波次",
|
|
|
@@ -549,7 +590,7 @@
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
- },
|
|
|
+ },*/
|
|
|
removeFromWave(row){
|
|
|
this.$confirm('确定要移出波次吗?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
@@ -595,7 +636,8 @@
|
|
|
},
|
|
|
downloadPrintOrderPdfZip(){
|
|
|
this.wavePrintOrderPdfDownloadLoading = true;
|
|
|
- let dataBody = {"printChannel": this.printChannel, "waveId": this.wave.waveId};
|
|
|
+ let orderNumberList = this.dataListSelections.map(item=>item['orderNumber'])
|
|
|
+ let dataBody = {"printChannel": this.printChannel, "waveId": this.wave.waveId, orderNumberList: orderNumberList};
|
|
|
this.$http({
|
|
|
url: this.$http.adornUrl('/wave/wave/downloadWavePrintOrderPdf'),
|
|
|
method: 'get',
|
|
|
@@ -604,7 +646,11 @@
|
|
|
}).then(({data}) => {
|
|
|
this.wavePrintOrderPdfDownloadLoading = false;
|
|
|
let fileName = this.wave.waveNo + "_" + this.wave.waveName;
|
|
|
- downloadZip(data, fileName + ".zip");
|
|
|
+ const blob = new Blob([data], {
|
|
|
+ type: 'application/zip'
|
|
|
+ })
|
|
|
+ saveAs(blob, fileName)
|
|
|
+ // downloadZip(data, fileName + ".zip");
|
|
|
}).catch((error) => {
|
|
|
this.wavePrintOrderPdfDownloadLoading = false;
|
|
|
})
|
|
|
@@ -668,7 +714,11 @@
|
|
|
}).then(({data}) => {
|
|
|
this.wavePrintOrderPdfDownloadLoading = false;
|
|
|
let pdfName = printOrder.orderNumber + "_" + printOrder.receiverName + "_" + printOrder.prodName;
|
|
|
- downloadPdf(data, pdfName + ".pdf");
|
|
|
+ // downloadPdf(data, pdfName + ".pdf");
|
|
|
+ const blob = new Blob([data], {
|
|
|
+ type: 'application/pdf'
|
|
|
+ })
|
|
|
+ saveAs(blob, pdfName);
|
|
|
}).catch((error) => {
|
|
|
this.wavePrintOrderPdfDownloadLoading = false;
|
|
|
})
|
|
|
@@ -868,6 +918,13 @@
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
+ .expand-detail{
|
|
|
+ font-size: 18px;
|
|
|
+ }
|
|
|
+ expand-detail-title{
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
.el-divider--vertical {
|
|
|
display: inline-block;
|
|
|
width: 1px;
|
|
|
@@ -876,400 +933,4 @@
|
|
|
vertical-align: middle;
|
|
|
position: relative;
|
|
|
}
|
|
|
- .mod-order-order {
|
|
|
- .search-bar {
|
|
|
- .input-row {
|
|
|
- .select-time-btn {
|
|
|
- margin-right: 20px;
|
|
|
- display: inline-block;
|
|
|
- color: #AAAAAA;
|
|
|
- font-size: 14px;
|
|
|
- cursor:pointer;
|
|
|
- &:last-child {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
- }
|
|
|
- .select-time-btn.is-active {
|
|
|
- color: #155BD4;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- .main {
|
|
|
- .content {
|
|
|
- .all-check-btn {
|
|
|
- margin-right: 10px;
|
|
|
- }
|
|
|
- .had-selected {
|
|
|
- font-size: 12px;
|
|
|
- margin-right: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
- .order-status-nav {
|
|
|
- position: relative;
|
|
|
- display: block;
|
|
|
- width: 100%;
|
|
|
- margin-bottom: 15px;
|
|
|
- height: 40px;
|
|
|
- line-height: 40px;
|
|
|
- border-bottom: 1px solid #ddd;
|
|
|
- ul,
|
|
|
- li {
|
|
|
- list-style: none;
|
|
|
- padding: 0;
|
|
|
- margin: 0;
|
|
|
- }
|
|
|
- .nav-item {
|
|
|
- float: left;
|
|
|
- height: 40px;
|
|
|
- line-height: 40px;
|
|
|
- background: #f7f8fa;
|
|
|
- border: 1px solid #ddd;
|
|
|
- padding: 0 20px;
|
|
|
- margin: 0 -1px -1px 0;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
-
|
|
|
- .selected {
|
|
|
- background: #fff;
|
|
|
- border-bottom: 1px solid #fff;
|
|
|
- }
|
|
|
- }
|
|
|
- .status-nav {
|
|
|
- ::v-deep .el-tabs__item {
|
|
|
- padding: 0 20px ;
|
|
|
- min-width: 68px;
|
|
|
- width: auto;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- ::v-deep .el-tabs__nav-wrap::after{
|
|
|
- height: 1px;
|
|
|
- }
|
|
|
- }
|
|
|
- .tit {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 15px;
|
|
|
- background: #F7F8FA;
|
|
|
- z-index: 11;
|
|
|
- height: 57px;
|
|
|
- font-weight: bold;
|
|
|
- .column-title {
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- .item {
|
|
|
- padding: 0 10px;
|
|
|
- width: 10%;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- .product {
|
|
|
- width: 25%;
|
|
|
- margin-bottom: 15px;
|
|
|
- text-align: left !important;
|
|
|
- }
|
|
|
- }
|
|
|
- .fixed-top {
|
|
|
- position: fixed;
|
|
|
- width: calc(83.5% + var(--tit-width-incremental));
|
|
|
- top: 90px;
|
|
|
- }
|
|
|
- .prod {
|
|
|
- margin-bottom: 15px;
|
|
|
- .prod-tit {
|
|
|
- padding: 10px;
|
|
|
- background: #F7F8FA;
|
|
|
- height: 49px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- border-left: 1px solid #EBEDF0;
|
|
|
- border-top: 1px solid #EBEDF0;
|
|
|
- border-right: 1px solid #EBEDF0;
|
|
|
- .order-number{
|
|
|
- color: #333333;
|
|
|
- font-size: 14px
|
|
|
- }
|
|
|
- .order-index{
|
|
|
- color: red;
|
|
|
- font-size: 14px;
|
|
|
- font-weight: bold;
|
|
|
- }
|
|
|
- .order-time{
|
|
|
- color: #999999;
|
|
|
- font-size: 14px
|
|
|
- }
|
|
|
- span {
|
|
|
- margin-right: 15px;
|
|
|
- }
|
|
|
- }
|
|
|
- .prod-cont {
|
|
|
- display: flex;
|
|
|
- border: 1px solid #EBEDF0;
|
|
|
- color: #495060;
|
|
|
- .item {
|
|
|
- display: flex;
|
|
|
- display: -webkit-flex;
|
|
|
- align-items: center;
|
|
|
- padding: 10px;
|
|
|
- text-align: center;
|
|
|
- justify-content: center !important;
|
|
|
- height: 100%;
|
|
|
- border-right: 1px solid #eee;
|
|
|
- .totalprice {
|
|
|
- color: #ff4141;
|
|
|
- margin-bottom: 10px;
|
|
|
- }
|
|
|
- .operate {
|
|
|
- color: #2d8cf0;
|
|
|
- .operate-btn {
|
|
|
- margin: 0 !important;
|
|
|
- height: auto;
|
|
|
- }
|
|
|
- .default-btn + .default-btn {
|
|
|
- display: block;
|
|
|
- margin-top: 10px;
|
|
|
- margin-left: 0;
|
|
|
- }
|
|
|
- }
|
|
|
- .buyer-info {
|
|
|
- .buyer-name {
|
|
|
- margin-bottom: 4px;
|
|
|
- }
|
|
|
- }
|
|
|
- span {
|
|
|
- display: block;
|
|
|
- }
|
|
|
- }
|
|
|
- .prod-item {
|
|
|
- padding: 0;
|
|
|
- display: flex;
|
|
|
- flex-direction: column !important;
|
|
|
- height: 100%;
|
|
|
- border-right: 1px solid #eee;
|
|
|
- .items.name {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- border-bottom: 1px solid #EBEDF0;
|
|
|
- padding: 10px !important;
|
|
|
- text-align: left;
|
|
|
- &:last-child {
|
|
|
- border-bottom: none;
|
|
|
- }
|
|
|
- .order-prod-item-info {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- .info {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- .prod-image {
|
|
|
- min-height: 80px;
|
|
|
- width: 80px;
|
|
|
- height: auto;
|
|
|
- margin-right: 20px;
|
|
|
- padding: 0;
|
|
|
- line-height: 80px;
|
|
|
- img {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- object-fit: contain;
|
|
|
- }
|
|
|
- }
|
|
|
- .prod-name {
|
|
|
- width: 100% !important;
|
|
|
- .prod-con {
|
|
|
- width: 85% !important;
|
|
|
- display: block;
|
|
|
- padding: 0 !important;
|
|
|
- .prod-name-txt {
|
|
|
- padding-right: 10px;
|
|
|
- box-sizing: border-box;
|
|
|
- display: -webkit-box;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
- -webkit-line-clamp: 2;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
- .order-status {
|
|
|
- display: inline-block;
|
|
|
- margin-top: 15px;
|
|
|
- margin-right: 10px;
|
|
|
- padding: 2px 4px;
|
|
|
- border: 1px solid #e43130;
|
|
|
- border-radius: 2px;
|
|
|
- color: #e43130;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // 赠品盒子
|
|
|
- .order-prod-item-give-con {
|
|
|
- width: 100%;
|
|
|
- padding: 10px 50px 0 10px;
|
|
|
- box-sizing: border-box;
|
|
|
- .giveaway-item {
|
|
|
- display: flex;
|
|
|
- margin-bottom: 10px;
|
|
|
- &:last-child {
|
|
|
- margin-bottom: 0;
|
|
|
- }
|
|
|
- }
|
|
|
- .giveaway-item-name {
|
|
|
- box-sizing: border-box;
|
|
|
- display: -webkit-box;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
- -webkit-line-clamp: 1;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
- .giveaway-item-sku-count {
|
|
|
- margin-left: 10px;
|
|
|
- color: #999;
|
|
|
- width: 20px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .prod-price {
|
|
|
- width: 28%;
|
|
|
- display: flex;
|
|
|
- justify-content: flex-start;
|
|
|
- flex-direction: column;
|
|
|
- overflow: hidden;
|
|
|
- position: relative;
|
|
|
- right: 0 !important;
|
|
|
- span {
|
|
|
- display: block;
|
|
|
- text-align: left;
|
|
|
- word-break: keep-all;
|
|
|
- &:first-child {
|
|
|
- margin-bottom: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .empty {
|
|
|
- display: block;
|
|
|
- height: 200px;
|
|
|
- line-height: 200px;
|
|
|
- text-align: center;
|
|
|
- color: #aaa;
|
|
|
- }
|
|
|
- .transaction-price {
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- }
|
|
|
- // 修改物流弹窗
|
|
|
- .change-logistics {
|
|
|
- color: #333;
|
|
|
- padding: 0 20px;
|
|
|
- .warning {
|
|
|
- padding: 10px;
|
|
|
- border: 1px solid #f1924e;
|
|
|
- background: #fff5ed;
|
|
|
- }
|
|
|
- .log-list {
|
|
|
- max-height: 600px;
|
|
|
- margin-top: 30px;
|
|
|
- overflow-y: auto;
|
|
|
- .item {
|
|
|
- padding-bottom: 20px;
|
|
|
- .i-tit {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- .big {
|
|
|
- font-weight: 600;
|
|
|
- margin-right: 15px;
|
|
|
- }
|
|
|
- }
|
|
|
- .item-goods {
|
|
|
- position: relative;
|
|
|
- width: 100%;
|
|
|
- height: 110px;
|
|
|
- overflow-x: auto;
|
|
|
- .goods-box {
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- display: flex;
|
|
|
- margin-top: 0;
|
|
|
- -webkit-transition: all 0.3s;
|
|
|
- -moz-transition: all 0.3s;
|
|
|
- transition: all 0.3s;
|
|
|
- .item {
|
|
|
- margin-right: 10px;
|
|
|
- font-size: 12px;
|
|
|
- cursor: pointer;
|
|
|
- .img {
|
|
|
- width: 60px;
|
|
|
- height: 60px;
|
|
|
- font-size: 0;
|
|
|
- margin-bottom: 4px;
|
|
|
- margin-top: 4px;
|
|
|
- position: relative;
|
|
|
- img {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- .number {
|
|
|
- position: absolute;
|
|
|
- bottom: 0;
|
|
|
- right: 0;
|
|
|
- background: rgba(0, 0, 0, 0.3);
|
|
|
- color: #fff;
|
|
|
- border-radius: 6px 0 6px 0;
|
|
|
- font-size: 12px;
|
|
|
- height: 16px;
|
|
|
- line-height: 16px;
|
|
|
- padding: 0 5px;
|
|
|
- }
|
|
|
- }
|
|
|
- .name {
|
|
|
- width: 60px;
|
|
|
- height: 16px;
|
|
|
- line-height: 16px;
|
|
|
- white-space: nowrap;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- color: #999;
|
|
|
- }
|
|
|
- }
|
|
|
- .item:last-child {
|
|
|
- margin: 0;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- .info-int {
|
|
|
- &.el-form-item__content,
|
|
|
- &.el-form-item__label,
|
|
|
- .el-input__suffix-inner,
|
|
|
- .el-input__icon {
|
|
|
- height: 32px;
|
|
|
- line-height: 32px;
|
|
|
- }
|
|
|
- display: flex;
|
|
|
- .form-item {
|
|
|
- margin-right: 15px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .log-info-table {
|
|
|
- margin-top: 20px;
|
|
|
- max-height: 600px;
|
|
|
- overflow-y: auto;
|
|
|
- }
|
|
|
- }
|
|
|
- @media (max-width:1660px) {
|
|
|
- .fixed-top {
|
|
|
- width: calc(79.5% + var(--tit-width-incremental)) !important;
|
|
|
- }
|
|
|
- }
|
|
|
- @media (max-width:1360px) {
|
|
|
- .fixed-top {
|
|
|
- width: calc(75.5% + var(--tit-width-incremental)) !important;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
</style>
|