This commit is contained in:
linfso 2025-06-11 16:00:29 +08:00
parent fc204182b0
commit ad8b455679
7 changed files with 275 additions and 94 deletions

View File

@ -2,9 +2,8 @@
<XdPageContainer class="app-container">
<SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="small" :maxShow="20" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="运单号" prop="billCode">
<el-input
type="textarea"
rows="2"
<XdTextareaInput
:rows="2"
v-model="queryParams.billCode"
:placeholder="$t('运单号')"
clearable
@ -28,6 +27,17 @@
<el-date-picker size="mini" style="width:100%" v-model="queryParams.billMonth" type="month" placeholder="账单月份" value-format="yyyy-MM"></el-date-picker>
</el-form-item>
<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-form-item label="" prop="empCode">
<el-input
@ -155,12 +165,19 @@
<dict-tag :options="dict.type.emis_calc_fee_type" :value="scope.row.calcFeeType"/>
</template>
</el-table-column> -->
<el-table-column :label="$t('支付方式')" align="center" prop="paymentType" min-width="80" :show-overflow-tooltip="true" >
<!-- <el-table-column :label="$t('支付方式')" align="center" prop="paymentType" min-width="80" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span v-if="scope.row.paymentType==1 || scope.row.paymentType==3 || scope.row.paymentType==6">现金</span>
<span v-if="scope.row.paymentType==2 || scope.row.paymentType==4 || scope.row.paymentType==5">月结</span>
</template>
</el-table-column> -->
<el-table-column :label="$t('支付方式')" align="center" prop="paymentType" min-width="80" :show-overflow-tooltip="true" >
<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="custName" min-width="80" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.paymentType==2 || scope.row.paymentType==4 || scope.row.paymentType==5">{{scope.row.custName}}</span>

View File

