This commit is contained in:
linfso 2025-02-17 22:36:55 +08:00
parent cd11e57303
commit abe2a6ec34
2 changed files with 167 additions and 141 deletions

View File

@ -1,15 +1,11 @@
<template>
<XdPageContainer class="app-container">
<SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="small" :maxShow="30" label-width="80px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="运输批次" prop="batchNo">
<EmisTmsSiteBatchPicker v-model="queryParams.batchNo" ></EmisTmsSiteBatchPicker>
</el-form-item>
<el-form-item :label="$t('供应商')" prop="feeType">
<el-select clearable filterable v-model="queryParams.supplierName" placeholder="请选择" >
<el-option
v-for="dict in dict.type.emis_supplier_name"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
<EmisSupplierPicker :placeholder="$t('请选择')" v-model="queryParams.supplierCode" ></EmisSupplierPicker>
</el-form-item>
<el-form-item label="账期" prop="billMonth">
<el-date-picker v-model="queryParams.billMonth" type="month" placeholder="账单月份" value-format="yyyy-MM" style="width:110px"></el-date-picker>
@ -69,6 +65,8 @@
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
storageName="emisTmsCostFeeList_main1"
v-loading="loading"
border stripe
size="small"
@ -148,12 +146,13 @@
</template>
</el-table-column> -->
<!-- <el-table-column :label="$t('成本序号')" align="center" prop="costNo" min-width="100" /> -->
<!-- <el-table-column :label="$t('成本名称')" align="center" prop="costName" min-width="100" /> -->
<el-table-column :label="$t('成本类型')" align="center" prop="feeType" min-width="100" >
<el-table-column :label="$t('批次号')" align="center" prop="batchNo" min-width="120" />
<el-table-column :label="$t('批次名称')" align="center" prop="batchName" min-width="150" :show-overflow-tooltip="true"/>
<!-- <el-table-column :label="$t('成本类型')" align="center" prop="feeType" min-width="100" >
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_cost_fee_type" :value="scope.row.feeType"/>
</template>
</el-table-column>
</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"/>
@ -212,13 +211,14 @@
<script>
import { listEmisTmsCostFee, getEmisTmsCostFee, delEmisTmsCostFee, addEmisTmsCostFee, updateEmisTmsCostFee } from "@/api/emis/emisTmsCostFee";
// import emisTmsCostFeeView from '@/views/emis/emisTmsCostFee/emisTmsCostFeeView';
import EmisTmsCostFeeForm from '@/views/emis/emisTmsCostFee/emisTmsCostFeeForm';
import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker';
import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker';
import EmisTmsSiteBatchPicker from '@/views/emis/EmisBaseTools/EmisTmsSiteBatchPicker';
export default {
name: "emisTmsCostFee",
components: { EmisTmsCostFeeForm ,elDateAdvPicker},
components: { EmisTmsCostFeeForm ,elDateAdvPicker,EmisSupplierPicker,EmisTmsSiteBatchPicker},
dicts: ['emis_cost_fee_type','emis_supplier_name','emis_cost_split_type','emis_biz_shipping_method','emis_payment_type'],
data() {
return {

View File

@ -2,133 +2,153 @@
<div >
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="12">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="24">
<el-form-item label="运输批次" prop="batchNo">
<EmisTmsSiteBatchPicker v-model="form.batchNo" @onChange="onSelecTmsBatch" :disabled="form.id!=null"></EmisTmsSiteBatchPicker>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="成本时间" prop="tradeDate" >
<el-date-picker
style="width:100%"
clearable
v-model="form.tradeDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="成本时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="账期" prop="billMonth">
<el-date-picker style="width:100%" v-model="form.billMonth" type="month" placeholder="账期" value-format="yyyy-MM"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="分摊类型" prop="splitType">
<el-radio-group v-model="form.splitType">
<el-radio label="1" >按重量分摊</el-radio>
<el-radio label="2">按体积分摊</el-radio>
<el-radio label="3">按票分摊</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="费用列表" prop="feeType">
<el-table
class="cargoList"
:cell-style="{
'padding': '0px!important',
'padding-left': '0px!important',
'padding-right': '0px!important',
'font-size':'11px'
}"
:header-cell-style="{
'font-size':'11px'
}"
border
stripe
:data="form.feeItemList"
size="mini"
max-height="300px"
style="width: 100%"
>
<el-table-column prop="feeName" :label="$t('费用类别')" align="center" width="100">
<template slot-scope="scope">
<span style="font-weight:600;color:red"><dict-tag :options="dict.type.emis_cost_fee_type" :value="scope.row.feeType"/></span>
</template>
</el-table-column>
<el-table-column prop="fee" :label="$t('费用')" align="center" min-width="80">
<template slot-scope="scope">
<el-input-number v-model="scope.row.fee" placeholder="" size="mini" :min="0.00" :controls="false" :precision="2" ></el-input-number>
</template>
</el-table-column>
<el-table-column prop="currency" :label="$t('币种')" align="center" width="150" >
<template slot-scope="scope">
<el-select v-model="scope.row.currency" size="mini" placeholder="" >
<el-option
v-for="dict in dict.type.sys_currency_type.filter(item=> (item.value=='CNY' || item.value=='USD') )"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-form-item label="运输批次" prop="batchNo">
<EmisTmsSiteBatchPicker v-model="form.batchNo" @onChange="onSelecTmsBatch" :disabled="form.id!=null"></EmisTmsSiteBatchPicker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('供应商')" prop="supplierCode">
<EmisSupplierPicker :placeholder="$t('请选择')" @onChange="onSupplierSelect" v-model="form.supplierCode" ></EmisSupplierPicker>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="费用列表" prop="feeType">
<!-- <el-select clearable filterable v-model="form.feeType" placeholder="请选择" style="width:100%">
<el-option
v-for="dict in dict.type.emis_cost_fee_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select> -->
<div>
<el-table
border
stripe
:data="form.feeItemList"
size="mini"
max-height="300px"
style="width: 100%"
>
<el-table-column prop="feeName" :label="$t('费用类别')" align="center" width="70">
<template slot-scope="scope">
<span style="font-weight:600;color:red"><dict-tag :options="dict.type.emis_cost_fee_type" :value="scope.row.feeType"/></span>
</template>
</el-table-column>
<el-table-column prop="fee" :label="$t('费用')" align="center" width="50">
<template slot-scope="scope">
<el-input-number v-model="scope.row.fee" placeholder="" :min="0.00" :controls="false" :precision="2" ></el-input-number>
</template>
</el-table-column>
<el-table-column prop="currency" :label="$t('币种')" align="center" width="50" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span><dict-tag :options="dict.type.sys_currency_type" :value="scope.row.currency"/></span>
</template>
</el-table-column>
</el-table>
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="24">
<el-form-item :label="$t('供应商')" prop="supplierCode">
<EmisSupplierPicker :placeholder="$t('请选择')" v-model="form.supplierCode" disabled ></EmisSupplierPicker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="承运重量" prop="realTotalWeight">
<el-input-number v-model="form.realTotalWeight" style="width:100%" placeholder="承运重量" :min="1" :controls="false" :precision="2" disabled>
</el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="包裹数" prop="realPieceNumber">
<el-input-number v-model="form.realPieceNumber" style="width:100%" placeholder="包裹数" :min="1" :controls="false" :precision="0" disabled></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发件地" prop="sendPlace">
<el-input v-model="form.sendPlace" placeholder="请输入发件地" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="目的地" prop="destPlace">
<el-input v-model="form.destPlace" placeholder="请输入目的地" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运输方式" prop="transType">
<el-select clearable v-model="form.transType" placeholder="请选择" style="width:100%" disabled>
<el-option
v-for="dict in dict.type.emis_biz_shipping_method"
: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="transSignNo">
<el-input v-model="form.transSignNo" placeholder="提单号/车次号/船次号/单号" disabled/>
</el-form-item>
</el-col>
</div>
</el-form-item>
</el-row>
</el-col>
<el-col :span="5">
<!-- <el-col :span="5">
<el-form-item label="费用" prop="costFee">
<el-input-number v-model="form.costFee" style="width:100%" placeholder="总费用" :min="1" :controls="false" :precision="2"></el-input-number>
</el-form-item>
</el-col>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="成本名称" prop="costName">
<el-input v-model="form.costName" placeholder="请输入成本名称" />
</el-form-item>
</el-col> -->
<el-col :span="6">
<el-form-item label="承运重量" prop="realTotalWeight">
<el-input-number v-model="form.realTotalWeight" style="width:100%" placeholder="承运重量" :min="1" :controls="false" :precision="2">
</el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="包裹数" prop="realPieceNumber">
<el-input-number v-model="form.realPieceNumber" style="width:100%" placeholder="包裹数" :min="1" :controls="false" :precision="0"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="成本时间" prop="tradeDate" >
<el-date-picker
style="width:100%"
clearable
v-model="form.tradeDate"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="成本时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="账期" prop="billMonth">
<el-date-picker style="width:100%" v-model="form.billMonth" type="month" placeholder="账期" value-format="yyyy-MM"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发件地" prop="sendPlace">
<el-input v-model="form.sendPlace" placeholder="请输入发件地" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="目的地" prop="destPlace">
<el-input v-model="form.destPlace" placeholder="请输入目的地" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分摊类型" prop="splitType">
<el-radio-group v-model="form.splitType">
<el-radio label="1" >按重量分摊</el-radio>
<el-radio label="2">按体积分摊</el-radio>
<el-radio label="3">按票分摊</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输方式" prop="transType">
<el-select clearable v-model="form.transType" placeholder="请选择" style="width:100%">
<el-option
v-for="dict in dict.type.emis_biz_shipping_method"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输号" prop="transSignNo">
<el-input v-model="form.transSignNo" placeholder="提单号/车次号/船次号/单号" />
</el-form-item>
</el-col>
<!-- <el-col :span="6">
</el-col> -->
<!-- <el-col :span="24">
@ -137,7 +157,6 @@
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="关联单号" prop="billCode" >
<span slot="label">
@ -278,7 +297,7 @@ export default {
}
},
components: { EmisTmsSiteBatchPicker,EmisSupplierPicker },
dicts: ['emis_cost_fee_type','emis_supplier_name','emis_cost_split_type','emis_biz_shipping_method','emis_payment_type','emis_trans_feeitem_rel'],
dicts: ['emis_cost_fee_type','emis_supplier_name','emis_cost_split_type','emis_biz_shipping_method','emis_payment_type','emis_trans_feeitem_rel','sys_currency_type'],
data() {
return {
emisTmsCostFeeOptions: [],
@ -292,15 +311,15 @@ export default {
batchNo: [
{ required: true, message: "批次不能为空", trigger: ["blur","change"] }
],
feeType: [
{ required: true, message: "成本类型不能为空", trigger: ["blur","change"] }
],
// feeType: [
// { required: true, message: "成本类型不能为空", trigger: ["blur","change"] }
// ],
splitType: [
{ required: true, message: "分摊类型不能为空", trigger: ["blur","change"] }
],
costFee: [
{ required: true, message: "成本费不能为空", trigger: ["blur","change"] }
],
// costFee: [
// { required: true, message: "成本费不能为空", trigger: ["blur","change"] }
// ],
tradeDate: [
{ required: true, message: "交易日期不能为空", trigger: ["blur","change"] }
],
@ -367,6 +386,7 @@ export default {
this.form.supplierCode=item.supplierCode;
this.form.supplierName=item.supplierName;
this.form.tradeDate= this.parseTime(item.etd);
this.form.costName=item.batchName;
this.form.billRelList=[];
// 运单列表信息
@ -396,22 +416,28 @@ export default {
}
// 获取运输类型对应的费用类型
dict.type.emis_trans_feeitem_rel.forEach(item => {
if(item.value == this.form.transType){
console.log("==item.label==>",item.label);
let feeTypeArr = item.label.split(',');
dict.type.emis_cost_fee_type.forEach(itemType => {
for(let i=0;i<this.dict.type.emis_trans_feeitem_rel.length;i++ ){
let item=this.dict.type.emis_trans_feeitem_rel[i];
if(item.label == this.form.transType){
console.log("==this.form.transType==>",this.form.transType);
console.log("==item.value==>",item.value);
let feeTypeArr = item.value.split(',');
this.dict.type.emis_cost_fee_type.forEach(itemType => {
if(feeTypeArr.includes(itemType.value)){
let feeItem={
feeType:itemType.value,
fee:0,
currency:'CNY'
}
feeItemList.push(feeItem);
this.form.feeItemList.push(feeItem);
}
});
break;
}
});
}
this.loading = false;
},
initData() {