Commit 50f1e1d7 authored by 332784038@qq.com's avatar 332784038@qq.com

Merge branch 'order_fee_update' into pre-release

parents 3b17228b afc7f948
......@@ -125,6 +125,29 @@ export function feeApplicationBatchGetOrderListByIds(data) {
})
}
export function feeApplicationBatchList(data) {
return request({
url: "ecw/batch-order-fee-apply/page",
method: "get",
params: data
})
}
export function feeApplicationBatchDetail(data) {
return request({
url: "ecw/batch-order-fee-apply/info",
method: "get",
params: data
})
}
export function feeApplicationBatchDetailFormId(data) {
return request({
url: "ecw/batch-order-fee-apply/getInfoByFormId",
method: "get",
params: data
})
}
// 批量申请费用
export function feeApplicationCreateBatch(data) {
return request({
......
......@@ -45,9 +45,11 @@
</el-col>
<div v-if="this.processInstance.processDefinition && this.processInstance.processDefinition.formType === 20">
<component v-if="businessKeyToComponent" :is="businessKeyToComponent.component" v-bind="businessKeyToComponent" />
<div v-else>
<router-link :to="this.processInstance.processDefinition.formCustomViewPath + '?id=' + this.processInstance.businessKey">
<router-link v-if="this.processInstance.processDefinition.formCustomViewPath === 'batch_order_free_apply'" :to="`/order/feeApplicationBatchDetail?id=${this.processInstance.businessKey}`">
<el-button type="primary">{{ $t("点击查看") }}</el-button>
</router-link>
<router-link v-else :to="this.processInstance.processDefinition.formCustomViewPath + '?id=' + this.processInstance.businessKey">
<el-button type="primary">{{ $t("点击查看") }}</el-button>
</router-link>
</div>
......
......@@ -349,14 +349,8 @@ export default {
<style lang="scss" scoped>
::v-deep.table3 {
.el-table__cell {
padding-top: 3px;
padding-bottom: 3px;
}
.el-table__header-wrapper th {
height: 30px;
font-weight: normal;
color: #ccc;
background: rgba(#67c23a, 0.1);
}
}
</style>
<template>
<div class="fee-application">
<h1>{{ $t("批量费用申请详情") }}</h1>
<el-divider></el-divider>
<div class="flex-c-c">
<div class="fills">费用申请</div>
</div>
<el-table border :data="batchApplyDetailsInfoVO.feeDetailsVOList" class="mt-10">
<el-table-column :label="$t('序号')" type="index" align="center"></el-table-column>
<el-table-column :label="$t('费用类型')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('金额')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
{{ row.applicationFee }}
</template>
</el-table-column>
<el-table-column :label="$t('货币类型')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
{{ currencyMap[row.applicationFeeCurrency] }}
</template>
</el-table-column>
<el-table-column :label="$t('付款类型')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
<dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="row.payType" />
</template>
</el-table-column>
<el-table-column :label="$t('付款人')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
<dict-tag :type="DICT_TYPE.DRAWEE" :filter="payerDictFilter" :value="row.payer" />
</template>
</el-table-column>
<el-table-column :label="$t('计量单位')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
{{ unitMap[row.unitMeasurement] }}
</template>
</el-table-column>
<el-table-column :label="$t('备注')" minWidth="200" align="center">
<template slot-scope="{ row, $index }">
{{ row.remarks }}
</template>
</el-table-column>
<el-table-column :label="$t('确认收款')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">
<dict-tag :type="DICT_TYPE.ECW_RECEIVABLE_STATE" :value="row.receiveFlag" />
</template>
</el-table-column>
<el-table-column :label="$t('申请人')" minWidth="120" align="center">
<template slot-scope="{ row, $index }">未提交</template>
</el-table-column>
</el-table>
<div class="">
<div style="padding: 20px 0 10px 0">{{ $t("申请原因") }}</div>
{{ reason }}
</div>
<div class="flex-c-c mt20">
<div class="fills">订单列表</div>
</div>
<el-table class="mt10 table2" ref="orderTable" border default-expand-all :data="batchApplyDetailsInfoVO.orderFeeDetailsVOList">
<el-table-column :label="$t('序号')" width="50" type="index" align="center" />
<el-table-column prop="orderNo" :label="$t('订单号')" align="center" width="150">
<template slot-scope="{ row }">
<router-link :to="'/order/detail?orderId=' + row.orderBackVO.orderId"> {{ row.orderBackVO.orderNo }}</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('发货人')" width="100" align="center">
<template slot-scope="{ row }">
<router-link :to="'/customer/query/' + row.orderBackVO.consignorVO.customerId" v-if="row.orderBackVO.consignorVO"> {{ row.orderBackVO.consignorVO.customerNumber }}</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('收货人')" width="100" align="center">
<template slot-scope="{ row }">
<router-link :to="'/customer/query/' + row.orderBackVO.consigneeVO.customerId" v-if="row.orderBackVO.consigneeVO">{{ row.orderBackVO.consigneeVO.customerNumber }}</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName">
<template slot-scope="{ row }">
{{ $l(row.orderBackVO.initialLogisticsInfoDto, "startTitle") }}
</template>
</el-table-column>
<el-table-column :label="$t('运输方式') + '-' + $t('渠道') + '/' + $t('目的仓')" align="center" width="220">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.orderBackVO.transportId" />
<template v-if="row.orderBackVO.channelName"> - {{ row.orderBackVO.channelName }} </template>
/
{{ $l(row.orderBackVO.initialLogisticsInfoDto, "destTitle") }}
</template>
</el-table-column>
<el-table-column :label="$t('收费数据')" width="200">
<template slot-scope="{ row }"> {{ row.orderBackVO.sumNum }}{{ $t("") }} {{ row.orderBackVO.vweight }}Kg {{ row.orderBackVO.wvolume }}{{ row.orderBackVO.sumQuantity }}{{ $t("") }} </template>
</el-table-column>
<el-table-column :label="$t('控货')" align="center" prop="transportId">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="row.orderBackVO.isCargoControl" />
</template>
</el-table-column>
<el-table-column :label="$t('增值服务')" align="center">
<template slot-scope="{ row }">
<el-tag v-if="row.orderBackVO.type && row.orderBackVO.type.indexOf('1') > -1">
{{ $t("集运") }}
</el-tag>
<el-tag v-if="row.orderBackVO.type && row.orderBackVO.type.indexOf('2') > -1">
{{ $t("海外仓") }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="orderBackVO.rucangTime" :label="$t('最后入仓时间')" align="center" width="150"></el-table-column>
<el-table-column prop="orderBackVO.loadTime" :label="$t('装柜时间')" align="center" width="150"></el-table-column>
<el-table-column prop="orderBackVO.daogangTime" :label="$t('到港时间')" align="center" width="150"></el-table-column>
<el-table-column prop="orderBackVO.qingguanTime" :label="$t('清关时间')" align="center" width="150"></el-table-column>
<el-table-column prop="orderBackVO.unloadTime" :label="$t('到仓时间')" align="center" width="150"></el-table-column>
<el-table-column type="expand" :label="$t('更多')">
<template slot-scope="{ row, $index: INDEX }">
<div style="margin: 0 20px 0 100px; padding: 10px 0" v-if="row.orderFeeApplicationBaseVOList.length">
<el-table class="table3" :data="row.orderFeeApplicationBaseVOList" border size="mini" :row-class-name="rowClassname">
<el-table-column :label="$t('序号')" type="index" align="center"></el-table-column>
<el-table-column :label="$t('费用类型')" minWidth="120" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('金额')" minWidth="120" align="center">
<template slot-scope="{ row }">
{{ row.applicationFee }}
</template>
</el-table-column>
<el-table-column :label="$t('货币类型')" minWidth="120" align="center">
<template slot-scope="{ row }">
{{ currencyMap[row.applicationFeeCurrency] }}
</template>
</el-table-column>
<el-table-column :label="$t('付款类型')" minWidth="120" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="row.payType" />
</template>
</el-table-column>
<el-table-column :label="$t('付款人')" minWidth="120" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.DRAWEE" :filter="payerDictFilter" :value="row.payer" />
</template>
</el-table-column>
<el-table-column :label="$t('备注')" minWidth="200" align="center">
<template slot-scope="{ row }">
{{ row.remarks }}
</template>
</el-table-column>
<el-table-column :label="$t('确认收款')" minWidth="120" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_RECEIVABLE_STATE" :value="row.receiveFlag" />
</template>
</el-table-column>
<el-table-column :label="$t('申请人')" minWidth="120" align="center">
<template slot-scope="{ row }"> 未提交 </template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
</el-table>
<div style="text-align: center; margin-top: 20px">
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px" @click="goProcessDetail">{{ $t("查看审核") }} </el-button>
</div>
</div>
</template>
<script>
import { getCurrencyList } from "@/api/ecw/currency"
import { getProductAttrList } from "@/api/ecw/productAttr"
import { getProductTypeList } from "@/api/ecw/productType"
import { getOrder, feeApplicationBatch, feeApplicationBatchDetail, getFeeDraweeByFeeType, feeApplicationBatchDetailFormId } from "@/api/ecw/order"
import { getDictDatas, DICT_TYPE } from "@/utils/dict"
import workFlow from "@/components/WorkFlow"
export default {
name: "feeApplicationBatchDetail",
components: { workFlow },
props: {
orderList: [Array],
dialogVisible: {
type: Boolean,
default: false
},
currencys: String
},
data() {
return {
prodTypeList: [],
attrList: [],
currencyList: [],
DICT_TYPE,
getDictDatas,
STATUS: {},
selectedUsers: [],
reason: "",
batchApplyDetailsInfoVO: {
feeDetailsVOList: [],
orderFeeDetailsVOList: []
},
processInstanceId: null,
units: [
{
name: "",
val: 1
},
{
name: "收费体积",
val: 2
},
{
name: "入仓体积",
val: 3
},
{
name: "收费重量",
val: 4
},
{
name: "入仓重量",
val: 5
}
]
}
},
computed: {
id() {
return this.$route.query.id || ""
},
currencyMap() {
let map = {}
this.currencyList.forEach((item) => {
map[item.id] = this.$l(item, "title")
})
return map
},
currencyMapF() {
let map = {}
this.currencyList.forEach((item) => {
map[item.id] = item.fuhao
})
return map
},
unitMap() {
let map = {}
this.units.forEach((item) => {
map[item.val] = this.$t(item.name)
})
return map
},
isChinese() {
return this.$i18n.locale === "zh_CN"
}
},
created() {
this.getDictDatas(this.DICT_TYPE.AUDIT_STATUS).forEach((e) => {
this.STATUS[e.value] = e.label
})
getCurrencyList().then((res) => (this.currencyList = res.data))
getProductAttrList().then((response) => {
this.attrList = response.data
})
getProductTypeList().then((response) => {
this.prodTypeList = response.data
})
this.getData()
},
methods: {
rowClassname({ row }) {
return row.isDel ? "isDel" : ""
},
// 过滤订单状态筛选字典内容
payerDictFilter(item) {
if (item.value && item.value == 3) {
return false
}
return true
},
async getData() {
let res = await feeApplicationBatchDetail({ id: this.id })
this.batchApplyDetailsInfoVO = res.data.batchApplyDetailsInfoVO
this.reason = res.data.rease
// 查询是否有审核中的费用申请
feeApplicationBatchDetailFormId({ formId: res.data.formId }).then((res) => {
if (res.data) {
this.processInstanceId = res.data.formId
}
})
},
goProcessDetail() {
this.$router.push("/bpm/process-instance/detail?id=" + this.processInstanceId)
}
},
watch: {
id(val) {
if (val) {
this.getData()
}
}
}
}
</script>
<style scoped lang="scss">
.fee-application {
padding: 0 20px;
h1 {
font-weight: 600;
font-size: 20px;
}
.content {
width: 200px;
}
::v-deep.table2 {
.el-table__expanded-cell {
padding-top: 0;
padding-bottom: 0;
}
}
::v-deep.table3 {
.el-table__header-wrapper th {
background: rgba(#67c23a, 0.1);
}
}
}
.my-process-designer {
height: calc(100vh - 200px);
}
.box-card {
width: 100%;
margin-bottom: 20px;
}
</style>
<style lang="scss">
.isDel {
display: none;
}
</style>
......@@ -40,7 +40,7 @@
</el-table-column>
<el-table-column :label="$t('计量单位')">
<template slot-scope="{ row, $index }">
<el-select v-model="row.unit" :placeholder="$t('请选择')" clearable @change="batchUpdateField($index, 'unit')">
<el-select v-model="row.unitMeasurement" :placeholder="$t('请选择')" clearable @change="batchUpdateField($index, 'unitMeasurement')">
<el-option v-for="(item, index) in units" :label="$t(item.name)" :value="item.val" :key="index"></el-option>
</el-select>
</template>
......@@ -67,14 +67,13 @@
<div class="">
<div style="padding: 20px 0 10px 0">{{ $t("申请原因") }}</div>
<el-input v-model="batchApplyDetailsInfoVO.reason" type="textarea" style="width: 30%"></el-input>
<el-input v-model="reason" type="textarea" style="width: 30%"></el-input>
</div>
<div class="flex-c-c mt20">
<div class="fills">订单列表</div>
</div>
<el-table class="mt10 table2" ref="orderTable" border default-expand-all :data="batchApplyDetailsInfoVO.orderFeeDetailsVOList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center"></el-table-column>
<el-table class="mt10 table2" ref="orderTable" border default-expand-all :data="batchApplyDetailsInfoVO.orderFeeDetailsVOList">
<el-table-column :label="$t('序号')" width="50" type="index" align="center" />
<el-table-column prop="orderNo" :label="$t('订单号')" align="center" width="150">
<template slot-scope="{ row }">
......@@ -196,7 +195,6 @@
<script>
import { getCurrencyList } from "@/api/ecw/currency"
import { getUnitList } from "@/api/ecw/unit"
import { getProductAttrList } from "@/api/ecw/productAttr"
import { getProductTypeList } from "@/api/ecw/productType"
import { getOrder, feeApplicationBatch, feeApplicationBatchGetOrderListByIds, applicationUpdate, feeApplicationCancel, getFeeApplicationApproveByOrderId, getBatchFeeByProcessId, qetBatchFeeByBusinessId, getBatchFeeByBusinessId, feeApplicationDelete, getFeeDraweeByFeeType } from "@/api/ecw/order"
......@@ -217,14 +215,13 @@ export default {
return {
prodTypeList: [],
attrList: [],
unitList: [],
currencyList: [],
DICT_TYPE,
getDictDatas,
STATUS: {},
selectedUsers: [],
reason: "",
batchApplyDetailsInfoVO: {
reason: "",
feeDetailsVOList: [],
orderFeeDetailsVOList: []
},
......@@ -270,13 +267,6 @@ export default {
})
return map
},
unitMap() {
let map = {}
this.unitList.forEach((item) => {
map[item.id] = this.$l(item, "title")
})
return map
},
isChinese() {
return this.$i18n.locale === "zh_CN"
}
......@@ -285,7 +275,6 @@ export default {
this.getDictDatas(this.DICT_TYPE.AUDIT_STATUS).forEach((e) => {
this.STATUS[e.value] = e.label
})
getUnitList().then((res) => (this.unitList = res.data))
getCurrencyList().then((res) => (this.currencyList = res.data))
getProductAttrList().then((response) => {
this.attrList = response.data
......@@ -297,10 +286,6 @@ export default {
this.getData()
},
methods: {
// 表格多选
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.orderId)
},
formatAmount(row, index) {
row.applicationFee = this.$formatNumber(row.applicationFee, 2)
this.batchUpdateField(index, "applicationFee")
......@@ -338,13 +323,15 @@ export default {
if (field === "payer" && cval === "") {
this.batchApplyDetailsInfoVO.orderFeeDetailsVOList.forEach((item, i) => {
let ITEM = item.orderFeeApplicationBaseVOList[index]
if (item.drawee) {
item.drawee != 3 ? (ITEM[field] = item.drawee) : this.getDraweePayer(ITEM)
if (item.drawee === 3) {
this.getDraweePayer(item, ITEM)
} else {
item.orderFeeApplicationBaseVOList[index][field] = item.drawee
}
})
return
}
if (field === "unit" || "applicationFee") {
if (field === "unitMeasurement" || field === "applicationFee") {
let applicationFee = this.batchApplyDetailsInfoVO.feeDetailsVOList[index]["applicationFee"]
if (applicationFee) {
if (cval === 2) {
......@@ -378,7 +365,9 @@ export default {
})
})
},
getDraweePayer(item) {
getDraweePayer(order, item) {
console.log(order, item)
let feeType = item.feeType
if (feeType) {
getFeeDraweeByFeeType(feeType).then((res) => {
......@@ -386,8 +375,8 @@ export default {
let drawee = res.data
console.log("自定义费用枚举值:", drawee)
if (drawee) {
if (this.orderDetails.customDraweeVOList && this.orderDetails.customDraweeVOList.length > 0) {
let customDrawee = this.orderDetails.customDraweeVOList.find((item) => item.name == drawee)
if (order.customDraweeVOList && order.customDraweeVOList.length > 0) {
let customDrawee = order.customDraweeVOList.find((item) => item.name == drawee)
console.log("自定义费用类型值:", customDrawee)
if (customDrawee) {
console.log("返回值:", customDrawee.value)
......@@ -471,23 +460,10 @@ export default {
}
})
let orderFeeDetailsVOList = this.batchApplyDetailsInfoVO.orderFeeDetailsVOList.filter((item) => {
console.log(new Set(this.ids), item.orderId)
return new Set(this.ids).has(item.orderId)
})
if (!orderFeeDetailsVOList.length) {
this.$message.error("请选择订单")
return
}
feeApplicationBatch({
batchApplyDetailsInfoVO: {
...this.batchApplyDetailsInfoVO,
orderFeeDetailsVOList
},
batchApplyDetailsInfoVO: this.batchApplyDetailsInfoVO,
copyUserId: this.selectedUsers,
reason,
details: "-"
}).then((r) => {
if (r.code === 0) {
......@@ -498,7 +474,7 @@ export default {
}
},
watch: {
orderIds() {
orderIds(val) {
if (val) {
this.getData()
}
......@@ -526,14 +502,8 @@ export default {
}
}
::v-deep.table3 {
.el-table__cell {
padding-top: 3px;
padding-bottom: 3px;
}
.el-table__header-wrapper th {
height: 30px;
font-weight: normal;
color: #ccc;
background: rgba(#67c23a, 0.1);
}
}
}
......
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item :label="$t('申请时间')">
<el-date-picker v-model="createTime" style="width: 240px" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" />
</el-form-item>
<el-form-item :label="$t('编号')" prop="no">
<el-input v-model="queryParams.no" placeholder="" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('申请人')" prop="user">
<user-selector manage v-model="queryParams.creatorList" multiple clearable @change="handleQuery" />
</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-table v-loading="loading" :data="list">
<el-table-column :label="$t('编号')" align="center" prop="no" width="180">
<template slot-scope="{ row }">
<router-link :to="'/order/feeApplicationBatchDetail?id=' + row.id"> {{ row.no }}</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('申请人')" align="center" prop="creatorName" width="180" />
<el-table-column :label="$t('申请时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('申请原因')" prop="reason" width="300" />
<el-table-column :label="$t('审核信息')">
<template slot-scope="{ row }">
<router-link :to="`/bpm/process-instance/detail?id=${row.formId}`">审核信息</router-link>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</template>
<script>
import UserSelector from "@/components/UserSelector"
import { feeApplicationBatchList } from "@/api/ecw/order"
export default {
name: "feeApplicationBatchList",
components: { UserSelector },
data() {
return {
// 遮罩层
loading: true,
list: [],
createTime: [],
total: 0,
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
no: null,
creatorList: null
}
}
},
created() {
this.getList()
},
methods: {
/** 查询列表 */
async getList() {
this.list = []
this.loading = true
// 处理查询参数
let params = { ...this.queryParams }
this.addBeginAndEndTime(params, this.createTime, "createTime", false)
// 执行查询
feeApplicationBatchList(params).then((response) => {
response.data.list.forEach((item) => {
this.list.push(item)
})
this.total = response.data.total
this.loading = false
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.createTime = []
this.resetForm("queryForm")
this.handleQuery()
},
/** 详情按钮操作 */
handleDetail(row) {
return this.$router.push("detail?id=" + row.id)
}
}
}
</script>
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