1159 lines
32 KiB
Vue
1159 lines
32 KiB
Vue
<template>
|
||
<div>
|
||
<div class="main">
|
||
<div class="maintop">
|
||
<div class="mainbtn">
|
||
<el-button
|
||
v-hasButtons="['DeliveryImmediateAdd']"
|
||
size="small"
|
||
:disabled="multiple"
|
||
class="thebtn2"
|
||
@click="getImmediateData"
|
||
>{{ '立即发货' }}</el-button>
|
||
<el-button
|
||
v-hasButtons="['DeliveryImmediateUpdateCode']"
|
||
size="small"
|
||
:disabled="single"
|
||
class="thebtn2"
|
||
@click="updateCode"
|
||
>{{ '修改单号' }}</el-button>
|
||
|
||
<el-button
|
||
v-hasButtons="['DeliveryImmediateExport']"
|
||
size="small"
|
||
class="thebtn1"
|
||
@click="handleExport"
|
||
>
|
||
{{ '导出' }}</el-button>
|
||
</div>
|
||
</div>
|
||
<el-table
|
||
:data="tableData"
|
||
height="540px"
|
||
style="width: 100%"
|
||
:header-cell-style="{ background: '#EEEEEE' }"
|
||
:span-method="objectSpanMethod"
|
||
@selection-change="handleSelectionChange"
|
||
>
|
||
<el-table-column prop="colsele" type="selection" width="55" />
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="deliverCode"
|
||
:label="'发货单号'"
|
||
/>
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="orderCode"
|
||
:label="'订单编号'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="orderTypeVal"
|
||
:label="'订单类型'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="deliverStatusVal"
|
||
:label="'发货状态'"
|
||
/>
|
||
<el-table-column
|
||
min-width="120px"
|
||
align="center"
|
||
prop="memberCode"
|
||
:label="'会员编号'"
|
||
/>
|
||
|
||
<el-table-column
|
||
min-width="120px"
|
||
align="center"
|
||
prop="memberName"
|
||
:label="'会员姓名'"
|
||
/>
|
||
<el-table-column
|
||
min-width="120px"
|
||
align="center"
|
||
prop="phone"
|
||
:label="'联系方式'"
|
||
/>
|
||
|
||
<el-table-column
|
||
align="center"
|
||
min-width="120px"
|
||
prop="productCode"
|
||
:label="'产品编号'"
|
||
/>
|
||
<el-table-column
|
||
min-width="150px"
|
||
align="center"
|
||
prop="productName"
|
||
:label="'产品名称'"
|
||
/>
|
||
|
||
<el-table-column
|
||
min-width="150px"
|
||
align="center"
|
||
prop="specsName"
|
||
:label="'产品规格'"
|
||
/>
|
||
<el-table-column align="center" prop="unitName" :label="'产品单位'" />
|
||
<el-table-column align="center" prop="quantity" :label="'产品数量'" />
|
||
<!-- <el-table-column align="center" prop="isBarCodeVal" label="是否追溯">
|
||
</el-table-column>
|
||
<el-table-column align="center" prop="barCode" :label="'追溯编号'">
|
||
</el-table-column> -->
|
||
<el-table-column align="center" prop="recName" :label="'收货人'" />
|
||
<el-table-column
|
||
min-width="120px"
|
||
align="center"
|
||
prop="recPhone"
|
||
:label="'收货电话'"
|
||
/>
|
||
<!-- <el-table-column
|
||
align="center"
|
||
prop="recProvinceVal"
|
||
:label="'省'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recCityVal"
|
||
:label="'市'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recCountyVal"
|
||
:label="'区/县'"
|
||
>
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="recAddress"
|
||
:formatter="formatAddress"
|
||
:label="'收货地址'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="logisticsCompany"
|
||
:label="'物流公司'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
min-width="120px"
|
||
prop="logisticsCode"
|
||
:label="'快递单号'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="shippingChannelVal"
|
||
:label="'发货类型'"
|
||
/>
|
||
<el-table-column
|
||
min-width="100px"
|
||
align="center"
|
||
prop="storehouseName"
|
||
:label="'发货仓库'"
|
||
/>
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="payTime"
|
||
:label="'支付日期'"
|
||
/>
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="deliverTime"
|
||
:label="'发货日期'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="deliveryWayVal"
|
||
:label="'发货方式'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="operateScopeVal"
|
||
:label="'供应方式'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="tranTypeVal"
|
||
:label="'运输方式'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="vertexName"
|
||
:label="$t('隶属体系')"
|
||
/>
|
||
<!-- <el-table-column
|
||
align="center"
|
||
prop="systemType"
|
||
:label="$t('系统类型')"
|
||
>
|
||
<template slot-scope="scope">
|
||
<div
|
||
v-for="item in systemTypes"
|
||
:key="item.value"
|
||
v-if="scope.row.systemType == item.value"
|
||
>
|
||
{{ item.label }}
|
||
</div>
|
||
</template>
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="printTime"
|
||
:label="'打印日期'"
|
||
/>
|
||
<el-table-column
|
||
min-width="180px"
|
||
align="center"
|
||
prop="creationTime"
|
||
:label="'创建日期'"
|
||
/>
|
||
</el-table>
|
||
</div>
|
||
<pagination
|
||
v-show="total > 0"
|
||
:total="total"
|
||
:page.sync="params.pageNum"
|
||
:limit.sync="params.pageSize"
|
||
:page-sizes="pageSizes"
|
||
@pagination="getList"
|
||
/>
|
||
<!-- 立即发货 -->
|
||
<el-dialog
|
||
:title="'立即发货'"
|
||
:close-on-click-modal="false"
|
||
:visible.sync="ljfhShow"
|
||
width="80%"
|
||
append-to-body
|
||
class="nowFhbox"
|
||
>
|
||
<div class="maintable">
|
||
<div class="btnbox">
|
||
<el-button size="small" class="thebtn1" @click="handleImport">
|
||
{{ '导入' }}</el-button>
|
||
</div>
|
||
<el-table
|
||
:data="fhTable"
|
||
height="400px"
|
||
style="width: 100%"
|
||
:header-cell-style="{ background: '#EEEEEE' }"
|
||
:span-method="objectSpanMethod2"
|
||
>
|
||
<el-table-column
|
||
align="center"
|
||
prop="deliverCode"
|
||
:label="'发货单号'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="productName"
|
||
:label="'产品名称'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="specsName"
|
||
:label="'产品规格'"
|
||
/><el-table-column
|
||
align="center"
|
||
prop="quantity"
|
||
:label="'产品数量'"
|
||
/>
|
||
|
||
<!-- <el-table-column align="center" prop="barCode" :label="'追溯编号'" /> -->
|
||
<el-table-column
|
||
align="center"
|
||
prop="orderCode"
|
||
:label="'订单编号'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="memberCode"
|
||
:label="'会员编号'"
|
||
/>
|
||
|
||
<el-table-column
|
||
align="center"
|
||
prop="memberName"
|
||
:label="'会员姓名'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recName"
|
||
:label="'收货人'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recPhone"
|
||
:label="'收货电话'"
|
||
/>
|
||
<!-- <el-table-column
|
||
align="center"
|
||
prop="recProvinceVal"
|
||
:label="'省'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recCityVal"
|
||
:label="'市'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recCountyVal"
|
||
:label="'区/县'"
|
||
>
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
align="center"
|
||
prop="recAddress"
|
||
:formatter="formatAddress"
|
||
:label="'详细地址'"
|
||
/>
|
||
|
||
<el-table-column
|
||
align="center"
|
||
prop="logisticsCompany"
|
||
width="130px"
|
||
:label="'物流公司'"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-input
|
||
v-model="scope.row.logisticsCompany"
|
||
:placeholder="'请输入物流名称'"
|
||
/>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="logisticsCode"
|
||
min-width="150px"
|
||
:label="'物流单号'"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-input
|
||
v-model="scope.row.logisticsCode"
|
||
:placeholder="'请输入物流单号'"
|
||
/>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
fixed="right"
|
||
align="center"
|
||
prop="thedel"
|
||
:label="'操作'"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
type="text"
|
||
size="small"
|
||
style="color: #c73030"
|
||
@click="handleDelete(scope.row, scope.$index, fhTable)"
|
||
>
|
||
{{ '删除' }}
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="footer" style="text-align: center; margin-top: 20px">
|
||
<el-button @click="ljfhShow = false">
|
||
{{ '取消' }}</el-button>
|
||
<el-button type="primary" @click="sureFh">{{
|
||
'确定'
|
||
}}</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog
|
||
:title="upload.title"
|
||
:close-on-click-modal="false"
|
||
:visible.sync="upload.open"
|
||
width="600px"
|
||
append-to-body
|
||
>
|
||
<el-upload
|
||
ref="upload"
|
||
:limit="1"
|
||
accept=".xlsx, .xls"
|
||
:headers="upload.headers"
|
||
:action="upload.url"
|
||
:disabled="upload.isUploading"
|
||
:on-progress="handleFileUploadProgress"
|
||
:on-success="handleFileSuccess"
|
||
:on-exceed="handleExceed"
|
||
:auto-upload="false"
|
||
drag
|
||
>
|
||
<i class="el-icon-upload" />
|
||
<div class="el-upload__text">
|
||
{{ '将文件拖到此处,或' }}
|
||
<em>{{ '点击上传' }}</em>
|
||
</div>
|
||
<div slot="tip" class="el-upload__tip">
|
||
<el-link type="info" style="font-size: 12px" @click="importTemplate">
|
||
{{ '下载模板' }}</el-link>
|
||
</div>
|
||
<div slot="tip" class="el-upload__tip" style="color: red">
|
||
{{ '提示:仅允许导入“xls”或“xlsx”格式文件!' }}
|
||
</div>
|
||
</el-upload>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="submitFileForm">{{
|
||
'确定'
|
||
}}</el-button>
|
||
<el-button @click="upload.open = false">{{
|
||
'取消'
|
||
}}</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 修改单号 -->
|
||
<el-dialog
|
||
:title="'修改单号'"
|
||
:close-on-click-modal="false"
|
||
:visible.sync="updateCodeShow"
|
||
width="80%"
|
||
append-to-body
|
||
class="nowFhbox"
|
||
>
|
||
<div class="maintable">
|
||
<el-table
|
||
:data="updateCodeList"
|
||
height="400px"
|
||
style="width: 100%"
|
||
:header-cell-style="{ background: '#EEEEEE' }"
|
||
>
|
||
<el-table-column
|
||
align="center"
|
||
prop="deliverCode"
|
||
:label="'发货单号'"
|
||
/>
|
||
<!-- <el-table-column
|
||
align="center"
|
||
prop="productName"
|
||
:label="'产品名称'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="specsName"
|
||
:label="'产品规格'"
|
||
>
|
||
</el-table-column
|
||
><el-table-column
|
||
align="center"
|
||
prop="quantity"
|
||
:label="'产品数量'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column align="center" prop="barCode" :label="'追溯编号'">
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="orderCode"
|
||
:label="'订单编号'"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="memberCode"
|
||
:label="'会员编号'"
|
||
>
|
||
</el-table-column>
|
||
|
||
<el-table-column
|
||
align="center"
|
||
prop="memberName"
|
||
:label="'会员姓名'"
|
||
>
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
align="center"
|
||
prop="recName"
|
||
:label="'收货人'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recPhone"
|
||
:label="'收货电话'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recProvinceVal"
|
||
:label="'省'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recCityVal"
|
||
:label="'市'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recCountyVal"
|
||
:label="'区/县'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="recAddress"
|
||
:label="'详细地址'"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="logisticsCompany"
|
||
width="120px"
|
||
:label="'物流公司'"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-input
|
||
v-model="scope.row.logisticsCompany"
|
||
:placeholder="'请输入物流名称'"
|
||
/>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="logisticsCode"
|
||
width="120px"
|
||
:label="'物流单号'"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-input
|
||
v-model="scope.row.logisticsCode"
|
||
:placeholder="'请输入物流单号'"
|
||
/>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="footer" style="text-align: center; margin-top: 20px">
|
||
<el-button @click="updateCodeShow = false">
|
||
{{ '取消' }}</el-button>
|
||
<el-button type="primary" @click="sureUpdateCode">{{
|
||
'确定'
|
||
}}</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import * as del from '@/api/delivery'
|
||
import { getToken } from '@/utils/auth'
|
||
export default {
|
||
name: 'Nowdelivery',
|
||
props: {
|
||
params: {
|
||
type: Object,
|
||
default: null
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
tableData: [],
|
||
total: 0,
|
||
idList: [],
|
||
// 非多个禁用
|
||
multiple: true,
|
||
// 非单个禁用
|
||
single: true,
|
||
ljfhShow: false,
|
||
fhTable: [],
|
||
updateCodeShow: false,
|
||
updateCodeList: [],
|
||
pageSizes: [50, 100, 200, 500, 1000, 2000],
|
||
// 需要合并项的列
|
||
needMergeArr: [
|
||
{
|
||
colName: 'colsele',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'deliverCode',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'orderCode',
|
||
mergeCheckNames: ['deliverCode', 'orderCode']
|
||
},
|
||
{
|
||
colName: 'orderTypeval',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'orderTypeval']
|
||
},
|
||
{
|
||
colName: 'orderTypeVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'orderTypeVal']
|
||
},
|
||
{
|
||
colName: 'memberCode',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'memberCode']
|
||
},
|
||
{
|
||
colName: 'memberName',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'memberName']
|
||
},
|
||
{
|
||
colName: 'phone',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'phone']
|
||
},
|
||
{
|
||
colName: 'recName',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recName']
|
||
},
|
||
{
|
||
colName: 'recPhone',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recPhone']
|
||
},
|
||
{
|
||
colName: 'recProvinceVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recProvinceVal']
|
||
},
|
||
{
|
||
colName: 'recCityVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recCityVal']
|
||
},
|
||
{
|
||
colName: 'recCountyVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recCountyVal']
|
||
},
|
||
{
|
||
colName: 'recAddress',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recAddress']
|
||
},
|
||
{
|
||
colName: 'operateScopeVal',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'tranTypeVal',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
|
||
{
|
||
colName: 'remark',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'remark']
|
||
},
|
||
{
|
||
colName: 'creationTime',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'creationTime']
|
||
},
|
||
{
|
||
colName: 'payTime',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'payTime']
|
||
},
|
||
{
|
||
colName: 'deliveryWayVal',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'preSaleStatusVal',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'printStatusVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'printStatusVal']
|
||
},
|
||
{
|
||
colName: 'deliverStatusVal',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'logisticsCompany',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'shippingChannelVal',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'storehouseName',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
|
||
{
|
||
colName: 'logisticsCode',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'secondDeliverVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'secondDeliverVal']
|
||
},
|
||
{
|
||
colName: 'printTime',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'deliverTime',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
|
||
{
|
||
colName: 'orderStatusVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'orderStatusVal']
|
||
}
|
||
],
|
||
rowMergeArrs: {}, // 包含需要一个或多个合并项信息的对象
|
||
needMergeArr2: [
|
||
{
|
||
colName: 'deliverCode',
|
||
mergeCheckNames: ['deliverCode']
|
||
},
|
||
{
|
||
colName: 'orderCode',
|
||
mergeCheckNames: ['deliverCode', 'orderCode']
|
||
},
|
||
{
|
||
colName: 'memberCode',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'memberCode']
|
||
},
|
||
{
|
||
colName: 'memberName',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'memberName']
|
||
},
|
||
{
|
||
colName: 'recName',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recName']
|
||
},
|
||
{
|
||
colName: 'recProvinceVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recProvinceVal']
|
||
},
|
||
{
|
||
colName: 'recCityVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recCityVal']
|
||
},
|
||
{
|
||
colName: 'recCountyVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recCountyVal']
|
||
},
|
||
{
|
||
colName: 'recAddress',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'recAddress']
|
||
},
|
||
{
|
||
colName: 'orderStatusVal',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'orderStatusVal']
|
||
},
|
||
{
|
||
colName: 'logisticsCompany',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'logisticsCompany']
|
||
},
|
||
{
|
||
colName: 'logisticsCode',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'logisticsCode']
|
||
},
|
||
{
|
||
colName: 'thedel',
|
||
mergeCheckNames: ['deliverCode', 'orderCode', 'thedel']
|
||
}
|
||
],
|
||
|
||
rowMergeArrs2: {}, // 包含需要一个或多个合并项信息的对象
|
||
upload: {
|
||
// 是否显示弹出层(物流导入)
|
||
open: false,
|
||
// 弹出层标题(物流导入)
|
||
title: '',
|
||
// 是否禁用上传
|
||
isUploading: false,
|
||
// 是否更新已经存在的物流数据
|
||
updateSupport: 0,
|
||
// 设置上传的请求头部
|
||
headers: { Authorization: 'Bearer ' + getToken() },
|
||
// 上传的地址
|
||
url:
|
||
process.env.VUE_APP_BASE_API +
|
||
'/sale/manage/deliver/immediate-import'
|
||
},
|
||
logisticsTable: []
|
||
}
|
||
},
|
||
created() {
|
||
this.getList()
|
||
},
|
||
methods: {
|
||
formatAddress(row) {
|
||
return (
|
||
row.recProvinceVal +
|
||
row.recCityVal +
|
||
(row.recCountyVal || '') +
|
||
row.recAddress
|
||
)
|
||
},
|
||
// 下载模板
|
||
importTemplate() {
|
||
this.download(
|
||
'/sale/manage/deliver/template-export',
|
||
{},
|
||
`${'模板'}${new Date().getTime()}.xlsx`
|
||
)
|
||
},
|
||
|
||
/** 导入按钮操作 */
|
||
handleImport() {
|
||
this.upload.url =
|
||
process.env.VUE_APP_BASE_API +
|
||
'/sale/manage/deliver/immediate-import?idList=' +
|
||
this.idList
|
||
this.upload.title = '导入'
|
||
this.upload.open = true
|
||
},
|
||
// 文件上传中处理
|
||
handleFileUploadProgress(event, file, fileList) {
|
||
this.upload.isUploading = true
|
||
},
|
||
// 文件上传成功处理
|
||
handleFileSuccess(response, file, fileList) {
|
||
var fileName = response.fileName
|
||
if (fileName != undefined && fileName != '') {
|
||
}
|
||
if (response.code == 200) {
|
||
this.logisticsTable = response.data
|
||
if (this.logisticsTable.length > 0) {
|
||
this.fhTable.forEach((ele) => {
|
||
this.logisticsTable.forEach((item) => {
|
||
if (ele.pkId == item.pkId) {
|
||
this.$set(ele, 'logisticsCompany', item.logisticsCompany || '')
|
||
this.$set(ele, 'logisticsCode', item.logisticsCode || '')
|
||
}
|
||
})
|
||
})
|
||
}
|
||
}
|
||
|
||
this.upload.open = false
|
||
this.upload.isUploading = false
|
||
this.$refs.upload.clearFiles()
|
||
this.$alert(response.msg, '导入结果', {
|
||
dangerouslyUseHTMLString: true
|
||
})
|
||
// this.getList();
|
||
},
|
||
// 上传文件数量超出后的动作
|
||
handleExceed() {
|
||
this.upload.isUploading = false
|
||
this.msgInfo('仅可上传一个文件哦')
|
||
},
|
||
// 提交上传文件
|
||
submitFileForm() {
|
||
this.$refs.upload.submit()
|
||
},
|
||
// 解决多列行列合并,根据某一列 合并其他列
|
||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||
const needMerge = this.needMergeArr.some((item) => {
|
||
return item.colName === column.property
|
||
})
|
||
if (needMerge === true) {
|
||
return this.mergeAction(column.property, rowIndex, column)
|
||
}
|
||
},
|
||
mergeAction(val, rowIndex, colData) {
|
||
const _row = this.rowMergeArrs[val].rowArr[rowIndex]
|
||
const _col = _row > 0 ? 1 : 0
|
||
return [_row, _col]
|
||
},
|
||
rowMergeHandle(arr, data) {
|
||
if (!Array.isArray(arr) && !arr.length) return false
|
||
if (!Array.isArray(data) && !data.length) return false
|
||
const needMerge = {}
|
||
|
||
arr.forEach((mergeItem) => {
|
||
// 创建合并管理对象
|
||
needMerge[mergeItem.colName] = {
|
||
rowArr: [],
|
||
rowMergeNum: 0
|
||
}
|
||
const currentMergeItemData = needMerge[mergeItem.colName]
|
||
|
||
// 进行合并管理对象数据的遍历整理
|
||
data.forEach((item, index) => {
|
||
if (index === 0) {
|
||
currentMergeItemData.rowArr.push(1)
|
||
currentMergeItemData.rowMergeNum = 0
|
||
} else {
|
||
const currentRowData = data[index]
|
||
const preRowData = data[index - 1]
|
||
|
||
if (
|
||
this.colMergeCheck(
|
||
currentRowData,
|
||
preRowData,
|
||
mergeItem.mergeCheckNames
|
||
)
|
||
) {
|
||
currentMergeItemData.rowArr[
|
||
currentMergeItemData.rowMergeNum
|
||
] += 1
|
||
currentMergeItemData.rowArr.push(0)
|
||
} else {
|
||
currentMergeItemData.rowArr.push(1)
|
||
currentMergeItemData.rowMergeNum = index
|
||
}
|
||
}
|
||
})
|
||
})
|
||
return needMerge
|
||
},
|
||
colMergeCheck(currentRowData, preRowData, mergeCheckNames) {
|
||
if (!Array.isArray(mergeCheckNames) && !mergeCheckNames.length) { return false }
|
||
let result = true
|
||
for (let index = 0; index < mergeCheckNames.length; index++) {
|
||
const mergeCheckName = mergeCheckNames[index]
|
||
if (currentRowData[mergeCheckName] !== preRowData[mergeCheckName]) {
|
||
result = false
|
||
break
|
||
}
|
||
}
|
||
return result
|
||
},
|
||
getList() {
|
||
this.params.pkIdList = []
|
||
del.getDeliverList(this.params).then((res) => {
|
||
this.tableData = res.rows
|
||
this.total = res.total
|
||
this.rowMergeArrs = this.rowMergeHandle(
|
||
this.needMergeArr,
|
||
this.tableData
|
||
)
|
||
})
|
||
},
|
||
// 立即发货弹框删除
|
||
handleDelete(row, index, tab) {
|
||
this.$confirm(`${'是否删除'}?`).then((_) => {
|
||
const delList = []
|
||
this.fhTable.forEach((ele, eindex) => {
|
||
if (
|
||
row.deliverCode == ele.deliverCode &&
|
||
row.orderCode == ele.orderCode
|
||
) {
|
||
delList.push(eindex)
|
||
}
|
||
})
|
||
tab.splice(index, delList.length)
|
||
this.rowMergeArrs2 = this.rowMergeHandle2(this.needMergeArr2, tab)
|
||
})
|
||
},
|
||
handleSelectionChange(selection) {
|
||
this.idList = selection.map((item) => item.pkId)
|
||
this.multiple = !selection.length
|
||
this.single = selection.length !== 1
|
||
},
|
||
// 导出
|
||
handleExport() {
|
||
this.params.pkIdList = this.idList
|
||
this.$confirm('是否确认导出所有数据项?', '警告', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then((_) => {
|
||
this.download(
|
||
'/sale/manage/deliver/export',
|
||
// {pkIdList:this.idList},
|
||
{ ...this.params },
|
||
`${'发货清单-立即发货'}${new Date().getTime()}.xlsx`
|
||
)
|
||
})
|
||
},
|
||
getImmediateData() {
|
||
this.ljfhShow = true
|
||
del
|
||
.getImmediateData({ deliverIdList: this.idList.join() })
|
||
.then((res) => {
|
||
this.fhTable = res.data
|
||
this.rowMergeArrs2 = this.rowMergeHandle2(
|
||
this.needMergeArr2,
|
||
this.fhTable
|
||
)
|
||
})
|
||
},
|
||
// 修改单号
|
||
updateCode() {
|
||
this.updateCodeShow = true
|
||
del.getUpdateCodeList({ deliverId: this.idList[0] }).then((res) => {
|
||
this.updateCodeList = [res.data]
|
||
})
|
||
},
|
||
sureUpdateCode() {
|
||
del
|
||
.changeDeliverCode({
|
||
pkId: this.updateCodeList[0].pkId,
|
||
logisticsCode: this.updateCodeList[0].logisticsCode,
|
||
logisticsCompany: this.updateCodeList[0].logisticsCompany
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: 'success'
|
||
})
|
||
this.updateCodeShow = false
|
||
this.getList()
|
||
}
|
||
})
|
||
},
|
||
sureFh() {
|
||
if (this.fhTable.length > 0) {
|
||
del.deliverConfirm(this.fhTable).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: 'success'
|
||
})
|
||
this.ljfhShow = false
|
||
}
|
||
})
|
||
} else {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: 'warning'
|
||
})
|
||
this.ljfhShow = false
|
||
}
|
||
},
|
||
// 解决多列行列合并,根据某一列 合并其他列
|
||
objectSpanMethod2({ row, column, rowIndex, columnIndex }) {
|
||
const needMerge = this.needMergeArr2.some((item) => {
|
||
return item.colName === column.property
|
||
})
|
||
if (needMerge === true) {
|
||
return this.mergeAction2(column.property, rowIndex, column)
|
||
}
|
||
},
|
||
mergeAction2(val, rowIndex, colData) {
|
||
const _row = this.rowMergeArrs2[val].rowArr[rowIndex]
|
||
const _col = _row > 0 ? 1 : 0
|
||
return [_row, _col]
|
||
},
|
||
rowMergeHandle2(arr, data) {
|
||
if (!Array.isArray(arr) && !arr.length) return false
|
||
if (!Array.isArray(data) && !data.length) return false
|
||
const needMerge = {}
|
||
|
||
arr.forEach((mergeItem) => {
|
||
// 创建合并管理对象
|
||
needMerge[mergeItem.colName] = {
|
||
rowArr: [],
|
||
rowMergeNum: 0
|
||
}
|
||
const currentMergeItemData = needMerge[mergeItem.colName]
|
||
|
||
// 进行合并管理对象数据的遍历整理
|
||
data.forEach((item, index) => {
|
||
if (index === 0) {
|
||
currentMergeItemData.rowArr.push(1)
|
||
currentMergeItemData.rowMergeNum = 0
|
||
} else {
|
||
const currentRowData = data[index]
|
||
const preRowData = data[index - 1]
|
||
|
||
if (
|
||
this.colMergeCheck2(
|
||
currentRowData,
|
||
preRowData,
|
||
mergeItem.mergeCheckNames
|
||
)
|
||
) {
|
||
currentMergeItemData.rowArr[
|
||
currentMergeItemData.rowMergeNum
|
||
] += 1
|
||
currentMergeItemData.rowArr.push(0)
|
||
} else {
|
||
currentMergeItemData.rowArr.push(1)
|
||
currentMergeItemData.rowMergeNum = index
|
||
}
|
||
}
|
||
})
|
||
})
|
||
return needMerge
|
||
},
|
||
colMergeCheck2(currentRowData, preRowData, mergeCheckNames) {
|
||
if (!Array.isArray(mergeCheckNames) && !mergeCheckNames.length) { return false }
|
||
let result = true
|
||
for (let index = 0; index < mergeCheckNames.length; index++) {
|
||
const mergeCheckName = mergeCheckNames[index]
|
||
if (currentRowData[mergeCheckName] !== preRowData[mergeCheckName]) {
|
||
result = false
|
||
break
|
||
}
|
||
}
|
||
return result
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.nowFhbox ::v-deep .el-dialog__body {
|
||
padding: 0;
|
||
padding-bottom: 20px;
|
||
}
|
||
.btnbox {
|
||
padding: 10px;
|
||
.thebtn1 {
|
||
background: rgba(255, 103, 35, 1);
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
::v-deep .el-table .warning-row {
|
||
background: #f9f9f9;
|
||
}
|
||
|
||
::v-deep .el-table .success-row {
|
||
background: #ffffff;
|
||
}
|
||
::v-deep .el-table thead {
|
||
color: #000000;
|
||
}
|
||
.main {
|
||
// margin-top: 20px;
|
||
background: #ffffff;
|
||
border-radius: 8px;
|
||
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
|
||
|
||
.main_content {
|
||
padding: 20px 25px;
|
||
}
|
||
|
||
.maintop {
|
||
display: flex;
|
||
// padding: 10px 20px;
|
||
padding-bottom: 10px;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
.mainbtn {
|
||
.thebtn1 {
|
||
color: #ffffff;
|
||
background: rgba(243, 169, 0, 1);
|
||
}
|
||
.thebtn2 {
|
||
color: #ffffff;
|
||
background: rgba(72, 178, 253, 1);
|
||
}
|
||
.thebtn3 {
|
||
color: #ffffff;
|
||
background: rgba(83, 177, 30, 1);
|
||
}
|
||
.thebtn4 {
|
||
color: #ffffff;
|
||
background: rgba(199, 48, 48, 1);
|
||
}
|
||
.thebtn5 {
|
||
color: #ffffff;
|
||
background: rgba(0, 155, 88, 1);
|
||
}
|
||
.thebtn6 {
|
||
color: #ffffff;
|
||
background: rgba(236, 108, 0, 1);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|