财务销账功能

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">
@ -24,61 +20,37 @@
<!-- <el-radio label="2">发出时间</el-radio> --> <!-- <el-radio label="2">发出时间</el-radio> -->
</el-radio-group> </el-radio-group>
</div> </div>
<elDateAdvPicker clearable v-model="dateTimeRange" style="width:260px" ></elDateAdvPicker> <elDateAdvPicker clearable v-model="dateTimeRange" style="width:260px"></elDateAdvPicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<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">
<SalemanPicker :placeholder="$t('销售联系人')" v-model="queryParams.salesmen" ></SalemanPicker> <SalemanPicker :placeholder="$t('销售联系人')" v-model="queryParams.salesmen"></SalemanPicker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('回款联系人')" prop="payee"> <el-form-item :label="$t('回款联系人')" prop="payee">
<PayeePicker :placeholder="$t('回款联系人')" v-model="queryParams.payee" ></PayeePicker> <PayeePicker :placeholder="$t('回款联系人')" v-model="queryParams.payee"></PayeePicker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('申请人')" prop="applyManName"> <el-form-item :label="$t('申请人')" prop="applyManName">
<EmpNamePicker :placeholder="$t('申请人')" v-model="queryParams.applyManName" ></EmpNamePicker> <EmpNamePicker :placeholder="$t('申请人')" v-model="queryParams.applyManName"></EmpNamePicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</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,55 +60,37 @@
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">
</el-table-column> </el-table-column>
<el-table-column :label="$t('状态')" align="center" prop="blCenterConfirmed" min-width="170"> <el-table-column :label="$t('状态')" align="center" prop="blCenterConfirmed" min-width="170">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.center_confirme_status" :value="scope.row.blCenterConfirmed"/> <dict-tag :options="dict.type.center_confirme_status" :value="scope.row.blCenterConfirmed" />
</template> </template>
</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="centerRejectReason" min-width="100">
</el-table-column>
<el-table-column :label="$t('总部审核人姓名')" align="center" prop="headquartersConfirmManName" 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="headquartersRejectReason" min-width="100">
</el-table-column> </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>
@ -144,16 +98,13 @@
</template> </template>
<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';
import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker'; import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker';
@ -169,13 +120,14 @@ import CancelAccountApplicationFormPanel from '@/views/emis/emisSettleBill/panel
export default { export default {
name: "CancelAccountApplicationListPanel", name: "CancelAccountApplicationListPanel",
components: { EmisGetNextSitePicker, CountryPicker, components: {
EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, EmisGetNextSitePicker,
TransProductPicker, PackListView,SysUserSimplePicker, EmisSiteSimplePicker, elDateAdvPicker, TransLinePicker,
EmisSupplierPicker,BatchImportSiteBatch,BatchSiteBatchUpdateForm,PayeePicker,SalemanPicker,EmpNamePicker,CancelAccountApplicationFormPanel TransProductPicker, PackListView, SysUserSimplePicker,
EmisSupplierPicker, BatchImportSiteBatch, BatchSiteBatchUpdateForm, PayeePicker, SalemanPicker, EmpNamePicker, CancelAccountApplicationFormPanel
}, },
dicts: [ dicts: [
'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', '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', 'center_confirme_status'
], ],
data() { data() {
@ -197,75 +149,75 @@ export default {
addWayBillDisabled: true, addWayBillDisabled: true,
// packDisabled: true, // packDisabled: true,
activeName:'third', activeName: 'third',
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
// 创建时间搜索 // 创建时间搜索
dateTimeRange:[], dateTimeRange: [],
// 总条数 // 总条数
total: 0, total: 0,
// TMS组批次表格数据 // TMS组批次表格数据
emisTmsBatchList: [{'id':22100,'settleBillNo':'123'}], emisTmsBatchList: [{ 'id': 22100, 'settleBillNo': '123' }],
// 待组批次列表 // 待组批次列表
emisTmsWaitPackList:[], emisTmsWaitPackList: [],
waitTotal:0, waitTotal: 0,
// 已组批次列表 // 已组批次列表
emisTmsDonePackList:[], emisTmsDonePackList: [],
doneTotal:0, doneTotal: 0,
waitPackList:[],//选择未组包的运单先保存起来,在后续新增组批次的弹框中使用 waitPackList: [],//选择未组包的运单先保存起来,在后续新增组批次的弹框中使用
// 新增/修改弹窗数据 // 新增/修改弹窗数据
coData: { coData: {
}, },
openBatchUpdateForm:false, openBatchUpdateForm: false,
titleBatchForm: "", titleBatchForm: "",
openBatch: false, openBatch: false,
titleBatch: "", titleBatch: "",
formBatchBillList:"", formBatchBillList: "",
// 新增/修改包详情数据 // 新增/修改包详情数据
emisCoPackDetail:[], emisCoPackDetail: [],
blUnpack:"1", blUnpack: "1",
// 追加的运单查询数据 // 追加的运单查询数据
wayBillData: { wayBillData: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
params:{ params: {
dataTimeType: '1', dataTimeType: '1',
queryOrderType: '1' queryOrderType: '1'
} }
}, },
// 追加的运单数据 // 追加的运单数据
emisWayBillList:[], emisWayBillList: [],
selectionList:[], selectionList: [],
wayBillotal:0, wayBillotal: 0,
currentId:null, currentId: null,
openForm: false, openForm: false,
titleForm: "", titleForm: "",
queryOrderType:'1', queryOrderType: '1',
queryETDType:'1', queryETDType: '1',
titleWayBill:null, titleWayBill: null,
openWayBillForm:false, openWayBillForm: false,
tempCoPackList:[], tempCoPackList: [],
coSelection:[], coSelection: [],
//区分当前是新增还是修改 //区分当前是新增还是修改
coPackType:'', coPackType: '',
// 临时存储已有组批次的运单号 // 临时存储已有组批次的运单号
tempExistCoPackWayBillList:[], tempExistCoPackWayBillList: [],
tempCoPackInfo:{}, tempCoPackInfo: {},
// 弹出展示层 // 弹出展示层
id:null, id: null,
titleView:"", titleView: "",
openView: false, openView: false,
// 更新网点时间范围 // 更新网点时间范围
daterangeCreateTime: [], daterangeCreateTime: [],
@ -276,16 +228,16 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
queryKey:null, queryKey: null,
applyDate:null, applyDate: null,
settleBillName:null, settleBillName: null,
applyManName:null, applyManName: null,
blCenterConfirmed:null, blCenterConfirmed: null,
blHeadquartersConfirmed:null, blHeadquartersConfirmed: null,
payee:null, payee: null,
salesmen:null, salesmen: null,
params:{ params: {
queryParams:null, queryParams: null,
} }
}, },
}; };
@ -302,23 +254,18 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
let rqParams = {...this.queryParams}; let rqParams = { ...this.queryParams };
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");
rqParams.applyDateStart = this.dateTimeRange[0]; rqParams.applyDateStart = this.dateTimeRange[0];
rqParams.applyDateEnd = this.dateTimeRange[1]; rqParams.applyDateEnd = this.dateTimeRange[1];
this.removeDateRange(rqParams,"etd"); this.removeDateRange(rqParams, "etd");
} }
getWriteoffApplyList(rqParams).then(response => { getWriteoffApplyList(rqParams).then(response => {
@ -328,23 +275,23 @@ export default {
}); });
}, },
initQueryParams(){ initQueryParams() {
if(this.queryOrderType=='1'){ if (this.queryOrderType == '1') {
this.queryParams.params.billCode=this.queryParams.queryKey; this.queryParams.params.billCode = this.queryParams.queryKey;
this.queryParams.batchNo=null; this.queryParams.batchNo = null;
}else{ } else {
this.queryParams.batchNo=this.queryParams.queryKey; this.queryParams.batchNo = this.queryParams.queryKey;
this.queryParams.params.billCode=null; this.queryParams.params.billCode = null;
} }
if(this.queryETDType=='2'){ if (this.queryETDType == '2') {
this.removeDateRange(this.queryParams,"createTime"); this.removeDateRange(this.queryParams, "createTime");
this.queryParams=this.addDateRange(this.queryParams, this.dateTimeRange,"etd"); this.queryParams = this.addDateRange(this.queryParams, this.dateTimeRange, "etd");
}else{ } else {
this.removeDateRange(this.queryParams,"etd"); this.removeDateRange(this.queryParams, "etd");
this.queryParams=this.addDateRange(this.queryParams, this.dateTimeRange,"createTime"); this.queryParams = this.addDateRange(this.queryParams, this.dateTimeRange, "createTime");
} }
return this.queryParams; return this.queryParams;
}, },
@ -363,8 +310,8 @@ export default {
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map(item => item.id)
this.selection = selection; this.selection = selection;
this.selectionList=selection; this.selectionList = selection;
this.single = selection.length!==1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
// 排序 查询字段是表格中字段名字 动态取值排序顺序 // 排序 查询字段是表格中字段名字 动态取值排序顺序
@ -378,30 +325,30 @@ export default {
handleAdd() { handleAdd() {
this.$emit("onCreate"); this.$emit("onCreate");
}, },
handleUpdate(row){ handleUpdate(row) {
this.$emit("onUpdate",this.ids); this.$emit("onUpdate", this.ids);
}, },
handleBatchAdd(){ handleBatchAdd() {
this.openForm= true; this.openForm = true;
this.titleForm = "批量导入"; this.titleForm = "批量导入";
}, },
handleDelete(row){ handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除').then(function() { this.$modal.confirm('是否确认删除').then(function () {
return deleteWriteoffApply(ids); return deleteWriteoffApply(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => { });
}, },
handleRevoke(row){ handleRevoke(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认撤销').then(function() { this.$modal.confirm('是否确认撤销').then(function () {
return revoke(ids.join(',')); return revoke(ids.join(','));
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("撤销成功"); this.$modal.msgSuccess("撤销成功");
}).catch(() => {}); }).catch(() => { });
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
@ -410,25 +357,25 @@ export default {
this.openBatchUpdateForm = true; this.openBatchUpdateForm = true;
this.titleBatchForm = "批量修改"; this.titleBatchForm = "批量修改";
}, },
handleBatchFormChanged(){ handleBatchFormChanged() {
this.openBatchUpdateForm = false; this.openBatchUpdateForm = false;
this.getList(); this.getList();
}, },
cancelBatchForm(){ cancelBatchForm() {
this.openBatchUpdateForm = false; this.openBatchUpdateForm = false;
}, },
handleCopy() { handleCopy() {
this.$emit("onCopy",this.ids); this.$emit("onCopy", this.ids);
}, },
handleShowBatchInfo(row){ handleShowBatchInfo(row) {
this.$emit("onView",row); this.$emit("onView", row);
}, },
handleFormChanged(){ handleFormChanged() {
this.openForm = false; this.openForm = false;
this.getList(); this.getList();
}, },
cancelForm(){ cancelForm() {
this.openForm = false; this.openForm = false;
}, },
@ -438,25 +385,25 @@ export default {
text: '正在导出...' text: '正在导出...'
}) })
if(this.selectionList&&this.selectionList.length>0){ if (this.selectionList && this.selectionList.length > 0) {
this.exportData(this.selectionList,loadingInstance); this.exportData(this.selectionList, loadingInstance);
} }
else{ else {
let qExportParam=this.initQueryParams(); let qExportParam = this.initQueryParams();
qExportParam.pageNum=1; qExportParam.pageNum = 1;
qExportParam.pageSize=20000; qExportParam.pageSize = 20000;
listEmisTmsSiteBatch(qExportParam).then(response => { listEmisTmsSiteBatch(qExportParam).then(response => {
if (response.code === 200) { if (response.code === 200) {
this.exportData(response.rows,loadingInstance); this.exportData(response.rows, loadingInstance);
} }
}); });
} }
}, },
exportData(selData,loadingInstance){ exportData(selData, loadingInstance) {
const curList =selData const curList = selData
import('@/vendor/Export2Excel').then(excel => { import('@/vendor/Export2Excel').then(excel => {
const exportParam=this.$refs.refTable.getExportParam(); const exportParam = this.$refs.refTable.getExportParam();
const tHeader = exportParam.header; const tHeader = exportParam.header;
const filterVal = exportParam.filter; const filterVal = exportParam.filter;
const data = this.formatJson(filterVal, curList, selData) const data = this.formatJson(filterVal, curList, selData)
@ -477,16 +424,16 @@ export default {
return ++index return ++index
} }
if (j === 'kjlx') { if (j === 'kjlx') {
return v['sendSiteName']+'--'+v['dispatchUnderlingSiteName']; return v['sendSiteName'] + '--' + v['dispatchUnderlingSiteName'];
} }
if (j === 'fjr') { if (j === 'fjr') {
return v['sendName']+'--'+v['receiveName']; return v['sendName'] + '--' + v['receiveName'];
} }
if (j === 'custName') { if (j === 'custName') {
let paymentType=v['paymentType']; let paymentType = v['paymentType'];
if(paymentType==2 || paymentType==4 || paymentType==5 ){ if (paymentType == 2 || paymentType == 4 || paymentType == 5) {
return v['custName']; return v['custName'];
}else{ } else {
return ""; return "";
} }
} }
@ -495,92 +442,92 @@ export default {
return ""; return "";
} }
if (j === 'batchType') { if (j === 'batchType') {
return this.selectDictLabel(this.dict.type.emis_big_batch_type,v[j]); return this.selectDictLabel(this.dict.type.emis_big_batch_type, v[j]);
} }
if (j === 'transType') { if (j === 'transType') {
return this.selectDictLabel(this.dict.type.emis_biz_shipping_method,v[j]); return this.selectDictLabel(this.dict.type.emis_biz_shipping_method, v[j]);
} }
if (j === 'paymentStatus') { if (j === 'paymentStatus') {
return this.selectDictLabel(this.dict.type.emis_payment_status,v[j]); return this.selectDictLabel(this.dict.type.emis_payment_status, v[j]);
} }
if (j === 'pickupMethod') { if (j === 'pickupMethod') {
return this.selectDictLabel(this.dict.type.emis_qujian_fangshi,v[j]); return this.selectDictLabel(this.dict.type.emis_qujian_fangshi, v[j]);
} }
if (j === 'customsEclaration') { if (j === 'customsEclaration') {
return this.selectDictLabel(this.dict.type.emis_declare_mode,v[j]); return this.selectDictLabel(this.dict.type.emis_declare_mode, v[j]);
} }
if (j === 'customsClear') { if (j === 'customsClear') {
return this.selectDictLabel(this.dict.type.emis_customs_clear,v[j]); return this.selectDictLabel(this.dict.type.emis_customs_clear, v[j]);
} }
if (j === 'packType') { if (j === 'packType') {
return this.selectDictLabels(this.dict.type.emis_tab_packing_type,v[j]); return this.selectDictLabels(this.dict.type.emis_tab_packing_type, v[j]);
} }
if (j === 'dispatchMethod') { if (j === 'dispatchMethod') {
if(v[j] == 1){ if (v[j] == 1) {
return '派送'; return '派送';
}else{ } else {
return '自提'; return '自提';
} }
} }
if (j === 'blMessage') { if (j === 'blMessage') {
if(v[j] == 1){ if (v[j] == 1) {
return '发送'; return '发送';
}else{ } else {
return '不发送'; return '不发送';
} }
} }
if (j === 'blAcceptMessage') { if (j === 'blAcceptMessage') {
if(v[j] == 1){ if (v[j] == 1) {
return '发送'; return '发送';
}else{ } else {
return '不发送'; return '不发送';
} }
} }
if (j === 'blSign') { if (j === 'blSign') {
if(v[j] == 1){ if (v[j] == 1) {
return '已签收'; return '已签收';
}else{ } else {
return '未签收'; return '未签收';
} }
} }
if (j === 'paymentType') { if (j === 'paymentType') {
return this.selectDictLabel(this.dict.type.emis_payment_type,v[j]); return this.selectDictLabel(this.dict.type.emis_payment_type, v[j]);
} }
return v[j] return v[j]
})) }))
}, },
handleDownBatchDtl(batchName){ handleDownBatchDtl(batchName) {
const loadingInstance = this.$loading({ const loadingInstance = this.$loading({
text: '正在导出...' text: '正在导出...'
}) })
if(this.selectionList&&this.selectionList.length>0){ if (this.selectionList && this.selectionList.length > 0) {
this.selectionList.forEach(item=>{ this.selectionList.forEach(item => {
let qExportParam={ let qExportParam = {
pageNum:1, pageNum: 1,
pageSize:20000, pageSize: 20000,
batchNo: item.batchNo batchNo: item.batchNo
}; };
let batchName=item.batchNo; let batchName = item.batchNo;
listEmisTmsSiteBatchDtl(qExportParam).then(response => { listEmisTmsSiteBatchDtl(qExportParam).then(response => {
if (response.code === 200) { if (response.code === 200) {
this.exportDataDtl(batchName,response.rows,loadingInstance); this.exportDataDtl(batchName, response.rows, loadingInstance);
} }
}); });
}); });
} }
}, },
exportDataDtl(batchName,selData,loadingInstance){ exportDataDtl(batchName, selData, loadingInstance) {
const curList =selData const curList = selData
import('@/vendor/Export2Excel').then(excel => { import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['运单号','寄件国家','目的国家','线路','产品类型','预计到达时间','总件数','实际重量','总体积','体积重量','结算重量','收件人','收件公司','取件方式','付款方式','运费','寄件人','寄件公司','录单备注','寄件网点','清关方式','报关方式']; const tHeader = ['运单号', '寄件国家', '目的国家', '线路', '产品类型', '预计到达时间', '总件数', '实际重量', '总体积', '体积重量', '结算重量', '收件人', '收件公司', '取件方式', '付款方式', '运费', '寄件人', '寄件公司', '录单备注', '寄件网点', '清关方式', '报关方式'];
const filterVal=[ const filterVal = [
"billCode", "billCode",
"sendCountryName", "sendCountryName",
"receiveCountryName", "receiveCountryName",
@ -609,7 +556,7 @@ export default {
excel.export_json_to_excel({ excel.export_json_to_excel({
header: tHeader, header: tHeader,
data, data,
filename: batchName+'批次明细表', filename: batchName + '批次明细表',
autoWidth: true autoWidth: true
}) })
loadingInstance.close() loadingInstance.close()
@ -624,10 +571,10 @@ export default {
return ++index return ++index
} }
if (j === 'kjlx') { if (j === 'kjlx') {
return v['waybillDetail']['sendSiteName']+'--'+v['waybillDetail']['dispatchUnderlingSiteName']; return v['waybillDetail']['sendSiteName'] + '--' + v['waybillDetail']['dispatchUnderlingSiteName'];
} }
if (j === 'fjr') { if (j === 'fjr') {
return v['sendName']+'--'+v['receiveName']; return v['sendName'] + '--' + v['receiveName'];
} }
if (j === 'receiveCountryName') { if (j === 'receiveCountryName') {
@ -741,56 +688,56 @@ export default {
} }
if (j === 'calcFeeType') { if (j === 'calcFeeType') {
return this.selectDictLabel(this.dict.type.emis_calc_fee_type,v['waybillDetail']['calcFeeType']); return this.selectDictLabel(this.dict.type.emis_calc_fee_type, v['waybillDetail']['calcFeeType']);
} }
if (j === 'waybillDetail.paymentStatus') { if (j === 'waybillDetail.paymentStatus') {
return this.selectDictLabel(this.dict.type.emis_payment_status,v['waybillDetail']['paymentStatus']); return this.selectDictLabel(this.dict.type.emis_payment_status, v['waybillDetail']['paymentStatus']);
} }
if (j === 'pickupMethod') { if (j === 'pickupMethod') {
return this.selectDictLabel(this.dict.type.emis_qujian_fangshi,v['waybillDetail']['pickupMethod']); return this.selectDictLabel(this.dict.type.emis_qujian_fangshi, v['waybillDetail']['pickupMethod']);
} }
if (j === 'customsEclaration') { if (j === 'customsEclaration') {
return this.selectDictLabel(this.dict.type.emis_declare_mode,v['waybillDetail']['customsEclaration']); return this.selectDictLabel(this.dict.type.emis_declare_mode, v['waybillDetail']['customsEclaration']);
} }
if (j === 'customsClear') { if (j === 'customsClear') {
return this.selectDictLabel(this.dict.type.emis_customs_clear,v['waybillDetail']['customsClear']); return this.selectDictLabel(this.dict.type.emis_customs_clear, v['waybillDetail']['customsClear']);
} }
if (j === 'packType') { if (j === 'packType') {
return this.selectDictLabels(this.dict.type.emis_tab_packing_type,v['waybillDetail']['packType']); return this.selectDictLabels(this.dict.type.emis_tab_packing_type, v['waybillDetail']['packType']);
} }
if (j === 'dispatchMethod') { if (j === 'dispatchMethod') {
if(v['waybillDetail']['dispatchMethod'] == 1){ if (v['waybillDetail']['dispatchMethod'] == 1) {
return '派送'; return '派送';
}else{ } else {
return '自提'; return '自提';
} }
} }
if (j === 'blMessage') { if (j === 'blMessage') {
if(v['waybillDetail']['blMessage'] == 1){ if (v['waybillDetail']['blMessage'] == 1) {
return '发送'; return '发送';
}else{ } else {
return '不发送'; return '不发送';
} }
} }
if (j === 'blAcceptMessage') { if (j === 'blAcceptMessage') {
if(v['waybillDetail']['blAcceptMessage'] == 1){ if (v['waybillDetail']['blAcceptMessage'] == 1) {
return '发送'; return '发送';
}else{ } else {
return '不发送'; return '不发送';
} }
} }
if (j === 'blSign') { if (j === 'blSign') {
if(v['waybillDetail']['blSign'] == 1){ if (v['waybillDetail']['blSign'] == 1) {
return '已签收'; return '已签收';
}else{ } else {
return '未签收'; return '未签收';
} }
} }
if (j === 'paymentType') { if (j === 'paymentType') {
return this.selectDictLabel(this.dict.type.emis_payment_type,v['waybillDetail']['paymentType']); return this.selectDictLabel(this.dict.type.emis_payment_type, v['waybillDetail']['paymentType']);
} }
return v[j] return v[j]
})) }))
@ -800,39 +747,42 @@ export default {
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1 return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
}, },
/** 时间搜索响应函数 */ /** 时间搜索响应函数 */
dateTimeChange(value){ dateTimeChange(value) {
this.dateTimeRange=value; this.dateTimeRange = value;
}, },
} }
}; };
</script> </script>
<style scoped> <style scoped>
.el-divider{ .el-divider {
margin-top: 0px; margin-top: 0px;
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 {
.el-radio{ .query-label {
.el-radio {
display: block; display: block;
line-height: 23px; line-height: 23px;
white-space: normal; white-space: normal;
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,36 +55,39 @@
@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">
</el-table-column> </el-table-column>
<el-table-column :label="$t('状态')" align="center" prop="blCenterConfirmed" min-width="170"> <el-table-column :label="$t('状态')" align="center" prop="blCenterConfirmed" min-width="170">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.center_confirme_status" :value="scope.row.blCenterConfirmed"/> <dict-tag :options="dict.type.center_confirme_status" :value="scope.row.blCenterConfirmed" />
</template> </template>
</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="centerRejectReason" min-width="100">
</el-table-column>
<el-table-column :label="$t('总部审核人姓名')" align="center" prop="headquartersConfirmManName" 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="headquartersRejectReason" min-width="100">
</el-table-column> </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 {
@ -239,16 +240,18 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
queryKey:null, queryKey: null,
applyDate:null, applyDate: null,
settleBillName:null, settleBillName: null,
applyManName:null, applyManName: null,
blCenterConfirmed:null, blCenterConfirmed: null,
blHeadquartersConfirmed:null, blHeadquartersConfirmed: null,
payee:null, payee: null,
salesmen:null, salesmen: null,
params:{ applyDateStart: null,
queryParams:null, applyDateEnd: null,
params: {
queryParams: null,
} }
}, },
}; };
@ -265,16 +268,18 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
let rqParams = {...this.queryParams}; let rqParams = { ...this.queryParams };
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");
rqParams.applyDateStart = this.dateTimeRange[0]; rqParams.applyDateStart = this.dateTimeRange[0];
rqParams.applyDateEnd = this.dateTimeRange[1]; rqParams.applyDateEnd = this.dateTimeRange[1];
this.removeDateRange(rqParams,"etd"); this.removeDateRange(rqParams, "etd");
} }
getWriteoffApplyList(rqParams).then(response => { getWriteoffApplyList(rqParams).then(response => {
@ -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; }else{
this.queryParams.batchNo = null; this.queryParams.params.queryParams = null;
} else {
this.queryParams.batchNo = this.queryParams.queryKey;
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>