This commit is contained in:
linfso 2024-12-03 23:52:24 +08:00
parent ad3cfc715c
commit 573d2856f4
3 changed files with 125 additions and 175 deletions

View File

@ -89,8 +89,8 @@
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
</el-col>
<el-col :span="8">
<el-form-item label="所属国家" prop="country">
<CountryPicker :placeholder="$t('所属国家')" v-model="form.country" ></CountryPicker>

View File

@ -283,168 +283,6 @@
</div>
</el-dialog>
<el-dialog :title="titleWayBill" :visible.sync="openWayBillForm" width="90%" @close="handleCloseWayBill" :destroy-on-close="true" v-dialogDrag append-to-body>
<el-form ref="formCo" size="mini" :model="wayBillData" label-width="100px" class="overflowhidden" >
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="" prop="billCode">
<div slot="label">
<el-radio-group class="query-label" v-model="wayBillData.params.queryOrderType">
<el-radio label="1">运单号</el-radio>
<el-radio label="0">订单号</el-radio>
</el-radio-group>
</div>
<!-- <el-input
v-model="wayBillData.billCode"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
type="textarea"
rows="2"
/> -->
<XdTextareaInput
v-model="wayBillData.billCode"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="2"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('目的国家')" prop="receiveCountry">
<CountryPicker :placeholder="$t('选择国家')" v-model="wayBillData.receiveCountry" ></CountryPicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="线路" prop="lineCode">
<TransLinePicker v-model="wayBillData.lineCode" :countryCode="wayBillData.destCountry"></TransLinePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品" prop="productType">
<TransProductPicker placeholder="全部" v-model="wayBillData.productType" :transLineCode="wayBillData.lineCode" ></TransProductPicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" prop="billCode">
<div slot="label">
<el-radio-group class="query-label" v-model="wayBillData.params.dataTimeType">
<el-radio label="1">下单时间</el-radio>
<!-- <el-radio label="0">录单时间</el-radio> -->
</el-radio-group>
</div>
<elDateAdvPicker clearable v-model="wayBillData.dateTimeRange" @dateTimeChange="onWayBillDateSelect" ></elDateAdvPicker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<XdTable v-loading="loading2"
height="300px"
min-height="300px"
border
size="small"
id="emisWayBillList"
:data="emisWayBillList"
:showSearch.sync="showSearch"
:queryParams="wayBillData"
:total="wayBillotal"
:showRightButton="false"
@queryTable="handleQueryWayBill"
@sort-change="handleSortChange"
@selection-change="handleWayBillSelectionChange"
max-height="300px"
>
<div slot="toolbar">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="handleQueryWayBill"
>查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleCoAdd"
:disabled="addWayBillDisabled"
>追加</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">
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_waybill_status" :value="scope.row.waybillStatus"/>
</template>
</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="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="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="takePieceEmployeeName" min-width="150" />
<el-table-column :label="$t('取件方式')" align="center" prop="pickupMethod" min-width="100">
<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">
<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">
<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">
<template slot-scope="scope">
<span class="ellipsis">{{ scope.row.remark }}</span>
</template>
</el-table-column>
</XdTable>
</el-dialog>
</div>

View File

@ -121,24 +121,25 @@
@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> -->
<el-button
style="margin-right: 5px;"
type="warning"
plain
:disabled="single"
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
<el-button style="margin-right: 5px;"
type="warning"
plain
:disabled="single"
icon="el-icon-download"
size="mini"
@click="handleDownBatchDtl"
>导出批次明细</el-button>
</div>
<el-table-column type="selection" width="55" align="center" />
@ -210,6 +211,7 @@ import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vu
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
import { parseTime, dateToStr } from "@/utils/custom";
import { formatSearchStr } from '@/utils/index'
import { listEmisTmsSiteBatchDtl} from "@/api/emis/emisTmsSiteBatchDtl";
import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
@ -420,9 +422,7 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
handleDown(){
},
/** 修改按钮操作 */
handleUpdate() {
// let id = this.ids[0]
@ -554,6 +554,118 @@ export default {
}))
},
handleDownBatchDtl(batchName){
const loadingInstance = this.$loading({
text: '正在导出...'
})
if(this.selectionList&&this.selectionList.length>0){
this.selectionList.forEach(item=>{
let qExportParam={
pageNum:1,
pageSize:20000,
batchNo: item.batchNo
};
listEmisTmsSiteBatchDtl(qExportParam).then(response => {
if (response.code === 200) {
this.exportDataDtl(response.rows,loadingInstance);
}
});
});
}
},
exportDataDtl(batchName,selData,loadingInstance){
const curList =selData
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['运单号','寄件国家','目的国家','线路','产品类型','预计到达时间','总件数','实际重量','总体积','体积重量','结算重量','收件人','收件公司','取件方式','付款方式','运费','寄件人','寄件公司','录单备注','寄件网点'];
const filterVal = [''];
const data = this.formatJsonDtl(filterVal, curList, selData)
excel.export_json_to_excel({
header: tHeader,
data,
filename: batchName+'-批次明细表',
autoWidth: true
})
loadingInstance.close()
})
},
formatJsonDtl(filterVal, jsonData, resData) {
let index = 0
return jsonData.map(v => filterVal.map(j => {
if (j === 'index') {
return ++index
}
if (j === 'kjlx') {
return v['sendSiteName']+'--'+v['dispatchUnderlingSiteName'];
}
if (j === 'fjr') {
return v['sendName']+'--'+v['receiveName'];
}
if (j === 'custName') {
let paymentType=v['paymentType'];
if(paymentType==2 || paymentType==4 || paymentType==5 ){
return v['custName'];
}else{
return "";
}
}
if (j === 'sendMobile') {
return "";
}
if (j === 'paymentStatus') {
return this.selectDictLabel(this.dict.type.emis_payment_status,v[j]);
}
if (j === 'pickupMethod') {
return this.selectDictLabel(this.dict.type.emis_qujian_fangshi,v[j]);
}
if (j === 'customsEclaration') {
return this.selectDictLabel(this.dict.type.emis_declare_mode,v[j]);
}
if (j === 'customsClear') {
return this.selectDictLabel(this.dict.type.emis_customs_clear,v[j]);
}
if (j === 'packType') {
return this.selectDictLabels(this.dict.type.emis_tab_packing_type,v[j]);
}
if (j === 'dispatchMethod') {
if(v[j] == 1){
return '派送';
}else{
return '自提';
}
}
if (j === 'blMessage') {
if(v[j] == 1){
return '发送';
}else{
return '不发送';
}
}
if (j === 'blAcceptMessage') {
if(v[j] == 1){
return '发送';
}else{
return '不发送';
}
}
if (j === 'blSign') {
if(v[j] == 1){
return '已签收';
}else{
return '未签收';
}
}
if (j === 'paymentType') {
return this.selectDictLabel(this.dict.type.emis_payment_type,v[j]);
}
return v[j]
}))
},
/** 列索引函数 */
getIndex($index) {
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1