@ -805,6 +805,7 @@ export default {
}
else if (tab.name == 'billError') {
this.queryParams.blConfirmCenter='3';
this.queryParams.blConfirmSite=null;
}
else if (tab.name == 'siteBillError') {
this.queryParams.blConfirmSite='3';
@ -1525,7 +1526,6 @@ export default {
}
}
if (j === 'waybillDetail.blIsQuestion') {
if(v['waybillDetail']['blIsQuestion'] == 1){
return '是';

View File

@ -1,14 +1,65 @@
<template>
<XdPageContainer class="app-container">
<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="30" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item :label="$t('运单号')" prop="billCode">
<el-input
v-model="queryParams.billCode"
:placeholder="$t('运单号')"
clearable
/>
<XdTextareaInput
v-model="queryParams.billCode"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="1"
/>
</el-form-item>
<el-form-item label="线路" prop="lineCode">
<TransLinePicker v-model="queryParams.lineCode" isInitiated="true" ></TransLinePicker>
</el-form-item>
<el-form-item label="产品类型" prop="productType">
<TransProductPicker placeholder="产品类型" v-model="queryParams.productType" :transLineCode="queryParams.lineCode" ></TransProductPicker>
</el-form-item>
<el-form-item label="起始网点" prop="startSiteCode">
<EmisSiteSimplePicker1 v-model="queryParams.startSiteCode" ></EmisSiteSimplePicker1>
</el-form-item>
<el-form-item label="下一网点" prop="nextSiteCode">
<EmisSiteSimplePicker1 v-model="queryParams.nextSiteCode" ></EmisSiteSimplePicker1>
</el-form-item>
<el-form-item label="供应商" prop="supplierCode">
<EmisSupplierPicker :placeholder="$t('请选择')" v-model="queryParams.supplierCode" ></EmisSupplierPicker>
</el-form-item>
<el-form-item label="节点负责人" prop="manager" label-width="100px">
<EmpNamePicker1 :placeholder="$t('请选择')" v-model="queryParams.manager" ></EmpNamePicker1>
</el-form-item>
<el-form-item label="线路负责人" prop="transManager" label-width="100px">
<EmpNamePicker2 :placeholder="$t('请选择')" v-model="queryParams.transManager" ></EmpNamePicker2>
</el-form-item>
<el-form-item label="漏组次数" prop="missCount">
<el-select clearable v-model="queryParams.missCount" placeholder="请选择">
<el-option label="从未组批次" :value="-1"></el-option>
<el-option label="组批次错误" :value="-2"></el-option>
<el-option label="未创建线路" :value="-3"></el-option>
<el-option label="漏组1批次" :value="1"></el-option>
<el-option label="漏组2批次" :value="2"></el-option>
<el-option label="漏组3批次" :value="3"></el-option>
<el-option label="漏组4批次" :value="4"></el-option>
<el-option label="漏组5批次" :value="5"></el-option>
<el-option label="漏组6批次" :value="6"></el-option>
<el-option label="漏组7批次" :value="7"></el-option>
<el-option label="漏组8批次" :value="8"></el-option>
<el-option label="漏组9批次" :value="9"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否问题件" prop="blIsQuestion" label-width="90px">
<el-select clearable v-model="queryParams.blIsQuestion" placeholder="请选择">
<el-option :key="1" label="是" value="1">是</el-option>
<el-option :key="0" label="否" value="0">否</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('漏组批次原因')" prop="missReason" label-width="120px">
<el-input
v-model="queryParams.missReason"
@ -16,12 +67,8 @@
clearable
/>
</el-form-item>
<el-form-item label="起始节点" prop="sendSiteCode">
<EmisSiteSimplePicker1 v-model="queryParams.sendSiteCode" ></EmisSiteSimplePicker1>
</el-form-item>
<el-form-item label="下一节点" prop="destinationCode">
<EmisSiteSimplePicker2 v-model="queryParams.destinationCode" ></EmisSiteSimplePicker2>
</el-form-item>
</SearchForm>
@ -65,33 +112,37 @@
<el-table-column :label="$t('起始节点')" align="left" prop="sendSiteName" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('下一节点')" align="left" prop="destinationName" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('线路')" align="left" prop="transLineTypeName" min-width="100" />
<el-table-column :label="$t('产品类型')" align="left" prop="productTypeName" min-width="100" />
<el-table-column :label="$t('线路')" align="left" prop="transLineTypeName" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('产品类型')" align="left" prop="productTypeName" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('寄件国')" align="center" prop="sendCountryName" min-width="100" />
<el-table-column :label="$t('目的国')" align="center" prop="receiveCountryName" min-width="100" />
<el-table-column :label="$t('寄件国')" align="center" prop="sendCountryName" min-width="80" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('目的国')" align="center" prop="receiveCountryName" min-width="80" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('支付方式')" align="center" prop="paymentType" min-width="80" :show-overflow-tooltip="true" >
<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="paymentType" min-width="100" />
<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="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="manager" min-width="100" />
<el-table-column :label="$t('线路负责人')" align="center" prop="transManager" min-width="100" />
<el-table-column :label="$t('是否问题件')" align="center" prop="blIsQuestion" min-width="80" >
<el-table-column :label="$t('是否问题件')" align="center" prop="blIsQuestion" min-width="100" >
<template slot-scope="scope">
<el-tag v-if="scope.row.blIsQuestion==1" type="danger">是</el-tag>
<el-tag v-else type="info">否</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('结算重量')" align="center" prop="settlementWeight" min-width="100" />
<el-table-column :label="$t('运费')" align="center" prop="freight" min-width="100" />
<!-- <el-table-column :label="$t('运费')" align="center" prop="freight" min-width="100" /> -->
<el-table-column :label="$t('录单备注')" align="center" prop="waybillRemark" min-width="200" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('创建人')" align="center" prop="createByName" min-width="100" />
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" min-width="170" />
<!-- <el-table-column :label="$t('创建人')" align="center" prop="createByName" min-width="100" /> -->
<el-table-column :label="$t('稽核时间')" align="center" prop="createTime" min-width="170" />
</XdTable>
@ -110,11 +161,34 @@ import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
// import emisTmsSiteBatchMissView from '@/views/emis/emisTmsSiteBatchMiss/emisTmsSiteBatchMissView';
import emisTmsSiteBatchMissForm from '@/views/emis/emisTmsSiteBatchMiss/emisTmsSiteBatchMissForm';
import emisTransPlanRuleForm from '@/views/emis/emisTransPlanRule/emisTransPlanRuleForm';
import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker';
import EmisSiteSimplePicker1 from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import EmisSiteSimplePicker2 from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vue';
import EmpNamePicker1 from '@/views/emis/EmisBaseTools/EmpNamePicker.vue';
import EmpNamePicker2 from '@/views/emis/EmisBaseTools/EmpNamePicker.vue';
export default {
name: "emisTmsSiteBatchMiss",
components: { elDateSimplePicker,emisTmsSiteBatchMissForm },
dicts: [
],
components: {
elDateSimplePicker,
emisTransPlanRuleForm,
EmisSupplierPicker,
EmisSiteSimplePicker1,
EmisSiteSimplePicker2,
TransLinePicker,
TransProductPicker,
EmpNamePicker1,
EmpNamePicker2
},
dicts: ['emis_payment_type'],
data() {
return {
// 遮罩层
@ -134,6 +208,8 @@ export default {
// TMS漏组批次信息表表格数据
emisTmsSiteBatchMissList: [],
selectList:null,
currentId:null,
openForm: false,
titleForm: "",
@ -148,8 +224,17 @@ export default {
pageSize: 20,
billCode: null,
missReason: null,
lineCode: null,
productType: null,
startSiteCode: null,
nextSiteCode: null,
manager: null,
supplierCode: null,
startDate: null,
endDate: null,
remark: null,
delFlag: null
delFlag: null,
missCount:null,
},
};
},
@ -183,6 +268,7 @@ export default {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
this.selectList = selection
},
// 排序 查询字段是表格中字段名字 动态取值排序顺序
handleSortChange(column) {
@ -228,53 +314,119 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// this.download('emis/emisTmsSiteBatchMiss/export', {
// ...this.queryParams
// }, `emisTmsSiteBatchMiss_${new Date().getTime()}.xlsx`)
const loadingInstance = this.$loading({
/** 导出按钮操作 */
handleExport() {
const loadingInstance = this.$loading({
text: '正在导出...'
})
var qParam = {...this.queryParams};
qParam.pageNum=1;
qParam.pageSize=5000;
})
listEmisTmsSiteBatchMiss(this.addDateRange(qParam, this.dateTimeRange)).then(response => {
this.downloadLoading = false
if (response.code === 200) {
const curList = response.rows
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['主键ID','线路规则表id','运单号','漏组批次原因','备注','创建者','创建时间','更新者','更新时间','创建网点','更新网点','删除标志(0代表存在',];
const filterVal = ['id','transPlanRuleId','billCode','missReason','remark','createBy','createTime','updateBy','updateTime','createSite','updateSite','delFlag',];
const data = this.formatJson(filterVal, curList, response.rows)
excel.export_json_to_excel({
header: tHeader,
data,
filename: 'TMS漏组批次信息表',
autoWidth: true
})
loadingInstance.close()
})
}
});
if(this.selectList&&this.selectList.length>0){
this.exportData(this.selectList,loadingInstance);
}
else{
this.initQueryParams();
let qExportParam={...this.queryParams};
qExportParam=this.addDateRange(qExportParam, this.dateTimeRange,'createTime')
qExportParam.pageNum=1;
qExportParam.pageSize=20000;
listEmisTmsSiteBatchMiss(qExportParam).then(response => {
if (response.code === 200) {
this.exportData(response.rows,loadingInstance);
}
});
}
},
exportData(selData,loadingInstance){
const curList =selData
import('@/vendor/Export2Excel').then(excel => {
const exportParam=this.$refs.refTable.getExportParam();
const tHeader = exportParam.header;
const filterVal = exportParam.filter;
const data = this.formatJson(filterVal, curList, selData)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '异常订单列表',
autoWidth: true
})
loadingInstance.close()
})
},
formatJson(filterVal, jsonData, resData) {
let index = 0
return jsonData.map(v => filterVal.map(j => {
if (j === 'index') {
return ++index
}
if (j === 'status') {
var statusStr='xxx'
if(v[j] == 10){
statusStr='xxx'
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 "";
}
return statusStr;
}
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 === 'openBillStatus') {
if(v[j] == 0){
return '未开票';
}
else if(v[j] == 1){
return '已开票';
}
else if(v[j] == 2){
return '部分开票';
}
else if(v[j] == 3){
return '不开票';
}
else{
return '/';
}
}
if (j === 'chargeStatus') {
if(v[j] == 0){
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

View File

@ -50,7 +50,7 @@
ref="refTable"
storageName="emisTransPlanRuleList_main_240706"
storageName="emisTransPlanRuleList_main_240707"
size="mini"
@ -125,16 +125,17 @@
</div>
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('线路名称')" align="center" prop="lineName" min-width="120" />
<el-table-column :label="$t('产品名称')" align="center" prop="productTypeName" min-width="120" />
<el-table-column :label="$t('起始网点')" align="center" prop="startSiteName" min-width="100" />
<el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" min-width="100" />
<el-table-column :label="$t('线路名称')" align="center" prop="lineName" min-width="120" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('产品名称')" align="center" prop="productTypeName" min-width="150" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('起始网点')" align="center" prop="startSiteName" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('节点负责人')" align="center" prop="manager" min-width="100" />
<el-table-column :label="$t('供应商')" align="center" prop="supplierName" min-width="180" />
<el-table-column :label="$t('线路负责人')" align="center" prop="transManager" min-width="100" />
<el-table-column :label="$t('供应商')" align="center" prop="supplierName" min-width="180" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('生效时间')" align="center" prop="startDate" min-width="100" />
<el-table-column :label="$t('失效时间')" align="center" prop="endDate" min-width="100" />
<el-table-column label="创建人" align="center" prop="createByName" width="80" :show-overflow-tooltip="true"/>
<el-table-column label="创建人" align="center" prop="createByName" width="80"/>
<el-table-column label="创建网点" align="center" prop="createSiteName" width="80" :show-overflow-tooltip="true"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="170"/>
<el-table-column label="修改人" align="center" prop="updateByName" width="80" :show-overflow-tooltip="true"/>
@ -168,7 +169,7 @@ import EmpNamePicker from '@/views/emis/EmisBaseTools/EmpNamePicker.vue';
export default {
name: "emisTransPlanRule",
name: "EmisTransPlanRule",
components: {
elDateSimplePicker,
emisTransPlanRuleForm,

View File

@ -737,15 +737,20 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="12">
<el-form-item :label="$t('总运费')" prop="freight" label-width="70px">
<el-input-number v-if="form.calcFeeType == 3" :min="0.00" v-model="form.freight" placeholder="" :controls="false" :precision="2">
<span slot="suffix">(CNY)</span>
</el-input-number>
<el-input v-else v-model="form.freight" disabled placeholder="" >
<span slot="suffix">(CNY)</span>
</el-input>
<el-input v-if="form.calcFeeType == 3" v-model="form.freight" placeholder="" oninput="value=value.replace(/[^\d.]/g,'')" >
<span slot="suffix">(CNY)</span>
</el-input>
<el-input v-else v-model="form.freight" disabled placeholder="" >
<span slot="suffix">(CNY)</span>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12"></el-col>
<el-col :span="24">
<!-- <el-form-item :label="$t('汇率')" prop="exchangeRate" label-width="70px">
<ExchangeRatePanel from="USD" to="CNY" v-model="exchangeRate"></ExchangeRatePanel>
</el-form-item> -->

View File

@ -737,15 +737,18 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="12">
<el-form-item :label="$t('总运费')" prop="freight" label-width="70px">
<el-input-number v-if="form.calcFeeType == 3" :min="0.00" v-model="form.freight" placeholder="" :controls="false" :precision="2">
<span slot="suffix">(CNY)</span>
</el-input-number>
<el-input v-else v-model="form.freight" disabled placeholder="" >
<span slot="suffix">(CNY)</span>
</el-input>
<el-input v-if="form.calcFeeType == 3" v-model="form.freight" placeholder="" oninput="value=value.replace(/[^\d.]/g,'')" >
<span slot="suffix">(CNY)</span>
</el-input>
<el-input v-else v-model="form.freight" disabled placeholder="" >
<span slot="suffix">(CNY)</span>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12"></el-col>
<el-col :span="24">
<!-- <el-form-item :label="$t('汇率')" prop="exchangeRate" label-width="70px">
<ExchangeRatePanel from="USD" to="CNY" v-model="exchangeRate"></ExchangeRatePanel>
</el-form-item> -->

View File

@ -740,15 +740,18 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="12">
<el-form-item :label="$t('总运费')" prop="freight" label-width="70px">
<el-input-number v-if="form.calcFeeType == 3" :min="0.00" v-model="form.freight" placeholder="" :controls="false" :precision="2">
<span slot="suffix">(CNY)</span>
</el-input-number>
<el-input v-else v-model="form.freight" disabled placeholder="" >
<span slot="suffix">(CNY)</span>
</el-input>
<el-input v-if="form.calcFeeType == 3" v-model="form.freight" placeholder="" oninput="value=value.replace(/[^\d.]/g,'')" >
<span slot="suffix">(CNY)</span>
</el-input>
<el-input v-else v-model="form.freight" disabled placeholder="" >
<span slot="suffix">(CNY)</span>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12"></el-col>
<el-col :span="24">
<!-- <el-form-item :label="$t('汇率')" prop="exchangeRate" label-width="70px">
<ExchangeRatePanel from="USD" to="CNY" v-model="exchangeRate"></ExchangeRatePanel>
</el-form-item> -->