Merge pull request '组批次分组' (#53) from master-客户管理 into master

Reviewed-on: http://git.xdadan.loc/tanex/emis-frontend/pulls/53
This commit is contained in:
wuteng 2025-08-07 17:46:29 +08:00
commit 336acea36f
6 changed files with 363 additions and 282 deletions

View File

@ -121,6 +121,15 @@ export function getEmisWaybillByBillCode(billCode) {
})
}
export function getBatchDtl(query) {
return request({
url: '/emis/emisTmsSiteBatchDtl/getBatchDtl',
method: 'get',
params: query
})
}
// 查询运单列表详细
export function getEmisWaybill(id) {
return request({

View File

@ -148,7 +148,7 @@
<dict-tag :options="dict.type.emis_cost_split_type" :value="scope.row.splitType"/>
</template>
</el-table-column>
<el-table-column :label="$t('分摊重量')" align="center" prop="splitValue" min-width="100" />
<el-table-column :label="$t('分摊重量')" align="center" prop="billWeight" min-width="100" />
<el-table-column :label="$t('供应商')" align="left" prop="supplierName" min-width="150" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('发件地')" align="center" prop="sendPlace" min-width="100" />
<el-table-column :label="$t('目的地')" align="center" prop="destPlace" min-width="100" />

View File

@ -7,10 +7,10 @@
<BigBatchListPanel ref="refBatchList" @onCreate="onCreateBatch" @onUpdate="onUpdateBatch" @onCopy="onCopyBatch" @onView="onViewBatch"> </BigBatchListPanel>
</el-tab-pane>
<el-tab-pane :label="editTabTitle" name="batchEdit" v-if="openEditForm" closable="" >
<BigBatchEditForm :key="'batchEdit_'+batchId" :batchId="batchId" :isCopy="isCopy" @on-changed="handleFormChanged" @on-cancel="cancelForm"></BigBatchEditForm>
<BigBatchEditForm :key="'batchEdit_'+batchId" name="batchEdit" :batchId="batchId" :isCopy="isCopy" @on-changed="handleFormChanged" @on-cancel="cancelForm"></BigBatchEditForm>
</el-tab-pane>
<el-tab-pane label="批次查看" name="batchView" v-if="openViewForm" closable >
<BigBatchEditForm :key="'batchView_'+batchId" :batchId="batchId" disabled ></BigBatchEditForm>
<BigBatchEditForm :key="'batchView_'+batchId" name="batchView" :batchId="batchId" disabled ></BigBatchEditForm>
</el-tab-pane>
<el-tab-pane label="日志记录" name="batchLog" v-if="openViewForm">
<BatchLogList :key="'batchLog_'+batchId" :batchNo="batchNo" disabled ></BatchLogList>

View File

@ -578,6 +578,9 @@ export default {
let packDetail = {
batchNo: postForm.batchNo,
billCode: billcode,
batchParcelQty: itemBill.parcelQty,
batchWeight: itemBill.billWeight,
batchVolume: itemBill.totalVolume,
groupStatus: "1",//已组批次
};

View File

@ -2,49 +2,49 @@
<div style="margin-bottom: 20px;">
<el-form ref="form" size="mini" :model="form" :rules="rules" :disabled="disabled" label-width="80px" class="overflowhidden" >
<el-row :gutter="20" style="display: flex;flex-wrap: wrap;">
<el-col :span="19" style="border-right: 1px solid #e4e1e1;">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="19" style="border-right: 1px solid #e4e1e1;">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="6">
<el-form-item :label="$t('批次号')" prop="batchNo">
<el-col :span="6">
<el-form-item :label="$t('批次号')" prop="batchNo">
<el-input v-model="form.batchNo" placeholder="自动生成" disabled />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item :label="$t('批次名称')" prop="batchName" label-width="110px">
<span slot="label">
<el-tooltip placement="top">
<div slot="content" class="tips-content text-tips-content">
<span>批次名称规则:</span><br>
<div class="rule-box">
1)快递(E):<br>
快递(E)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-提单号<br>
ENJDHKM250113+提单号<br>
2)空运(A):<br>
空运(A)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-提单号<br>
ANJNHKM250113+提单号<br>
3)陆运(L):<br>
陆运(L)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-车牌<br>
LNJJTKM250113+车牌<br>
4)海运(S):<br>
海运(S)-上海-供应商-西港-250113-提单号<br>
SSHXG250113+提单号<br>
5)铁路(R):<br>
铁路(R)-上海-供应商-南宁-250113-集装箱号<br>
RSHNN250113+集装箱号<br>
6)国内进仓(D):<br>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item :label="$t('批次名称')" prop="batchName" label-width="110px">
<span slot="label">
<el-tooltip placement="top">
<div slot="content" class="tips-content text-tips-content">
<span>批次名称规则:</span><br>
<div class="rule-box">
1)快递(E):<br>
快递(E)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-提单号<br>
ENJDHKM250113+提单号<br>
2)空运(A):<br>
空运(A)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-提单号<br>
ANJNHKM250113+提单号<br>
3)陆运(L):<br>
陆运(L)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-车牌<br>
LNJJTKM250113+车牌<br>
4)海运(S):<br>
海运(S)-上海-供应商-西港-250113-提单号<br>
SSHXG250113+提单号<br>
5)铁路(R):<br>
铁路(R)-上海-供应商-南宁-250113-集装箱号<br>
RSHNN250113+集装箱号<br>
6)国内进仓(D):<br>
同行(D)-上海-供应商-南京分拨中心-250113-运单号/订单号 (顺丰、跨越、百世、安能、中通、申通、货拉拉、运满满等)<br>
DSHNN250113+运单号/订单号<br>
</div>
DSHNN250113+运单号/订单号<br>
</div>
<i class="el-icon-question" />
</el-tooltip>
</div>
<i class="el-icon-question" />
</el-tooltip>
<span >批次名称:</span>
</span>
</span>
<el-input v-model="form.batchName" clearable="" placeholder="" disabled ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('批次类型')" prop="batchType">
<el-select v-model="form.batchType" placeholder="批次类型" clearable filterable style="width:100%" >
<el-option
@ -53,29 +53,29 @@
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('起始网点')" prop="startSiteCode">
<el-col :span="8">
<el-form-item :label="$t('起始网点')" prop="startSiteCode">
<EmisSiteSimplePicker :placeholder="$t('请选择')" @onChange="onSiteSelect" v-model="form.startSiteCode" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('下一网点')" prop="nextSiteCode">
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('下一网点')" prop="nextSiteCode">
<EmisTmsSiteBatchNextSitePicker :placeholder="$t('请选择')" :startSiteCode="form.startSiteCode" @onChange="onNextSiteSelect" v-model="form.nextSiteCode" ></EmisTmsSiteBatchNextSitePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('目的国')" prop="destCountry">
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('目的国')" prop="destCountry">
<CountryPicker :placeholder="$t('选择国')" v-model="form.destCountry" ></CountryPicker>
</el-form-item>
</el-col>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="运输方式" prop="transType">
<el-col :span="8">
<el-form-item label="运输方式" prop="transType">
<el-select v-model="form.transType" placeholder="运输方式" clearable filterable style="width:100%" @change="calcBatchName" >
<el-option
v-for="dict in dict.type.emis_biz_shipping_method"
@ -83,33 +83,33 @@
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('供应商')" prop="supplierCode">
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('供应商')" prop="supplierCode">
<EmisTmsSiteBatchSupplierPicker :placeholder="$t('请选择')" :startSiteCode="form.startSiteCode" :nextSiteCode="form.nextSiteCode" @onChange="onSupplierSelect" v-model="form.supplierCode" ></EmisTmsSiteBatchSupplierPicker>
</el-form-item>
</el-col>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item :label="$t('运输号')" prop="carNo">
<el-form-item :label="$t('运输号')" prop="carNo">
<el-input v-model="form.carNo" clearable="" placeholder="车牌号/船次号/提单号" @change="calcBatchName"></el-input>
</el-form-item>
</el-col>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('包裹数')" prop="packNum">
<el-col :span="8">
<el-form-item :label="$t('包裹数')" prop="packNum">
<el-input v-model="form.packNum" clearable="" placeholder="" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('承运重量')" prop="transWeight">
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('承运重量')" prop="transWeight">
<el-input v-model="form.transWeight" clearable="" placeholder="" >
<span slot="suffix">(kg)</span>
</el-input>
</el-form-item>
</el-col>
<span slot="suffix">(kg)</span>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item label="发出时间" prop="etd" >
<el-date-picker clearable
@ -120,234 +120,247 @@
style="width:100%"
@change="calcBatchName"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('备注')" prop="remark">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('备注')" prop="remark">
<el-input v-model="form.remark" clearable="" type="textarea" placeholder="" ></el-input>
</el-form-item>
</el-col>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总票数') + ': ' + (form.totalWaybillQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总重量') + ': ' + (form.totalWeight || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总件数') + ': ' + (form.totalParcelQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总体积') + ': ' + (form.totalVolume || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总结算重量') + ': ' + (form.totalSettlementWeight || 0)}}</span>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总票数') + ': ' + (form.totalWaybillQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总重量') + ': ' + (form.totalWeight || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总件数') + ': ' + (form.totalParcelQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总体积') + ': ' + (form.totalVolume || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总结算重量') + ': ' + (form.totalSettlementWeight || 0)}}</span>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" style="" v-if="['3','4','5'].indexOf(form.transType) > -1">
<div style="margin-top:20px;padding: 3px 5px;font-size: 14px;">
装柜示意图
</div>
<el-col :span="24" style="" v-if="['3','4','5'].indexOf(form.transType) > -1">
<div style="margin-top:20px;padding: 3px 5px;font-size: 14px;">
装柜示意图
</div>
<el-table :data="tableData"
border
style="width:100%;border:2px solid #e2e2e2"
>
<!-- 表头1 -->
<el-table-column label="柜头" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
<el-input v-model="scope.row[1]"></el-input>
</el-col>
<el-col :span="12">
<el-input v-model="scope.row[2]"></el-input>
</el-col>
</el-row>
</template>
<!-- 表头1 -->
<el-table-column label="柜头" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
<el-input v-model="scope.row[1]"></el-input>
</el-col>
<el-col :span="12">
<el-input v-model="scope.row[2]"></el-input>
</el-col>
</el-row>
</template>
</el-table-column>
<!-- 表头2 -->
<el-table-column label="柜中" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
<el-input v-model="scope.row[3]"></el-input>
</el-col>
<el-col :span="12">
<el-input v-model="scope.row[4]"></el-input>
</el-col>
</el-row>
</template>
</el-table-column>
<!-- 表头3 -->
<el-table-column label="柜尾" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
<el-input v-model="scope.row[5]"></el-input>
</el-col>
<el-col :span="12">
<el-input v-model="scope.row[6]"></el-input>
</el-col>
</el-row>
</template>
</el-table-column>
<!-- 表头2 -->
<el-table-column label="柜中" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
<el-input v-model="scope.row[3]"></el-input>
</el-col>
<el-col :span="12">
<el-input v-model="scope.row[4]"></el-input>
</el-col>
</el-row>
</template>
</el-table-column>
<!-- 表头3 -->
<el-table-column label="柜尾" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
<el-input v-model="scope.row[5]"></el-input>
</el-col>
<el-col :span="12">
<el-input v-model="scope.row[6]"></el-input>
</el-col>
</el-row>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</el-form>
</el-table>
</el-col>
</el-row>
</el-form>
<div style="margin-top:20px;padding: 3px 5px;font-size: 14px;">
装柜运单列表
</div>
<XdTable
max-height="400px"
v-loading="loading"
border
size="mini"
storageName="waitBatchDtlList_main_240709"
ref="refTable"
:data="waitBatchDtlList"
:queryParams="queryParams"
@selection-change="handleSelectionChange"
>
<div slot="toolbar">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5" v-if="!disabled">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAddWayBill"
>加入运单</el-button>
</el-col>
<el-col :span="1.5" v-if="!disabled">
<el-button
type="primary"
plain
size="mini"
@click="handleCoPackListDelete"
:disabled="multiple"
>移除运单</el-button>
</el-col>
<el-col :span="1.5" v-if="this.form.id!=null">
<el-button style="margin-right: 5px;"
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleDownBatchDtl"
>导出</el-button>
</el-col>
</el-row>
</div>
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('运单号')" align="center" prop="billCode" min-width="170" />
<div style="margin-top:20px;padding: 3px 5px;font-size: 14px;">
装柜运单列表
</div>
<div slot="toolbar">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5" v-if="!disabled">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddWayBill">加入运单</el-button>
</el-col>
<el-col :span="1.5" v-if="!disabled">
<el-button type="primary" plain size="mini" @click="handleCoPackListDelete"
:disabled="multiple">移除运单</el-button>
</el-col>
<el-col :span="1.5" v-if="this.form.id!=null">
<el-button style="margin-right: 5px;" type="warning" plain icon="el-icon-download" size="mini"
@click="handleDownBatchDtl">导出</el-button>
</el-col>
</el-row>
</div>
<el-table class="cargoList" max-height="400px" v-loading="loading" border size="mini"
storageName="waitBatchDtlList_main_240709" ref="refTable" :data="waitBatchDtlList" :queryParams="queryParams"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('运单号')" align="center" prop="billCode" min-width="170" />
<el-table-column :label="$t('寄件网点')" align="center" prop="sendSiteName" min-width="80" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('寄件国家')" align="center" prop="sendCountryName" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.sendCountryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('目的国家')" align="center" prop="receiveCountryName" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.receiveCountryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('线路')" align="center" prop="transLineTypeName" min-width="100" />
<el-table-column :label="$t('产品类型')" align="center" prop="productTypeName" min-width="100" />
<el-table-column :label="$t('寄件国家')" align="center" prop="sendCountryName" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.sendCountryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('目的国家')" align="center" prop="receiveCountryName" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.receiveCountryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('线路')" align="center" prop="transLineTypeName" min-width="100" />
<el-table-column :label="$t('产品类型')" align="center" prop="productTypeName" min-width="100" />
<el-table-column :label="$t('寄件日期')" align="center" prop="sendDate" min-width="170" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('预计到达时间')" align="center" prop="estimateDate" min-width="170">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.estimateDate || '') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('总件数')" align="center" prop="parcelQty" min-width="100" />
<el-table-column :label="$t('实际重量')" align="center" prop="billWeight" min-width="100" />
<!-- <el-table-column :label="$t('总重量')" align="center" prop="totalWeight" min-width="100" /> -->
<el-table-column :label="$t('总体积')" align="center" prop="totalVolume" min-width="100" />
<el-table-column :label="$t('体积重量')" align="center" prop="volumeWeight" min-width="100" />
<el-table-column :label="$t('结算重量')" align="center" prop="settlementWeight" min-width="100" />
<el-table-column :label="$t('收件人')" align="center" prop="receiveName" min-width="150" />
<el-table-column :label="$t('收件公司')" align="center" prop="receiveCompany" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.receiveCompany }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('预计到达时间')" align="center" prop="estimateDate" min-width="170">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.estimateDate || '') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('总件数')" align="center" prop="parcelQty" min-width="140">
<template slot-scope="scope">
<!--新增、编辑且batchId为空时,显示输入框 -->
<el-input-number v-if="(name === 'batchEdit' && scope.row.batchParcelQty==null)" v-model="scope.row.parcelQty" size="mini"
:controls="false" :max="scope.row.originalParcelQty" @blur="computeTotal"></el-input-number>
<!--新增、编辑且batchId不为空时,显示输入框 -->
<el-input-number v-if="name==='batchEdit' && scope.row.batchParcelQty!=null" v-model="scope.row.batchParcelQty" size="mini"
:controls="false" :max="scope.row.originalParcelQty" @blur="computeTotal"></el-input-number>
<!-- 查看 -->
<span v-if="name == 'batchView'">{{ scope.row.batchParcelQty
? scope.row.batchParcelQty : scope.row.parcelQty }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('实际重量')" align="center" prop="billWeight" min-width="100">
<template slot-scope="scope">
<el-input-number v-if="(name === 'batchEdit' && scope.row.batchWeight==null)" v-model="scope.row.billWeight" size="mini"
:controls="false" :max="scope.row.originalBillWeight" @blur="computeTotal"></el-input-number>
<el-input-number v-if="name==='batchEdit' && scope.row.batchWeight!=null" v-model="scope.row.batchWeight" size="mini"
:controls="false" :max="scope.row.originalBillWeight" @blur="computeTotal"></el-input-number>
<span v-if="name == 'batchView'">{{ scope.row.batchWeight ? scope.row.batchWeight : scope.row.billWeight }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('总体积')" align="center" prop="totalVolume" min-width="100">
<template slot-scope="scope">
<el-input-number v-if="(name === 'batchEdit' && scope.row.batchVolume==null)" v-model="scope.row.totalVolume" size="mini"
:controls="false" :disabled="scope.row.originalTotalVolume===''" :max="scope.row.originalTotalVolume" @blur="computeTotal"></el-input-number>
<el-input-number v-if="name==='batchEdit' && scope.row.batchVolume!=null" v-model="scope.row.batchVolume" size="mini"
:controls="false" :disabled="scope.row.originalTotalVolume===0" :max="scope.row.originalTotalVolume" @blur="computeTotal"></el-input-number>
<!-- 查看 -->
<span v-if="name == 'batchView'">{{ scope.row.batchVolume
? scope.row.batchVolume : scope.row.totalVolume }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('体积重量')" align="center" prop="volumeWeight" min-width="100" />
<el-table-column :label="$t('结算重量')" align="center" prop="settlementWeight" min-width="100" />
<el-table-column :label="$t('收件人')" align="center" prop="receiveName" min-width="150" />
<el-table-column :label="$t('收件公司')" align="center" prop="receiveCompany" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.receiveCompany }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('报关方式')" align="center" prop="customsEclaration" min-width="80" >
<template slot-scope="scope">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_declare_mode" :value="scope.row.customsEclaration"/>
</template>
</el-table-column>
</template>
</el-table-column>
<el-table-column :label="$t('清关方式')" align="center" prop="customsClear" min-width="80" >
<template slot-scope="scope">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_customs_clear" :value="scope.row.customsClear"/>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('取件员')" align="center" prop="takePieceEmployeeName" min-width="80" /> -->
<el-table-column :label="$t('取件方式')" align="center" prop="pickupMethod" min-width="80">
<template slot-scope="scope">
</template>
</el-table-column>
<!-- <el-table-column :label="$t('取件员')" align="center" prop="takePieceEmployeeName" min-width="80" /> -->
<el-table-column :label="$t('取件方式')" align="center" prop="pickupMethod" min-width="80">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_qujian_fangshi" :value="scope.row.pickupMethod"/>
</template>
</el-table-column>
<el-table-column :label="$t('付款方式')" align="center" prop="paymentType" min-width="80">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column :label="$t('付款方式')" align="center" prop="paymentType" min-width="80">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_payment_type" :value="scope.row.paymentType"/>
</template>
</el-table-column>
<el-table-column :label="$t('运费')" align="center" prop="freight" min-width="80" />
</template>
</el-table-column>
<el-table-column :label="$t('运费')" align="center" prop="freight" min-width="80" />
<el-table-column :label="$t('寄件人')" align="center" prop="sendName" min-width="150" :show-overflow-tooltip="true" />
<el-table-column :label="$t('寄件公司')" align="center" prop="sendeCompany" min-width="100" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.sendCompany }}</span>
</template>
</el-table-column>
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.sendCompany }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('录单备注')" align="center" prop="remark" min-width="100" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.remark }}</span>
</template>
</el-table-column>
</XdTable>
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.remark }}</span>
</template>
</el-table-column>
</el-table>
<div style="text-align: center;margin-bottom: 10px;" v-if="!disabled">
<el-button type="primary" :loading="isDoing" @click="submitSaveBatchForm">保存批次</el-button>
<el-button @click="handleCancelCo">取 消</el-button>
<el-button type="primary" :loading="isDoing" @click="submitSaveBatchForm">保存批次</el-button>
<el-button @click="handleCancelCo">取 消</el-button>
</div>
<el-dialog :title="titleBatch" :visible.sync="openBatch" width="50%" v-dialogDrag :close-on-click-modal="false" append-to-body>
<el-form ref="formBatch" size="mini" label-width="60px">
<el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('运单号')" prop="inputBatchBillCode">
<el-input v-model="inputBatchBillCode" type="textarea" :rows="8" placeholder="运单号" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align:center">
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align:center">
<el-button type="primary" @click="addBillToBatch">确定</el-button>
<el-button @click="cancelAddBillToBatch">取 消</el-button>
</div>
<el-button @click="cancelAddBillToBatch">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
@ -359,7 +372,7 @@ import {
} from "@/api/emis/emisTmsSiteBatch";
import { listEmisTmsSiteBatchDtl } from "@/api/emis/emisTmsSiteBatchDtl";
import { listEmisTmsSiteBatchLoading } from "@/api/emis/emisTmsSiteBatchLoading";
import { getEmisWaybillByBillCode } from "@/api/emis/emisWaybill";
import { getEmisWaybillByBillCode, getBatchDtl} from "@/api/emis/emisWaybill";
import emisTmsPackForm from '@/views/emis/emisTmsPack/emisTmsPackForm';
import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker';
@ -393,6 +406,10 @@ export default {
required: false
},
name:{
type:String,
default:''
}
},
components: { EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView,EmisSupplierPicker,EmisTmsSiteBatchSupplierPicker,EmisTmsSiteBatchNextSitePicker},
dicts: ['emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status','emis_declare_mode','emis_customs_clear','emis_big_batch_type'],
@ -700,9 +717,14 @@ export default {
listEmisTmsSiteBatchDtl({batchNo: batchNo}).then(response => {
let rows=response.rows;
let cvtBillList=rows.map(item=>{
return item.waybillDetail
let batchVolume = item.batchVolume;
let batchParcelQty = item.batchParcelQty;
let batchWeight = item.batchWeight;
return { ... item.waybillDetail,batchVolume,batchParcelQty,batchWeight,batchId:item.id};
// return item.waybillDetail
});
this.waitBatchDtlList=cvtBillList;
this.computeTotal();
});
},
@ -817,12 +839,29 @@ export default {
let packDetail = {
batchNo:this.form.batchNo,
billCode: item.billCode,
batchParcelQty: item.parcelQty,
batchWeight: item.billWeight,
batchVolume: item.totalVolume,
scanDate: null,
scanStatus: "0",
groupStatus: "1",//已组批次
scanMan: null,
scanSite: null,
};
if(this.form.id != null){ // 编辑
// packDetail.id = item.id;
packDetail.id = item.batchId;
}
if(item.batchVolume) {
packDetail.batchVolume = item.batchVolume;
}
if(item.batchParcelQty) {
packDetail.batchParcelQty = item.batchParcelQty;
}
if(item.batchWeight){
packDetail.batchWeight = item.batchWeight;
}
this.form.batchDtlList.push(packDetail);
}
@ -887,6 +926,7 @@ export default {
this.$modal.msgError("请输入单号");
return;
}
// 剔除重复值,并剔除已存在列表中的数据
let addBillCodeArr=this.inputBatchBillCode.trim().split(/[;\;\,\,\n]/)||[];
@ -903,11 +943,27 @@ export default {
for(let i = 0; i < billCodeArr.length; i++){
let billcode = billCodeArr[i].trim();
getEmisWaybillByBillCode(billcode).then(res=>{
let item=res.data;
let queryParams = {
billCode: billcode,
params:{
startSiteCode: this.form.startSiteCode,
nextSiteCode: this.form.nextSiteCode,
supplierCode: this.form.supplierCode
}
}
getBatchDtl(queryParams).then(res=>{
const billData = res.data;
const originalParcelQty = billData.batchParcelQty!==null?billData.batchParcelQty:billData.waybillDetail.parcelQty;
const originalBillWeight = billData.batchWeight!==null?billData.batchWeight:billData.waybillDetail.billWeight;
const originalTotalVolume = billData.batchVolume!==null?billData.batchVolume:billData.waybillDetail.totalVolume;
let item = {...billData.waybillDetail,"batchParcelQty":billData.batchParcelQty,"batchWeight":billData.batchWeight,"batchVolume":billData.batchVolume, "originalParcelQty": originalParcelQty, "originalBillWeight": originalBillWeight, "originalTotalVolume": originalTotalVolume}; //新增字段存 剩余件数
this.waitBatchDtlList.push(item);
this.computeTotal();
});
})
}
this.titleBatch="";
this.openBatch=false;
@ -956,9 +1012,9 @@ export default {
let totalVolume=0;
let totalSettlementWeight=0;
this.waitBatchDtlList.forEach(item =>{
totalParcelQty +=item.parcelQty;
totalWeight +=item.billWeight;
totalVolume +=item.totalVolume;
totalParcelQty +=(item.batchParcelQty!==null?item.batchParcelQty:item.parcelQty);
totalWeight +=(item.batchWeight!==null?item.batchWeight:item.billWeight);
totalVolume +=(item.batchVolume!==null?item.batchVolume:item.totalVolume);
totalSettlementWeight +=item.settlementWeight;
item.destCountry = this.form.destCountry;
// item.sendSiteCode = this.form.sendSiteCode;
@ -982,6 +1038,18 @@ export default {
this.getList();
},
handleAddWayBill(){
if(this.form.startSiteCode == null || this.form.startSiteCode == ''){
this.$modal.msgError("请选择起始网点");
return;
}
if(this.form.nextSiteCode == null || this.form.nextSiteCode == ''){
this.$modal.msgError("请选择下一网点");
return;
}
if(this.form.supplierCode == null || this.form.supplierCode == ''){
this.$modal.msgError("请选择供应商");
return;
}
this.openBatch = true;
this.titleBatch = "批量输入运单号";
},

View File

@ -42,6 +42,7 @@
<el-form-item label="漏组次数" prop="missCount">
<el-select clearable v-model="queryParams.missCount" placeholder="请选择">
<el-option label="运单分批后未组完" :value="-6"></el-option>
<el-option label="其他" :value="-5"></el-option>
<el-option label="组批次完成" :value="-4"></el-option>
<el-option label="从未组批次" :value="-1"></el-option>