Commit 91c4c353 authored by Administrator's avatar Administrator

Merge branch 'pre-release' into 'jd_dev'

pre-release分支合并到jd分支0109

See merge request !131
parents cde9b432 762d1eec
......@@ -830,7 +830,6 @@ export function loadInvApplicationList(data) {
}
//获得收款数据审批列表
//
export function loadReceiptReviewList(data) {
let params = {
page: data.page,
......@@ -878,3 +877,17 @@ export function handleImportReceipt(data) {
data
})
}
// 批量生成收款单列表
export function loadBatGNRTReceiptList(data) {
let params = {
page: data.page,
rows: data.rows
}
return request({
url: "/ecw/receivable/batch-gen-receipt/page",
method: "post",
data,
params
})
}
<template>
<div class="app-container">
<el-card>
<el-form ref="formSearch" :model="queryParams" label-width="100px" label-position="left" :inline="true">
<el-form-item :label="$t('运输方式') + ':'" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" :placeholder="$t('请选择运输方式')" style="width: 200px" />
</el-form-item>
<el-form-item :label="$t('始发仓')" prop="departureWareHouseId">
<el-select style="width: 200px" v-model="queryParams.departureWareHouseId" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery">
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的国')" prop="destCountry">
<el-select style="width: 200px" v-model="queryParams.destCountry" multiple :placeholder="$t('请选择目的国')" clearable @change="handleQuery">
<el-option v-for="item in countryList" :key="item.guojia" :label="item.guojiaName" :value="item.guojia"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的城市')" prop="destCity">
<el-select style="width: 200px" v-model="queryParams.destCity" multiple :placeholder="$t('请选择目的城市')" clearable @change="handleQuery">
<el-option v-for="item in cityList" :key="item.shi" :label="item.shiName" :value="item.shi"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的仓')" prop="objectiveWareHouseId">
<el-select style="width: 200px" v-model="queryParams.objectiveWareHouseId" multiple :placeholder="$t('请选择目的仓')" clearable @change="handleQuery">
<el-option v-for="item in objWareHouseList" :key="item.id" :label="item.titleZh" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('订单号')" prop="orderNo">
<el-input style="width: 200px" v-model.trim="queryParams.orderNo" :placeholder="$t('请输入订单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('提单号')">
<el-input style="width: 200px" v-model="queryParams.tidanNo" :placeholder="$t('请输入提单号')"></el-input>
</el-form-item>
<el-form-item :label="$t('付款方') + ':'" label-width="100px" prop="payer">
<el-select style="width: 200px" v-model="queryParams.payer" clearable>
<el-option :label="$t('发货方')" value="1"></el-option>
<el-option :label="$t('收货方')" value="2"></el-option>
<el-option :label="$t('自定义')" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('收货人')" prop="consignee">
<el-input style="width: 200px" v-model.trim="queryParams.consignee" :placeholder="$t('请输入收货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('发货人')" prop="consignor">
<el-input style="width: 200px" v-model.trim="queryParams.consignor" :placeholder="$t('请输入发货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="getList">{{ $t("搜索") }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t("重置") }}</el-button>
</el-form-item>
</el-form>
</el-card>
<el-row :gutter="10" class="mb8 pad-t">
<el-col :span="1.5">
<el-button @click="batGNRTReceipt" type="primary" plain icon="el-icon-plus" size="mini">{{ $t("批量生成收款单") }} </el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange" border class="card">
<el-table-column type="selection" width="55" align="center" fixed="left"> </el-table-column>
<el-table-column width="200" align="center" :label="$t('运输信息')">
<template v-slot="{ row }"> {{ getWareHouseLabel(row.departureWareHouseId) }}- <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId"></dict-tag> /{{ getWareHouseLabel(row.objectiveWareHouseId) }} </template>
</el-table-column>
<el-table-column :label="$t('订单号')" prop="orderNo">
<template slot-scope="scope">
<router-link
:to="{
path: '/order/detail',
query: { orderId: scope.row.orderId }
}"
class="link-type"
>
<span>{{ scope.row.orderNo }}</span>
</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('提单号')" prop="tidanNo" />
<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('付款名称')" width="160" align="center">
<template v-slot="{ row }">
<div>
<router-link :to="`/customer/query/${row.payerId}`" class="link-type">
{{ row.customerNo }}
</router-link>
</div>
<div>{{ row.payerName ? row.payerName : row.customerName }}</div>
</template>
</el-table-column>
<el-table-column :label="$t('订单状态')">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="row.orderStatus" />
</template>
</el-table-column>
<el-table-column :label="$t('应收汇总')"> </el-table-column>
<el-table-column :label="$t('自编号状态')" prop="selfNoStatus">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.BOX_ORDER_SHIPMENT_STATE" value="row.selfNoStatus"></dict-tag>
</template>
</el-table-column>
<el-table-column :label="$t('费用明细')" fixed="right">
<template v-slot="{ row }">
<div>
<!-- <router-link :to="`/customer/query/${row.payerId}`" class="link-type"> -->
{{ $t("费用明细") }}
<!-- </router-link> -->
</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" @pagination="getList" />
</div>
</template>
<script>
import { getWarehouseList } from "@/api/ecw/warehouse"
import { getRegionList } from "@/api/ecw/order"
import { loadBatGNRTReceiptList } from "@/api/ecw/financial"
export default {
data() {
return {
total: 0,
loading: true,
list: [],
// 始发仓
exportWarehouseList: [],
objWareHouseList: [],
cityList: [],
countryList: [],
queryParams: {
departureWareHouseId: [], //始发地
destCountry: [], //目的国
destCity: [],
objectiveWareHouseId: [],
transportId: "", //运输方式
page: 1,
rows: 10
}
}
},
watch: {
"queryParams.destCountry": {
handler(val, oldVal) {
this.queryParams.destCity = []
if (val && val.length > 0) {
this.loadCityList(2, val.join())
} else {
this.loadCityList()
}
}
},
"queryParams.destCity": {
handler(val, oldVal) {
this.queryParams.objectiveWareHouseId = []
if (val.length > 0) {
this.loadWareHouseList(3, val.join())
} else {
this.loadWareHouseList()
}
}
}
},
created() {
this.init()
getWarehouseList().then((res) => {
this.warehouseList = res.data
/* tradeType 1 进口,2出口,3进出口 */
this.exportWarehouseList = res.data.filter((item) => item.tradeType == 2 || item.tradeType == 3)
})
this.getList()
},
methods: {
handleSelectionChange() {},
getWareHouseLabel(id) {
const houseItem = this.warehouseList.filter((item) => {
return item.id == id
})
return houseItem.length > 0 ? this.$l(houseItem[0], "title") : "-"
},
init() {
//请求获取国家
this.loadCityList()
this.loadWareHouseList()
this.loadCountyList()
},
//目的地
loadWareHouseList(type = 5, cityId = 5) {
getRegionList(type, cityId)
.then(({ data }) => {
this.objWareHouseList = data
})
.catch((error) => {
console.log(error)
})
},
loadCityList(type = 4, countryId = 4) {
getRegionList(type, countryId)
.then(({ data }) => {
this.cityList = data
})
.catch((error) => {
console.log(error)
})
},
loadCountyList() {
getRegionList(1, 1)
.then(({ data }) => {
this.countryList = data
})
.catch((error) => {
console.log(error)
})
},
getAddressTown() {
getRegionList(5, 5).then(({ data }) => {
this.AddressTown = data
})
},
resetQuery() {
this.$refs["formSearch"].resetFields()
this.queryParams.page = 1
this.queryParams.rows = 10
this.handleQuery()
},
handleQuery() {
this.loading = true
this.$nextTick(() => {
this.queryParams.page = 1
this.getList()
})
},
batGNRTReceipt() {},
getList() {
this.loading = true
loadBatGNRTReceiptList(this.queryParams).then((response) => {
this.list = response.data.list
this.total = response.data.total
this.loading = false
})
}
}
}
</script>
<style lang="scss" scoped>
.pad-t {
padding: 10px 0;
}
</style>
......@@ -5,7 +5,7 @@
<el-input v-model.trim="queryParams.orderNo" :placeholder="$t('请输入订单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model.number="queryParams.transportId" clearable @change="handleQuery" />
<dict-selector multiple :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" clearable @change="handleQuery" />
</el-form-item>
<el-form-item :label="$t('出货渠道')" prop="shipmentChannel">
<selector :clearable="true" :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.shipmentChannel" multiple @change="handleQuery"></selector>
......@@ -43,9 +43,9 @@
<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 :label="$t('订单状态')" prop="status">
<!-- <el-form-item :label="$t('订单状态')" prop="status">
<dict-selector ref="dictMethod" v-model="queryParams.status" :type="DICT_TYPE.ORDER_STATUS"></dict-selector>
</el-form-item>
</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>
......@@ -154,7 +154,6 @@
</template>
</el-table-column>
<el-table-column :label="$t('订单状态')">
<!-- {{$l(departure, 'title') || '-'}} -->
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="row.status" />
</template>
......@@ -201,12 +200,15 @@
</template>
</el-table-column>
<el-table-column :label="$t('关联银行收款明细')" prop="totalAmount" width="160" align="center">
<template slot-scope="{ row }"
<template slot-scope="{ row }" v-if="row.receiptId"
><el-button type="text" @click="goBankReceiptDetailsList(row)"> {{ $t("查看收款明细") }}</el-button>
</template>
<template v-else>-</template>
</el-table-column>
<el-table-column :label="$t('费用生成时间')" prop="createTime" width="160" align="center"> </el-table-column>
<el-table-column :label="$t('最后修改信息')" prop="totalAmount" width="160" align="center">
<template slot-scope="{ row }"> {{ row.updater || "-" }}/{{ parseTime(row.updateTime) || "-" }} </template>
<template slot-scope="{ row }"> {{ row.updater || "-" }}/{{ row.updateTime || "-" }} </template>
</el-table-column>
<el-table-column :label="$t('最后审批信息')" prop="totalAmount" width="160" align="center">
<template slot-scope="{ row }"> {{ row.approver || "-" }}/{{ row.approverTime || "-" }} </template>
......@@ -297,6 +299,7 @@ export default {
},
data() {
return {
size: "small",
totalDetailVisible: false,
loading: true,
searchStatistics: {}, //查询条件所有
......@@ -314,7 +317,7 @@ export default {
page: 1,
rows: 10,
orderNo: "",
transportId: "",
transportId: [],
shipmentChannel: [], //出货渠道
departureWareHouseId: [], //始发地
destCountry: [], //目的国
......@@ -367,12 +370,13 @@ export default {
},
getChannelName(channelId) {
const channel = this.channelList.filter((item) => item.channelId == channelId)
return channel.length > 0 ? this.$l(channel, "name") : "-"
return channel.length > 0 ? this.$l(channel[0], "name") : "-"
},
init() {
//请求获取国家
this.loadCountyList()
this.loadCityList()
this.loadWareHouseList()
},
//目的地
loadWareHouseList(type = 5, cityId = 5) {
......
......@@ -102,7 +102,9 @@
</template>
</el-table-column>
<el-table-column prop="exchangeRate" :label="$t('基准币种({currency})汇率', { currency: getBaseCurrencynName(showCurrencyId) })" width="120"> </el-table-column>
<el-table-column prop="exchangeRate" :label="$t('基准币种({currency})汇率', { currency: getBaseCurrencynName(showCurrencyId) })" width="120">
<template v-slot="{ row }"> {{ getCurrencySymbol(row.currencyId) }} 1: {{ getCurrencySymbol(showCurrencyId) }}{{ row.exchangeRate }} </template>
</el-table-column>
<el-table-column
prop="baseAmount"
:label="
......@@ -112,7 +114,8 @@
"
width="120"
:formatter="formatCurrency"
></el-table-column>
>
</el-table-column>
<el-table-column fixed="right" :label="$t('操作')" align="center">
<template slot-scope="scope">
......@@ -172,7 +175,7 @@
</el-table-column>
<el-table-column align="center" prop="writeOffAmount">
<template #header>
{{ $t("核销基准金额") + "" + getCurrencyLabel(showCurrencyId) + "" }}
{{ $t("基准金额") + "" + getCurrencyLabel(showCurrencyId) + "" }}
</template>
<template slot-scope="scope">
<div>{{ getCurrencySymbol(showCurrencyId) }}{{ scope.row.writeOffAmount }}</div></template
......@@ -363,8 +366,8 @@
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('开票资料备注')">
<el-form-item label="" label-width="0" maxlength="500" style="margin-bottom: 0">
<el-input v-model="form.invoiceRemark"></el-input>
<el-form-item label="" label-width="0" style="margin-bottom: 0">
<el-input v-model="form.invoiceRemark" maxlength="500"></el-input>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
......@@ -1056,11 +1059,19 @@ export default {
}
const writeOffAmountTotal = this.form.receiptAccountList.filter((v) => v.type !== "total").reduce((total, currentValue) => NP.plus(total, currentValue.writeOffAmount || 0), 0)
this.list[index].exchangeRate = row.writeOffRate
this.list[index].baseAmount = row.writeOffAmount
console.log("listdd", this.list)
this.list.forEach((item) => {
if (item.currencyId == row.currencyId) {
item.exchangeRate = row.writeOffRate
item.baseAmount = NP.round(NP.times(row.writeOffRate || 0, item.actualAmount), 2)
}
})
// this.list[index].exchangeRate = row.writeOffRate
// this.list[index].baseAmount = row.writeOffAmount
// console.log("listdd", this.list)
console.log("listdde", row)
this.form.receiptAccountList[this.form.receiptAccountList.length - 1].writeOffAmount = writeOffAmountTotal
this.form.receiptAccountList[index + 1].writeOffAmount = writeOffAmountTotal
},
rateChange(row, index) {
if (row.collectionRate == 0 && parseInt(row.collectionRate) === 0) {
......
......@@ -110,6 +110,7 @@
"
width="120"
>
<template v-slot="{ row }"> {{ getCurrencySymbol(row.currencyId) }} 1: {{ getCurrencySymbol(showCurrencyId) }}{{ row.exchangeRate }} </template>
</el-table-column>
<el-table-column
prop="baseAmount"
......@@ -171,9 +172,7 @@
<el-table-column align="center" width="220">
<template #header> {{ $t("基准币种") }}{{ getCurrencyLabel(showCurrencyId) }}{{ $t("汇率") }} </template>
<template slot-scope="scope">
<template v-if="scope.row.type !== 'total'">
<span>{{ scope.row.writeOffRate }}</span>
</template>
<template v-if="scope.row.type !== 'total'"> {{ getCurrencySymbol(scope.row.currencyId) }} 1: {{ getCurrencySymbol(showCurrencyId) }}{{ scope.row.writeOffRate }} </template>
<template v-else> {{ $t("应核销总金额") }}{{ getCurrencyLabel(showCurrencyId) }} </template>
</template>
</el-table-column>
......@@ -194,7 +193,11 @@
</el-table-column>
<el-table-column :label="$t('期望收款汇率')" align="center">
<template slot-scope="scope">
<span v-if="scope.row.type !== 'total'">{{ scope.row.collectionRate }}</span>
<span v-if="scope.row.type !== 'total'">
{{ getCurrencySymbol(scope.row.currencyId) }} 1:
{{ getCurrencySymbol(scope.row.collectionCurrencyId) }}
{{ scope.row.collectionRate }}</span
>
<span v-else
>{{ $t("期望收费金额") }}
<span :title="$t('导出账单给客户时显示的收款金额与币种')"><i class="el-icon-question"></i></span>
......@@ -636,6 +639,7 @@
})
"
>
<template v-slot="{ row }"> {{ getCurrencySymbol(row.currencyId) }} 1: {{ getCurrencySymbol(showCurrencyId) }}{{ row.exchangeRate }} </template>
</el-table-column>
<el-table-column
prop="baseAmount"
......@@ -677,9 +681,10 @@
currency: getBaseCurrencynName(showCurrencyId)
})
"
width="160"
>
<template slot-scope="scope">
<el-input-number @change="changeCurrentItemWirteOff(scope.row.id)" v-if="!isView && addForm.writeOffAmount" :min="0" :precision="2" :controls="false" v-model="scope.row.writeOffAmount"></el-input-number>
<el-input-number style="width: 136px" @change="changeCurrentItemWirteOff(scope.row.id)" v-if="!isView && addForm.writeOffAmount" :min="0" :precision="2" :controls="false" v-model="scope.row.writeOffAmount"></el-input-number>
<span v-else>{{ scope.row.writeOffAmount }}</span>
</template>
<!-- writeOffAmount -->
......
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