This commit is contained in:
linfso 2024-11-16 08:39:39 +08:00
parent 223b9d9887
commit 15c7d055c5
3 changed files with 342 additions and 682 deletions

View File

@ -4,13 +4,13 @@
<div class="tab-container">
<el-tabs v-model="activeTab" class="center-tabs" @tab-click="handleTabsClick" @tab-remove="removeTab">
<el-tab-pane label="海陆空批次列表" name="billList" >
<BigBatchPanel @onCreate="onCreateBatch" @onUpdate="onUpdateBatch"> </BigBatchPanel>
<BigBatchListPanel ref="refBatchList" @onCreate="onCreateBatch" @onUpdate="onUpdateBatch" @onView="onViewBatch"> </BigBatchListPanel>
</el-tab-pane>
<el-tab-pane label="批次编辑" name="batchEdit" v-if="openEditForm" >
<el-tab-pane label="批次编辑" name="batchEdit" v-if="openEditForm" closable="" >
<BigBatchEditForm :batchId="batchId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></BigBatchEditForm>
</el-tab-pane>
<el-tab-pane v-for="(item, index) in billTabs" :key="index" :name="item.settleBillNo" :label="'账单:'+item.settleBillNo" closable >
<BillDetailPanel :settleBillNo="item.settleBillNo"></BillDetailPanel>
<el-tab-pane label="批次查看" name="batchView" v-if="openViewForm" closable >
<BigBatchEditForm :batchId="batchId" disabled ></BigBatchEditForm>
</el-tab-pane>
</el-tabs>
@ -19,18 +19,16 @@
</template>
<script>
import BigBatchPanel from '@/views/emis/emisTmsSiteBatch/panel/BigBatchPanel.vue';
import BillDetailPanel from '@/views/emis/emisSettleBill/panel/BillDetailPanel.vue';
import BigBatchListPanel from '@/views/emis/emisTmsSiteBatch/panel/BigBatchListPanel.vue';
import BigBatchEditForm from '@/views/emis/emisTmsSiteBatch/panel/BigBatchEditForm.vue';
import BigBatchViewOnly from '@/views/emis/emisTmsSiteBatch/panel/BigBatchViewOnly.vue';
export default {
name: "BigBatchGroupMgnt",
components: {
BigBatchPanel,
BillDetailPanel,
BigBatchEditForm
BigBatchListPanel,
BigBatchEditForm,
BigBatchViewOnly
},
dicts: [
],
@ -39,6 +37,7 @@ export default {
activeTab:'billList',
billTabs:[],
openEditForm:false,
openViewForm:false,
batchId:null,
};
},
@ -49,6 +48,7 @@ export default {
},
onCreateBatch(){
this.batchId=null;
this.openEditForm=true;
this.activeTab='batchEdit';
},
@ -57,6 +57,12 @@ export default {
this.openEditForm=true;
this.activeTab='batchEdit';
},
onViewBatch(batchId){
this.batchId=batchId;
this.openViewForm=true;
this.activeTab='batchView';
},
onSelectBill(item) {
let old=this.billTabs.find(mItem=>mItem.settleBillNo==item.settleBillNo);
@ -70,23 +76,22 @@ export default {
handleFormChanged(){
this.openEditForm=false;
this.activeTab="billList";
this.$ref.refBatchList.handleQuery();
},
cancelForm(){
this.openEditForm=false;
this.activeTab="billList";
},
removeTab(targetName) {
// var self=this;
// let tabs = self.billTabs;
// self.billTabs = tabs.filter(tab => tab.settleBillNo !== targetName);
// if(self.billTabs.length>0){
// this.activeTab=self.billTabs[self.billTabs.length-1].settleBillNo;
// }else{
// this.activeTab="billList";
// }
console.log("===>",targetName);
if(targetName=='batchEdit'){
this.openEditForm=false;
this.activeTab="billList";
}
else if(targetName=='batchView'){
this.openViewForm=false;
this.activeTab='billList';
}
},
}

View File

@ -1,149 +1,168 @@
<template>
<div style="margin-bottom: 20px;">
<el-form ref="formCo" size="mini" :model="coData" label-width="100px" class="overflowhidden" >
<el-row :gutter="20">
<el-col :span="16">
<el-col :span="12">
<el-form ref="formCo" size="mini" :model="coData" :rules="coRules" :disabled="disabled" label-width="80px" class="overflowhidden" >
<el-row :gutter="20" style="display: flex;flex-wrap: wrap;">
<el-col :span="16" 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-input v-model="coData.batchNo" />
<el-input v-model="coData.batchNo" placeholder="可不填自动生成" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('批次名称')" prop="batchName">
<span slot="label">
<span style="color: red">{{ $t('批次名称') }}</span>
</span>
<el-input v-model="coData.batchName" clearable="" placeholder="" key="test"></el-input>
<!-- <el-input v-model="coData.batchName" placeholder=""></el-input> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('目的国家')" prop="destCountry">
<span slot="label">
<span style="color: red">{{ $t('目的国家') }}</span>
</span>
<CountryPicker :placeholder="$t('选择国家')" v-model="coData.destCountry" ></CountryPicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('起始网点')" prop="startSiteCode">
<span slot="label">
<span style="color: red">{{ $t('起始网点') }}</span>
</span>
<EmisSiteSimplePicker :placeholder="$t('请选择')" @change="onSiteSelect" v-model="coData.startSiteCode" :disabled="$store.getters.ownerSiteCode != '88888'" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('下一网点')" prop="nextSiteCode">
<span slot="label">
<span style="color: red">{{ $t('下一网点') }}</span>
</span>
<EmisSiteSimplePicker :placeholder="$t('请选择')" @change="onNextSiteSelect" v-model="coData.nextSiteCode" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="运输方式" prop="transType">
<span slot="label">
<span style="color: red">{{ $t('运输方式') }}</span>
</span>
<el-select v-model="coData.transType" placeholder="运输方式" clearable filterable >
<el-option
v-for="dict in dict.type.emis_biz_shipping_method.filter(item => (item.value != '1' && item.value!='5') )"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 2">
<el-form-item :label="$t('航空单号')" prop="airBilllNo">
<span slot="label">
<span style="color: red">{{ $t('航空单号') }}</span>
</span>
<el-input v-model="coData.airBilllNo" />
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 2">
<el-form-item label="起飞时间" prop="airTime">
<span slot="label">
<span style="color: red">{{ $t('起飞时间') }}</span>
</span>
<el-date-picker clearable
v-model="coData.airTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择起飞时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 4">
<el-form-item :label="$t('船次号')" prop="shipNo">
<span slot="label">
<span style="color: red">{{ $t('船次号') }}</span>
</span>
<el-input v-model="coData.shipNo" />
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 4">
<el-form-item label="开船时间" prop="shipTime">
<span slot="label">
<span style="color: red">{{ $t('开船时间') }}</span>
</span>
<el-date-picker clearable
v-model="coData.shipTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择开船时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" v-if="['1','3','5'].indexOf(coData.transType) > -1">
<el-form-item :label="$t('车牌号')" prop="carNo">
<span slot="label">
<span style="color: red">{{ $t('车牌号') }}</span>
</span>
<el-input v-model="coData.carNo" clearable="" placeholder=""></el-input>
</el-form-item>
</el-col>
<el-col :span="8" v-if="['1','3','5'].indexOf(coData.transType) > -1">
<el-form-item label="发车时间" prop="carTime">
<span slot="label">
<span style="color: red">{{ $t('发车时间') }}</span>
</span>
<el-date-picker clearable
v-model="coData.carTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发车时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="16">
<el-form-item :label="$t('批次名称')" prop="batchName">
<span slot="label">
<span style="color: red">{{ $t('批次名称') }}</span>
</span>
<el-input v-model="coData.batchName" clearable="" placeholder="" key="test"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('批次类型')" prop="batchType">
<el-select v-model="coData.batchType" placeholder="" style="width:100%">
<el-option key="1" label="一程批次" value="1"></el-option>
<el-option key="2" label="二程批次" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('目的国家')" prop="destCountry">
<span slot="label">
<span style="color: red">{{ $t('目的国家') }}</span>
</span>
<CountryPicker :placeholder="$t('选择国家')" v-model="coData.destCountry" ></CountryPicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('起始网点')" prop="startSiteCode">
<span slot="label">
<span style="color: red">{{ $t('起始网点') }}</span>
</span>
<EmisSiteSimplePicker :placeholder="$t('请选择')" @change="onSiteSelect" v-model="coData.startSiteCode" :disabled="$store.getters.ownerSiteCode != '88888'" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('下一网点')" prop="nextSiteCode">
<span slot="label">
<span style="color: red">{{ $t('下一网点') }}</span>
</span>
<EmisSiteSimplePicker :placeholder="$t('请选择')" @change="onNextSiteSelect" v-model="coData.nextSiteCode" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="运输方式" prop="transType">
<span slot="label">
<span style="color: red">{{ $t('运输方式') }}</span>
</span>
<el-select v-model="coData.transType" placeholder="运输方式" clearable filterable >
<el-option
v-for="dict in dict.type.emis_biz_shipping_method.filter(item => (item.value != '1' && item.value!='5') )"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 2">
<el-form-item :label="$t('航空单号')" prop="airBilllNo">
<span slot="label">
<span style="color: red">{{ $t('航空单号') }}</span>
</span>
<el-input v-model="coData.airBilllNo" />
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 2">
<el-form-item label="起飞时间" prop="airTime">
<span slot="label">
<span style="color: red">{{ $t('起飞时间') }}</span>
</span>
<el-date-picker clearable
v-model="coData.airTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择起飞时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 4">
<el-form-item :label="$t('船次号')" prop="shipNo">
<span slot="label">
<span style="color: red">{{ $t('船次号') }}</span>
</span>
<el-input v-model="coData.shipNo" />
</el-form-item>
</el-col>
<el-col :span="8" v-if="coData.transType == 4">
<el-form-item label="开船时间" prop="shipTime">
<span slot="label">
<span style="color: red">{{ $t('开船时间') }}</span>
</span>
<el-date-picker clearable
v-model="coData.shipTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择开船时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" v-if="['1','3','5'].indexOf(coData.transType) > -1">
<el-form-item :label="$t('车牌号')" prop="carNo">
<span slot="label">
<span style="color: red">{{ $t('车牌号') }}</span>
</span>
<el-input v-model="coData.carNo" clearable="" placeholder=""></el-input>
</el-form-item>
</el-col>
<el-col :span="8" v-if="['1','3','5'].indexOf(coData.transType) > -1">
<el-form-item label="发车时间" prop="carTime">
<span slot="label">
<span style="color: red">{{ $t('发车时间') }}</span>
</span>
<el-date-picker clearable
v-model="coData.carTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发车时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-col :span="24">
<el-form-item style="font-weight:600;">
<span>{{$t('总票数') + ': ' + (coData.totalWaybillQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;">
<span>{{$t('总件数') + ': ' + (coData.totalParcelQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;">
<span>{{$t('总重量') + ': ' + (coData.totalWeight || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item style="font-weight:600;">
<span>{{$t('总体积') + ': ' + (coData.totalVolume || 0)}}</span>
</el-form-item>
</el-col>
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="12">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总票数') + ': ' + (coData.totalWaybillQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总件数') + ': ' + (coData.totalParcelQty || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总重量') + ': ' + (coData.totalWeight || 0)}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总体积') + ': ' + (coData.totalVolume || 0)}}</span>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24">
<el-table :data="tableData" border style="width: 100%">
<el-col :span="24" style="" >
<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">
@ -158,7 +177,7 @@
</template>
</el-table-column>
<!-- 表头2 -->
<el-table-column label="中间" colspan="2">
<el-table-column label="柜中" colspan="2">
<template slot-scope="scope">
<el-row>
<el-col :span="12">
@ -188,30 +207,32 @@
</el-row>
</el-form>
<XdTable v-loading="loading"
<div style="margin-top:20px;padding: 3px 5px;font-size: 14px;">
装柜运单列表
</div>
<XdTable
max-height="400px"
v-loading="loading"
border
size="small"
size="mini"
storageName="emisCoPackDetail_main_240702"
id="emisCoPackDetail"
:data="emisCoPackDetail"
:showSearch.sync="showSearch"
:queryParams="queryParams"
:showRightButton="false"
@queryTable="getWaybillList"
@selection-change="handleCoPackSelectionChange"
@sort-change="handleSortChange"
>
<div slot="toolbar">
<div slot="toolbar" v-if="!disabled">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="handleCoPackListDelete"
:disabled="coMultiple"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
@ -219,38 +240,31 @@
icon="el-icon-plus"
size="mini"
@click="handleAddWayBill"
>追加</el-button>
>加入运单</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="handleAddCoPack"
>确定</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="handleCancelCo"
>取消</el-button>
@click="handleCoPackListDelete"
:disabled="coMultiple"
>移除运单</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" />
<el-table-column :label="$t('订单号')" align="center" prop="orderSn" min-width="170" />
<el-table-column :label="$t('进仓单号')" align="center" prop="warehouseInNo" min-width="100" />
<el-table-column :label="$t('运单状态')" align="center" prop="waybillStatus" min-width="100">
<!-- <el-table-column :label="$t('订单号')" align="center" prop="orderSn" min-width="170" /> -->
<!-- <el-table-column :label="$t('进仓单号')" align="center" prop="warehouseInNo" min-width="100" /> -->
<!-- <el-table-column :label="$t('运单状态')" align="center" prop="waybillStatus" min-width="100">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_waybill_status" :value="scope.row.waybillStatus"/>
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column :label="$t('物流信息')" align="center" prop="xxx" min-width="100" /> -->
<el-table-column :label="$t('当前网点')" align="center" prop="currentSiteName" min-width="100" />
<el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" min-width="100" />
<!-- <el-table-column :label="$t('当前网点')" align="center" prop="currentSiteName" min-width="100" /> -->
<!-- <el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" 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>
@ -280,31 +294,36 @@
<span class="ellipsis">{{ scope.row.receiveCompany }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('取件员')" align="center" prop="takePieceEmployeeName" min-width="150" />
<el-table-column :label="$t('取件方式')" align="center" prop="pickupMethod" min-width="100">
<!-- <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="100">
<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="100" />
<el-table-column :label="$t('寄件人')" align="center" prop="sendName" min-width="150" />
<el-table-column :label="$t('寄件公司')" align="center" prop="sendCompany" min-width="100">
<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="sendCompany" min-width="100" :show-overflow-tooltip="true" >
<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">
<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>
<div style="text-align: center;margin-bottom: 10px;" v-if="!disabled">
<el-button type="primary" @click="handleAddCoPack">确 定</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>
@ -316,7 +335,7 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align:center">
<el-button type="primary" @click="submitFormBatch">确 定</el-button>
<el-button type="primary" @click="submitFormBatch">保存批次</el-button>
<el-button @click="cancelBatch">取 消</el-button>
</div>
</el-dialog>
@ -503,12 +522,17 @@ import { formatSearchStr } from '@/utils/index'
import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
export default {
name: "CenterGenBatchMgnt",
name: "BigBatchEditForm",
props: {
batchId: {
type:[Number,Array],
required: false
},
},
disabled: {
type:[Boolean],
required: false
},
},
components: { EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView},
dicts: ['emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status'],
@ -551,7 +575,46 @@ export default {
doneTotal:0,
waitPackList:[],//选择未组包的运单先保存起来,在后续新增组批次的弹框中使用
// 新增/修改弹窗数据
coData: {
coData: {},
coRules: {
batchType: [
{ required: true, message: "批次类型不能为空", trigger: ["blur","change"] },
],
batchName: [
{ required: true, message: "批次名称不能为空", trigger: ["blur","change"] },
],
destCountry: [
{ required: true, message: "目的国不能为空", trigger: ["blur","change"] },
],
startSiteCode: [
{ required: true, message: "起始网点不能为空", trigger: ["blur","change"] },
],
nextSiteCode: [
{ required: true, message: "下一网点不能为空", trigger: ["blur","change"] },
],
transType: [
{ required: true, message: "运输方式不能为空", trigger: ["blur","change"] },
],
airBilllNo: [
{ required: true, message: "航空单号不能为空", trigger: ["blur","change"] },
],
airTime: [
{ required: true, message: "起飞时间不能为空", trigger: ["blur","change"] },
],
shipNo: [
{ required: true, message: "船次号不能为空", trigger: ["blur","change"] },
],
shipTime: [
{ required: true, message: "开船时间不能为空", trigger: ["blur","change"] },
],
carNo: [
{ required: true, message: "车牌号不能为空", trigger: ["blur","change"] },
],
carTime: [
{ required: true, message: "发车时间不能为空", trigger: ["blur","change"] },
],
},
@ -676,9 +739,48 @@ export default {
this.showBatchInfo(this.batchId);
}else{
this.reset();
this.coData.startSiteCode=this.$store.getters.ownerSiteCode;
this.coData.batchType='1';
}
},
// 表单重置
reset() {
this.coData = {
id: null,
batchNo: null,
batchName: null,
batchDate: null,
batchType: null,
transType: null,
startSiteCode: null,
nextSiteCode: null,
airBilllNo: null,
etd: null,
eta: null,
packNum: null,
carNo: null,
shipNo: null,
clearanceResStatus: null,
declareResStatus: null,
destCountry: null,
destCountryName: null,
totalParcelQty: null,
totalWaybillQty: null,
totalVolume: null,
totalWeight: null,
opMan: null,
remark: null,
tenantId: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
createSite: null,
updateSite: null
};
this.resetForm("formCo");
},
async showBatchInfo(batchId){
this.coPackType="edit";
@ -781,6 +883,8 @@ export default {
this.loadingWait = true;
this.queryWaitParams.params.isNeedBatch = 1;
this.queryWaitParams.params.batchType = this.coData.batchType;
listEmisWaybill(this.queryWaitParams).then(response => {
this.loadingWait = false;
if(response.code != 200){
@ -1719,7 +1823,7 @@ export default {
};
</script>
<style scoped>
<style lang="scss">
.el-divider{
margin-top: 0px;
background: 0 0;
@ -1747,4 +1851,32 @@ export default {
vertical-align: top;
white-space: nowrap;
}
.cargoList{
.el-input__inner {
height: 28px;
line-height: 28px;
border: none;
background: #ffffcd;
font-size: 10px;
padding: 0px;
text-align: center;
}
.el-input-number {
width: 100%!important;
}
.el-input-number.is-without-controls .el-input__inner {
height: 28px;
line-height: 28px;
border: none;
background: #ffffcd;
font-size: 10px;
padding: 0px;
text-align: center;
}
}
</style>

View File

@ -1,477 +0,0 @@
<template>
<XdPageContainer>
<el-form slot="pageHeader" ref="form" size="mini" :model="queryParams" label-width="100px">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="8">
<el-form-item label="" prop="billCode">
<div slot="label">
<el-radio-group class="query-label" v-model="queryParams.params.queryOrderType">
<el-radio label="0">批次号</el-radio>
<el-radio label="1">运单号</el-radio>
</el-radio-group>
</div>
<XdTextareaInput
v-model="queryParams.billCode"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="2"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="目的国" prop="receiveCountry">
<CountryPicker :placeholder="$t('目的国')" v-model="queryParams.receiveCountry" ></CountryPicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="寄件国" prop="sendCountry">
<CountryPicker :placeholder="$t('寄件国')" v-model="queryParams.sendCountry" ></CountryPicker>
</el-form-item>
</el-col>
<!-- <el-col :span="8"> 经确认:这张表不用付款方式,列表中去除
<el-form-item label="付款方式" prop="paymentType" >
<el-select clearable v-model="queryParams.paymentType" placeholder="请选择">
<el-option
v-for="dict in dict.type.emis_payment_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="12">
<!-- <el-form-item label="签收时间" prop="dateTimeRange">
<elDateAdvPicker clearable v-model="dateTimeRange" @dateTimeChange="onDateSelect" ></elDateAdvPicker>
</el-form-item> -->
<el-form-item label="" prop="dateTimeRange">
<div slot="label">
<el-radio-group class="query-label" v-model="queryParams.params.queryOrderDateType">
<el-radio label="1">创建时间</el-radio>
<!-- <el-radio label="0">录单时间</el-radio> -->
</el-radio-group>
</div>
<elDateAdvPicker clearable v-model="dateTimeRange" style="width:260px" ></elDateAdvPicker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<XdTable
v-loading="loading"
slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
ref="refTable"
storageName="BigBatchPanel_main_240702"
border
size="mini"
:data="emisTmsBatchList"
:showSearch.sync="showSearch"
:queryParams="queryParams"
:total="total"
@queryTable="getList"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
>
<div slot="toolbar">
<el-button style="margin-right: 5px;"
type="primary"
plain
size="mini"
v-hasPermi="['emis:emisTmsSiteBatch:query']"
@click="getList"
>查询</el-button>
<el-button style="margin-right: 5px;"
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['emis:emisTmsSiteBatch:add']"
>新组批次</el-button>
<el-button style="margin-right: 5px;"
type="danger"
plain
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['emis:emisTmsSiteBatch:edit']"
>修改</el-button>
<el-button style="margin-right: 5px;"
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['emis:emisTmsSiteBatch:remove']"
>删除</el-button>
<el-button style="margin-right: 5px;"
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleDown"
v-hasPermi="['emis:emisTmsSiteBatch:export']"
>下载批次文件</el-button>
</div>
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('批次号')" align="center" prop="batchNo" min-width="170" />
<el-table-column :label="$t('批次名称')" align="center" prop="batchName" min-width="170" />
<!-- <el-table-column :label="$t('报关资料状态')" align="center" prop="declareResStatus" min-width="170">
<template slot-scope="scope">
<el-tag v-if="scope.row.declareResStatus==1" type="success">{{ $t('已上传') }}</el-tag>
<el-tag v-else-if="scope.row.declareResStatus==0" type="warning">{{ $t('未上传') }}</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('清关资料状态')" align="center" prop="clearanceResStatus" min-width="170">
<template slot-scope="scope">
<el-tag v-if="scope.row.declareResStatus==1" type="success">{{ $t('已上传') }}</el-tag>
<el-tag v-else-if="scope.row.declareResStatus==0" type="warning">{{ $t('未上传') }}</el-tag>
</template>
</el-table-column> -->
<!-- <el-table-column :label="$t('运输方式')" align="center" prop="airBilllNo" min-width="170" /> -->
<el-table-column :label="$t('运输方式')" align="center" prop="transType" min-width="150">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_biz_shipping_method" :value="scope.row.transType"/>
</template>
</el-table-column>
<el-table-column :label="$t('单号')" align="center" prop="" min-width="170">
<template slot-scope="scope">
<span v-if="scope.row.transType==2">{{scope.row.airBilllNo}}</span>
<span v-else-if="scope.row.transType==4">{{scope.row.shipNo}}</span>
<span v-else>{{scope.row.carNo}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('时间')" align="center" prop="etd" min-width="170" />
<el-table-column :label="$t('异常信息')" align="center" prop="remark" min-width="170">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.remark }}</span>
</template>
</el-table-column>
<!-- <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="startSiteName" min-width="150" />
<el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" min-width="150" />
<el-table-column :label="$t('目的国家')" align="center" prop="destCountryName" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.destCountryName }}</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="totalWaybillQty" min-width="100" />
<el-table-column :label="$t('总件数')" align="center" prop="totalParcelQty" min-width="100" />
<el-table-column :label="$t('总重量(kg)')" align="center" prop="totalWeight" min-width="100" />
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" min-width="170">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('操作员')" align="center" prop="createByName" min-width="150" />
<!-- <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleUpdate(scope.row)"
v-hasPermi="['emis:emisTmsSiteBatchLoading:query']"
>查看</el-button>
</template>
</el-table-column> -->
</XdTable>
</XdPageContainer>
</template>
<script>
import { listEmisTmsSiteBatch, getTmsGroupBatchNo, getEmisTmsSiteBatch, delEmisTmsSiteBatch, addEmisTmsSiteBatch, updateEmisTmsSiteBatch } from "@/api/emis/emisTmsSiteBatch";
import { listEmisTmsSiteBatchDtl, delEmisTmsSiteBatchDtl, addEmisTmsSiteBatchDtl } from "@/api/emis/emisTmsSiteBatchDtl";
import { addEmisTmsSiteBatchLoading, listEmisTmsSiteBatchLoading, updateEmisTmsSiteBatchLoading } from "@/api/emis/emisTmsSiteBatchLoading";
import { listEmisWaybill, getWaybillDetail } from "@/api/emis/emisWaybill";
// import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
import emisTmsPackForm from '@/views/emis/emisTmsPack/emisTmsPackForm';
import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker';
import CountryPicker from '@/views/emis/EmisBaseTools/CountryPicker.vue';
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import EmisGetNextSitePicker from '@/views/emis/EmisBaseTools/EmisGetNextSitePicker.vue';
import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vue';
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
import { parseTime, dateToStr } from "@/utils/custom";
import { formatSearchStr } from '@/utils/index'
import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
export default {
name: "CenterGenBatchMgnt",
components: { EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView},
dicts: ['emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status'],
data() {
return {
// 遮罩层
loading: false,
loading2: false,
loadingWait: false,
loadingDone: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
coSingle: true,
coMultiple: true,
addWayBillDisabled: true,
// packDisabled: true,
activeName:'third',
// 显示搜索条件
showSearch: true,
// 创建时间搜索
dateTimeRange:[],
// 总条数
total: 0,
// TMS组批次表格数据
emisTmsBatchList: [],
// 待组批次列表
emisTmsWaitPackList:[],
waitTotal:0,
// 已组批次列表
emisTmsDonePackList:[],
doneTotal:0,
waitPackList:[],//选择未组包的运单先保存起来,在后续新增组批次的弹框中使用
// 新增/修改弹窗数据
coData: {
},
openBatch: false,
titleBatch: "",
formBatchBillList:"",
// 新增/修改包详情数据
emisCoPackDetail:[],
blUnpack:"1",
// 追加的运单查询数据
wayBillData: {
pageNum: 1,
pageSize: 20,
params:{
dataTimeType: '1',
queryOrderType: '1'
}
},
// 追加的运单数据
emisWayBillList:[],
wayBillotal:0,
currentId:null,
openForm: false,
titleForm: "",
titleWayBill:null,
openWayBillForm:false,
tempCoPackList:[],
coSelection:[],
//区分当前是新增还是修改
coPackType:'',
// 临时存储已有组批次的运单号
tempExistCoPackWayBillList:[],
tempCoPackInfo:{},
// 弹出展示层
id:null,
titleView:"",
openView: false,
// 更新网点时间范围
daterangeCreateTime: [],
// 更新网点时间范围
daterangeUpdateTime: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 20,
billCode:null,
orderSN:null,
batchNo:null,
// packNo: null,
// packName: null,
// packDate: null,
destCountry: null,
destCountryName: null,
// blUnpack: null,
// sendSiteCode: null,
// totalParcelQty: null,
// totalWaybillQty: null,
// totalVolume: null,
// totalWeight: null,
// packStatus: null,
// opMan: null,
// remark: null,
// delFlag: null,
params:{
queryOrderType: '0',
queryOrderDateType: '1',
blHLK:'1',
},
},
queryCoParams: {
params:{}
},
// 查询参数
queryWaitParams: {
pageNum: 1,
pageSize: 20,
packNo: null,
beginCreateTime: null,
endCreateTime: null,
params:{}
},
// 查询参数
queryDoneParams: {
pageNum: 1,
pageSize: 20,
packNo: null,
params:{}
},
};
},
created() {
},
mounted() {
const end = new Date()
const start = new Date()
start.setHours(0,0,0,0)
end.setHours(23,59,59,0)
this.dateTimeRange=[start,end];
this.activeName="third";
this.getList();
},
methods: {
/** 查询TMS组批次列表 */
getList() {
this.loading = true;
this.queryParams=this.addDateRange(this.queryParams, this.dateRange,"createDate");
listEmisTmsSiteBatch(this.queryParams).then(response => {
this.emisTmsBatchList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.selection = selection;
this.single = selection.length!==1
this.multiple = !selection.length
},
// 排序 查询字段是表格中字段名字 动态取值排序顺序
handleSortChange(column) {
this.queryParams.orderByColumn = column.prop;
this.queryParams.isAsc = column.order;
this.getList();
},
/** 新增按钮操作 */
handleAdd() {
this.$emit("onCreate");
},
async handleDelete(){
for(let i = 0; i< this.ids.length;i++){
await delEmisTmsSiteBatch(this.ids[i]);
}
this.$modal.msgSuccess('操作成功');
this.getList();
},
handleDown(){
},
/** 修改按钮操作 */
handleUpdate() {
// let id = this.ids[0]
this.$emit("onUpdate",this.ids);
},
handleFormChanged(){
this.openForm = false;
this.getList();
},
cancelForm(){
this.openForm = false;
},
/** 列索引函数 */
getIndex($index) {
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
},
/** 时间搜索响应函数 */
dateTimeChange(value){
this.dateTimeRange=value;
},
}
};
</script>
<style scoped>
.el-divider{
margin-top: 0px;
background: 0 0;
border-top: 1px solid #E6EBF5;
}
.el-divider__text {
color: #0955ee;
cursor: pointer;
}
.query-label {
.el-radio{
display: block;
line-height: 23px;
white-space: normal;
margin-right: 0;
}
}
.overflowhidden{
overflow: hidden;
}
.ellipsis {
width: 100px;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
white-space: nowrap;
}
</style>