Commit 32c73457 authored by Administrator's avatar Administrator

Merge branch 'pre-release' into 'jd_dev'

Pre release合并到jd分支0116

See merge request !133
parents 8322129e 62986ad5
...@@ -891,3 +891,41 @@ export function loadBatGNRTReceiptList(data) { ...@@ -891,3 +891,41 @@ export function loadBatGNRTReceiptList(data) {
params params
}) })
} }
//银行收支明细列表
export function loadBankBalanceDetailsList(data) {
let params = {
pageNo: data.pageNo,
pageSize: data.pageSize
}
return request({
url: "/ecw/BankReceiptDetails/income/page",
method: "post",
data,
params
})
}
// 批量生成收款单
export function handleBankGNRTReceipt(data) {
return request({
url: "/ecw/receipt/batch-gen-receipt",
method: "post",
data
})
}
// 财务-批量生成收款单费用明细列表
export function loadReceivablePage(data) {
let params = {
page: data.page,
rows: data.rows
}
return request({
url: "/ecw/receivable/batch-gen-receipt/receivable/page",
method: "post",
data,
params
})
}
...@@ -4821,5 +4821,21 @@ ...@@ -4821,5 +4821,21 @@
"批量提交审核": "Batch submission for review", "批量提交审核": "Batch submission for review",
"导入提示信息,请确认是否提交": "Import prompt information, please confirm whether to submit", "导入提示信息,请确认是否提交": "Import prompt information, please confirm whether to submit",
"银行收款信息模板": "Template of bank collection information", "银行收款信息模板": "Template of bank collection information",
"仅允许导入xls、xlsx格式文件。": "Only xls and xlsx format files are allowed to be imported." "仅允许导入xls、xlsx格式文件。": "Only xls and xlsx format files are allowed to be imported.",
"缺少生成收款单的必要的信息": "Lack of information necessary to generate receipts",
"请先选择需要批量处理的订单": "Please select the order to be processed in bulk first",
"设置开票信息": "Set billing information",
"已选择订单/提单": "Order/bill of lading has been selected",
"设置是否开票": "Sets whether to invoice",
"批量设置收款单信息": "Set the receipt information in batches",
"批量生成收款单": "Batch generate receipt",
"设置收款单信息": "Set the receipt information",
"运输信息": "transport information",
"付款名称": "Name of payment",
"收款明细税率%": "Collection details tax rate %",
"期望收款账号": "Expected collection account number",
"开票税率": "Tax rate of billing",
"汇率有效期": "Validity period of exchange rate",
"收款明细税率": "Collection details tax rate",
"请输入收款明细税率": "Please enter the tax rate of the collection details"
} }
...@@ -283,7 +283,9 @@ export const DICT_TYPE = { ...@@ -283,7 +283,9 @@ export const DICT_TYPE = {
RECEIPT_DETAIL_STATUS: "receipt_detail_status", //明细状态 RECEIPT_DETAIL_STATUS: "receipt_detail_status", //明细状态
INVOICEING_LINK: "invoicing_link", //开票环节 INVOICEING_LINK: "invoicing_link", //开票环节
RECEIPT_GENERATE_PATH: "receipt_generate_path", //收款单生成路径 RECEIPT_GENERATE_PATH: "receipt_generate_path", //收款单生成路径
RECEIPT_LINK: "receipt_link" //应收款日志环节 RECEIPT_LINK: "receipt_link", //应收款日志环节
ECW_INCOME_RELATION_SYMBOL: "income_relation_symbol", //银行收支明细查询关系符号
LADING_BILL_STATUS_DATA: "lading_Bill_Status_Data"
} }
/** /**
......
...@@ -67,6 +67,13 @@ ...@@ -67,6 +67,13 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('包装类型')" align="center" prop="">
<template slot-scope="scope">
<span v-for="(unit,index) in scope.row.units.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="unit" /><span v-if="index<scope.row.units.split(',').length-1">, </span>
</span>
</template>
</el-table-column>
<el-table-column :label="$t('关联单')" align="center" prop="hasRelationOrder" width="120"> <el-table-column :label="$t('关联单')" align="center" prop="hasRelationOrder" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" v-if="scope.row.hasRelationOrder" @click.native="showRelatedOrder(scope.row)">{{ $t('') }}</el-link> <el-link type="primary" v-if="scope.row.hasRelationOrder" @click.native="showRelatedOrder(scope.row)">{{ $t('') }}</el-link>
...@@ -93,6 +100,11 @@ ...@@ -93,6 +100,11 @@
{{getTotlContent(scope.row,['weight'])}} {{getTotlContent(scope.row,['weight'])}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('储位')" align="center" prop="positionNo">
<template slot-scope="scope">
{{notset(scope.row.positionNo)}}
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">{{$t('移出')}}</el-button> <el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">{{$t('移出')}}</el-button>
...@@ -364,6 +376,23 @@ export default { ...@@ -364,6 +376,23 @@ export default {
this.newshipmentObj = data ?? {}; this.newshipmentObj = data ?? {};
}); });
}, },
//去重
notset(string) {
if (!string) return string
let arr = string.split(',')
arr = arr.filter((item, index) => {
return arr.indexOf(item) == index
})
return arr.toString()
},
getpositionNo(arr){
if(!arr) return arr
let data = []
arr.forEach(item=>{
data.push(item.areaName+item.locationName)
})
return data.toString()
},
/* 装柜部分列表 */ /* 装柜部分列表 */
getLoadSecGoodsList() { getLoadSecGoodsList() {
loadSecGoodsList({ shipmentId: this.shipmentObj.id }).then((res) => { loadSecGoodsList({ shipmentId: this.shipmentObj.id }).then((res) => {
......
...@@ -87,6 +87,26 @@ ...@@ -87,6 +87,26 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('报关方式')" align="center" prop="customsType">
<template slot-scope="scope">
<div :class="scope.row.customsType !== 1 ? 'custom_type_red' : ''">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="scope.row.customsType" />
</div>
</template>
</el-table-column>
<el-table-column :label="$t('包装类型')" align="center" prop="">
<template slot-scope="scope">
<span v-for="(unit,index) in scope.row.units.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="unit" /><span v-if="index<scope.row.units.split(',').length-1">, </span>
</span>
</template>
</el-table-column>
<el-table-column :label="$t('关联单')" align="center" prop="hasRelationOrder" width="120">
<template slot-scope="scope">
<el-link type="primary" v-if="scope.row.hasRelationOrder" @click.native="showRelatedOrder(scope.row)">{{ $t('') }}</el-link>
<span v-else>{{ $t('') }}</span>
</template>
</el-table-column>
<el-table-column <el-table-column
:label="$t('计划/已装')" :label="$t('计划/已装')"
align="center" align="center"
...@@ -94,7 +114,7 @@ ...@@ -94,7 +114,7 @@
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" @click.native="orderClick(scope.row)"> <el-link type="primary" @click.native="orderClick(scope.row)">
{{ scope.row.sumNum }}/{{ scope.row.installNum }} {{ scope.row.sumNum }}/{{ scope.row.installNum }} <span v-if="scope.row.mixStatus === 1">{{$t('混箱')}}</span>
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -25,9 +25,29 @@ ...@@ -25,9 +25,29 @@
<dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :value="row.productRecord" /> <dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :value="row.productRecord" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('报关方式')" align="center" prop="customsType">
<template slot-scope="scope">
<div :class="scope.row.customsType !== 1 ? 'custom_type_red' : ''">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="scope.row.customsType" />
</div>
</template>
</el-table-column>
<el-table-column :label="$t('包装类型')" align="center" prop="">
<template slot-scope="scope">
<span v-for="(unit,index) in scope.row.units.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="unit" /><span v-if="index<scope.row.units.split(',').length-1">, </span>
</span>
</template>
</el-table-column>
<el-table-column :label="$t('关联单')" align="center" prop="hasRelationOrder" width="120">
<template slot-scope="scope">
<el-link type="primary" v-if="scope.row.hasRelationOrder" @click.native="showRelatedOrder(scope.row)">{{ $t('') }}</el-link>
<span v-else>{{ $t('') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="sumNum"> <el-table-column :label="$t('箱数')" align="center" prop="sumNum">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.sumNum }} {{ scope.row.sumNum }}<span v-if="scope.row.mixStatus === 1">{{$t('混箱')}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('纸箱尺寸')" align="center"> <el-table-column :label="$t('纸箱尺寸')" align="center">
......
...@@ -67,6 +67,13 @@ ...@@ -67,6 +67,13 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('包装类型')" align="center" prop="">
<template slot-scope="scope">
<span v-for="(unit,index) in scope.row.units.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="unit" /><span v-if="index<scope.row.units.split(',').length-1">, </span>
</span>
</template>
</el-table-column>
<el-table-column :label="$t('关联单')" align="center" prop="hasRelationOrder" width="120"> <el-table-column :label="$t('关联单')" align="center" prop="hasRelationOrder" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" v-if="scope.row.hasRelationOrder" @click.native="showRelatedOrder(scope.row)">{{ $t('') }}</el-link> <el-link type="primary" v-if="scope.row.hasRelationOrder" @click.native="showRelatedOrder(scope.row)">{{ $t('') }}</el-link>
...@@ -93,6 +100,11 @@ ...@@ -93,6 +100,11 @@
{{getTotlContent(scope.row,['weight'])}} {{getTotlContent(scope.row,['weight'])}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('储位')" align="center" prop="positionNo">
<template slot-scope="scope">
{{notset(scope.row.positionNo)}}
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">{{$t('移出')}}</el-button> <el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">{{$t('移出')}}</el-button>
...@@ -364,6 +376,23 @@ export default { ...@@ -364,6 +376,23 @@ export default {
this.newshipmentObj = data ?? {}; this.newshipmentObj = data ?? {};
}); });
}, },
//去重
notset(string) {
if (!string) return string
let arr = string.split(',')
arr = arr.filter((item, index) => {
return arr.indexOf(item) == index
})
return arr.toString()
},
getpositionNo(arr){
if(!arr) return arr
let data = []
arr.forEach(item=>{
data.push(item.areaName+item.locationName)
})
return data.toString()
},
/* 装柜部分列表 */ /* 装柜部分列表 */
getLoadSecGoodsList() { getLoadSecGoodsList() {
loadSecGoodsList({ shipmentId: this.shipmentObj.id }).then((res) => { loadSecGoodsList({ shipmentId: this.shipmentObj.id }).then((res) => {
......
<template>
<div class="app-container">
<el-card>
<el-form ref="queryForm" :model="queryParams" label-width="100px" label-position="left" :inline="true">
<el-form-item :label="$t('开户银行')" style="margin-bottom: 0; margin-top: 20px" prop="platformAccountIds">
<el-select multiple clearable v-model="queryParams.platformAccountIds" :placeholder="$t('开户银行')" style="width: 220px">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName + '(' + item.baAccountNum + ')'" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item :label="$t('支/收')" style="margin-bottom: 0; margin-top: 20px" prop="isIncome">
<el-select clearable v-model="queryParams.isIncome" :placeholder="$t('请选择')" style="width: 220px">
<el-option :label="$t('收')" :value="0" />
<el-option :label="$t('支')" :value="1" />
</el-select>
</el-form-item>
<el-form-item :label="$t('金额')" style="margin-bottom: 0; margin-top: 20px">
<el-form-item prop="relationSymbol">
<dict-selector :type="DICT_TYPE.ECW_INCOME_RELATION_SYMBOL" clearable style="width: 130px" v-model="queryParams.relationSymbol" />
</el-form-item>
<el-form-item prop="amount">
<el-input v-model="queryParams.amount" style="width: 130px" placeholder="请输入数值" clearable />
</el-form-item>
</el-form-item>
<el-form-item :label="$t('关联单号')" prop="relationNo" style="margin-bottom: 0; margin-top: 20px">
<el-input v-model="queryParams.relationNo" style="width: 130px" placeholder="请输入" clearable />
</el-form-item>
<el-form-item :label="$t('交易日期')" prop="tradeDate" style="margin-bottom: 0; margin-top: 20px">
<el-date-picker v-model="queryParams.tradeDate" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item>
<el-form-item style="margin-bottom: 0; margin-top: 20px">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t("重置") }}</el-button>
</el-form-item>
</el-form>
</el-card>
<div class="mb8 showBar pad-t" v-loading="loading">
<el-descriptions class="margin-top barTop" :column="1" :size="size" border>
<el-descriptions-item>
<template slot="label"> {{ $t("收:") }}: </template>
<span class="unit" v-for="item in currentAmount" :key="item.currencyId">{{ getCurrencySymbol(item.currencyId * 1) }}{{ item.amount }}</span>
</el-descriptions-item>
</el-descriptions>
</div>
<div class="table-box">
<el-table v-loading="loading" :data="list" border>
<el-table-column type="index" :index="indexMethod" />
<el-table-column :label="$t('开户银行')" width="160" align="center" prop="accountBankName"> </el-table-column>
<el-table-column :label="$t('支/收')" width="160" align="center">
<template slot-scope="scope">
<span v-if="scope.row.isIncome == 0"> {{ $t("") }}</span>
<span v-else>{{ $t("") }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('金额')" width="160" align="center">
<template slot-scope="{ row }"> {{ getCurrencySymbol(row.currencyId * 1) }}{{ row.amount }} </template>
</el-table-column>
<el-table-column :label="$t('交易关联单号')" width="200" align="center">
<template slot-scope="{ row }">
<div v-for="item in row.orderInfoList">
<router-link :to="`/financial/receiptDetail?id=${row.receiptId}`" class="link-type"> {{ row.receiptNo }} </router-link> -
<router-link :to="`/order/detail?orderId=${item.orderId}`" class="link-type"> {{ item.tidanNo }} </router-link>
</div>
</template>
</el-table-column>
<el-table-column :label="$t('交易日期')" prop="amountDate" width="160" align="center" />
<el-table-column :label="$t('备注')" align="center" prop="remark" />
<el-table-column :label="$t('账号余额')" align="center" width="200">
<template slot-scope="{ row }">
<span class="unit" v-for="item in row.accountBalance" :key="item.currencyId">{{ getCurrencySymbol(item.currencyId * 1) }}{{ item.amount }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('详情')" width="160" align="center">
<template slot-scope="{ row }">
<el-button size="small" type="primary" v-if="row.receiptId" @click="goBankReceiptDetailsList(row)">{{ $t("查看") }}</el-button>
<template v-else>-</template>
</template>
</el-table-column>
</el-table>
</div>
<el-descriptions class="margin-top pad-t" v-loading="loading" :column="2" border>
<el-descriptions-item>
<template slot="label"> {{ $t("汇总") }}: </template>
<span class="unit" v-for="item in totalAmount" :key="item.currencyId">{{ getCurrencySymbol(item.currencyId * 1) }}{{ item.amount }}</span>
</el-descriptions-item>
</el-descriptions>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</template>
<script>
import { loadBankBalanceDetailsList } from "@/api/ecw/financial"
import { getBankAccountPage } from "@/api/ecw/bankAccount"
import { mapGetters } from "vuex"
export default {
data() {
return {
total: 0,
loading: true,
currentAmount: [],
totalAmount: [],
queryParams: {
platformAccountIds: [],
isIncome: "",
tradeDate: "",
amount: "",
relationSymbol: "",
pageNo: 1,
pageSize: 10
},
bankData: []
}
},
async created() {
const { data } = await getBankAccountPage({ pageNo: 1, pageSize: 1000 })
this.bankData = data.list
this.handleQuery()
},
computed: {
...mapGetters(["getCurrencySymbol"])
},
methods: {
goBankReceiptDetailsList(row) {
this.$router.push({ path: "/financial/BankReceiptDetails", query: { receiptNo: row.receiptNo } })
},
indexMethod(index) {
return index * this.queryParams.pageNo + 1
},
resetQuery() {
this.$refs["queryForm"].resetFields()
this.queryParams.pageNo = 1
this.queryParams.pageSize = 10
this.handleQuery()
},
handleQuery() {
this.loading = true
this.$nextTick(() => {
this.queryParams.pageNo = 1
this.getList()
})
},
async getList() {
const params = this.removeEmpty({ ...this.queryParams })
this.addBeginAndEndTime(params, params.tradeDate, "AmountDate")
console.log("sdsdd", params)
const { data } = await loadBankBalanceDetailsList(params)
this.list = data.list
this.loading = false
this.totalAmount = data.totalAmount
this.currentAmount = data.currentAmount
this.total = data.total
}
}
}
</script>
<style lang="scss" scoped>
.table-box {
padding: 0 10px;
}
.pad-t {
padding: 10px 0;
}
.unit {
padding-left: 10px;
}
</style>
This diff is collapsed.
...@@ -96,7 +96,14 @@ ...@@ -96,7 +96,14 @@
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="row.orderStatus" /> <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="row.orderStatus" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('应收汇总')"> </el-table-column> <el-table-column :label="$t('应收汇总')">
<template slot-scope="{ row }">
<div v-for="item in row.receivableAmount">
{{ getCurrencySymbol(item.currencyId) }}
{{ item.amount }}
</div>
</template>
</el-table-column>
<el-table-column :label="$t('自编号状态')" prop="selfNoStatus"> <el-table-column :label="$t('自编号状态')" prop="selfNoStatus">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.BOX_ORDER_SHIPMENT_STATE" value="row.selfNoStatus"></dict-tag> <dict-tag :type="DICT_TYPE.BOX_ORDER_SHIPMENT_STATE" value="row.selfNoStatus"></dict-tag>
...@@ -106,9 +113,9 @@ ...@@ -106,9 +113,9 @@
<el-table-column :label="$t('费用明细')" fixed="right"> <el-table-column :label="$t('费用明细')" fixed="right">
<template v-slot="{ row }"> <template v-slot="{ row }">
<div> <div>
<!-- <router-link :to="`/customer/query/${row.payerId}`" class="link-type"> --> <router-link :to="`/financial/orderItemCostDetails/${row.orderId}/${row.drawee}`" class="link-type">
{{ $t("费用明细") }} {{ $t("费用明细") }}
<!-- </router-link> --> </router-link>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -118,6 +125,7 @@ ...@@ -118,6 +125,7 @@
</template> </template>
<script> <script>
import { mapGetters } from "vuex"
import { getWarehouseList } from "@/api/ecw/warehouse" import { getWarehouseList } from "@/api/ecw/warehouse"
import { getRegionList } from "@/api/ecw/order" import { getRegionList } from "@/api/ecw/order"
import { loadBatGNRTReceiptList } from "@/api/ecw/financial" import { loadBatGNRTReceiptList } from "@/api/ecw/financial"
...@@ -132,6 +140,7 @@ export default { ...@@ -132,6 +140,7 @@ export default {
objWareHouseList: [], objWareHouseList: [],
cityList: [], cityList: [],
countryList: [], countryList: [],
multipleSelectedList: [],
queryParams: { queryParams: {
departureWareHouseId: [], //始发地 departureWareHouseId: [], //始发地
destCountry: [], //目的国 destCountry: [], //目的国
...@@ -143,6 +152,9 @@ export default { ...@@ -143,6 +152,9 @@ export default {
} }
} }
}, },
computed: {
...mapGetters(["getCurrencySymbol"])
},
watch: { watch: {
"queryParams.destCountry": { "queryParams.destCountry": {
handler(val, oldVal) { handler(val, oldVal) {
...@@ -175,7 +187,9 @@ export default { ...@@ -175,7 +187,9 @@ export default {
this.getList() this.getList()
}, },
methods: { methods: {
handleSelectionChange() {}, handleSelectionChange(val) {
this.multipleSelectedList = val
},
getWareHouseLabel(id) { getWareHouseLabel(id) {
const houseItem = this.warehouseList.filter((item) => { const houseItem = this.warehouseList.filter((item) => {
return item.id == id return item.id == id
...@@ -234,7 +248,16 @@ export default { ...@@ -234,7 +248,16 @@ export default {
this.getList() this.getList()
}) })
}, },
batGNRTReceipt() {}, batGNRTReceipt() {
if (this.multipleSelectedList.length == 0) {
this.$modal.msgError(this.$t("请先选择"))
return
}
const ids = this.multipleSelectedList.map((item) => {
return item.orderId
})
this.$router.push({ path: "/financial/batchGenerateReceipt/" + ids })
},
getList() { getList() {
this.loading = true this.loading = true
loadBatGNRTReceiptList(this.queryParams).then((response) => { loadBatGNRTReceiptList(this.queryParams).then((response) => {
......
...@@ -232,7 +232,7 @@ export default { ...@@ -232,7 +232,7 @@ export default {
let p2 = [] let p2 = []
for (var i = 0; i < this.ids.length; i++) { for (var i = 0; i < this.ids.length; i++) {
var obj = {} var obj = {}
obj.id = this.ids[i] obj.id = this.ids[i].bmpId
obj.comment = this.form.comment obj.comment = this.form.comment
p2.push(obj) p2.push(obj)
} }
...@@ -257,7 +257,7 @@ export default { ...@@ -257,7 +257,7 @@ export default {
batchApprove(key) { batchApprove(key) {
if (this.ids.length == 0) { if (this.ids.length == 0) {
//this.modal.msgSuccess //this.modal.msgSuccess
this.$message.error(this.$t("请选择需要批量不通过的任务。")) this.$message.error(this.$t("请选择需要批量操作的任务。"))
return return
} }
this.form.comment = "" this.form.comment = ""
......
...@@ -173,6 +173,7 @@ ...@@ -173,6 +173,7 @@
</el-table-column> </el-table-column>
<!-- 本次核销金额(美元) --> <!-- 本次核销金额(美元) -->
<el-table-column <el-table-column
width="160"
:label=" :label="
$t('本次核销金额({currency})', { $t('本次核销金额({currency})', {
currency: getBaseCurrencynName(bankReceiptDetails.writeOffCurrencyId) currency: getBaseCurrencynName(bankReceiptDetails.writeOffCurrencyId)
...@@ -180,7 +181,7 @@ ...@@ -180,7 +181,7 @@
" "
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-input-number @change="changeCurrentItemWirteOff(scope.row.id)" v-if="statusKey != 'view' && bankReceiptDetails.writeOffAmount" :min="0" :precision="2" :controls="false" v-model="scope.row.writeOffAmount"></el-input-number> <el-input-number style="width: 138px" @change="changeCurrentItemWirteOff(scope.row.id)" v-if="statusKey != 'view' && bankReceiptDetails.writeOffAmount" :min="0" :precision="2" :controls="false" v-model="scope.row.writeOffAmount"></el-input-number>
<span v-else>{{ scope.row.writeOffAmount }}</span> <span v-else>{{ scope.row.writeOffAmount }}</span>
</template> </template>
<!-- writeOffAmount --> <!-- writeOffAmount -->
...@@ -398,6 +399,7 @@ export default { ...@@ -398,6 +399,7 @@ export default {
}, },
saveFrom() { saveFrom() {
const params = { ...this.bankReceiptDetails } const params = { ...this.bankReceiptDetails }
params.writeOffCurrencyId = this.bankReceiptDetails.writeOffCurrencyId
params.receivableWriteOffList = [] params.receivableWriteOffList = []
try { try {
let totalInput = 0 let totalInput = 0
......
...@@ -366,9 +366,7 @@ ...@@ -366,9 +366,7 @@
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('开票资料备注')"> <el-descriptions-item :label="$t('开票资料备注')">
<el-form-item label="" label-width="0" style="margin-bottom: 0"> <el-input type="textarea" rows="1" show-word-limit style="width: 78%" v-model="form.invoiceRemark" maxlength="500"></el-input>
<el-input v-model="form.invoiceRemark" maxlength="500"></el-input>
</el-form-item>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -1070,8 +1068,8 @@ export default { ...@@ -1070,8 +1068,8 @@ export default {
// this.list[index].exchangeRate = row.writeOffRate // this.list[index].exchangeRate = row.writeOffRate
// this.list[index].baseAmount = row.writeOffAmount // this.list[index].baseAmount = row.writeOffAmount
// console.log("listdd", this.list) // console.log("listdd", this.list)
console.log("listdde", row)
this.form.receiptAccountList[index + 1].writeOffAmount = writeOffAmountTotal this.form.receiptAccountList[this.form.receiptAccountList.length - 1].writeOffAmount = writeOffAmountTotal
}, },
rateChange(row, index) { rateChange(row, index) {
if (row.collectionRate == 0 && parseInt(row.collectionRate) === 0) { if (row.collectionRate == 0 && parseInt(row.collectionRate) === 0) {
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</el-card> </el-card>
<div class="tableTop"> <div class="tableTop">
<el-table v-loading="loading" :data="invoiceList" border> <el-table v-loading="loading" :data="invoiceList" border>
<el-table-column :label="$t('开票编号')" width="160" align="center" prop="invoiceNo"> <el-table-column :label="$t('开票编号')" fixed="left" width="160" align="center" prop="invoiceNo">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<router-link <router-link
:to="{ :to="{
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收款单号')" width="160" align="center" prop="receiptNo"> <el-table-column :label="$t('收款单号')" fixed="left" width="160" align="center" prop="receiptNo">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<router-link <router-link
:to="{ :to="{
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('申请日期')" width="160" align="center" prop="invoiceInfoSaveTime" /> <el-table-column :label="$t('申请日期')" width="160" align="center" prop="createTime" />
<el-table-column :label="$t('申请人/部门')" width="200" align="center"> <el-table-column :label="$t('申请人/部门')" width="200" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ row.applyUserName }}/{{ row.departmentName }}</div> <div>{{ row.applyUserName }}/{{ row.departmentName }}</div>
......
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<!-- 开票信息 --> <!-- 开票信息 -->
<el-card class="margin-top-card" v-if="$route.query.key == 'view' || $route.query.key == 'submitInfo' || $route.query.key == 'editInfo' || $route.query.key == 'delInfo'"> <el-card class="margin-top-card" v-if="($route.query.key == 'view' && form.invoiceNumber) || $route.query.key == 'submitInfo' || $route.query.key == 'editInfo' || $route.query.key == 'delInfo'">
<div slot="header" class="card-title">{{ $t("开票信息") }}</div> <div slot="header" class="card-title">{{ $t("开票信息") }}</div>
<el-descriptions :column="3" border> <el-descriptions :column="3" border>
<el-descriptions-item :label="$t('发票号码')"> <el-descriptions-item :label="$t('发票号码')">
...@@ -611,6 +611,7 @@ export default { ...@@ -611,6 +611,7 @@ export default {
invoiceTime: this.form.invoiceTime, invoiceTime: this.form.invoiceTime,
invoiceInfoRemark: this.form?.invoiceInfoRemark || "" invoiceInfoRemark: this.form?.invoiceInfoRemark || ""
} }
await this.$modal.confirm(this.$t(`确认提交开票吗?`))
const data = await updateInvoiceApplicationInfo(params) const data = await updateInvoiceApplicationInfo(params)
if (data.code === 0) { if (data.code === 0) {
this.$message({ this.$message({
......
<template>
<div class="app-container">
<el-card class="card-form">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px" class="card">
<el-form-item :label="$t('收款类型')" prop="collectionType">
<dict-selector ref="dictMethod" multiple v-model="queryParams.collectionType" :type="DICT_TYPE.PAYMENT_TYPE"></dict-selector>
</el-form-item>
<el-form-item :label="$t('费用来源')" prop="feeSource">
<dict-selector ref="dictMethod" multiple v-model="queryParams.feeSource" :type="DICT_TYPE.ECW_FEE_SOURCE"></dict-selector>
</el-form-item>
<el-form-item :label="$t('收入类型')" prop="feeType">
<dict-selector ref="dictMethod" multiple v-model="queryParams.feeType" :type="DICT_TYPE.FEE_TYPE"></dict-selector>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t("重置") }}</el-button>
</el-form-item>
</el-form>
</el-card>
<div class="mb8 showBar pad-t">
<el-descriptions class="margin-top barTop" :column="1" :size="size" border>
<el-descriptions-item label-class-name="my-label-total">
<template slot="label"> {{ $t("合计金额:") }}: </template>
<span class="unit" v-for="item in totalActualAmount" :key="item.currencyId"> {{ $t("总金额") }}{{ getCurrencySymbol(item.currencyId * 1) }}{{ item.amount }}</span>
</el-descriptions-item>
</el-descriptions>
</div>
<div class="table">
<!-- 礼品列表 -->
<el-table ref="multipleTable" v-loading="loading" :data="list">
<el-table-column prop="titleZh" :label="$t('品名')" align="center">
<template slot-scope="{ row }">
{{ $l(row, "title") }}
</template>
</el-table-column>
<el-table-column prop="num" :label="$t('箱数')" width="100" align="center"></el-table-column>
<el-table-column prop="volumeOrWeight" :label="$t('体积/重量')" width="180" align="center">
<template slot-scope="{ row }">
<div>{{ row.volume }}m³/{{ row.weight }}kg</div>
</template>
</el-table-column>
<el-table-column :label="$t('付款方')" width="160" align="center">
<template slot-scope="scope">
<span v-if="scope.row.drawee == 3"> {{ $t("自定义") }}</span>
<span v-else> {{ scope.row.drawee == 1 ? $t("发货人") : $t("收货人") }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('收款类型')" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="row.collectionType" />
</template>
</el-table-column>
<el-table-column :label="$t('费用来源')" prop="feeSource" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_FEE_SOURCE" :value="row.feeSource" />
</template>
</el-table-column>
<el-table-column prop="incomeType" :label="$t('收入类型')" width="120" align="center">
<template slot-scope="{ row }">
<div>
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
</div>
</template>
</el-table-column>
<el-table-column :label="$t('单价金额')" prop="unitPrice" align="center">
<template slot-scope="{ row }">{{ getCurrencySymbol(row.currencyId * 1) }} {{ row.unitPrice }} </template>
</el-table-column>
<el-table-column :label="$t('总金额')" prop="totalAmount" align="center">
<template slot-scope="{ row }"> {{ getCurrencySymbol(row.currencyId * 1) }}{{ row.totalAmount }} </template>
</el-table-column>
</el-table>
</div>
<!-- //分页列表 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" @pagination="getList" />
</div>
</template>
<script>
import { mapGetters } from "vuex"
import { loadReceivablePage } from "@/api/ecw/financial"
export default {
// this.$route.params.id.split(",")
data() {
return {
list: [],
size: "small",
loading: true,
total: 0,
totalActualAmount: [],
queryParams: {
collectionType: [],
feeSource: [],
feeType: [],
orderId: this.$route.params.id,
paymentUser: this.$route.params.drawee,
page: 1,
rows: 10
}
}
},
computed: {
...mapGetters(["getCurrencySymbol"])
},
created() {
this.getList()
},
methods: {
async getList() {
const params = this.removeEmpty({ ...this.queryParams })
const { data } = await loadReceivablePage(params)
this.list = data.list
this.loading = false
this.totalActualAmount = data.totalActualAmount
this.total = data.total
},
resetQuery() {
this.$refs["queryForm"].resetFields()
this.queryParams.page = 1
this.queryParams.rows = 10
this.handleQuery()
},
handleQuery() {
this.loading = true
this.$nextTick(() => {
this.queryParams.page = 1
this.getList()
})
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .card-form .el-form-item {
margin-bottom: 0;
}
.pad-t {
padding: 10px 0;
}
::v-deep .my-label-total {
width: 300px;
}
</style>
...@@ -7,7 +7,11 @@ ...@@ -7,7 +7,11 @@
<el-descriptions-item :label="$t('状态')"> <el-descriptions-item :label="$t('状态')">
<dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="form.state" /> <dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="form.state" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('客户')">{{ form.customerName }}</el-descriptions-item> <el-descriptions-item :label="$t('客户')">
<router-link :to="'/customer/query/' + form.customerId">
{{ form.customerName }}
</router-link>
</el-descriptions-item>
<el-descriptions-item :label="$t('部门')">{{ form.departmentName }}</el-descriptions-item> <el-descriptions-item :label="$t('部门')">{{ form.departmentName }}</el-descriptions-item>
<el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item> <el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('手续费(RMB)')">{{ form.feeRate }}</el-descriptions-item> --> <!-- <el-descriptions-item :label="$t('手续费(RMB)')">{{ form.feeRate }}</el-descriptions-item> -->
...@@ -1488,6 +1492,7 @@ export default { ...@@ -1488,6 +1492,7 @@ export default {
}, },
saveFrom() { saveFrom() {
const params = { ...this.addForm } const params = { ...this.addForm }
params.writeOffCurrencyId = this.list[0].baseCurrencyId
params.receivableWriteOffList = [] params.receivableWriteOffList = []
try { try {
let totalInput = 0 let totalInput = 0
......
...@@ -247,7 +247,7 @@ ...@@ -247,7 +247,7 @@
<div v-html="continueUploadModal.msg"></div> <div v-html="continueUploadModal.msg"></div>
<span slot="footer" class="dialog-footer-upload"> <span slot="footer" class="dialog-footer-upload">
<el-button @click="continueUploadModal.show = false">{{ $t("取 消") }}</el-button> <el-button @click="continueUploadModal.show = false">{{ $t("取 消") }}</el-button>
<el-button type="primary" @click="continueUpload">{{ $t("确 定") }}</el-button> <el-button type="primary" :disabled="!fileCopy" @click="continueUpload">{{ $t("确 定") }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
...@@ -382,7 +382,9 @@ export default { ...@@ -382,7 +382,9 @@ export default {
}, },
methods: { methods: {
continueUpload() { continueUpload() {
this.$message.success(this.$t("正在提交,请稍后。"))
this.$refs.upload.handleStart(this.fileCopy.raw) this.$refs.upload.handleStart(this.fileCopy.raw)
this.fileCopy = null
this.$refs.upload.submit() this.$refs.upload.submit()
}, },
handleShowFileUploadDialog() { handleShowFileUploadDialog() {
...@@ -410,6 +412,7 @@ export default { ...@@ -410,6 +412,7 @@ export default {
// 文件上传成功处理 // 文件上传成功处理
handleFileSuccess(response, file, fileList) { handleFileSuccess(response, file, fileList) {
this.upload.isUploading = false this.upload.isUploading = false
this.continueUploadModal.show = false
// 错误 // 错误
if (response.code == "1004520042") { if (response.code == "1004520042") {
// this.$modal.msgError(response.msg) // this.$modal.msgError(response.msg)
...@@ -438,7 +441,7 @@ export default { ...@@ -438,7 +441,7 @@ export default {
return return
} }
this.upload.open = false this.upload.open = false
this.fileCopy = null
this.$refs.upload.clearFiles() this.$refs.upload.clearFiles()
// 拼接提示语 // 拼接提示语
// let data = response.data // let data = response.data
...@@ -459,7 +462,9 @@ export default { ...@@ -459,7 +462,9 @@ export default {
}, },
// 提交上传文件 // 提交上传文件
submitFileForm() { submitFileForm() {
if (!this.fileCopy) {
this.$refs.upload.submit() this.$refs.upload.submit()
}
}, },
//发票新增/编辑页面 //发票新增/编辑页面
goInvoiceOperate({ id, key }) { goInvoiceOperate({ id, key }) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment