This commit is contained in:
linfso 2024-07-31 12:01:45 +08:00
parent 68eb03abc4
commit 4833c02ea2
5 changed files with 94 additions and 101 deletions

View File

@ -266,8 +266,8 @@ export default {
if(evt.button == 2){ if(evt.button == 2){
flag=false; flag=false;
if(vnode.context.multipleSelection&&vnode.context.multipleSelection.length>0){ if(vnode.context.multipleSelection&&vnode.context.multipleSelection.length>0){
// vnode.context.currentOdiv=oDiv; vnode.context.currentOdiv=oDiv;
vnode.context.currentOdiv=tbBodyDiv; // vnode.context.currentOdiv=tbBodyDiv;
vnode.context.currentCell=evt.target; vnode.context.currentCell=evt.target;
showContextMenu(evt); showContextMenu(evt);
const currentCellInfo=getCellPosition(evt.target); const currentCellInfo=getCellPosition(evt.target);
@ -388,7 +388,12 @@ export default {
function showContextMenu(event){ function showContextMenu(event){
var xdTableObj = document.getElementById(vnode.context.tableId); var xdTableObj = document.getElementById(vnode.context.tableId);
xdTableObj.addEventListener("contextmenu", function(event) { xdTableObj.addEventListener("contextmenu", function(event) {
vnode.context.clearEventBubble(event)
var menu = xdTableObj.querySelector("#contextMenu"); var menu = xdTableObj.querySelector("#contextMenu");
console.log("====>xdTableObj====>",xdTableObj);
console.log("====>menu====>",menu);
let tbPosRect=getTablePosition(xdTableObj); let tbPosRect=getTablePosition(xdTableObj);
menu.style.left = (event.clientX-tbPosRect.left+5) + "px"; menu.style.left = (event.clientX-tbPosRect.left+5) + "px";
menu.style.top = (event.clientY-tbPosRect.top-35) + "px"; menu.style.top = (event.clientY-tbPosRect.top-35) + "px";

View File

@ -1,6 +1,7 @@
<template> <template>
<div > <XdPageContainer >
<el-form ref="form" size="mini" :model="queryParams" label-width="100px">
<el-form slot="pageHeader" ref="form" size="mini" :model="queryParams" label-width="100px">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;"> <el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="" prop="queryOrderType"> <el-form-item label="" prop="queryOrderType">
@ -10,13 +11,6 @@
<el-radio label="2">运单号</el-radio> <el-radio label="2">运单号</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<!-- <el-input
v-model="queryParams.packNo"
:placeholder="$t('多个合包号逗号可换行隔开')"
clearable
type="textarea"
rows="2"
/> -->
<XdTextareaInput <XdTextareaInput
v-model="queryParams.packNo" v-model="queryParams.packNo"
:placeholder="$t('多个流水号逗号或换行隔开')" :placeholder="$t('多个流水号逗号或换行隔开')"
@ -26,48 +20,40 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="发货时间" prop="dateTimeRange"> <el-form-item label="创建时间" prop="dateTimeRange">
<elDateAdvPicker clearable v-model="dateTimeRange" @dateTimeChange="onDateSelect" ></elDateAdvPicker> <elDateAdvPicker clearable v-model="dateTimeRange" ></elDateAdvPicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('寄件网点')" prop="sendAreaSiteCode"> <el-form-item label="合包状态" prop="packStatus">
<EmisSiteSimplePicker v-model="queryParams.sendAreaSiteCode" :placeholder="$t('寄件网点')" isInitiated="true" ></EmisSiteSimplePicker> <el-select clearable v-model="queryParams.packStatus" placeholder="请选择">
<el-option
v-for="dict in dict.type.emis_pack_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="目的国家" prop="sendCountry"> <el-form-item :label="$t('合包网点')" prop="sendStiteCode">
<CountryPicker v-model="queryParams.receiveCountry" :placeholder="$t('目的国家')" ></CountryPicker> <EmisSiteSimplePicker v-model="queryParams.sendStiteCode" :placeholder="$t('合包网点')" isInitiated="true" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属线路" prop="lineCode">
<TransLinePicker v-model="queryParams.lineCode" :countryCode="queryParams.receiveCountry"></TransLinePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品类型" prop="productType">
<TransProductPicker placeholder="全部" v-model="queryParams.productType" :transLineCode="queryParams.lineCode" ></TransProductPicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="问题件方式" prop="pickupMethod">
<el-select clearable="" v-model="queryParams.problemQueryType" placeholder="请选择">
<el-option label="只查问题件类型" :value="1"></el-option>
<el-option label="剔除问题件类型" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="问题件类型" prop="problemType">
<ProblemTypePicker v-model="queryParams.problemType" ></ProblemTypePicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- </SearchForm> -->
</el-form> </el-form>
<XdTable v-loading="loading" <XdTable v-loading="loading"
slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
storageName="emisTmsPackList_main1_240702"
border border
ref="table" ref="table"
size="small" size="small"
@ -92,7 +78,7 @@
@click="handleQuery" @click="handleQuery"
>查询</el-button> >查询</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
plain plain
@ -101,18 +87,18 @@
@click="handleCoAdd" @click="handleCoAdd"
:disabled="addWayBillDisabled" :disabled="addWayBillDisabled"
>追加</el-button> >追加</el-button>
</el-col> </el-col> -->
</el-row> </el-row>
</div> </div>
<el-table-column v-if="showType=='batch'" type="selection" width="55" align="center"> <el-table-column type="selection" width="55" align="center">
</el-table-column> </el-table-column>
<el-table-column type="expand"> <el-table-column type="expand">
<template slot-scope="scope"> <template slot-scope="scope">
<PackItemDetail :packNo="scope.row.packNo"></PackItemDetail> <PackItemDetail :packNo="scope.row.packNo"></PackItemDetail>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="showType=='batch'" :label="$t('合包号')" align="center" prop="packNo" min-width="170" /> <!-- <el-table-column v-if="showType=='batch'" :label="$t('合包号')" align="center" prop="packNo" min-width="170" />
<el-table-column v-if="showType=='batch'" :label="$t('合包状态')" align="center" prop="packStatus" min-width="100"> <el-table-column v-if="showType=='batch'" :label="$t('合包状态')" align="center" prop="packStatus" min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.emis_pack_status" :value="scope.row.packStatus"/> <dict-tag :options="dict.type.emis_pack_status" :value="scope.row.packStatus"/>
@ -123,13 +109,13 @@
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.blUnpack == "1" ? "是" : "否" }}</span> <span>{{ scope.row.blUnpack == "1" ? "是" : "否" }}</span>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column v-if="showType=='batch'" :label="$t('操作员')" align="center" prop="createByName" min-width="150" /> <!-- <el-table-column v-if="showType=='batch'" :label="$t('操作员')" align="center" prop="createByName" min-width="150" />
<el-table-column v-if="showType=='batch'" :label="$t('票数')" align="center" prop="totalWaybillQty" min-width="100" /> <el-table-column v-if="showType=='batch'" :label="$t('票数')" align="center" prop="totalWaybillQty" min-width="100" />
<el-table-column v-if="showType=='batch'" :label="$t('件数')" align="center" prop="totalParcelQty" min-width="100" /> <el-table-column v-if="showType=='batch'" :label="$t('件数')" align="center" prop="totalParcelQty" min-width="100" />
<el-table-column v-if="showType=='batch'" :label="$t('实际重量')" align="center" prop="totalWeight" min-width="100" /> <el-table-column v-if="showType=='batch'" :label="$t('实际重量')" align="center" prop="totalWeight" min-width="100" />
<el-table-column v-if="showType=='batch'" :label="$t('体积')" align="center" prop="totalVolume" min-width="100" /> <el-table-column v-if="showType=='batch'" :label="$t('体积')" align="center" prop="totalVolume" min-width="100" />
<el-table-column v-if="showType=='batch'" :label="$t('创建时间')" align="center" prop="packDate" min-width="170" /> <el-table-column v-if="showType=='batch'" :label="$t('创建时间')" align="center" prop="packDate" min-width="170" /> -->
<el-table-column v-if="showType=='pack'" :label="$t('合包号')" align="center" prop="packNo" min-width="170" /> <el-table-column v-if="showType=='pack'" :label="$t('合包号')" align="center" prop="packNo" min-width="170" />
<el-table-column v-if="showType=='pack'" :label="$t('合包状态')" align="center" prop="packStatus" min-width="100"> <el-table-column v-if="showType=='pack'" :label="$t('合包状态')" align="center" prop="packStatus" min-width="100">
@ -150,7 +136,7 @@
<el-table-column v-if="showType=='pack'" :label="$t('合包重量')" align="center" prop="totalWeight" min-width="100" /> <el-table-column v-if="showType=='pack'" :label="$t('合包重量')" align="center" prop="totalWeight" min-width="100" />
<el-table-column v-if="showType=='pack'" :label="$t('创建时间')" align="center" prop="packDate" min-width="170" /> <el-table-column v-if="showType=='pack'" :label="$t('创建时间')" align="center" prop="packDate" min-width="170" />
</XdTable> </XdTable>
</div> </XdPageContainer>
</template> </template>
<script> <script>
@ -171,14 +157,16 @@ import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
import { parseTime, dateToStr } from "@/utils/custom"; import { parseTime, dateToStr } from "@/utils/custom";
import { formatSearchStr } from '@/utils/index' import { formatSearchStr } from '@/utils/index'
import {timeDiffTime,timeFormat} from '@/utils/dateUtils'
export default { export default {
name: "PackListView", name: "PackListView",
components: { PackItemDetail,ProblemTypePicker, EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView}, components: { PackItemDetail,ProblemTypePicker, EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView},
props:{ props:{
propParams: {}, // propParams: {},
propType: "", // propType: "",
slotProps: {} // slotProps: {}
}, },
dicts: ['emis_pack_status'], dicts: ['emis_pack_status'],
data() { data() {
@ -193,7 +181,7 @@ export default {
canSelectList: [],// 被选中的合包列表 canSelectList: [],// 被选中的合包列表
queryParams:{}, dateTimeRange:null,
selection:[],// 选中的合包 selection:[],// 选中的合包
@ -209,7 +197,20 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
packNo: null, packNo: null,
params:{} params:{
queryOrderType:null
}
},
queryParams: {
pageNum: 1,
pageSize: 20,
packNo: null,
packStatus: null,
printStatus: null,
params:{
queryOrderType:null
}
}, },
}; };
@ -220,7 +221,16 @@ export default {
// this.queryParams.params = this.queryParams.params || {}; // this.queryParams.params = this.queryParams.params || {};
// this.queryParams.params.isNeedPack = null; // this.queryParams.params.isNeedPack = null;
// this.showType = this.propType; // this.showType = this.propType;
const end = new Date()
const start = new Date()
start.setHours(0,0,0,0)
end.setHours(23,59,59,0)
this.dateTimeRange=[timeFormat(start), timeFormat(end)]
this.queryParams.packStatus="1";
this.getList(); this.getList();
}, },
watch: { watch: {
// "propParams": { // "propParams": {
@ -356,42 +366,17 @@ export default {
/** 查询TMS合包列表 */ /** 查询TMS合包列表 */
getList() { getList() {
this.loading = true; this.loading = true;
this.single = true;
this.multiple = true;
// this.queryParams.params = {};
if(this.queryParams.packNo){
let qBillCode=formatSearchStr(this.queryParams.packNo);
let billArr = qBillCode.split(",");
let newBillCodeStr="";
billArr.forEach(item=>{
if(item.startsWith("T")){
let mainBillCode=item.substr(0,14);
newBillCodeStr=newBillCodeStr+mainBillCode+",";
}else if(item == ""){
}else{
newBillCodeStr=newBillCodeStr+item+",";
}
});
if(this.queryParams.queryOrderType == "1"){
this.queryParams.packNo=newBillCodeStr;
this.queryParams.billCode=null;
}else{
// 处理子单号
this.queryParams.billCode=newBillCodeStr;
this.queryParams.packNo=null;
}
}
this.emisTmsPackList = []; this.emisTmsPackList = [];
// if (null != this.dateTimeRange && '' != this.dateTimeRange) { // if (null != this.dateTimeRange && '' != this.dateTimeRange) {
// this.queryParams.params["beginSendDate"] = dateToStr(new Date(this.dateTimeRange[0])); // this.queryParams.params["beginSendDate"] = dateToStr(new Date(this.dateTimeRange[0]));
// this.queryParams.params["endSendDate"] = dateToStr(new Date(this.dateTimeRange[1])); // this.queryParams.params["endSendDate"] = dateToStr(new Date(this.dateTimeRange[1]));
// } // }
this.queryParams.params["beginSendDate"] = null; // this.queryParams.params["beginSendDate"] = null;
this.queryParams.params["endSendDate"] = null; // this.queryParams.params["endSendDate"] = null;
this.queryParams.params["isNeedPack"] = null; // this.queryParams.params["isNeedPack"] = null;
this.queryParams.destCountry = this.queryParams.receiveCountry; // this.queryParams.destCountry = this.queryParams.receiveCountry;
this.queryParams=this.addDateRange(this.queryParams, this.dateTimeRange,"createTime");
listEmisTmsPack(this.queryParams).then(response => { listEmisTmsPack(this.queryParams).then(response => {
this.emisTmsPackList = response.rows; this.emisTmsPackList = response.rows;
this.total = response.total; this.total = response.total;

View File

@ -1,5 +1,5 @@
<template> <template>
<XdPageContainer class="app-container"> <XdPageContainer>
<!-- <SearchForm :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery"> --> <!-- <SearchForm :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery"> -->
<el-form slot="pageHeader" ref="form" size="mini" :model="queryParams" label-width="80px"> <el-form slot="pageHeader" ref="form" size="mini" :model="queryParams" label-width="80px">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;"> <el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
@ -54,12 +54,12 @@
</el-row> </el-row>
<!-- </SearchForm> --> <!-- </SearchForm> -->
</el-form> </el-form>
<!-- slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'" -->
<XdTable <XdTable
slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
v-loading="loadingWait" v-loading="loadingWait"
border border
@ -205,6 +205,7 @@ import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
import { parseTime, dateToStr } from "@/utils/custom"; import { parseTime, dateToStr } from "@/utils/custom";
import { formatSearchStr } from '@/utils/index' import { formatSearchStr } from '@/utils/index'
import {timeDiffTime,timeFormat} from '@/utils/dateUtils'
export default { export default {
name: "PackageManagement", name: "PackageManagement",
@ -345,11 +346,13 @@ export default {
}, },
mounted() { mounted() {
const end = new Date() const end = new Date()
const start = new Date() const start = new Date()
start.setHours(0,0,0,0) start.setHours(0,0,0,0)
end.setHours(23,59,59,0) end.setHours(23,59,59,0)
this.dateTimeRange=[start,end]; this.dateTimeRange=[timeFormat(start), timeFormat(end)]
this.activeName="first"; this.activeName="first";
this.getQuery(); this.getQuery();
}, },

View File

@ -4,10 +4,10 @@
<div class="tab-container"> <div class="tab-container">
<el-tabs v-model="activeTab" class="center-tabs" @tab-click="handleTabsClick" @tab-remove="removeTab"> <el-tabs v-model="activeTab" class="center-tabs" @tab-click="handleTabsClick" @tab-remove="removeTab">
<el-tab-pane label="待合包" name="billList" > <el-tab-pane label="待合包" name="billList" >
<WaitPackList @onSelect="onSelectBill"> </WaitPackList> <WaitPackList> </WaitPackList>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="合包列表" name="hasPack" > <el-tab-pane label="合包列表" name="hasPack" >
<PackList ref="packListView" propType="pack" ></PackList> <PackList @onSelect="onSelectBill" ></PackList>
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane v-for="(item, index) in billTabs" :key="index" :name="item.settleBillNo" :label="'账单:'+item.settleBillNo" closable > <!-- <el-tab-pane v-for="(item, index) in billTabs" :key="index" :name="item.settleBillNo" :label="'账单:'+item.settleBillNo" closable >
<BillDetailPanel :settleBillNo="item.settleBillNo"></BillDetailPanel> <BillDetailPanel :settleBillNo="item.settleBillNo"></BillDetailPanel>
@ -44,21 +44,21 @@ export default {
}, },
onSelectBill(item) { onSelectBill(item) {
let old=this.billTabs.find(mItem=>mItem.settleBillNo==item.settleBillNo); let old=this.billTabs.find(mItem=>mItem.packNo==item.packNo);
if(old){ if(old){
this.activeTab=item.settleBillNo; this.activeTab=item.packNo;
}else{ }else{
this.billTabs.push(item); this.billTabs.push(item);
this.activeTab=item.settleBillNo; this.activeTab=item.packNo;
} }
}, },
removeTab(targetName) { removeTab(targetName) {
var self=this; var self=this;
let tabs = self.billTabs; let tabs = self.billTabs;
self.billTabs = tabs.filter(tab => tab.settleBillNo !== targetName); self.billTabs = tabs.filter(tab => tab.packNo !== targetName);
if(self.billTabs.length>0){ if(self.billTabs.length>0){
this.activeTab=self.billTabs[self.billTabs.length-1].settleBillNo; this.activeTab=self.billTabs[self.billTabs.length-1].packNo;
}else{ }else{
this.activeTab="billList"; this.activeTab="billList";
} }

View File

@ -15,13 +15,13 @@
:showCustomizeTpl="false" :showCustomizeTpl="false"
> >
<el-table-column :label="$t('运单号')" align="center" prop="billCodeL" min-width="170" /> <el-table-column :label="$t('运单号')" align="center" prop="billCodeL" min-width="170" />
<el-table-column :label="$t('订单号')" align="center" prop="orderSn" min-width="170" /> <!-- <el-table-column :label="$t('订单号')" align="center" prop="orderSn" min-width="170" /> -->
<el-table-column :label="$t('进仓单号')" align="center" prop="intoWarehouseCode" min-width="100" /> <!-- <el-table-column :label="$t('进仓单号')" align="center" prop="intoWarehouseCode" min-width="100" /> -->
<el-table-column :label="$t('扫描状态')" align="center" prop="waybillStatus" width="100" > <!-- <el-table-column :label="$t('扫描状态')" align="center" prop="waybillStatus" width="100" >
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.emis_waybill_status" :value="scope.row.waybillStatus"/> <dict-tag :options="dict.type.emis_waybill_status" :value="scope.row.waybillStatus"/>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column :label="$t('当前网点')" align="center" prop="currentSiteName" 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="nextSiteName" min-width="100" />
<el-table-column :label="$t('寄件国家')" align="center" prop="sendCountryName" min-width="100"> <el-table-column :label="$t('寄件国家')" align="center" prop="sendCountryName" min-width="100">