财务销账功能

This commit is contained in:
wuteng 2025-09-18 14:25:28 +08:00
parent ec38b10761
commit 1c46d0f27f
8 changed files with 439 additions and 771 deletions

View File

@ -51,11 +51,10 @@ export function queryByBillCodes(query) {
}) })
} }
//财务销账审核通过 //财务销账审核通过
export function auditCenterPass(params) { export function auditCenterPass(ids) {
return request({ return request({
url: '/emis/writeoffApply/auditCenterPass/' + params.ids, url: '/emis/writeoffApply/auditCenterPass/' + ids,
method: 'post', method: 'post',
data: params
}) })
} }
@ -69,11 +68,10 @@ export function auditCenterReject(params) {
} }
//总部销账审核通过 //总部销账审核通过
export function auditHeadquartersConfirm(params) { export function auditHeadquartersConfirm(ids) {
return request({ return request({
url: '/emis/writeoffApply/auditHeadquartersConfirm/' + params.ids, url: '/emis/writeoffApply/auditHeadquartersConfirm/' + ids,
method: 'post', method: 'post'
data: params
}) })
} }

View File

@ -3,7 +3,7 @@
<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">
<CancelAccountApplicationListPanel @onCreate="onCreate" @onView="onView" @onUpdate="onUpdate"></CancelAccountApplicationListPanel> <CancelAccountApplicationListPanel ref="refWriteoffApplyList" @onCreate="onCreate" @onView="onView" @onUpdate="onUpdate"></CancelAccountApplicationListPanel>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="formTitle" name="newApply" closable v-if="showForm"> <el-tab-pane :label="formTitle" name="newApply" closable v-if="showForm">
<CancelAccountApplicationFormPanel @on-changed="handleFormChanged" @on-cancel="handleFormCancel" :applyId="applyId"></CancelAccountApplicationFormPanel> <CancelAccountApplicationFormPanel @on-changed="handleFormChanged" @on-cancel="handleFormCancel" :applyId="applyId"></CancelAccountApplicationFormPanel>
@ -60,7 +60,6 @@ methods:{
this.activeTab='newApply'; this.activeTab='newApply';
}, },
onUpdate(applyId){ onUpdate(applyId){
console.log('onUpdate', applyId);
this.applyId=applyId[0]; this.applyId=applyId[0];
this.formTitle='编辑申请'; this.formTitle='编辑申请';
this.showForm=true; this.showForm=true;
@ -69,13 +68,14 @@ methods:{
handleFormChanged(){ handleFormChanged(){
this.activeTab='billList'; this.activeTab='billList';
this.showForm=false; this.showForm=false;
//刷新列表 父组件刷新列表
this.$refs.refWriteoffApplyList.handleQuery();
}, },
handleFormCancel(){ handleFormCancel(){
this.activeTab='billList'; this.activeTab='billList';
this.showForm=false; this.showForm=false;
}, },
onView(item){ onView(item){
console.log('onView--------', item);
this.showDetail=true; this.showDetail=true;
let old=this.billTabs.find(mItem=>mItem.applyNo==item.applyNo); let old=this.billTabs.find(mItem=>mItem.applyNo==item.applyNo);
if(old){ if(old){

View File

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<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="checkList"> <el-tab-pane label="审核列表" name="checkList">
<CancelAccountCheckListPanel @onCreate="onCreate"></CancelAccountCheckListPanel> <CancelAccountCheckListPanel @onCreate="onCreate"></CancelAccountCheckListPanel>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>

View File

@ -36,6 +36,11 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-form-item :label="$t('申请说明')" prop="applyMemo">
<el-input v-model="form.applyMemo" type="textarea" :rows="2" clearable="" placeholder="申请说明"></el-input>
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="toolbar"> <div slot="toolbar">
@ -73,7 +78,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('寄件日期')" align="center" prop="emisWaybill.sendDate" min-width="170" <el-table-column :label="$t('寄件日期')" align="center" prop="emisWaybill.sendDate" min-width="170"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column :label="$t('快件类型')" align="center" prop="emisWaybill.transLineTypeName" min-width="100" /> <el-table-column :label="$t('快件类型')" align="center" prop="expressType" min-width="200" />
<el-table-column :label="$t('发件人')" align="center" prop="emisWaybill.sendName" min-width="100" /> <el-table-column :label="$t('发件人')" align="center" prop="emisWaybill.sendName" min-width="100" />
<el-table-column :label="$t('寄件公司')" align="center" prop="emisWaybill.sendCompany" min-width="170"></el-table-column> <el-table-column :label="$t('寄件公司')" align="center" prop="emisWaybill.sendCompany" min-width="170"></el-table-column>
<el-table-column :label="$t('支付方式')" align="center" prop="emisWaybill.paymentType" min-width="140"> <el-table-column :label="$t('支付方式')" align="center" prop="emisWaybill.paymentType" min-width="140">
@ -81,7 +86,7 @@
<dict-tag :options="dict.type.emis_payment_type" :value="scope.row.emisWaybill.paymentType"/> <dict-tag :options="dict.type.emis_payment_type" :value="scope.row.emisWaybill.paymentType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('产品类型')" align="center" prop="emisWaybill.productType" min-width="100"></el-table-column> <el-table-column :label="$t('产品类型')" align="center" prop="emisWaybill.productTypeName" min-width="100"></el-table-column>
<el-table-column :label="$t('件数')" align="center" prop="emisWaybill.parcelQty" min-width="100"> </el-table-column> <el-table-column :label="$t('件数')" align="center" prop="emisWaybill.parcelQty" min-width="100"> </el-table-column>
<el-table-column :label="$t('结算重量 ')" align="center" prop="emisWaybill.settlementWeight" min-width="100" /> <el-table-column :label="$t('结算重量 ')" align="center" prop="emisWaybill.settlementWeight" min-width="100" />
</el-table> </el-table>
@ -476,7 +481,6 @@ export default {
this.waitBatchDtlList.push(item); this.waitBatchDtlList.push(item);
}) })
} }
console.log('addBillToBatch', this.waitBatchDtlList);
this.titleBatch = ""; this.titleBatch = "";
this.openBatch = false; this.openBatch = false;
this.inputBatchBillCode = ""; this.inputBatchBillCode = "";

View File

@ -1,6 +1,7 @@
<template> <template>
<XdPageContainer> <XdPageContainer>
<SearchForm slot="pageHeader" class="queryForm" :model="queryParams" ref="queryForm" size="mini" :maxShow="30" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery"> <SearchForm slot="pageHeader" class="queryForm" :model="queryParams" ref="queryForm" size="mini" :maxShow="30"
label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<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,12 +11,7 @@
<el-radio label="0">账单号</el-radio> <el-radio label="0">账单号</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<XdTextareaInput <XdTextareaInput v-model="queryParams.queryKey" :placeholder="$t('多个流水号逗号或换行隔开')" clearable :rows="2" />
v-model="queryParams.queryKey"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="2"
/>
</el-form-item> </el-form-item>
<el-form-item label="创建时间" prop="dateTimeRange"> <el-form-item label="创建时间" prop="dateTimeRange">
<div slot="label"> <div slot="label">
@ -30,15 +26,12 @@
<el-col :span="16"> <el-col :span="16">
<el-form-item label="账单名称" prop="settleBillName"> <el-form-item label="账单名称" prop="settleBillName">
<el-input <el-input v-model="queryParams.settleBillName" :placeholder="$t('账单名称')" clearable />
v-model="queryParams.settleBillName"
:placeholder="$t('账单名称')"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('审核状态')" prop="blCenterConfirmed"> <el-form-item :label="$t('审核状态')" prop="blCenterConfirmed">
<el-select clearable v-model="queryParams.blCenterConfirmed" placeholder="请选择"> <el-select clearable v-model="queryParams.blCenterConfirmed" placeholder="请选择">
<el-option v-for="item in dict.type.center_confirme_status" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in dict.type.center_confirme_status" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('销售联系人')" prop="salesmen"> <el-form-item :label="$t('销售联系人')" prop="salesmen">
@ -54,31 +47,10 @@
</el-row> </el-row>
</SearchForm> </SearchForm>
<XdTable <XdTable v-loading="loading" slot="pageContent" slot-scope="slotProps" :height="(slotProps.contentHeight) + 'px'"
ref="refTable" storageName="BigBatchPanel_main_241116" border size="mini" :data="emisTmsBatchList"
v-loading="loading" :showSearch.sync="showSearch" :queryParams="queryParams" :total="total" @queryTable="getList"
@selection-change="handleSelectionChange" @sort-change="handleSortChange" @row-dblclick="handleShowBatchInfo">
slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
ref="refTable"
storageName="BigBatchPanel_main_241116"
border
size="mini"
:data="emisTmsBatchList"
:showSearch.sync="showSearch"
:queryParams="queryParams"
:total="total"
@queryTable="getList"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
@row-dblclick="handleShowBatchInfo"
>
<div slot="toolbar"> <div slot="toolbar">
<!-- <el-button style="margin-right: 5px;" <!-- <el-button style="margin-right: 5px;"
@ -88,42 +60,22 @@
v-hasPermi="['emis:emisTmsSiteBatch:query']" v-hasPermi="['emis:emisTmsSiteBatch:query']"
@click="getList" @click="getList"
>查询</el-button> --> >查询</el-button> -->
<el-button style="margin-right: 5px;" <el-button style="margin-right: 5px;" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
type="primary" v-hasPermi="['emis:writeoffApply:add']">新增申请</el-button>
plain <el-button style="margin-right: 5px;" type="primary" plain size="mini" @click="handleUpdate" :disabled="single"
icon="el-icon-plus" v-hasPermi="['emis:writeoffApply:edit']">修改</el-button>
size="mini" <el-button style="margin-right: 5px;" type="danger" plain size="mini" @click="handleRevoke" :disabled="multiple"
@click="handleAdd" v-hasPermi="['emis:writeoffApply:revoke']">撤销</el-button>
v-hasPermi="['emis:emisTmsSiteBatch:add']" <el-button style="margin-right: 5px;" type="danger" plain size="mini" @click="handleDelete" :disabled="multiple"
>新增申请</el-button> v-hasPermi="['emis:writeoffApply:remove']">删除</el-button>
<el-button style="margin-right: 5px;"
type="primary"
plain
size="mini"
@click="handleUpdate"
v-hasPermi="['emis:emisTmsSiteBatch:add']"
>修改</el-button>
<el-button style="margin-right: 5px;"
type="danger"
plain
size="mini"
@click="handleRevoke"
v-hasPermi="['emis:emisTmsSiteBatch:edit']"
>撤销</el-button>
<el-button style="margin-right: 5px;"
type="danger"
plain
size="mini"
@click="handleDelete"
v-hasPermi="['emis:emisTmsSiteBatch:edit']"
>删除</el-button>
</div> </div>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('申请编号')" align="center" prop="applyNo" min-width="100" /> <el-table-column :label="$t('申请编号')" align="center" prop="applyNo" min-width="100" />
<el-table-column :label="$t('账单号')" align="center" prop="applySettleBillNo" min-width="100" /> <el-table-column :label="$t('账单号')" align="center" prop="applySettleBillNo" min-width="100" />
<el-table-column :label="$t('账单名称')" align="center" prop="applySettleBillName" min-width="100" /> <el-table-column :label="$t('账单名称')" align="center" prop="applySettleBillName" min-width="100" />
<!-- <el-table-column :label="$t('开票状态')" align="center" prop="batchNo" min-width="100" /> --> <!-- <el-table-column :label="$t('开票状态')" align="center" prop="batchNo" min-width="100" /> -->
<el-table-column :label="$t('申请人')" align="center" prop="applyManName" min-width="130" :show-overflow-tooltip="true" /> <el-table-column :label="$t('申请人')" align="center" prop="applyManName" min-width="130"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('申请说明')" align="center" prop="applyMemo" min-width="100"> <el-table-column :label="$t('申请说明')" align="center" prop="applyMemo" min-width="100">
</el-table-column> </el-table-column>
<el-table-column :label="$t('申请时间')" align="center" prop="applyDate" min-width="80"> <el-table-column :label="$t('申请时间')" align="center" prop="applyDate" min-width="80">
@ -135,9 +87,11 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('审核时间')" align="center" prop="centerConfirmDate" min-width="100" /> <el-table-column :label="$t('审核时间')" align="center" prop="centerConfirmDate" min-width="100" />
<el-table-column :label="$t('中心审核人姓名')" align="center" prop="centerConfirmManName" min-width="100" /> <el-table-column :label="$t('中心审核人姓名')" align="center" prop="centerConfirmManName" min-width="100" />
<el-table-column :label="$t('总部审核人姓名')" align="center" prop="headquartersConfirmManName" min-width="100" />
<el-table-column :label="$t('中心驳回原因')" align="center" prop="centerRejectReason" min-width="100"> <el-table-column :label="$t('中心驳回原因')" align="center" prop="centerRejectReason" min-width="100">
</el-table-column> </el-table-column>
<el-table-column :label="$t('总部审核人姓名')" align="center" prop="headquartersConfirmManName" min-width="100" />
<el-table-column :label="$t('总部驳回原因')" align="center" prop="headquartersRejectReason" min-width="100">
</el-table-column>
<el-table-column :label="$t('销账金额')" align="center" prop="writeoffAmount" min-width="150" /> <el-table-column :label="$t('销账金额')" align="center" prop="writeoffAmount" min-width="150" />
</XdTable> </XdTable>
</XdPageContainer> </XdPageContainer>
@ -145,14 +99,11 @@
<script> <script>
import { getWriteoffApplyList, deleteWriteoffApply, revoke } from "@/api/emis/emisSettleCancelAccount"; import { getWriteoffApplyList, deleteWriteoffApply, revoke } from "@/api/emis/emisSettleCancelAccount";
import emisTmsPackForm from '@/views/emis/emisTmsPack/emisTmsPackForm';
import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker'; import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker';
import CountryPicker from '@/views/emis/EmisBaseTools/CountryPicker.vue';
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue'; import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import EmisGetNextSitePicker from '@/views/emis/EmisBaseTools/EmisGetNextSitePicker.vue'; import EmisGetNextSitePicker from '@/views/emis/EmisBaseTools/EmisGetNextSitePicker.vue';
import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vue'; import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vue';
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue'; import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
import { parseTime } from "@/utils/custom";
import { listEmisTmsSiteBatchDtl } from "@/api/emis/emisTmsSiteBatchDtl"; import { listEmisTmsSiteBatchDtl } from "@/api/emis/emisTmsSiteBatchDtl";
import PackListView from '@/views/emis/emisTmsSiteBatch/packListView'; import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
@ -169,8 +120,9 @@ import CancelAccountApplicationFormPanel from '@/views/emis/emisSettleBill/panel
export default { export default {
name: "CancelAccountApplicationListPanel", name: "CancelAccountApplicationListPanel",
components: { EmisGetNextSitePicker, CountryPicker, components: {
EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, EmisGetNextSitePicker,
EmisSiteSimplePicker, elDateAdvPicker, TransLinePicker,
TransProductPicker, PackListView, SysUserSimplePicker, TransProductPicker, PackListView, SysUserSimplePicker,
EmisSupplierPicker, BatchImportSiteBatch, BatchSiteBatchUpdateForm, PayeePicker, SalemanPicker, EmpNamePicker, CancelAccountApplicationFormPanel EmisSupplierPicker, BatchImportSiteBatch, BatchSiteBatchUpdateForm, PayeePicker, SalemanPicker, EmpNamePicker, CancelAccountApplicationFormPanel
}, },
@ -306,13 +258,8 @@ export default {
if (this.queryParams.queryKey) { if (this.queryParams.queryKey) {
rqParams.params.queryParams = this.queryParams.queryKey; rqParams.params.queryParams = this.queryParams.queryKey;
// if(this.queryOrderType=='1'){ }else{
// rqParams.queryParams.billCode=this.queryParams.queryKey; rqParams.params.queryParams = null;
// rqParams.queryParams.settleBillNo=null;
// }else{
// rqParams.queryParams.settleBillNo=this.queryParams.queryKey;
// rqParams.queryParams.billCode=null;
// }
} }
if (this.dateTimeRange) { if (this.dateTimeRange) {
rqParams = this.addDateRange(rqParams, this.dateTimeRange, "applyDate"); rqParams = this.addDateRange(rqParams, this.dateTimeRange, "applyDate");
@ -813,10 +760,12 @@ export default {
background: 0 0; background: 0 0;
border-top: 1px solid #E6EBF5; border-top: 1px solid #E6EBF5;
} }
.el-divider__text { .el-divider__text {
color: #0955ee; color: #0955ee;
cursor: pointer; cursor: pointer;
} }
.query-label { .query-label {
.el-radio { .el-radio {
display: block; display: block;
@ -825,14 +774,15 @@ export default {
margin-right: 0; margin-right: 0;
} }
} }
.overflowhidden { .overflowhidden {
overflow: hidden; overflow: hidden;
} }
.ellipsis { .ellipsis {
width: 100px; width: 100px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
vertical-align: top; vertical-align: top; white-space: nowrap;
white-space: nowrap;
} }
</style> </style>

View File

@ -23,7 +23,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('寄件日期')" align="center" prop="emisWaybill.sendDate" min-width="170" <el-table-column :label="$t('寄件日期')" align="center" prop="emisWaybill.sendDate" min-width="170"
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column :label="$t('快件类型')" align="center" prop="emisWaybill.transLineTypeName" min-width="100" /> <el-table-column :label="$t('快件类型')" align="center" prop="expressType" min-width="200" />
<el-table-column :label="$t('发件人')" align="center" prop="emisWaybill.sendName" min-width="100" /> <el-table-column :label="$t('发件人')" align="center" prop="emisWaybill.sendName" min-width="100" />
<el-table-column :label="$t('寄件公司')" align="center" prop="emisWaybill.sendCompany" min-width="170"></el-table-column> <el-table-column :label="$t('寄件公司')" align="center" prop="emisWaybill.sendCompany" min-width="170"></el-table-column>
<el-table-column :label="$t('支付方式')" align="center" prop="emisWaybill.paymentType" min-width="140"> <el-table-column :label="$t('支付方式')" align="center" prop="emisWaybill.paymentType" min-width="140">
@ -31,7 +31,7 @@
<dict-tag :options="dict.type.emis_payment_type" :value="scope.row.emisWaybill.paymentType"/> <dict-tag :options="dict.type.emis_payment_type" :value="scope.row.emisWaybill.paymentType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('产品类型')" align="center" prop="emisWaybill.productType" min-width="100"></el-table-column> <el-table-column :label="$t('产品类型')" align="center" prop="emisWaybill.productTypeName" min-width="100"></el-table-column>
<el-table-column :label="$t('件数')" align="center" prop="emisWaybill.parcelQty" min-width="100"> </el-table-column> <el-table-column :label="$t('件数')" align="center" prop="emisWaybill.parcelQty" min-width="100"> </el-table-column>
<el-table-column :label="$t('结算重量 ')" align="center" prop="emisWaybill.settlementWeight" min-width="100" /> <el-table-column :label="$t('结算重量 ')" align="center" prop="emisWaybill.settlementWeight" min-width="100" />
</el-table> </el-table>

View File

@ -26,23 +26,23 @@
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="账单名称" prop="batchName"> <el-form-item label="账单名称" prop="settleBillName">
<el-input v-model="queryParams.batchName" :placeholder="$t('账单名称')" clearable /> <el-input v-model="queryParams.settleBillName" :placeholder="$t('账单名称')" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('审核状态')" prop="auditStatus"> <el-form-item :label="$t('审核状态')" prop="blCenterConfirmed">
<el-select clearable v-model="queryParams.auditStatus" placeholder="请选择"> <el-select clearable v-model="queryParams.blCenterConfirmed" placeholder="请选择">
<el-option label="已审核" :value="1"></el-option> <el-option v-for="item in dict.type.center_confirme_status" :key="item.value"
<el-option label="未审核" :value="-1"></el-option> :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('销售联系人')" prop="startSiteCode"> <el-form-item :label="$t('销售联系人')" prop="salesmen">
<SalemanPicker :placeholder="$t('销售联系人')" v-model="queryParams.startSiteCode"></SalemanPicker> <SalemanPicker :placeholder="$t('销售联系人')" v-model="queryParams.salesmen"></SalemanPicker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('回款联系人')" prop="nextSiteCode"> <el-form-item :label="$t('回款联系人')" prop="payee">
<PayeePicker :placeholder="$t('回款联系人')" v-model="queryParams.nextSiteCode"></PayeePicker> <PayeePicker :placeholder="$t('回款联系人')" v-model="queryParams.payee"></PayeePicker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('申请人')" prop="carNo"> <el-form-item :label="$t('申请人')" prop="applyManName">
<EmpNamePicker :placeholder="$t('申请人')" v-model="queryParams.carNo"></EmpNamePicker> <EmpNamePicker :placeholder="$t('申请人')" v-model="queryParams.applyManName"></EmpNamePicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -55,23 +55,24 @@
@row-dblclick="handleShowBatchInfo"> @row-dblclick="handleShowBatchInfo">
<div slot="toolbar"> <div slot="toolbar">
<el-button style="margin-right: 5px;" type="primary" plain size="mini" @click="handleFinancialCenterPass" <el-button style="margin-right: 5px;" type="primary" plain size="mini"
v-hasPermi="['emis:emisTmsSiteBatch:add']">财务中心通过</el-button> @click="handleFinancialCenterPass" v-hasPermi="['emis:writeoffApply:centerPass']" :disabled="multiple">财务中心通过</el-button>
<el-button style="margin-right: 5px;" type="danger" plain size="mini" :disabled="single" <el-button style="margin-right: 5px;" type="danger" plain size="mini" :disabled="multiple"
@click="handleFinancialCenterNoPass" v-hasPermi="['emis:emisTmsSiteBatch:edit']">财务中心驳回</el-button> @click="handleFinancialCenterNoPass" v-hasPermi="['emis:writeoffApply:centerReject']">财务中心驳回</el-button>
<el-button style="margin-right: 5px;" type="primary" plain size="mini" :disabled="single" <el-button style="margin-right: 5px;" type="primary" plain size="mini" :disabled="multiple"
@click="handleCopy" v-hasPermi="['emis:emisTmsSiteBatch:edit']">总部确认</el-button> @click="handleauditHeadPass" v-hasPermi="['emis:writeoffApply:headquartersConfirm']">总部确认</el-button>
<el-button style="margin-right: 5px;" type="danger" plain size="mini" :disabled="single" <el-button style="margin-right: 5px;" type="danger" plain size="mini" :disabled="multiple"
@click="handleUpdate" v-hasPermi="['emis:emisTmsSiteBatch:edit']">总部驳回</el-button> @click="handleauditHeadNoPass" v-hasPermi="['emis:writeoffApply:headquartersReject']">总部驳回</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['emis:emisTmsSiteBatch:edit']">导出</el-button> v-hasPermi="['emis:writeoffApply:export']">导出</el-button>
</div> </div>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('申请编号')" align="center" prop="applyNo" min-width="100" /> <el-table-column :label="$t('申请编号')" align="center" prop="applyNo" min-width="100" />
<el-table-column :label="$t('账单号')" align="center" prop="applySettleBillNo" min-width="100" /> <el-table-column :label="$t('账单号')" align="center" prop="applySettleBillNo" min-width="100" />
<el-table-column :label="$t('账单名称')" align="center" prop="applySettleBillName" min-width="100" /> <el-table-column :label="$t('账单名称')" align="center" prop="applySettleBillName" min-width="100" />
<!-- <el-table-column :label="$t('开票状态')" align="center" prop="batchNo" min-width="100" /> --> <!-- <el-table-column :label="$t('开票状态')" align="center" prop="batchNo" min-width="100" /> -->
<el-table-column :label="$t('申请人')" align="center" prop="applyManName" min-width="130" :show-overflow-tooltip="true" /> <el-table-column :label="$t('申请人')" align="center" prop="applyManName" min-width="130"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('申请说明')" align="center" prop="applyMemo" min-width="100"> <el-table-column :label="$t('申请说明')" align="center" prop="applyMemo" min-width="100">
</el-table-column> </el-table-column>
<el-table-column :label="$t('申请时间')" align="center" prop="applyDate" min-width="80"> <el-table-column :label="$t('申请时间')" align="center" prop="applyDate" min-width="80">
@ -83,9 +84,11 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('审核时间')" align="center" prop="centerConfirmDate" min-width="100" /> <el-table-column :label="$t('审核时间')" align="center" prop="centerConfirmDate" min-width="100" />
<el-table-column :label="$t('中心审核人姓名')" align="center" prop="centerConfirmManName" min-width="100" /> <el-table-column :label="$t('中心审核人姓名')" align="center" prop="centerConfirmManName" min-width="100" />
<el-table-column :label="$t('总部审核人姓名')" align="center" prop="headquartersConfirmManName" min-width="100" />
<el-table-column :label="$t('中心驳回原因')" align="center" prop="centerRejectReason" min-width="100"> <el-table-column :label="$t('中心驳回原因')" align="center" prop="centerRejectReason" min-width="100">
</el-table-column> </el-table-column>
<el-table-column :label="$t('总部审核人姓名')" align="center" prop="headquartersConfirmManName" min-width="100" />
<el-table-column :label="$t('总部驳回原因')" align="center" prop="headquartersRejectReason" min-width="100">
</el-table-column>
<el-table-column :label="$t('销账金额')" align="center" prop="writeoffAmount" min-width="150" /> <el-table-column :label="$t('销账金额')" align="center" prop="writeoffAmount" min-width="150" />
</XdTable> </XdTable>
@ -127,7 +130,7 @@ import PayeePicker from '@/views/emis/EmisBaseTools/PayeePicker.vue';
import SalemanPicker from '@/views/emis/EmisBaseTools/SalemanPicker.vue'; import SalemanPicker from '@/views/emis/EmisBaseTools/SalemanPicker.vue';
import EmpNamePicker from '@/views/emis/EmisBaseTools/EmpNamePicker.vue'; import EmpNamePicker from '@/views/emis/EmisBaseTools/EmpNamePicker.vue';
import CancelAccountApplicationFormPanel from '@/views/emis/emisSettleBill/panel/CancelAccountApplicationFormPanel.vue'; import CancelAccountApplicationFormPanel from '@/views/emis/emisSettleBill/panel/CancelAccountApplicationFormPanel.vue';
import { getWriteoffApplyList } from "@/api/emis/emisSettleCancelAccount"; import { getWriteoffApplyList, auditCenterPass, auditCenterReject, auditHeadquartersConfirm, auditHeadquartersReject } from "@/api/emis/emisSettleCancelAccount";
export default { export default {
name: "CancelAccountApplicationListPanel", name: "CancelAccountApplicationListPanel",
@ -137,9 +140,7 @@ export default {
TransProductPicker, PackListView, SysUserSimplePicker, TransProductPicker, PackListView, SysUserSimplePicker,
EmisSupplierPicker, BatchImportSiteBatch, BatchSiteBatchUpdateForm, PayeePicker, SalemanPicker, EmpNamePicker, CancelAccountApplicationFormPanel EmisSupplierPicker, BatchImportSiteBatch, BatchSiteBatchUpdateForm, PayeePicker, SalemanPicker, EmpNamePicker, CancelAccountApplicationFormPanel
}, },
dicts: [ dicts: [ 'center_confirme_status'],
'emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status', 'emis_declare_mode', 'emis_customs_clear', 'emis_big_batch_type'
],
data() { data() {
return { return {
@ -247,6 +248,8 @@ export default {
blHeadquartersConfirmed: null, blHeadquartersConfirmed: null,
payee: null, payee: null,
salesmen: null, salesmen: null,
applyDateStart: null,
applyDateEnd: null,
params: { params: {
queryParams: null, queryParams: null,
} }
@ -269,6 +272,8 @@ export default {
if (this.queryParams.queryKey) { if (this.queryParams.queryKey) {
rqParams.params.queryParams = this.queryParams.queryKey; rqParams.params.queryParams = this.queryParams.queryKey;
}else{
rqParams.params.queryParams = null;
} }
if (this.dateTimeRange) { if (this.dateTimeRange) {
rqParams = this.addDateRange(rqParams, this.dateTimeRange, "applyDate"); rqParams = this.addDateRange(rqParams, this.dateTimeRange, "applyDate");
@ -285,22 +290,16 @@ export default {
}, },
initQueryParams() { initQueryParams() {
if (this.queryParams.queryKey) {
if (this.queryOrderType == '1') { this.queryParams.params.queryParams = this.queryParams.queryKey;
this.queryParams.params.billCode = this.queryParams.queryKey;
this.queryParams.batchNo = null;
}else{ }else{
this.queryParams.batchNo = this.queryParams.queryKey; this.queryParams.params.queryParams = null;
this.queryParams.params.billCode = null;
} }
if (this.dateTimeRange) {
this.queryParams = this.addDateRange(this.queryParams, this.dateTimeRange, "applyDate");
if (this.queryETDType == '2') { this.queryParams.applyDateStart = this.dateTimeRange[0];
this.removeDateRange(this.queryParams, "createTime"); this.queryParams.applyDateEnd = this.dateTimeRange[1];
this.queryParams = this.addDateRange(this.queryParams, this.dateTimeRange, "etd");
} else {
this.removeDateRange(this.queryParams, "etd"); this.removeDateRange(this.queryParams, "etd");
this.queryParams = this.addDateRange(this.queryParams, this.dateTimeRange, "createTime");
} }
return this.queryParams; return this.queryParams;
}, },
@ -339,13 +338,46 @@ export default {
inputPattern: /^.{5,30}$/, inputPattern: /^.{5,30}$/,
inputErrorMessage: "驳回原因长度必须介于 5 和 30 之间" inputErrorMessage: "驳回原因长度必须介于 5 和 30 之间"
}).then(({ value }) => { }).then(({ value }) => {
auditCenterNoPass(ids, value).then(response => { auditCenterReject({ids:ids, centerRejectReason: value}).then(response => {
this.$modal.msgSuccess("操作成功"); this.$modal.msgSuccess("操作成功");
this.getList(); this.getList();
}); });
}).catch(() => { }); }).catch(() => { });
}, },
handleFinancialCenterPass(){}, handleauditHeadNoPass(row) {
const ids = row.id || this.ids;
this.$prompt('请输入总部驳回原因', "操作确认", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,30}$/,
inputErrorMessage: "驳回原因长度必须介于 5 和 30 之间"
}).then(({ value }) => {
auditHeadquartersReject({ids:ids, headquartersRejectReason: value}).then(response => {
this.$modal.msgSuccess("操作成功");
this.getList();
});
}).catch(() => { });
},
handleFinancialCenterPass(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否财务中心审核通过').then(function () {
return auditCenterPass(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("操作成功");
}).catch(() => { });
},
handleauditHeadPass(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否总部审核通过').then(function () {
console.log('总部审核通过', ids);
return auditHeadquartersConfirm(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("操作成功");
}).catch(() => { });
},
handleBatchAdd() { handleBatchAdd() {
this.openForm = true; this.openForm = true;
this.titleForm = "批量导入"; this.titleForm = "批量导入";
@ -407,7 +439,7 @@ export default {
qExportParam.pageNum = 1; qExportParam.pageNum = 1;
qExportParam.pageSize = 20000; qExportParam.pageSize = 20000;
listEmisTmsSiteBatch(qExportParam).then(response => { getWriteoffApplyList(qExportParam).then(response => {
if (response.code === 200) { if (response.code === 200) {
this.exportData(response.rows, loadingInstance); this.exportData(response.rows, loadingInstance);
} }
@ -424,338 +456,21 @@ export default {
excel.export_json_to_excel({ excel.export_json_to_excel({
header: tHeader, header: tHeader,
data, data,
filename: '批次列表', filename: '销账列表',
autoWidth: true autoWidth: true
}) })
loadingInstance.close() loadingInstance.close()
}) })
}, },
formatJson(filterVal, jsonData, resData) { formatJson(filterVal, jsonData, resData) {
let index = 0
return jsonData.map(v => filterVal.map(j => { return jsonData.map(v => filterVal.map(j => {
if (j === 'blCenterConfirmed') {
if (j === 'index') { return this.selectDictLabel(this.dict.type.center_confirme_status, v[j]);
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 === 'batchType') {
return this.selectDictLabel(this.dict.type.emis_big_batch_type, v[j]);
}
if (j === 'transType') {
return this.selectDictLabel(this.dict.type.emis_biz_shipping_method, v[j]);
}
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] return v[j]
})) }))
}, },
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
};
let batchName = item.batchNo;
listEmisTmsSiteBatchDtl(qExportParam).then(response => {
if (response.code === 200) {
this.exportDataDtl(batchName, response.rows, loadingInstance);
}
});
});
}
},
exportDataDtl(batchName, selData, loadingInstance) {
const curList = selData
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['运单号', '寄件国家', '目的国家', '线路', '产品类型', '预计到达时间', '总件数', '实际重量', '总体积', '体积重量', '结算重量', '收件人', '收件公司', '取件方式', '付款方式', '运费', '寄件人', '寄件公司', '录单备注', '寄件网点', '清关方式', '报关方式'];
const filterVal = [
"billCode",
"sendCountryName",
"receiveCountryName",
"transLineTypeName",
"productTypeName",
"estimateDate",
"parcelQty",
"billWeight",
"totalVolume",
"volumeWeight",
"settlementWeight",
"receiveName",
"receiveCompany",
"pickupMethod",
"paymentType",
"freight",
"sendName",
"sendCompany",
"remark",
"sendSiteName",
"customsEclaration",
"customsClear"
];
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['waybillDetail']['sendSiteName'] + '--' + v['waybillDetail']['dispatchUnderlingSiteName'];
}
if (j === 'fjr') {
return v['sendName'] + '--' + v['receiveName'];
}
if (j === 'receiveCountryName') {
return v['waybillDetail']['receiveCountryName'];
}
if (j === 'sendCountryName') {
return v['waybillDetail']['sendCountryName'];
}
if (j === 'estimateDate') {
return v['waybillDetail']['estimateDate'];
}
if (j === 'sendSiteName') {
return v['waybillDetail']['sendSiteName'];
}
if (j === 'sendName') {
return v['waybillDetail']['sendName'];
}
if (j === 'receiveName') {
return v['waybillDetail']['receiveName'];
}
if (j === 'sendDate') {
return v['waybillDetail']['sendDate'];
}
if (j === 'sendCompany') {
return v['waybillDetail']['sendCompany'];
}
if (j === 'receiveCompany') {
return v['waybillDetail']['receiveCompany'];
}
if (j === 'transLineTypeName') {
return v['waybillDetail']['transLineTypeName'];
}
if (j === 'productTypeName') {
return v['waybillDetail']['productTypeName'];
}
if (j === 'sendName') {
return v['waybillDetail']['sendName'];
}
if (j === 'parcelQty') {
return v['waybillDetail']['parcelQty'];
}
if (j === 'billWeight') {
return v['waybillDetail']['billWeight'];
}
if (j === 'volumeWeight') {
return v['waybillDetail']['volumeWeight'];
}
if (j === 'totalVolume') {
return v['waybillDetail']['totalVolume'];
}
if (j === 'settlementWeight') {
return v['waybillDetail']['settlementWeight'];
}
if (j === 'freight') {
return v['waybillDetail']['freight'];
}
if (j === 'realFee') {
return v['waybillDetail']['realFee'];
}
if (j === 'remark') {
return v['waybillDetail']['remark'];
}
if (j === 'feeRemark') {
return v['waybillDetail']['feeRemark'];
}
if (j === 'salesmen') {
return v['waybillDetail']['salesmen'];
}
if (j === 'payee') {
return v['waybillDetail']['payee'];
}
if (j === 'payee') {
return v['waybillDetail']['payee'];
}
if (j === 'problemTypeName') {
return v['waybillDetail']['problemTypeName'];
}
if (j === 'problemCause') {
return v['waybillDetail']['problemCause'];
}
if (j === 'sendMobile') {
return "";
}
if (j === 'calcFeeType') {
return this.selectDictLabel(this.dict.type.emis_calc_fee_type, v['waybillDetail']['calcFeeType']);
}
if (j === 'waybillDetail.paymentStatus') {
return this.selectDictLabel(this.dict.type.emis_payment_status, v['waybillDetail']['paymentStatus']);
}
if (j === 'pickupMethod') {
return this.selectDictLabel(this.dict.type.emis_qujian_fangshi, v['waybillDetail']['pickupMethod']);
}
if (j === 'customsEclaration') {
return this.selectDictLabel(this.dict.type.emis_declare_mode, v['waybillDetail']['customsEclaration']);
}
if (j === 'customsClear') {
return this.selectDictLabel(this.dict.type.emis_customs_clear, v['waybillDetail']['customsClear']);
}
if (j === 'packType') {
return this.selectDictLabels(this.dict.type.emis_tab_packing_type, v['waybillDetail']['packType']);
}
if (j === 'dispatchMethod') {
if (v['waybillDetail']['dispatchMethod'] == 1) {
return '派送';
} else {
return '自提';
}
}
if (j === 'blMessage') {
if (v['waybillDetail']['blMessage'] == 1) {
return '发送';
} else {
return '不发送';
}
}
if (j === 'blAcceptMessage') {
if (v['waybillDetail']['blAcceptMessage'] == 1) {
return '发送';
} else {
return '不发送';
}
}
if (j === 'blSign') {
if (v['waybillDetail']['blSign'] == 1) {
return '已签收';
} else {
return '未签收';
}
}
if (j === 'paymentType') {
return this.selectDictLabel(this.dict.type.emis_payment_type, v['waybillDetail']['paymentType']);
}
return v[j]
}))
},
/** 列索引函数 */ /** 列索引函数 */
getIndex($index) { getIndex($index) {
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1 return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1

View File

@ -11,6 +11,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="交易时间">¥{{ settleBillItem.tradeDate }}</el-descriptions-item> <el-descriptions-item label="交易时间">¥{{ settleBillItem.tradeDate }}</el-descriptions-item>
<el-descriptions-item label="申请说明">{{ settleBillItem.applyMemo }}</el-descriptions-item>
<el-descriptions-item label="图片" :span="2"> <el-descriptions-item label="图片" :span="2">
<CancelAccountPicList :dataList="settleBillItem.imageList" /> <CancelAccountPicList :dataList="settleBillItem.imageList" />
</el-descriptions-item> </el-descriptions-item>