Commit 41ee17b6 authored by 邓春圆's avatar 邓春圆

Merge remote-tracking branch 'origin/dev' into dev

parents fc2029fc d6896598
......@@ -96,6 +96,44 @@ export function feeApplicationListByOrderId(query){
data:data,
})
}
// 批量申请费用
export function feeApplicationCreateBatch(data){
return request({
url:'order/fee-application/create/batch',
method:'post',
data:data,
})
}
// 根据订单ID获取是否有正在申请的费用申请
export function getFeeApplicationApproveByOrderId(orderId){
return request({
url:'/order/fee-application/get/isApprove',
method:'get',
params: {id: orderId}
})
}
// 根据流程主键ID得到批量申请费用
export function getBatchFeeByBusinessId(businessId){
return request({
url:'/order/fee-application/getBatchFeeByBusinessId',
method:'get',
params: {businessId}
})
}
// 查询批量申请费用
export function feeApplicationGetBatch(params){
return request({
url:'/order/fee-application/get/batch',
method:'get',
params
})
}
//费用申请修改
export function applicationUpdate(data){
return request({
......
......@@ -181,11 +181,18 @@ export default {
id: this.processInstance.businessKey,
type: 2
},
// 原来的费用申请
free_apply: {
component: "warehouseDetails",
processId: this.processInstance.businessKey,
type: 2
},
// 2.0空运加的批量申请
batch_free_apply: {
component: () => import('@/views/ecw/order/components/BatchFeeApplication'),
businessId: this.processInstance.businessKey,
processInstanceId: this.$route.query.id
},
retired_warehouse: {
component: "warehouseDetails",
processId: this.processInstance.businessKey,
......
......@@ -71,6 +71,8 @@ export default {
this.form = { ...this.shipmentObj };
if(this.form.destinationClearance && this.form.destinationClearance != 3){
this.form.destinationClearanceSelect = 1
}else{
this.form.destinationClearanceSelect = 3
}
this.getChannelList()
},
......
......@@ -194,7 +194,7 @@
</template>
<script>
import { deletebox, getbox, getboxPage, exportboxExcel } from '@/api/ecw/box'
import {deletebox, getbox, getboxPage, exportboxExcel, getNoticeList, dealCustomsSplitNotify} from '@/api/ecw/box'
import { getChannelList } from '@/api/ecw/channel'
import { getWarehouseList } from '@/api/ecw/warehouse'
import costForm from './costForm.vue'
......@@ -342,13 +342,27 @@ export default {
getWarehouseList().then((res) => (this.warehouseList = res.data))
this.getList()
this.getChannelList()
this.queryNotice()
},
methods: {
formatDate,
getChannelList() {
getChannelList().then((res) => (this.channelList = res.data))
},
queryNotice() {
getNoticeList({
transportTypeList: this.transportTypes.map((item) => item.value),
}).then((res) => {
const { data } = res;
this.noticeList = data ?? [];
if (data.length) {
this.$set(this.dialogCfg, "title", this.$t("出货操作提醒"));
this.$set(this.dialogCfg, "dialogType", "notice");
this.$set(this.dialogCfg, "width", "650px");
this.$set(this.dialogCfg, "open", true);
}
});
},
/** 查询列表 */
getList() {
this.loading = true
......@@ -405,7 +419,10 @@ export default {
this.$set(this.dialogCfg, 'fullscreen', false)
this.$set(this.dialogCfg, 'open', true)
this.currRow = {
transportType: '3'
transportType: '3',
destinationClearanceSelect: 1,
destinationClearance: 1,
deliveryType: 1
}
},
/** 修改按钮操作 */
......@@ -449,91 +466,105 @@ export default {
return exportboxExcel(params)
})
.then((response) => {
this.$download.excel(response, '${table.classComment}.xls')
this.$download.excel(response, this.$t("空运管理") + ".xls");
this.exportLoading = false
})
.catch(() => {})
},
/** 查看按钮操作 */
handleCommand(row, command) {
switch (command) {
case "detail":
this.$router.push("/boxAir/query/" + row.id);
break;
case 'air':
this.$router.push('/boxAir/shippingAir/' + row.id)
break
async handleCommand(row, command) {
console.log(command, row);
switch (command) {
case "detail":
this.$router.push("/boxAir/query/" + row.id);
break;
case 'air':
this.$router.push('/boxAir/shippingAir/' + row.id)
break
case 'edit':
this.handleUpdate(row)
break
case 'edit':
this.handleUpdate(row)
break
case 'delete':
this.handleDelete(row);
break;
case "editLadingBill":
const cabinetLabel = this.getCabinetName(row.cabinetId);
const title = this.$t(
"查看提单 {selfNo} 柜号:{cubNo} 柜型:{cabinetLabel}",
{
selfNo: row.selfNo,
cubNo: row.cubNo,
cabinetLabel: cabinetLabel,
}
);
this.$set(this.dialogCfg, "title", title);
this.$set(this.dialogCfg, "fullscreen", true);
break;
const cabinetLabel = this.getCabinetName(row.cabinetId);
const title = this.$t(
"查看提单 {selfNo} 柜号:{cubNo} 柜型:{cabinetLabel}",
{
selfNo: row.selfNo,
cubNo: row.cubNo,
cabinetLabel: cabinetLabel,
}
);
this.$set(this.dialogCfg, "title", title);
this.$set(this.dialogCfg, "fullscreen", true);
break;
case 'batchMarkup':
this.$router.push('/boxAir/batch_markup?shipmentId=' + row.id)
break
case "downloadPreloadGoodsList":
downloadFile(
command,
{ shipmentId: row.id },
this.$t("预装单") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadLoadGoodsList":
downloadFile(
command,
{ shipmentId: row.id },
this.$t("已装单") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadReceivableList":
downloadFile(
command,
{ shipmentId: row.id },
this.$t("应收汇总表") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "zipDownload":
downloadFile(
command,
{ shipmentId: row.id },
this.$t("提货单") + `(${row.selfNo}).zip`,
"zip"
);
break;
case "downloadAgentListFiles":
case "downloadSoncapFiles":
case "downloadLadingCopy":
downloadFileByUrl(command, { shipmentId: row.id });
break;
downloadFile(
command,
{shipmentId: row.id},
this.$t("预装单") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadLoadGoodsList":
downloadFile(
command,
{shipmentId: row.id},
this.$t("已装单") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadReceivableList":
downloadFile(
command,
{shipmentId: row.id},
this.$t("应收汇总表") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "zipDownload":
downloadFile(
command,
{shipmentId: row.id},
this.$t("提货单") + `(${row.selfNo}).zip`,
"zip"
);
break;
case "downloadAgentListFiles":
case "downloadSoncapFiles":
case "downloadLadingCopy":
downloadFileByUrl(command, {shipmentId: row.id});
break;
case "handle":
const { noticeType } = row;
if ([1, 2, 3, 4, 8].includes(noticeType)) {
this.$router.push("/boxAir/shippingAir/" + row.id);
}
if ([5, 6, 7].includes(noticeType)) {
this.$router.push("/boxAir/query/" + row.id);
}
if([9].includes(noticeType)){
await dealCustomsSplitNotify(row.notifyId)
}
this.closeDialog();
break;
}
if (["editLadingBill", "cost", "error"].includes(command)) {
this.currRow = row;
this.$set(this.dialogCfg, "dialogType", command);
this.$set(this.dialogCfg, "width", "600px");
this.$set(this.dialogCfg, "open", true);
}
},
}
if (["editLadingBill", "cost", "error"].includes(command)) {
this.currRow = row;
this.$set(this.dialogCfg, "dialogType", command);
this.$set(this.dialogCfg, "width", "600px");
this.$set(this.dialogCfg, "open", true);
}
},
}
}
</script>
......
......@@ -44,7 +44,7 @@
<el-table-column :label="$t('储位')" align="center" prop="positionNo" width="250px">
<template slot-scope="{ row }">
<div v-for="item in row.orderItemDOS" :key="item.orderItemId">
{{ notset(item.positionNo) }}
{{ notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)) }}
</div>
</template>
</el-table-column>
......@@ -184,6 +184,14 @@ export default {
})
return arr.toString()
},
getpositionNo(arr){
if(!arr) return arr
let data = []
arr.forEach(item=>{
data.push(item.areaName+item.locationName)
})
return data.toString()
},
removePkg(row) {
deleteRelate(this.pkgData.id, row.orderId).then(() => {
this.$message.success(this.$t('移出成功'))
......
......@@ -15,17 +15,17 @@
</div>
<div style="width: 140px">
<p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">EC001141212</span>
<span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.mergePkgNo }}</span>
</p>
<div style="border: 1px solid #999;margin-left: 10px;" />
<div style="border-top: 1px solid #999;margin-left: 10px;" />
<p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.company }}</span>
</p>
<div style="border: 1px solid #999;margin-left: 10px;" />
<div style="border-top: 1px solid #999;margin-left: 10px;" />
<p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.startWarehouse }} -> {{ tagData.endWarehouse }}</span>
</p>
<div style="border: 1px solid #999;margin-left: 10px;" />
<div style="border-top: 1px solid #999;margin-left: 10px;" />
<div style="display: flex;margin-top: 10px;">
<div style="border-right: 2px solid #999;width: 45px;">
<p style="margin-top: 1mm; text-align: center">
......@@ -40,10 +40,10 @@
</div>
</div>
</div>
<div style="border: 1px solid #999;margin: 10px;" />
<div>
<div style="border-top: 1px solid #999;margin: 10px;" />
<!--<div>
<img :src="tagData.barcodeUrl" style="width:250px;height: 50px;" />
</div>
</div>-->
<div style="height: 50px;">
<p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 3mm">E&C Logistics: www.groupage.com</span>
......@@ -110,4 +110,4 @@ export default {
border: 1px solid #999;
border-radius: 5px;
}
</style>
\ No newline at end of file
</style>
......@@ -112,7 +112,7 @@ export default {
if(!arr) return arr
let data = []
arr.forEach(item=>{
data.push(item.locationName)
data.push(item.areaName+item.locationName)
})
return data.toString()
},
......
......@@ -127,7 +127,7 @@ export default {
});
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] };
if(oldData.issueType == 0) oldData.issueType = 2
if(!oldData.issueType || oldData.issueType == 0) oldData.issueType = 2
oldData = formatNumberString(oldData, ["issueType"]);
this.subMaterialObj = {
...oldData,
......
......@@ -666,11 +666,11 @@ const constantDict = {
billingMethod: [
{
value: "1",
label: i18n.$t("电放"),
label: i18n.$t("正本"),
},
{
value: "2",
label: i18n.$t("正本"),
label: i18n.$t("电放"),
},
],
// 是否有文件
......
<template>
<div>
<template v-if="!readonly">
<el-row type="flex" align="align" :gutter="10" >
<el-col :span="6">空运订单重量上限(kg)</el-col>
<el-col :span="6" ><el-input v-model="value1.airWeightLimit"></el-input></el-col>
......@@ -8,12 +9,13 @@
</el-col>
</el-row>
<h1>空运清关费</h1>
</template>
<div v-for="(item ,index) in value1[keyArr]">
<el-row :gutter="10">
<el-col :span="4">
第{{index + 1 }}阶梯定价方案:
</el-col>
<el-col :span="6">
<el-col :span="6" v-if="!readonly">
<el-button type="primary" @click="addInterval" v-if="index === 0" >
添加区间
</el-button>
......@@ -54,6 +56,7 @@ import {getCurrencyPage} from "@/api/ecw/currency";
import CurrencySelect from "@/views/ecw/channel/componrnts/currency-select.vue";
import {getUnitList} from "@/api/ecw/unit";
import WeightSelect from "@/views/ecw/channel/componrnts/weight-select.vue";
import Template from "@/views/cms/template/index.vue";
export default {
props:{
value:{
......@@ -63,10 +66,11 @@ export default {
keyArr:{
type:String,
default:'channelPriceStepClearanceList'
}
},
readonly: Boolean
},
name: "packaging-type",
components: {WeightSelect, CurrencySelect},
components: {Template, WeightSelect, CurrencySelect},
created() {
getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
getUnitList().then(res => this.unitList = res.data)
......
......@@ -1019,6 +1019,10 @@ export default {
item.transportId = this.form.transportId
})
if(this.form.transportVO?.packageTypeArr){
this.form.transportVO.packageType = this.form.transportVO.packageTypeArr.join(',')
}
// 修改的提交
if (this.form.offerId != null) {
let data = Object.assign({}, this.form, {
......
<template>
<div>
<h1>{{ $t('申请信息【订单信息】') }}</h1>
<el-descriptions :column="4" border>
<el-descriptions-item :label="$t('订单号')">{{ order.orderNo }}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId"></dict-tag>
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{ order.channelName }}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
{{ order.statusMsg }}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">
{{ order.marks }}
</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">{{ order.logisticsInfoDto.startTitleZh }}</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')">{{ order.logisticsInfoDto.destTitleZh }}</el-descriptions-item>
</el-descriptions>
<div style="font-size: 14px">
<p>{{ $t('申请理由') }}</p>
<div v-for="(item, index) in feeList" :key="item.id">
{{index + 1}}、【<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="item.feeType" />】,
<dict-tag :value="item.payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-tag>
{{ item.applicationFee }}{{ currencyName(item.applicationFeeCurrency) }}
{{$t('备注')}}{{ item.remarks || $t('')}}
</div>
</div>
</div>
</template>
<script>
import {
warehouseApprovalGetByFormId,
warehouseApprovalGetById,
warehouseAreaPositionList
} from "@/api/ecw/batchSingleApplication";
import {
applicationGetOrderByProcessId,
feeApplicationGet, feeApplicationGetBatch, getBatchFeeByBusinessId, getBatchFeeByProcessId,
getOrder,
getOrderPage,
getWarehouseUpdateApprovalInfo, qetBatchFeeByBusinessId
} from '@/api/ecw/order'
import { getChannelList } from '@/api/ecw/channel';
import Template from "@/views/cms/template";
import {getSupplierPage} from "@/api/ecw/supplier";
import { DICT_TYPE } from "@/utils/dict";
import { getCurrencyList } from "@/api/ecw/currency";
import {arrryToKeyedObjectBy} from '@/utils/index'
export default {
components: {Template},
props:{
businessId: [Number, String],
processInstanceId: String
},
name: "BatchFeeApplicationDetail",
data(){
return{
order: null,
feeList: [],
currencyList:[]
}
},
computed:{
currencyMap(){
return arrryToKeyedObjectBy(this.currencyList, 'id')
},
currencyName(){
return id => {
let obj = this.currencyMap[id]
if(obj) return this.$l(obj, 'title')
return this.$t('未知')
}
}
},
created() {
getCurrencyList().then(res => {
this.currencyList = res.data
})
getBatchFeeByBusinessId(this.businessId).then(res => {
console.log({res})
this.feeList = res.data
return getOrder(res.data[0].orderId)
}).then(res => {
this.order = res.data
})
},
methods:{
}
}
</script>
......@@ -159,7 +159,7 @@
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('清关证书备注')">
{{ order.clearCertRemark }}
{{ order.customsClearCertRemarks }}
</el-descriptions-item>
<el-descriptions-item :label="$t('是否拆包')">
{{order.isUnpack? this.$t('是'):this.$t('否')}}
......@@ -168,7 +168,10 @@
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('特殊要求')">
<dict-tag :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" :value="order.packageTypeArr" />
<template v-for="packageType in order.packageType.split(',')">
<dict-tag class="mr-10" v-if="packageType" :key="packageType" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" :value="packageType" />
</template>
</el-descriptions-item>
<el-descriptions-item :label="$t('特殊要求备注')">
{{order.packageRemarks}}
......
......@@ -1273,7 +1273,7 @@ export default {
this.form.packageType = this.form.packageTypeArr.join(',')
// 付款人=发货人提示
if (+this.form.drawee === 1) {
if (+this.form.drawee === 1 && !this.updateChannel) {
await this.$confirm(this.$t('请再次确认运费由您支付还是收货人支付?'))
}
......
......@@ -12,35 +12,35 @@
</div></el-form-item>
<el-form-item :label="$t('发货人')+':'"><div class="content">{{orderDetails.consignorVO ? orderDetails.consignorVO.name :''}}</div></el-form-item>
<el-form-item :label="$t('唛头')"><div class="content">{{orderDetails.marks}}</div></el-form-item>
<el-form-item> <el-button @click="addCost">{{$t('添加申请')}}</el-button></el-form-item>
<el-form-item> <el-button :disabled="!!processInstanceId" @click="addCost">{{$t('添加申请')}}</el-button></el-form-item>
</el-form>
<el-table :data="list">
<el-table-column :label="$t('序号')" type="index"></el-table-column>
<el-table-column :label="$t('费用类型')">
<template v-slot:default = "scope">
<dict-selector :disabled="isModify[forbidden(scope.row)]" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
<dict-selector :disabled="!!processInstanceId" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('金额')">
<template v-slot:default = 'scope'>
<el-input :disabled="isModify[forbidden(scope.row)]" v-model.number="scope.row.applicationFee" ></el-input>
<el-input :disabled="!!processInstanceId" v-model.number="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('货币类型')">
<template v-slot:default = 'scope'>
<el-select :disabled="isModify[forbidden(scope.row)]" v-model="scope.row.applicationFeeCurrency">
<el-select :disabled="!!processInstanceId" v-model="scope.row.applicationFeeCurrency">
<el-option v-for="item in JSON.parse(currencys)" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column :label="$t('付款类型')">
<template v-slot = {row}>
<dict-selector :disabled="isModify[forbidden(row)]" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
<dict-selector :disabled="!!processInstanceId" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template v-slot:default="scope">
<el-input :disabled="isModify[forbidden(scope.row)]" v-model="scope.row.remarks" type="textarea"></el-input>
<el-input :disabled="!!processInstanceId" v-model="scope.row.remarks" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('确认收款')">
......@@ -55,9 +55,10 @@
</el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot:default = 'scope'>
<el-button type="text" v-if="scope.row.status !== 0&&scope.row.status !== 1">{{STATUS[scope.row.status]}}</el-button>
<!--<el-button type="text" v-if="scope.row.status !== 0&&scope.row.status !== 1">{{STATUS[scope.row.status]}}</el-button>
<el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button>
<el-button type="text" v-if="scope.row.status === 2" @click="modify(scope.row)">{{$t('修改')}}</el-button>
<el-button type="text" v-if="scope.row.status === 2" @click="modify(scope.row)">{{$t('修改')}}</el-button>-->
<el-button type="text" :disabled="!!processInstanceId" @click="del(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
......@@ -65,9 +66,9 @@
<work-flow xmlkey="free_apply" v-model="selectedUsers" />
</div>
<div style="text-align: center;margin-top: 20px;">
<el-button v-if="!IsExamine" style="margin-right: 30px;" @click="submit">{{$t('提交')}}</el-button>
<el-button v-if="IsExamine" style="margin-right: 30px;" @click="examineFn">{{$t('审核中')}}</el-button>
<el-button v-if="IsExamine" style="margin-right: 30px;" @click="cancel">{{$t('取消审核')}}</el-button>
<el-button type="primary" v-if="!processInstanceId" style="margin-right: 30px;" @click="submit">{{$t('提交')}}</el-button>
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="goProcessDetail">{{$t('审核中')}}</el-button>
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="cancel">{{$t('取消审核')}}</el-button>
<el-button @click="$emit('update:dialogVisible',false)">{{$t('返回')}}</el-button>
</div>
</div>
......@@ -78,10 +79,14 @@
<script>
import {
getOrder,
feeApplicationCreate,
feeApplicationCreateBatch,
ApplicationListByOrderId,
applicationUpdate,
feeApplicationListByOrderId, feeApplicationCancel
feeApplicationListByOrderId,
feeApplicationCancel,
getFeeApplicationApproveByOrderId,
getBatchFeeByProcessId,
qetBatchFeeByBusinessId, getBatchFeeByBusinessId
} from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import Template from "@/views/cms/template";
......@@ -100,7 +105,11 @@ export default {
data(){
return {
orderDetails:{},
// 费用列表
list:[],
// 审核ID,没有则表示不在审核中
processInstanceId: null,
DICT_TYPE,
getDictDatas,
STATUS:{},
......@@ -114,24 +123,28 @@ export default {
this.STATUS[e.value] = e.label
})
},
computed:{
forbidden(){
return (row)=>{
return this.list.findIndex(e => e.id === row.id)
getOrder(this.orderId).then(res => {
this.orderDetails = res.data
})
// 查询是否有审核中的费用申请
getFeeApplicationApproveByOrderId(this.orderId).then(res => {
if(res.data.formId){
this.processInstanceId = res.data.formId
getBatchFeeByBusinessId(res.data.orderApprovalId).then(res => {
this.list = res.data
})
}
},
IsExamine(){
return this.list.some(e => e.status === 1)
}
})
},
methods:{
del(index){
this.$confirm(this.$t("确定要删除此条费用申请么?")).then(() => {
this.list.splice(index, 1)
})
},
addCost(){
if(this.list.some(e => e.status === 0 || e.status === 1)){
return this.$message.success(this.$t('当前有申请费用为审核中或未提交,请审核后在申请'));
}
this.list.push(
{
this.list.push({
orderId:this.orderId,
feeType:undefined,//费用申请类型
applicationFee:undefined,//金额
......@@ -140,54 +153,24 @@ export default {
receiveFlag:0,
applicationAuthor:undefined,
status:0,
}
)
this.isModify.push(false)
this.isModifyIf = false;
},
submit(){
if(this.isModifyIf){
applicationUpdate({...this.list[this.isModify.findIndex(e => e === false)],status:1}).then(r => {
if(r.code === 0){
this.$emit('update:dialogVisible',false)
this.$message.success(this.$t('修改成功'));
}
})
}else {
if(this.list[this.list.length - 1].status === 0){
feeApplicationCreate( {...this.list[this.list.length - 1],status:1,copyUserId:this.selectedUsers}).then(r=>{
if(r.code === 0){
this.$emit('update:dialogVisible',false)
this.$message.success(this.$t('添加成功'));
this.selectedUsers = [];
}
})
}else {
this.$message.success(this.$t('当前有申请费用为审核中或未提交,请审核后在申请'));
}
}
},
getOrderList(){
ApplicationListByOrderId({orderId: this.orderId}).then(r => {
submit(){
feeApplicationCreateBatch( {
orderFeeApplicationCreateReqVOList: this.list,
copyUserId:this.selectedUsers,
orderId: this.orderId
}).then(r=>{
if(r.code === 0){
this.list = r.data;
this.list.forEach(()=>this.isModify.push(true))
let p = this.list.find(e => e.status === 1)
this.$emit('update:dialogVisible',false)
this.$message.success(this.$t('添加成功'));
this.selectedUsers = [];
}
})
},
modify(row){
if(this.list.some(i => i.status === 0 || i.status === 1))return this.$message.warning(this.$t('当前有未提交的数据或审核中的数据不能修改'))
this.isModifyIf = true;
this.isModify.forEach((item,index)=>{
this.$set(this.isModify, index, true )
})
this.$set(this.isModify, this.list.findIndex(e => e.id === row.id), false )
},
examineFn(){
let item = this.list.find(e => e.status === 1);
console.log(item)
this.$router.push({path:'/bpm/process-instance/detail',query:{id:item.bpmProcessId}})
goProcessDetail(){
this.$emit('update:dialogVisible',false)
this.$router.push('/bpm/process-instance/detail?id=' + this.processInstanceId)
},
cancel(){
this.$prompt(this.$t('请输入取消原因'), this.$t('提示'), {
......@@ -195,7 +178,7 @@ export default {
cancelButtonText: this.$t('取消'),
}).then(({ value }) => {
let item = this.list.find(e => e.status === 1);
feeApplicationCancel({huifu:value,bpmProcessId:item.bpmProcessId}).then(r => {
feeApplicationCancel({huifu:value,bpmProcessId: this.processInstanceId}).then(r => {
this.$message({
type: 'success',
message:this.$t('取消成功')
......
......@@ -497,7 +497,7 @@
<batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/>
<withdrawal v-if="show" :dialog-visible="show" :orderId="orderId" ></withdrawal>
<batch-single-application @getList="getList" :order-list="orderId" :dialog-visible.sync="warehouseBol"></batch-single-application>
<fee-application :order-id="orderId" :currencys="JSON.stringify(currencyList)" :dialog-visible.sync="feeApplicationBol"></fee-application>
<fee-application v-if="feeApplicationBol" :order-id="orderId" :currencys="JSON.stringify(currencyList)" :dialog-visible.sync="feeApplicationBol"></fee-application>
<merge-log :order-no="showMergedLogOrderNo" v-if="showMergedLogOrderNo !== null" @close="showMergedLogOrderNo=null" />
<pickup-log v-if="showPickupLogOrderNo" :order-no="showPickupLogOrderNo" @close="showPickupLogOrderNo=null" @delete="getList" />
<SplitRevoke v-if="splitRevokeOrderId" :order-id="splitRevokeOrderId" @close="splitRevokeOrderId=null;getList()"></SplitRevoke>
......
......@@ -5,7 +5,7 @@
<span>{{ order.orderNo }}</span>
</el-form-item>
<el-form-item :label="$t('线路')">{{ $t('') }}<dict-tag :type="DICT_TYPE.TRANSPORT_TYPE" :value="order.transportId" />
{{ channel ? $l(channel, 'title') : '' }}
{{ order.channelName }}
{{$t("从【{departureName}】发往【{objectiveName}", {departureName: $l(order.logisticsInfoDto, 'startTitle'), objectiveName: $l(order.logisticsInfoDto, 'destTitle')})}}
</el-form-item>
</el-form>
......@@ -109,11 +109,11 @@ export default {
// getProductType(this.orderItem.prodType).then(res => {
// this.productType = res.data
// })
if(this.order.channelId){
/*if(this.order.channelId){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
}
}*/
},
data() {
return {
......@@ -125,7 +125,7 @@ export default {
ccIdArr: [],
form: { },
productType: null,
channel: null
// channel: null
}
},
watch:{
......
This diff is collapsed.
This diff is collapsed.
......@@ -60,6 +60,9 @@
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item v-if="channel" :label="$t('出货渠道')">
{{$l(channel, 'name')}}
</el-form-item>
<!--有路线则不显示路线选择器-->
<routers-selector v-else v-model="selectedRoutes" :option="routerOption" :type="type" />
......@@ -202,7 +205,9 @@
<el-date-picker v-model="form.validateEndDate" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<!--编辑的时候右侧显示快捷设置,查看的时候空运显示商品清关费-->
<el-col :span="12" v-if="!readonly">
<h2>{{$t('快捷设置')}}</h2>
<div class="flex items-center">
{{$t('批量加价')}}+
......@@ -222,6 +227,15 @@
<el-button @click="quickSet" type="primary" :disabled="!quickForm.plus && !quickForm.minus">{{$t('确定')}}</el-button>
</div>
</el-col>
<el-col :span="12" v-else-if="readonly && type === 'air'">
<!--商品清关费-->
<h2>商品清关费价格</h2>
<packaging-type v-if="product && product.priceStepClearanceList && product.priceStepClearanceList.length"
:value="product" key-arr="priceStepClearanceList" readonly/>
<div v-else>
未设置清关费
</div>
</el-col>
</el-row>
</el-card>
......@@ -363,8 +377,10 @@ import Inputor from '@/components/Inputor'
import {parseTime} from '@/utils/ruoyi'
import {openedRouterList} from '@/api/ecw/warehouse'
import Decimal from "decimal.js";
import {getChannel} from "@/api/ecw/channel";
import PackagingType from "@/views/ecw/channel/componrnts/packaging-type.vue";
export default {
components: { RoutersSelector, ProductSelector, Selector, Inputor },
components: {PackagingType, RoutersSelector, ProductSelector, Selector, Inputor },
filters: {parseTime},
data() {
return {
......@@ -399,7 +415,9 @@ export default {
showLogsDialog: false, // 显示价格日志弹层
logs: [],
// 批量加价/减价
quickForm:{} // 快速加价/减价表单
quickForm:{}, // 快速加价/减价表单
// 渠道信息
channel: null
}
},
computed: {
......@@ -555,6 +573,12 @@ export default {
if(this.$route.query.action == 'update'){
let res = await getProductPrice(this.$route.query.id)
this.$set(this, 'form', res.data)
// 显示渠道
if(this.readonly && this.form.shippingChannelId){
getChannel(this.form.shippingChannelId).then(res => {
this.channel = res.data
})
}
if(this.form.needPay){
this.needPay = true
}
......
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