This commit is contained in:
linfso 2025-07-01 00:42:40 +08:00
parent a7ad4de450
commit af5fdbdd14
2 changed files with 171 additions and 64 deletions

View File

@ -2,19 +2,26 @@
<XdPageContainer class="app-container">
<SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="成本编号" prop="costNo">
<el-input
v-model="queryParams.costNo"
:placeholder="$t('成本编号')"
clearable
/>
</el-form-item>
<el-form-item label="运单号" prop="billCode">
<el-input
<XdTextareaInput
:rows="2"
v-model="queryParams.billCode"
:placeholder="$t('运单号')"
clearable
/>
</el-form-item>
<el-form-item label="发货时间" prop="">
<elDateAdvPicker v-model="dateTimeRange" ></elDateAdvPicker>
</el-form-item>
<el-form-item label="批次号" prop="billCode">
<el-input
v-model="queryParams.batchNo"
:placeholder="$t('批次号')"
clearable
/>
</el-form-item>
<el-form-item label="账单月份" prop="billMonth">
<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="mainBillCode">
<el-input
@ -64,11 +71,15 @@
@queryTable="getList"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
show-summary
:summary-method="getSummaries"
>
<div slot="toolbar">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
@ -77,7 +88,7 @@
@click="handleAdd"
v-hasPermi="['emis:emisTmsCostFeeSplit:add']"
>新增</el-button>
</el-col>
</el-col> -->
<!--
<el-col :span="1.5">
<el-button
@ -90,7 +101,7 @@
v-hasPermi="['emis:emisTmsCostFeeSplit:edit']"
>修改</el-button>
</el-col> -->
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="danger"
plain
@ -100,8 +111,8 @@
@click="handleDelete"
v-hasPermi="['emis:emisTmsCostFeeSplit:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
</el-col> -->
<el-col :span="1.5">
<el-button
type="warning"
plain
@ -110,7 +121,7 @@
@click="handleExport"
v-hasPermi="['emis:emisTmsCostFeeSplit:export']"
>导出</el-button>
</el-col> -->
</el-col>
</el-row>
</div>
@ -142,41 +153,90 @@
<dict-tag :options="dict.type.sys_currency_type" :value="scope.row.feeItem.currency"/>
</template>
</el-table-column> -->
<el-table-column :label="$t('批次号')" align="center" prop="batchNo" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('批次号')" align="center" prop="batchNo" min-width="100" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.batchNo!='-1'">{{ scope.row.batchNo }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column :label="$t('固定费用')" align="center" prop="blManual" min-width="100" >
<template slot-scope="scope">
<span v-if="scope.row.blManual=='1'" style="color:red">是</span>
<span v-else>否</span>
</template>
</el-table-column>
<el-table-column :label="$t('运输总重量')" align="center" prop="transWeight" min-width="120" />
<el-table-column :label="$t('分摊总费用')" align="center" prop="transCostFee" min-width="120" />
<el-table-column :label="$t('计算公式')" align="center" prop="calcExpr" min-width="150" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('计算备注')" align="center" prop="calcRemark" min-width="150" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('备注')" align="center" prop="remark" min-width="200" :show-overflow-tooltip="true"/>
<!--
<el-table-column :label="$t('运单号')" align="center" prop="billCode" min-width="100" />
<el-table-column :label="$t('账单月份')" align="center" prop="billMonth" min-width="100" />
<el-table-column :label="$t('快件类型')" align="center" prop="kjlx" width="180" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ scope.row.waybillDetail.sendSiteName }}--{{ scope.row.waybillDetail.dispatchUnderlingSiteName }}</span>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('计费方式')" align="center" prop="calcFeeType" width="80" :show-overflow-tooltip="true">
<template slot-scope="scope">
<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" >
<template slot-scope="scope">
<span v-if="scope.row.waybillDetail.paymentType==1 || scope.row.waybillDetail.paymentType==3 || scope.row.waybillDetail.paymentType==6">现金</span>
<span v-if="scope.row.waybillDetail.paymentType==2 || scope.row.waybillDetail.paymentType==4 || scope.row.waybillDetail.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.waybillDetail.paymentType==2 || scope.row.waybillDetail.paymentType==4 || scope.row.waybillDetail.paymentType==5">{{scope.row.waybillDetail.custName}}</span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column :label="$t('起始国')" align="center" prop="waybillDetail.sendCountryName" min-width="80" :show-overflow-tooltip="true" />
<el-table-column :label="$t('目的国')" align="center" prop="waybillDetail.receiveCountryName" min-width="80" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('寄件日期')" align="center" prop="waybillDetail.sendDate" min-width="170" :sortable="true" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('寄件网点')" align="center" prop="waybillDetail.sendSiteName" min-width="150" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('寄件公司')" align="center" prop="waybillDetail.sendCompany" min-width="150" :sortable="true" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('线路')" align="center" prop="waybillDetail.transLineTypeName" min-width="80" :sortable="true" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('产品类型')" align="center" prop="waybillDetail.productTypeName" min-width="120" :sortable="true" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span >{{scope.row.waybillDetail.productTypeName}}({{scope.row.waybillDetail.timeType}})</span>
</template>
</el-table-column>
<el-table-column :label="$t('寄件人')" align="center" prop="waybillDetail.sendName" min-width="80" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('件数')" align="center" prop="waybillDetail.parcelQty" min-width="80" />
<el-table-column :label="$t('实际重量')" align="center" prop="waybillDetail.billWeight" min-width="80" />
<el-table-column :label="$t('体积')" align="center" prop="waybillDetail.totalVolume" min-width="80" />
<el-table-column :label="$t('体积重量')" align="center" prop="waybillDetail.volumeWeight" min-width="80" />
<el-table-column :label="$t('结算重量')" align="center" prop="waybillDetail.settlementWeight" min-width="120" :sortable="true" />
<el-table-column :label="$t('运费')" align="center" prop="waybillDetail.billFee" min-width="80" >
<template slot-scope="scope">
<span style="color: red;font-weight: 500" v-if="scope.row.waybillDetail.realFee!=scope.row.freight">{{scope.row.waybillDetail.freight}}</span>
<span v-else>{{scope.row.waybillDetail.freight}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('收款状态')" align="center" prop="waybillDetail.paymentStatus" width="100" >
<template slot-scope="scope">
<el-tag v-if="scope.row.waybillDetail.paymentStatus=='0'" type="error">未收款</el-tag>
<el-tag v-if="scope.row.waybillDetail.paymentStatus=='1'" type="success">已收款</el-tag>
<el-tag v-if="scope.row.waybillDetail.paymentStatus=='2'" type="warning">部分收款</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('标准报价')" align="center" prop="waybillDetail.realFee" min-width="80" />
<el-table-column :label="$t('费用备注')" align="center" prop="waybillDetail.feeRemark" min-width="80" :show-overflow-tooltip="true" />
<el-table-column :label="$t('创建日期')" align="center" prop="createTime" min-width="170" />
<el-table-column :label="$t('成本编号')" align="center" prop="costNo" min-width="100" />
<el-table-column :label="$t('批次号')" align="center" prop="batchNo" min-width="100" />
<el-table-column :label="$t('主单号')" align="center" prop="mainBillCode" min-width="100" />
<el-table-column :label="$t('发件地')" align="center" prop="sendPlace" min-width="100" />
<el-table-column :label="$t('目的地')" align="center" prop="destPlace" min-width="100" />
<el-table-column :label="$t('账单月份')" align="center" prop="billMonth" min-width="100" />
<el-table-column :label="$t('交易时间')" align="center" prop="tradeDate" min-width="100" />
<el-table-column :label="$t('运输工具号')" align="center" prop="transSignNo" min-width="100" />
<el-table-column :label="$t('供应商代码')" align="center" prop="supplierCode" min-width="100" />
<el-table-column :label="$t('成本费用类型')" align="center" prop="feeType" min-width="100" />
<el-table-column :label="$t('成本分摊类型')" align="center" prop="splitType" min-width="100" />
<el-table-column :label="$t('成本分摊值')" align="center" prop="splitValue" min-width="100" />
<el-table-column :label="$t('分摊成本')" align="center" prop="costFee" min-width="100" />
<el-table-column :label="$t('总体积')" align="center" prop="totalVolume" min-width="100" />
<el-table-column :label="$t('实际重量')" align="center" prop="billWeight" min-width="100" />
<el-table-column :label="$t('总运输重量')" align="center" prop="transWeight" min-width="100" />
<el-table-column :label="$t('总运输体积')" align="center" prop="transVolume" min-width="100" />
<el-table-column :label="$t('批次运输费')" align="center" prop="transCostFee" min-width="100" />
<el-table-column :label="$t('计算公式')" align="center" prop="calcExpr" min-width="100" />
<el-table-column :label="$t('计算备注')" align="center" prop="calcRemark" min-width="100" />
<el-table-column :label="$t('是否手工计算')" align="center" prop="blManual" min-width="100" />
<el-table-column :label="$t('是否虚拟单')" align="center" prop="blVirtual" min-width="100" />
<el-table-column :label="$t('是否子单')" align="center" prop="blSub" min-width="100" />
<el-table-column :label="$t('备注')" align="center" prop="remark" min-width="100" /> -->
</XdTable>
@ -196,13 +256,13 @@
<script>
import { listEmisTmsCostFeeSplit, getEmisTmsCostFeeSplit, delEmisTmsCostFeeSplit, addEmisTmsCostFeeSplit, updateEmisTmsCostFeeSplit } from "@/api/emis/emisTmsCostFeeSplit";
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
// import emisTmsCostFeeSplitView from '@/views/emis/emisTmsCostFeeSplit/emisTmsCostFeeSplitView';
import emisTmsCostFeeSplitForm from '@/views/emis/emisTmsCostFeeSplit/emisTmsCostFeeSplitForm';
import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker';
export default {
name: "emisTmsCostFeeSplit",
components: { elDateSimplePicker,emisTmsCostFeeSplitForm },
components: { elDateAdvPicker,emisTmsCostFeeSplitForm },
dicts: ['emis_cost_fee_type','emis_cost_split_type'
],
data() {
@ -232,25 +292,40 @@ export default {
id:null,
titleView:"",
openView: false,
// 更新网点时间范围
daterangeCreateTime: [],
// 更新网点时间范围
daterangeUpdateTime: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 20,
costNo: null,
feeItemId: null,
batchNo: null,
billCode: null,
mainBillCode: null,
sendPlace: null,
destPlace: null,
billMonth: null,
tradeDate: null,
transSignNo: null,
supplierCode: null,
feeType: null,
splitType: null,
splitValue: null,
costFee: null,
totalVolume: null,
billWeight: null,
transWeight: null,
transVolume: null,
transCostFee: null,
currency: null,
currecyToCnyRate: null,
cnyFee: null,
price: null,
calcExpr: null,
calcRemark: null,
blManual: null,
blVirtual: null,
blSub: null,
remark: null,
delFlag: null,
},
};
},
@ -261,15 +336,6 @@ export default {
/** 查询成本费用分摊明细列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listEmisTmsCostFeeSplit(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
this.emisTmsCostFeeSplitList = response.rows;
this.total = response.total;
@ -337,6 +403,34 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
//指定列求和
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (
column.property === 'costFee'
) {
const values = data.map(item => Number(item.costFee));
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] = sums[index].toFixed(2);
}
});
console.log(sums);
return sums
},
/** 导出按钮操作 */
handleExport() {
// this.download('emis/emisTmsCostFeeSplit/export', {

View File

@ -22,13 +22,17 @@
<span style="font-weight:600;color:black"><dict-tag :options="dict.type.emis_cost_fee_type" :value="scope.row.feeType"/></span>
</template>
</el-table-column>
<el-table-column :label="$t('分摊成本(CNY)')" align="center" prop="costFee" min-width="100" >
<el-table-column :label="$t('分摊成本')" align="center" prop="costFee" min-width="100" >
<template slot-scope="scope">
<span style="color:red">¥{{ scope.row.costFee }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('计算规则')" align="center">
<el-table-column :label="$t('总成本(CNY)')" align="center" prop="transCostFee" min-width="100" />
<el-table-column :label="$t('总成本')" align="center" prop="cnyFee" min-width="100" >
<template slot-scope="scope">
<span >{{ scope.row.cnyFee }}({{ scope.row.currency }})</span>
</template>
</el-table-column>
<el-table-column :label="$t('分摊类型')" align="center" prop="splitType" min-width="100" >
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_cost_split_type" :value="scope.row.splitType"/>
@ -50,14 +54,23 @@
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column :label="$t('币种')" align="center" prop="feeItem.currency" min-width="80">
<el-table-column :label="$t('原成本')" align="center" prop="transCostFee" min-width="100" >
<template slot-scope="scope">
<span >{{ scope.row.costFee }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('原币种')" align="center" prop="feeItem.currency" min-width="80">
<template slot-scope="scope">
<dict-tag v-if="scope.row.feeItem" :options="dict.type.sys_currency_type" :value="scope.row.feeItem.currency"/>
<dict-tag v-if="scope.row.currency" :options="dict.type.sys_currency_type" :value="scope.row.currency"/>
<span v-else>人民币(CNY)</span>
</template>
</el-table-column>
<el-table-column :label="$t('批次号')" align="center" prop="costFeeDetail.batchNo" min-width="100" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('批次号')" align="center" prop="batchNo" min-width="100" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.batchNo!='-1'">{{ scope.row.batchNo }}</span>
<span v-else>-</span>
</template>
</el-table-column>
</el-table-column>
<!-- <el-table-column :label="$t('成本序号')" align="center" prop="costNo" min-width="150" :show-overflow-tooltip="true"/> -->
<!-- <el-table-column :label="$t('分摊类型')" align="center" prop="splitType" min-width="100" /> -->