Commit df908536 authored by 邓春圆's avatar 邓春圆

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

parents 30496d46 bf441e68
......@@ -120,4 +120,13 @@ export function getOrderExcptionResult(query) {
method: 'get',
params: query
})
}
// 根据订单ID,异常ID获取价格
export function getOrderExceptionChannelPriceList(data) {
return request({
url: '/order/exception-channel-price/getOrderExceptionChannelPriceList',
method: 'post',
data: data
})
}
\ No newline at end of file
......@@ -3897,5 +3897,6 @@
"收费方数": "",
"可放入重量": "",
"可放入收费重量": "",
"确定注销并退出系统吗?": "Are you sure to log out and exit the system?"
"确定注销并退出系统吗?": "Are you sure to log out and exit the system?",
"若线路价格为全包价,输入清关费不生效":"If the line price is all-inclusive, the input of clearance fees will not take effect."
}
......@@ -403,6 +403,12 @@ export default {
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
// 出货批量加价审核
box_batch_markup:{
component: () => import('@/views/ecw/box/components/batchMakeUpDetail.vue'),
processId: this.processInstance.businessKey,
type: this.processInstance.processDefinition?.formCustomViewPath
}
}
console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
......
This diff is collapsed.
<template>
<div class="app-approvalShipping">
<h1>{{$t('申请信息')}}{{$t('出货信息')}}</h1>
<el-descriptions :column="6" border>
<el-descriptions-item :label="$t('自编号')">{{boxBackVO.selfNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')">
{{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('柜型')">
{{cabinetLabel}}
</el-descriptions-item>
<el-descriptions-item :label="$t('体积/重量')">
{{getVolumeWeight(loadDetail.totalStatistics)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('货柜状态')">
{{boxBackVO.shipmentStatusText}}
</el-descriptions-item>
</el-descriptions>
<div v-if="approvalInfo.applyReason">
<h1>{{$t('申请原因')}}</h1>
<div>
{{approvalInfo.applyReason}}
</div>
</div>
<el-table :data="loadDetail.sectionOrderList" border class="mt-10">
<el-table-column prop="orderNo" :label="$t('订单号')" align="center">
<template v-slot="{row}">
<el-button type="text" @click="jumpOrderDetail(row)">{{row.orderNo}}</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('货物信息')" align="center" width="500px">
<template v-slot="{row}">
<section>
<div v-for="(item, index) in row.goodsList" :key="index">
<div>{{index+1}}{{item.prodTitleZh}}</div>
<div>{{index+1}}{{item.prodTitleEn}}</div>
</div>
</section>
</template>
</el-table-column>
<el-table-column :label="$t('收费箱数')" align="center" prop="num"></el-table-column>
<el-table-colume :label="$t('收费体积')" align="center" prop="chargeVolume"></el-table-colume>
<el-table-column :label="$t('收费重量')" align="center" prop="chargeWeight"></el-table-column>
<el-table-column :label="$t('原成交单价')" align="center">
<template>
// TODO
</template>
</el-table-column>
<el-table-column :label="$t('新成交单价')" align="center">
<template>
// TODO
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { approvalDetail } from "@/api/ecw/box";
import { getSeaStatus, getTotlContent } from "../shippingSea/utils";
import { getCabinetPage } from "@/api/ecw/cabinet";
import { getChannelList } from "@/api/ecw/channel";
import Decimal from "decimal.js";
import Template from "@/views/cms/template/index.vue";
/**
* 批量加价审核详情
*/
export default {
name: "BatchMakeUpDetail",
components: {Template},
props: {
processId: {
type: [Number, String],
},
type: String,
},
data() {
return {
approvalInfo: {},
boxBackVO: {},
loadDetail: {},
// 柜型
cabinetLabel: "",
//渠道
channelList: [],
// 弹出配置
dialogConfig: {
title: "",
visible: false,
},
srcStrs: [],
};
},
created() {
getChannelList().then((res) => (this.channelList = res.data));
},
methods: {
getTotlContent,
/* 获取详情 */
getApprovalDetail(processId) {
approvalDetail({ approvalId: processId }).then((res) => {
this.approvalInfo = res.data.approvalInfo;
this.boxBackVO = res.data.boxBackVO;
this.loadDetail = res.data.loadDetail;
});
},
/* 获取柜型 */
getCabinetLabel(cabinetId) {
getCabinetPage(null).then((response) => {
const cabinetList = response.data.list;
for (const cabinetItem of cabinetList) {
if (cabinetItem.id == cabinetId) {
this.cabinetLabel = cabinetItem.name;
break;
}
}
});
},
/* 合计 */
calcSum(goodsList) {
let sum = 0;
goodsList.forEach((element) => {
sum = Decimal.add(sum, element.num).toNumber();
});
return sum;
},
/* 跳转订单详情 */
jumpOrderDetail(row) {
this.$router.push("/order/detail?orderId=" + row.orderId);
},
},
watch: {
processId: {
immediate: true,
handler(val) {
this.getApprovalDetail(val);
},
},
boxBackVO(val) {
// 柜型
this.getCabinetLabel(val.cabinetId);
},
},
computed: {
/* 渠道 */
getShipChannelName() {
return (shippingChannelId) => {
for (const channelItem of this.channelList) {
if (channelItem.channelId == shippingChannelId) {
return this.$l(channelItem, "name");
}
}
};
},
/* 体积重量 */
getVolumeWeight() {
return (total) => {
return this.getTotlContent(total);
};
},
/* 是否显示卸柜箱数 */
isShowColumn() {
return (shippingVO) => {
return getSeaStatus(shippingVO) >= 182 ? true : false;
};
},
},
};
</script>
<style lang="scss" scoped>
.el-image {
border-radius: 5px;
background-color: #ebeef5;
box-shadow: 0 0 5px 1px #ccc;
::v-deep .el-image__inner {
transition: all 0.3s;
cursor: pointer;
&:hover {
transform: scale(1.2);
}
}
::v-deep .image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
color: #909399;
font-size: 30px;
}
}
</style>
......@@ -118,7 +118,7 @@
<el-dropdown-item command="error">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost">{{$t('费用登记')}}</el-dropdown-item>
<el-dropdown-item command="batchMarkup">{{$t('批量加价')}}</el-dropdown-item>
<el-dropdown-item :disabled="scope.row.ldStatus<46" command="editLadingBill">{{$t('编辑提货单')}}</el-dropdown-item>
<el-dropdown-item :disabled="scope.row.prStatus<25" command="editLadingBill">{{$t('编辑提货单')}}</el-dropdown-item>
<!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item>-->
</el-dropdown-menu>
......
......@@ -494,7 +494,7 @@ export default {
break;
case "router":
this.$router.push("/boxSea/shippingSea/" + this.shipmentId);
this.$router.push("/boxAir/shippingAir/" + this.shipmentId);
break;
case "cost":
......
......@@ -2,7 +2,7 @@
<div>
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item :label="$t('代理商Agent')" prop="agentId">
<supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" @change="changesupplier" />
<supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
<el-button v-hasPermi="['ecw:supplier:query']" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button>
</el-form-item>
</el-form>
......@@ -63,11 +63,9 @@ export default {
this.$emit("closeDialog", type);
},
SupplierDetail(){
this.supplierId = this.agentObj.agentId
this.$router.push('/supplier/detail?id='+this.supplierId)
},
changesupplier(val){
this.supplierId = val
}
},
};
</script>
......
......@@ -70,7 +70,7 @@
{{getCheckExamineStatus}}
</el-form-item>
</el-form-item>
<el-form-item v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 1">
<el-form-item v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 1 && shipmentObj.overMachineExamineStatus == 0 && (typeof cusDeclarationObj.id != 'undefined')">
<el-button type="primary" @click="approvalCreate">{{$t('提交删单退场审核')}}</el-button>
</el-form-item>
<el-form-item prop="weightMisreport" v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 2">
......@@ -106,11 +106,8 @@
</el-form-item>
</el-form>
<el-row class="operate-button" v-if="inReview">
<el-button type="primary" @click="jumpReviewDetail">{{cusDeclarationObj.dcCheckStatus === '1' ? $t('全部退场审核中') : $t('部分退场审核中')}}</el-button>
<el-button type="primary" plain @click="canclAudit">{{cusDeclarationObj.dcCheckStatus === '1' ? $t('取消全部退场审核') : $t('取消部分退场审核')}}</el-button>
</el-row>
<el-row class="operate-button">
<el-button type="primary" v-if="inReview" plain @click="canclAudit">{{$t('取消删单退场审核')}}</el-button>
<el-button type="primary" @click="onSubmit(1)" :disabled="isCheckDeal('submit')">{{$t('保存')}}</el-button>
<el-button type="success" v-if="!inReview" @click="onSubmit(2)" :disabled="isCheckDeal('submit')">{{$t('提交')}}</el-button>
<el-button @click="cancel">{{$t('关闭')}}</el-button>
......@@ -289,10 +286,15 @@ export default {
oldData.overDealUser = this.strToArray(oldData.overDealUser)
oldData.overOrders = this.strToArray(oldData.overOrders)
this.cusDeclarationObj = oldData;console.log(this.cusDeclarationObj.overDealUser)
this.cusDeclarationObj = oldData;
if(this.shipmentObj.overMachineExamineStatus == 1){
this.$set(this.cusDeclarationObj, "overMachineStatus", 2)
this.$set(this.cusDeclarationObj, "overMachineAbnormalStatus", 1)
}
},
methods: {
strToArray(str) {
if(!str) return []
let array = str?.split(",") ?? []
return array.map(item=>{return Number(item)})
},
......@@ -369,10 +371,9 @@ export default {
approvalCreate({
shipmentId: this.shipmentObj.id,
approvalStatus: 0,
approvalType: 10
approvalType: 11
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel("submit");
});
});
},
......@@ -399,18 +400,18 @@ export default {
}
// 3.查验状态,查验后放行 直接提交
if (dcCheckStatus === "3") {
const { checkExamineStatus } = this.shipmentObj;
const { overMachineExamineStatus } = this.shipmentObj;
// 没有退场审核中的状态
if (checkExamineStatus !== 1) {
if (overMachineExamineStatus !== 1) {
this.submitCustomsCreate(operateType);
return;
}
}
// 4.查验状态,退场/部分退场 提示
if (["1", "2"].includes(dcCheckStatus)) {
const { checkExamineStatus } = this.shipmentObj;
const { overMachineExamineStatus } = this.shipmentObj;
// 退场审核状态,1-审核中,2-审核成功,3-审核失败,4-取消
if ([0, 2, 3, 4].includes(checkExamineStatus)) {
if ([0, 2, 3, 4].includes(overMachineExamineStatus)) {
this.$modal
.confirm(this.$t(
`您确认提交${
......@@ -558,9 +559,10 @@ export default {
},
/* 取消审核 */
canclAudit() {
console.log(this.shipmentObj)
approvalCancel({
applyReason: this.$t("取消审核"),
id: this.shipmentObj["customsApprovalInfo"].id,
id: this.shipmentObj["customsDeleteExitApprovalInfo"].id,
shipmentId: this.shipmentObj.id,
}).then((res) => {
serviceMsg(res, this).then(() => {
......@@ -572,11 +574,11 @@ export default {
},
/* 判断查验选择是否禁用 */
disabledRadio(item) {
const { checkExamineStatus, checkDealStatus, customsInfo } =
const { overMachineExamineStatus, checkDealStatus, customsInfo } =
this.shipmentObj;
const { dcCheckStatus } = customsInfo ?? {}; // 部分退场状态并且审核通过,退场不可选择
if (
checkExamineStatus === 2 &&
overMachineExamineStatus === 2 &&
dcCheckStatus === 2 &&
checkDealStatus === 0 &&
item.value === "1"
......@@ -627,8 +629,8 @@ export default {
immediate: true,
handler: function (val) {
// 监听查验状态变化
let { checkExamineStatus } = val;
if (checkExamineStatus === 1) {
let { overMachineExamineStatus } = val;
if (overMachineExamineStatus === 1) {
// 按钮变成审核中
this.inReview = true;
}
......@@ -653,15 +655,15 @@ export default {
computed: {
/* 获取报关审核退场状态文字 */
getCheckExamineStatus() {
const { checkExamineStatus, checkDealStatus, customsInfo } =
const { overMachineExamineStatus, checkDealStatus, customsInfo } =
this.shipmentObj;
const { dcCheckStatus } = customsInfo ?? {};
if (checkExamineStatus === 1) {
if (overMachineExamineStatus === 1) {
return dcCheckStatus === 1
? this.$t("退场审核中")
: this.$t("部分退场审核中");
}
if (checkExamineStatus === 2 && checkDealStatus === 0) {
if (overMachineExamineStatus === 2 && checkDealStatus === 0) {
return dcCheckStatus === 1
? this.$t("审核通过,退场中")
: this.$t("审核通过,部分退场中");
......@@ -671,7 +673,7 @@ export default {
/* 判断是否已处理 */
isCheckDeal() {
return (type) => {
const { checkExamineStatus, checkDealStatus, customsInfo } =
const { overMachineExamineStatus, checkDealStatus, customsInfo } =
this.shipmentObj;
const { dcCheckStatus } = customsInfo ?? {};
......@@ -679,7 +681,7 @@ export default {
if (type === "status") {
// 退场/部分退场 审核通过未处理,禁用
if (
checkExamineStatus === 2 &&
overMachineExamineStatus === 2 &&
[1, 2].includes(dcCheckStatus) &&
checkDealStatus === 0
) {
......@@ -692,7 +694,7 @@ export default {
// 退场 审核通过未处理,禁用
// 部分退场 审核通过未处理,由 disabledRadio 方法判断
if (
checkExamineStatus === 2 &&
overMachineExamineStatus === 2 &&
[1].includes(dcCheckStatus) &&
checkDealStatus === 0
) {
......@@ -704,7 +706,7 @@ export default {
if (type === "submit") {
const { dcCheckStatus: newCheckStatus } = this.cusDeclarationObj;
// 退场/部分退场 审核通过未处理
if (checkExamineStatus === 2 && checkDealStatus === 0) {
if (overMachineExamineStatus === 2 && checkDealStatus === 0) {
// 退场,禁用
if (dcCheckStatus === 1) return true;
// 部分退场
......
......@@ -122,7 +122,7 @@
</div>
</el-dialog>
<!-- 打印标签 -->
<el-dialog :title="$t('集运封箱标签')" :visible.sync="printdialogVisible" width="300px" :modal-append-to-body="false" append-to-body>
<el-dialog :title="$t('集运封箱标签')" :visible.sync="printdialogVisible" width="350px" :modal-append-to-body="false" append-to-body>
<print-tag v-if="printdialogVisible" :tagData="tagData" />
</el-dialog>
</el-row>
......
......@@ -64,7 +64,7 @@
</template>
</el-table-column>
<el-table-column :label="$t('实装箱数')" align="center" prop="installNum" />
<el-table-column :label="$t('卸柜箱数')" align="center" prop="unloadNum" />
<el-table-column :label="$t('到仓箱数')" align="center" prop="unloadNum" />
<el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template>
</el-table-column>
......@@ -106,7 +106,7 @@
</div>
<div class="label-font">
<p>
<span>{{$t('已卸')}}:</span>
<span>{{$t('到仓')}}:</span>
<span>{{getUnLoadNumCount}}</span>
</p>
</div>
......@@ -263,16 +263,21 @@ export default {
},
/** 提交 */
onSubmit() {
approvalCreate({
shipmentId: this.$attrs.shipmentObj.id,
approvalStatus: 0,
approvalType: 3, // 卸柜
copyUserId: this.selectedUsers,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel();
if(this.getUnLoadNumCount>0){
approvalCreate({
shipmentId: this.$attrs.shipmentObj.id,
approvalStatus: 0,
approvalType: 3, // 卸柜
copyUserId: this.selectedUsers,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel();
});
});
});
}else{
this.$message.error(this.$t("货物到仓数小于实装数,请确认"));
}
},
/** 取消 */
cancel() {
......
......@@ -102,7 +102,7 @@ import {getUnitList} from "@/api/ecw/unit"
import { getCurrencyList } from '@/api/ecw/currency'
import {getProductAttrList} from '@/api/ecw/productAttr'
import Decimal from 'decimal.js'
import {getExceptionById} from '@/api/ecw/orderException'
import {getExceptionById,getOrderExceptionChannelPriceList} from '@/api/ecw/orderException'
export default {
name: 'NotShipingChannel',
......@@ -147,6 +147,7 @@ export default {
}
},
async created(){
await getUnitList().then(res => this.unitList = res.data)
await getCurrencyList().then(res => this.currencyList = res.data)
this.productAttrList = (await getProductAttrList()).data
if(this.id){
......@@ -161,6 +162,7 @@ export default {
if(res.data.orderId){
getOrder(res.data.orderId).then(res => {
this.order = res.data
this.getExceptionPriceList(res.data.orderId)
})
}
})
......@@ -182,6 +184,25 @@ export default {
this.channel = res.data
})
},
getExceptionPriceList(orderId){
let that = this
getOrderExceptionChannelPriceList({orderId:orderId,exceptionId:parseInt(that.id)}).then(res=>{
if(res.code==0&&res.data.length>0){
that.order.orderItemVOList.map(v=>{
var item = res.data.find(vs=>vs.orderItemId==v.orderItemId)
if(item){
v.oneSeaFreight = item.freightFee
v.seaFreightCurrency = item.freightCurrencyId
v.seaFreightVolume = item.freightUnitId
v.oneClearanceFreight = item.clearanceFee
v.clearanceFreightCurrency = item.clearanceCurrencyId
v.clearanceFreightVolume = item.clearanceUnitId
}
})
}
})
}
}
}
</script>
......
......@@ -832,8 +832,8 @@ export default {
}
},
'form.transportId'(transportId, oldTransportId){
// 海运拼柜给表单默认值
if(this.form.transportId == 4){
// 空运
if(this.form.transportId == 4 || this.form.transportId == 3){
this.$nextTick(() => {
this.$set(this, 'form', Object.assign(this.form, {
doubleClear: 2,
......@@ -854,8 +854,9 @@ export default {
this.$set(this.form, 'channelId', null)
}
// 如果是专线空运默认目的港清关选择我司
if(transportId == 3){
// 如果是专线空运默认目的港清关选择我司
this.$set(this.form, 'portDestCustomsClear', 1)
}
......
......@@ -632,9 +632,15 @@ export default {
// 渠道列表,空运需要渠道筛选
channelList:[],
// 编号搜索条件
noParam: {},
noParam: {
key: 'numberKey',
value: ''
},
// 商品搜索条件
prodParam: {}
prodParam: {
key: 'prodKey',
value: ''
}
};
},
watch:{
......@@ -877,6 +883,8 @@ export default {
page: 1,
rows: 10
}
this.noParam.value = ''
this.prodParam.value = ''
this.dateFilter = []
this.handleQuery();
},
......
This diff is collapsed.
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