Commit 31d93922 authored by lanbaoming's avatar lanbaoming

2024-05-23-4提交

parent 97a11006
......@@ -59,6 +59,15 @@ export function getCustomerContactsSelect(query) {
params: query
})
}
export function getCustomerContactsSelect2(query) {
return request({
url: '/ecw/customer-contacts/select2',
method: 'get',
params: query
})
}
// 导出客户联系人 Excel
export function exportCustomerContactsExcel(query) {
return request({
......
......@@ -62,7 +62,10 @@
</el-dialog>
</template>
<script>
import { getCustomerContactsSelect } from "@/api/ecw/customerContacts";
import {
getCustomerContactsSelect,
getCustomerContactsSelect2,
} from "@/api/ecw/customerContacts";
export default {
props: {
type: Number,
......@@ -89,11 +92,18 @@ export default {
this.loadList();
},
loadList() {
//加载联系人数据
//加载联系人数据,怎样使用属性
if (this.type == "1") {
getCustomerContactsSelect2(this.form).then((res) => {
this.list = res.data.list;
this.total = res.data.total;
});
} else {
getCustomerContactsSelect(this.form).then((res) => {
this.list = res.data.list;
this.total = res.data.total;
});
}
},
closeDialog() {
this.show = false;
......
......@@ -228,13 +228,14 @@
:label="$t('报关费用')"
align="center"
></el-table-column>
<!--
<el-table-column
prop=""
:label="$t('异常操作')"
align="center"
width="120px"
>
<!--lanbm 2024-05-23 添加异常登记功能-->
lanbm 2024-05-23 添加异常登记功能
<template slot-scope="scope">
<el-button
type="primary"
......@@ -243,7 +244,8 @@
>{{ $t("异常登记") }}</el-button
>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column
prop=""
:label="$t('操作')"
......@@ -492,7 +494,6 @@
</el-tabs>
</el-col>
</el-row>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title="dialogConfig.title"
......@@ -538,6 +539,23 @@
/>
</template>
</el-dialog>
<!-- 对话框 lanbm 2024-05-23 add异常登记对话框 -->
<el-dialog
custom-class="shipping-dialog"
:title="$t('异常')"
:visible.sync="dialogVisible"
width="600px"
:modal-append-to-body="false"
append-to-body
>
<unloadingError
v-if="dialogVisible"
@closeDialog="closeDialog_2"
v-bind="$attrs"
:currRow="currRow"
/>
</el-dialog>
</div>
</template>
......@@ -570,6 +588,7 @@ import updateError from "./updateError.vue";
import { listUser } from "@/api/system/user";
//lanbm 2024-05-16 add
import { getCurrencyList } from "@/api/ecw/currency";
import unloadingError from "@/views/ecw/box/shippingSea/nodePage/unloading/unloadingError.vue";
export default {
name: "EcwBoxQuery",
......@@ -581,6 +600,8 @@ export default {
regError,
editForm,
updateError,
//lanbm 2024-05-23 异常登记对话框
unloadingError,
},
created() {
this.transportTypes = this.getDictDatas(
......@@ -693,6 +714,9 @@ export default {
},
//币种信息 lanbm 2024-05-16 add
currencyList: [],
// 当前行
currRow: {},
dialogVisible: false,
};
},
methods: {
......@@ -712,11 +736,14 @@ export default {
handleSelectionChange(selected) {
this.selectedRows = selected;
},
closeDialog_2() {
//关闭异常对话框
this.dialogVisible = false;
},
updateStatus_2(type, row) {
//lanbm 2024-05-23 添加的异常登记功能
this.$set(this.dialogConfig, "visible", true);
this.$set(this.dialogConfig, "title", this.$t("异常登记"));
this.$set(this.dialogConfig, "type", "error");
this.currRow = row;
this.dialogVisible = true;
},
/* 更新状态 */
updateStatus(type, row) {
......
......@@ -274,6 +274,7 @@
:label="$t('报关费用')"
align="center"
></el-table-column>
<!--
<el-table-column
prop=""
:label="$t('异常操作')"
......@@ -289,7 +290,8 @@
>{{ $t("异常登记") }}</el-button
>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column
prop=""
:label="$t('操作')"
......
......@@ -77,6 +77,7 @@
<el-button type="primary" @click="handleQuery">{{
$t("查找")
}}</el-button>
<!--
<el-button type="primary" @click="handleQuery2">{{
$t("批量反审核")
}}</el-button>
......@@ -85,7 +86,8 @@
}}</el-button>
<el-button type="primary" @click="handleQuery3">{{
$t("批量核销")
}}</el-button>
}}</el-button>-->
</el-form-item>
</el-row>
</el-form>
......
......@@ -909,6 +909,7 @@
<choose-contact-dialog
v-if="!!contactChooseType"
:type="1"
@choose="onContactChoose"
@close="contactChooseType = null"
/>
......
......@@ -626,7 +626,7 @@
</div>
</el-dialog>
<choose-contact-dialog v-if="!!contactChooseType" @choose="onContactChoose" @close="contactChooseType=null" />
<choose-contact-dialog v-if="!!contactChooseType" :type="2" @choose="onContactChoose" @close="contactChooseType=null" />
<quick-create-customer v-if="quickCreateType" :type="quickCreateType" @success="onContactChoose" @close="quickCreateType=null" />
</div>
</template>
......
......@@ -4,83 +4,97 @@
<order-base-info :order="order"></order-base-info>
<div style="margin-top: 20px;display: none">
<span>{{$t('储位')}}{{ ($refs.area ? $refs.area.selected : []).join(',') }}</span>
<el-button type="primary" size="mini" @click="areaVisible = true" style="margin-left: 15px">{{$t('选择')}}</el-button>
<div style="margin-top: 20px; display: none">
<span
>{{ $t("储位") }}{{
($refs.area ? $refs.area.selected : []).join(",")
}}</span
>
<el-button
type="primary"
size="mini"
@click="areaVisible = true"
style="margin-left: 15px"
>{{ $t("选择") }}</el-button
>
</div>
<h2>{{$t('货物信息')}}</h2>
<h2>{{ $t("货物信息") }}</h2>
<el-table
v-if="order.orderItemVOList && order.orderItemVOList.length > 0 && orderItemList && orderItemList.length > 0"
v-if="
order.orderItemVOList &&
order.orderItemVOList.length > 0 &&
orderItemList &&
orderItemList.length > 0
"
:data="order.orderItemVOList || []"
style="width: 100%">
<el-table-column
type="index"
width="50"
:label="$t('序号')">
style="width: 100%"
>
<el-table-column type="index" width="50" :label="$t('序号')">
</el-table-column>
<el-table-column
prop="prodTitleZh"
:label="$t('品名')">
<template v-slot="{row}">
{{ row.prodTitleZh }}<br>
<el-table-column prop="prodTitleZh" :label="$t('品名')">
<template v-slot="{ row }">
{{ row.prodTitleZh }}<br />
{{ row.prodTitleEn }}
</template>
</el-table-column>
<el-table-column
:label="$t('填单货物属性')">
<template v-slot="{row}">
<span v-if="row.isWarehouseInAdd">{{$t('非填单货物信息')}}</span>
<el-table-column :label="$t('填单货物属性')">
<template v-slot="{ row }">
<span v-if="row.isWarehouseInAdd">{{ $t("非填单货物信息") }}</span>
<template v-else>
{{$t('品牌')}}{{ [$t('无牌'), $t('有牌'), $t('中性')][row.brandType] }}<br>
{{$t('箱数')}}{{ row.num }}<br>
{{$t('体积')}}{{ row.volume }}<br>
{{$t('重量')}}{{ row.weight }}Kg
{{ $t("品牌") }}{{
[$t("无牌"), $t("有牌"), $t("中性")][row.brandType]
}}<br />
{{ $t("箱数") }}{{ row.num }}<br />
{{ $t("体积") }}{{ row.volume }}<br />
{{ $t("重量") }}{{ row.weight }}Kg
</template>
</template>
</el-table-column>
<el-table-column
:label="$t('入库货物属性')">
<template v-slot="{row}">
<el-table-column :label="$t('入库货物属性')">
<template v-slot="{ row }">
<template v-if="row.warehouseInInfoVO">
{{$t('品牌')}}{{ row.brandName }}<br>
{{$t('箱数')}}{{ row.warehouseInInfoVO.cartonsNum }}<br>
{{$t('体积')}}{{ row.warehouseInInfoVO.volume }}<br>
{{$t('重量')}}{{ row.warehouseInInfoVO.weight }}Kg
{{ $t("品牌") }}{{ row.brandName }}<br />
{{ $t("箱数") }}{{ row.warehouseInInfoVO.cartonsNum }}<br />
{{ $t("体积") }}{{ row.warehouseInInfoVO.volume }}<br />
{{ $t("重量") }}{{ row.warehouseInInfoVO.weight }}Kg
</template>
<span v-else>{{$t('暂无入仓信息')}}</span>
<span v-else>{{ $t("暂无入仓信息") }}</span>
</template>
</el-table-column>
<el-table-column
prop="expressNo"
v-slot="{row}"
:label="$t('快递单号')">
{{ row.expressNo || (row.warehouseInInfoVO ? row.warehouseInInfoVO.expressNo : '') }}
v-slot="{ row }"
:label="$t('快递单号')"
>
{{
row.expressNo ||
(row.warehouseInInfoVO ? row.warehouseInInfoVO.expressNo : "")
}}
</el-table-column>
<el-table-column
prop="createTime"
:label="$t('最后操作时间')">
<template v-slot="{row}">
<el-table-column prop="createTime" :label="$t('最后操作时间')">
<template v-slot="{ row }">
{{ parseTime(row.updateTime) }}
</template>
</el-table-column>
<el-table-column
prop="diffType"
v-slot="{row}"
:label="$t('状态')">
<el-table-column prop="diffType" v-slot="{ row }" :label="$t('状态')">
<dict-tag
v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.diffType"
:type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS"
:value="row.warehouseInInfoVO.diffType"
class="red"
:class="{green: row.warehouseInInfoVO.diffType === 4}"
:class="{ green: row.warehouseInInfoVO.diffType === 4 }"
/>
<span :class="{red: row.itemStatus === 3}" v-else>{{ row.itemStatus === 3 ? ($t('少了') + row.num + $t('箱')) : $t('待入仓') }}</span>
<span class="red" v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.cartonsNumDiff">{{ row.warehouseInInfoVO.cartonsNumDiff }}{{$t('箱')}}</span>
<span :class="{ red: row.itemStatus === 3 }" v-else>{{
row.itemStatus === 3 ? $t("少了") + row.num + $t("箱") : $t("待入仓")
}}</span>
<span
class="red"
v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.cartonsNumDiff"
>{{ row.warehouseInInfoVO.cartonsNumDiff }}{{ $t("箱") }}</span
>
</el-table-column>
<el-table-column
prop="address"
:label="$t('操作')">
<el-table-column prop="address" :label="$t('操作')">
<template v-slot="{ row, column, $index }">
<warehouse
v-if="isEdit"
......@@ -89,21 +103,32 @@
:order-item-b="orderItemList[$index]"
:title="$t('修改')"
:order="order"
@close="getList"></warehouse>
<template v-else-if="
wareItem(row.orderItemId)
&& wareItem(row.orderItemId).orderWarehouseInBackItemDoList
&& wareItem(row.orderItemId).orderWarehouseInBackItemDoList.length > 0">
<!-- <template v-if="!order.parentOrderId">-->
@close="getList"
></warehouse>
<template
v-else-if="
wareItem(row.orderItemId) &&
wareItem(row.orderItemId).orderWarehouseInBackItemDoList &&
wareItem(row.orderItemId).orderWarehouseInBackItemDoList.length >
0
"
>
<!-- <template v-if="!order.parentOrderId">-->
<warehouse
v-if="!isEdit"
:order-item-a="order.orderItemVOList[$index]"
:order-item-b="orderItemList[$index]"
:title="$t('追加')"
:order="order"
@close="getList"></warehouse>
<el-button size="mini" type="text" @click="handleWarehousingReturn(row)">{{$t('退仓')}}</el-button>
<!-- </template>-->
@close="getList"
></warehouse>
<el-button
size="mini"
type="text"
@click="handleWarehousingReturn(row)"
>{{ $t("退仓") }}</el-button
>
<!-- </template>-->
</template>
<warehouse
v-else
......@@ -111,88 +136,182 @@
:order-item-b="orderItemList[$index]"
:title="$t('入仓')"
:order="order"
@close="getList"></warehouse>
@close="getList"
></warehouse>
</template>
</el-table-column>
</el-table>
<el-card v-if="order.parentOrderId" style="margin-top: 20px">
<div slot="header" class="clearfix">
<span style="font-size: 18px">{{$t('标签箱号')}}</span>
<span style="font-size: 18px">{{ $t("标签箱号") }}</span>
</div>
<div v-for="(item, index) in label.orderLabelDtoList" :key="index" style="margin-bottom: 10px">
<el-input-number v-model="item.start" controls-position="right"></el-input-number> -
<el-input-number v-model="item.end" controls-position="right"></el-input-number>
<el-button icon="el-icon-minus" circle v-show="index !== 0" @click="label.orderLabelDtoList.splice(index, 1)" style="margin-left: 10px"></el-button>
<el-button icon="el-icon-plus" circle @click="handleLabelAdd(index)"></el-button>
<div
v-for="(item, index) in label.orderLabelDtoList"
:key="index"
style="margin-bottom: 10px"
>
<el-input-number
v-model="item.start"
controls-position="right"
></el-input-number>
-
<el-input-number
v-model="item.end"
controls-position="right"
></el-input-number>
<el-button
icon="el-icon-minus"
circle
v-show="index !== 0"
@click="label.orderLabelDtoList.splice(index, 1)"
style="margin-left: 10px"
></el-button>
<el-button
icon="el-icon-plus"
circle
@click="handleLabelAdd(index)"
></el-button>
</div>
<div style="text-align: center">
<el-button type="primary" @click="handleLabelSubmit">{{$t('修改箱号')}}</el-button>
<el-button type="primary" @click="handleLabelSubmit">{{
$t("修改箱号")
}}</el-button>
</div>
</el-card>
<h2 v-if="orderSpecialNeeds.length > 0">{{$t('特殊需求')}}</h2>
<h2 v-if="orderSpecialNeeds.length > 0">{{ $t("特殊需求") }}</h2>
<el-form ref="form" :model="form" label-width="200px">
<el-form-item :label="$i18n.locale === 'en_US' ? item.labelEn : item.label" v-for="(item, index) in orderSpecialNeeds" :key="item.value" style="width: 600px">
<el-input-number v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoney" type="number" :min="0" step-strictly :placeholder="$t('请输入') + ($i18n.locale === 'en_US' ? item.labelEn : item.label)"></el-input-number>
<el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" :placeholder="$t('请选择')" style="width: 100px">
<el-form-item
:label="$i18n.locale === 'en_US' ? item.labelEn : item.label"
v-for="(item, index) in orderSpecialNeeds"
:key="item.value"
style="width: 600px"
>
<el-input-number
v-model="
form.orderSpecialNeedReceivableReqVoList[index].receivableMoney
"
type="number"
:min="0"
step-strictly
:placeholder="
$t('请输入') +
($i18n.locale === 'en_US' ? item.labelEn : item.label)
"
></el-input-number>
<el-select
v-model="
form.orderSpecialNeedReceivableReqVoList[index]
.receivableMoneyCurrency
"
:placeholder="$t('请选择')"
style="width: 100px"
>
<el-option
v-for="item in currencyList"
:key="item.id"
:label="$i18n.locale === 'en_US' ? item.titleEn : item.titleZh"
:value="item.id">
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<h2>{{$t('订单数据')}}</h2>
<h2>{{ $t("订单数据") }}</h2>
<el-form-item :label="$t('总方数')" style="width: 380px">
<el-input v-model="form.sumVolume" :placeholder="$t('请输入总方数')" readonly>
<el-input
v-model="form.sumVolume"
:placeholder="$t('请输入总方数')"
readonly
>
<span slot="append"></span>
</el-input>
</el-form-item>
<el-form-item :label="$t('总重量')" style="width: 380px">
<el-input v-model="form.sumWeight" :placeholder="$t('请输入总重量')" readonly>
<el-input
v-model="form.sumWeight"
:placeholder="$t('请输入总重量')"
readonly
>
<span slot="append">kg</span>
</el-input>
</el-form-item>
<el-card style="margin-top: 15px;">
<el-card style="margin-top: 15px">
<div slot="header" class="clearfix">
<span style="font-size: 18px">{{$t('入仓影像')}}</span>
<span style="font-size: 18px">{{ $t("入仓影像") }}</span>
</div>
<div>
<image-and-video-upload readonly :fileSize="50" :isShowTip="true" :value="form.urls" ></image-and-video-upload>
<image-and-video-upload
readonly
:fileSize="50"
:isShowTip="true"
:value="form.urls"
></image-and-video-upload>
</div>
</el-card>
<div style="text-align: center;margin-top: 15px" v-if="!(order.status !== 3 && isEdit)">
<el-button @click="escapeBol = true;" type="primary">{{$t('转异')}}</el-button>
<el-button type="primary" @click="finishVisible = true">{{$t('完成入仓')}}</el-button>
<div
style="text-align: center; margin-top: 15px"
v-if="!(order.status !== 3 && isEdit)"
>
<el-button @click="escapeBol = true" type="primary">{{
$t("转异")
}}</el-button>
<el-button type="primary" @click="finishVisible = true">{{
$t("完成入仓")
}}</el-button>
</div>
</el-form>
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :warehouse-id="warehouseId" :is-editing="isEdit"></warehouse-area-dialog>
<warehouse-area-dialog
ref="area"
:visible.sync="areaVisible"
v-model="form.orderLocationCreateReqVOList"
:order-id="orderId"
:warehouse-id="warehouseId"
:is-editing="isEdit"
></warehouse-area-dialog>
<!-- 完成入仓 -->
<!-- 完成入仓 -->
<el-dialog
:title="$t('确认入仓')"
:visible.sync="finishVisible"
width="300px">
<div style="text-align: center">{{$t('在完成入仓前,您还可以')}}</div>
<div style="text-align: center;padding: 15px 0">
<!-- <el-button type="info" @click="areaVisible = true">{{$t('选择储位')}}</el-button>-->
<el-button type="info" @click="isShowPrintTag = true">{{$t('打印标签')}}</el-button>
width="300px"
>
<div style="text-align: center">{{ $t("在完成入仓前,您还可以") }}</div>
<div style="text-align: center; padding: 15px 0">
<!-- <el-button type="info" @click="areaVisible = true">{{$t('选择储位')}}</el-button>-->
<el-button type="info" @click="isShowPrintTag = true">{{
$t("打印标签")
}}</el-button>
</div>
<div style="text-align: center">
<el-button type="primary" @click="handleSubmit()">{{$t('确 定')}}</el-button>
<el-button type="primary" @click="handleSubmit()">{{
$t("确 定")
}}</el-button>
</div>
</el-dialog>
<el-dialog :title="order.orderNo + $t('订单转异')" center :visible.sync="escapeBol">
<el-form label-position="top" label-width="200" ref="exceptionForm" :model="form" :rules="exceptionRules">
<el-dialog
:title="order.orderNo + $t('订单转异')"
center
:visible.sync="escapeBol"
>
<el-form
label-position="top"
label-width="200"
ref="exceptionForm"
:model="form"
:rules="exceptionRules"
>
<el-form-item :label="$t('原因类型')" prop="manualExceptionType">
<dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector>
<dict-selector
v-model="form.manualExceptionType"
form-type="checkbox"
:type="DICT_TYPE.MANUAL_EXCEPTION_TYPE"
multiple
></dict-selector>
</el-form-item>
<el-form-item :label="$t('附件')">
<image-upload v-model="form.exceptionUrls"></image-upload>
......@@ -202,39 +321,51 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleException">{{$t('确认并完成入仓')}}</el-button>
<el-button @click="escapeBol = false">{{$t('取消')}}</el-button>
<el-button type="primary" @click="handleException">{{
$t("确认并完成入仓")
}}</el-button>
<el-button @click="escapeBol = false">{{ $t("取消") }}</el-button>
</span>
</el-dialog>
<print-tag v-if="isShowPrintTag" :order-id="orderId" @close="isShowPrintTag = false"></print-tag>
<print-tag
v-if="isShowPrintTag"
:order-id="orderId"
@close="isShowPrintTag = false"
></print-tag>
<print-warehouse-receipt v-if="isShowPrint" :order-id="orderId" @close="isShowPrint = false" />
<print-warehouse-receipt
v-if="isShowPrint"
:order-id="orderId"
@close="isShowPrint = false"
/>
</div>
</template>
<script>
import {getCurrencyList} from "@/api/ecw/currency"
import { getCurrencyList } from "@/api/ecw/currency";
import {
getLabelByOrder, getLabelWaitInByOrder,
getLabelByOrder,
getLabelWaitInByOrder,
getOrder,
getOrderWarehouseIn,
getSpecialListByOrderId, listByOrderId,
orderWarehouseInFinish, orderWarehouseInUpdateLabel,
rollbackDelete, warehousePictureList
} from '@/api/ecw/order'
import orderBaseInfo from "@/components/OrderBaseInfo"
import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
import {DICT_TYPE} from "@/utils/dict"
import PrintTag from "@/views/ecw/order/components/PrintTag"
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt"
getSpecialListByOrderId,
listByOrderId,
orderWarehouseInFinish,
orderWarehouseInUpdateLabel,
rollbackDelete,
warehousePictureList,
} from "@/api/ecw/order";
import orderBaseInfo from "@/components/OrderBaseInfo";
import WarehouseAreaDialog from "@/components/WarehouseAreaDialog";
import { DICT_TYPE } from "@/utils/dict";
import PrintTag from "@/views/ecw/order/components/PrintTag";
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt";
import imageUpload from "@/components/ImageUpload";
import {parseTime} from "@/utils/ruoyi"
import ImageAndVideoUpload from '@/components/ImageAndVideoUpload'
import Warehouse from "@/views/ecw/order/warehousing/components/Warehouse"
import { parseTime } from "@/utils/ruoyi";
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload";
import Warehouse from "@/views/ecw/order/warehousing/components/Warehouse";
export default {
name: "Warehousing",
components: {
orderBaseInfo,
WarehouseAreaDialog,
......@@ -242,28 +373,30 @@ export default {
PrintWarehouseReceipt,
imageUpload,
ImageAndVideoUpload,
Warehouse
Warehouse,
},
mounted() {
if(this.$route.query.id){
this.orderId = parseInt(this.$route.query.id || undefined)
this.getOrderItemList()
getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data)
if (this.$route.query.id) {
this.orderId = parseInt(this.$route.query.id || undefined);
this.getOrderItemList();
getSpecialListByOrderId(this.orderId).then(
(r) => (this.specialList = r.data)
);
Promise.all([
this.getOrder(),
listByOrderId({ orderId: this.orderId }).then(r => {
this.form.orderLocationCreateReqVOList = r.data
})
listByOrderId({ orderId: this.orderId }).then((r) => {
this.form.orderLocationCreateReqVOList = r.data;
}),
]).then(() => {
// 等待仓库id和已选的储位后初始化储位信息
this.$nextTick(() => {
this.$refs.area.updateArea()
})
})
this.$refs.area.updateArea();
});
});
}
getCurrencyList().then(res => this.currencyList = res.data)
getCurrencyList().then((res) => (this.currencyList = res.data));
},
data() {
......@@ -276,14 +409,14 @@ export default {
form: {
orderSpecialNeedReceivableReqVoList: [],
orderLocationCreateReqVOList: [],
exceptionUrls:[],
descZh:'',
manualExceptionType:[],
exceptionUrls: [],
descZh: "",
manualExceptionType: [],
urls: [],
sumVolume: '',
sumWeight: '',
sumVolume: "",
sumWeight: "",
},
currencyList:[],
currencyList: [],
order: {},
orderId: undefined,
orderItemList: [],
......@@ -291,262 +424,287 @@ export default {
warehousing: undefined,
isShowPrintTag: false,
isShowPrint: false,
escapeBol:false,
escapeBol: false,
label: {
"orderId": 0,
"orderLabelDtoList": [
orderId: 0,
orderLabelDtoList: [
{
"end": 0,
"start": 0
}
]
end: 0,
start: 0,
},
],
},
exceptionRules: {
manualExceptionType: [
{ required: true, message: '请勾选原因类型', trigger: 'change' },
{ required: true, message: "请勾选原因类型", trigger: "change" },
{
validator: (rule, value, callback) => {
if (value.length <= 0) {
callback(new Error('请勾选原因类型'))
}
callback()
}, trigger: 'change'
}
]
}
callback(new Error("请勾选原因类型"));
}
callback();
},
trigger: "change",
},
],
},
};
},
methods: {
getOrderItemList(){
this.orderItemList = []
return getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
getOrderItemList() {
this.orderItemList = [];
return getOrderWarehouseIn(this.orderId).then(
(r) => (this.orderItemList = r.data)
);
},
getList(){
this.getOrder()
this.getOrderItemList()
getList() {
this.getOrder();
this.getOrderItemList();
},
getWarehousePictureList(){
getWarehousePictureList() {
return warehousePictureList({
bizId: this.order.orderId,
type: 1
}).then(r =>{
this.form.urls = r.data.map(i =>i.url)
})
type: 1,
}).then((r) => {
this.form.urls = r.data.map((i) => i.url);
});
},
include(){
include() {
return (state, arr) => {
return arr.indexOf(state) > -1
}
return arr.indexOf(state) > -1;
};
},
exclude(){
exclude() {
return (state, arr) => {
return arr.indexOf(state) == -1
}
return arr.indexOf(state) == -1;
};
},
handleLabelSubmit(){
handleLabelSubmit() {
orderWarehouseInUpdateLabel({
...this.label,
orderId: this.orderId
}).then(r => {
if (r.code === 0){
this.$message.success(r.msg || this.$t('修改标签箱号成功'))
orderId: this.orderId,
}).then((r) => {
if (r.code === 0) {
this.$message.success(r.msg || this.$t("修改标签箱号成功"));
}
})
});
},
// 箱号标签回显
getLabelByOrder(){
getLabelByOrder(this.orderId).then(r => {
if (r.code === 0 && !! r.data && r.data.length > 0) {
this.label.orderLabelDtoList = r.data
getLabelByOrder() {
getLabelByOrder(this.orderId).then((r) => {
if (r.code === 0 && !!r.data && r.data.length > 0) {
this.label.orderLabelDtoList = r.data;
} else {
// 没有历史数据,查默认值
getLabelWaitInByOrder(this.orderId).then(r => {
console.log(r)
if (r.code === 0 && !! r.data) {
this.label.orderLabelDtoList = [r.data]
getLabelWaitInByOrder(this.orderId).then((r) => {
console.log(r);
if (r.code === 0 && !!r.data) {
this.label.orderLabelDtoList = [r.data];
}
})
});
}
})
});
},
handleLabelAdd(index){
handleLabelAdd(index) {
this.label.orderLabelDtoList.splice(index + 1, 0, {
"end": '',
"start": ''
})
end: "",
start: "",
});
},
getTowSum(){
getTowSum() {
// let sumVolume = 0
// let sumWeight = 0
// this.order.orderItemVOList.forEach(e => {
// if (e?.warehouseInInfoVO?.volume) sumVolume += e.warehouseInInfoVO.volume
// if (e?.warehouseInInfoVO?.weight) sumWeight += e.warehouseInInfoVO.weight
// })
this.form.sumVolume = this.order.sumVolume// || sumVolume
this.form.sumWeight = this.order.sumWeight// || sumWeight
this.form.sumVolume = this.order.sumVolume; // || sumVolume
this.form.sumWeight = this.order.sumWeight; // || sumWeight
},
getOrder(){
return getOrder(this.orderId).then(r => {
this.order = r.data
this.getTowSum()
}).then(() => {
this.getLabelByOrder()
this.getWarehousePictureList()
getOrder() {
return getOrder(this.orderId)
.then((r) => {
this.order = r.data;
this.getTowSum();
})
.then(() => {
this.getLabelByOrder();
this.getWarehousePictureList();
});
},
specialHas0(){
let result = false
this.form.orderSpecialNeedReceivableReqVoList.forEach(e => {
if (e.receivableMoney === '0' || e.receivableMoney === ''){
result = true
specialHas0() {
let result = false;
this.form.orderSpecialNeedReceivableReqVoList.forEach((e) => {
if (e.receivableMoney === "0" || e.receivableMoney === "") {
result = true;
}
})
return result
});
return result;
},
handleException() {
this.$refs.exceptionForm.validate((valid) => {
if (valid) {
this.handleSubmit()
this.handleSubmit();
} else {
this.$message.warning('请勾选原因类型')
this.$message.warning("请勾选原因类型");
}
})
});
},
async handleSubmit() {
if (this.specialHas0()) {
const confirm = await this.$confirm(this.$t('有特需费用为0或未填写,请问是否继续?'), this.$t('注意'), {
confirmButtonText: this.$t('继续'),
cancelButtonText: this.$t('取消'),
type: 'warning'
})
if (confirm !== 'confirm'){
return
const confirm = await this.$confirm(
this.$t("有特需费用为0或未填写,请问是否继续?"),
this.$t("注意"),
{
confirmButtonText: this.$t("继续"),
cancelButtonText: this.$t("取消"),
type: "warning",
}
);
if (confirm !== "confirm") {
return;
}
}
let form = {
orderSpecialNeedReceivableReqVoList: this.form.orderSpecialNeedReceivableReqVoList,
"orderLocationCreateReqVOList": this.form.orderLocationCreateReqVOList,
"orderId": this.order.orderId,
orderSpecialNeedReceivableReqVoList:
this.form.orderSpecialNeedReceivableReqVoList,
orderLocationCreateReqVOList: this.form.orderLocationCreateReqVOList,
orderId: this.order.orderId,
// urls: this.form.urls,
sumVolume: this.form.sumVolume,
sumWeight: this.form.sumWeight,
isAppend: this.isAdd
}
isAppend: this.isAdd,
};
// 标签箱号
if (this.order.parentOrderId) {
form.labelList = this.label.orderLabelDtoList || []
form.labelList = this.label.orderLabelDtoList || [];
}
if (this.escapeBol) {
form.exceptionUrls = this.form.exceptionUrls.length !== 0 ? this.form.exceptionUrls?.split(',') : []
form.exceptionUrls =
this.form.exceptionUrls.length !== 0
? this.form.exceptionUrls?.split(",")
: [];
form.descZh = this.form.descZh;
form.manualExceptionType = this.form.manualExceptionType.join(',')
form.manualExceptionType = this.form.manualExceptionType.join(",");
}
orderWarehouseInFinish(form).then(r => {
orderWarehouseInFinish(form).then((r) => {
if (r.code === 0) {
this.escapeBol = false;
this.finishVisible = false
const message = !r.data ? this.$t('该订单已成功入仓,是否打印?') : `<h3>${this.$t('货物已入仓,存在异常')}</h3>${this.$t('该订单已成功入仓,是否打印?')}`
this.$confirm(
message,
this.$t('货物已入仓'),
{
confirmButtonText: this.$t(''),
cancelButtonText: this.$t(''),
dangerouslyUseHTMLString: true
}
).then(() => {
this.isShowPrint = true
}).catch(() => {
// this.$store.dispatch('tagsView/delVisitedView')
this.$message.success(this.$t('入仓成功'))
this.$tab.closePage()
this.finishVisible = false;
const message = !r.data
? this.$t("该订单已成功入仓,是否打印?")
: `<h3>${this.$t("货物已入仓,存在异常")}</h3>${this.$t(
"该订单已成功入仓,是否打印?"
)}`;
this.$confirm(message, this.$t("货物已入仓"), {
confirmButtonText: this.$t(""),
cancelButtonText: this.$t(""),
dangerouslyUseHTMLString: true,
})
}
.then(() => {
this.isShowPrint = true;
})
.catch(() => {
// this.$store.dispatch('tagsView/delVisitedView')
this.$message.success(this.$t("入仓成功"));
this.$tab.closePage();
});
}
});
},
handleWarehousingReturn(item){
this.$confirm(item.prodTitleZh + this.$t('退仓后不可恢复,是否确认退仓?'), this.$t('确定要退仓?'), {
confirmButtonText: this.$t('确定'),
cancelButtonText: this.$t('取消'),
type: 'warning'
}).then(() => {
handleWarehousingReturn(item) {
this.$confirm(
item.prodTitleZh + this.$t("退仓后不可恢复,是否确认退仓?"),
this.$t("确定要退仓?"),
{
confirmButtonText: this.$t("确定"),
cancelButtonText: this.$t("取消"),
type: "warning",
}
)
.then(() => {
rollbackDelete({
"orderId": item.orderId,
"orderItemId": item.orderItemId
orderId: item.orderId,
orderItemId: item.orderItemId,
}).then(() => {
this.$message({
type: 'success',
message: this.$t('货物退仓成功!')
type: "success",
message: this.$t("货物退仓成功!"),
});
this.getOrderItemList()
this.getOrder()
})
}).catch(e => {
this.getOrderItemList();
this.getOrder();
});
}
})
.catch((e) => {});
},
},
watch: {
orderSpecialNeeds(val){
val.forEach(e => {
orderSpecialNeeds(val) {
val.forEach((e) => {
this.form.orderSpecialNeedReceivableReqVoList.push({
"id": e.id,
"receivableMoney": e.transFee || '',
"receivableMoneyCurrency": e.transCurrency || 3
})
})
}
id: e.id,
receivableMoney: e.transFee || "",
receivableMoneyCurrency: e.transCurrency || 3,
});
});
},
},
computed: {
// 根据orderItemId获取入仓item
wareItem(){
return orderItemId => {
return this.orderItemList.find(item => item.orderItemId == orderItemId)
}
wareItem() {
return (orderItemId) => {
return this.orderItemList.find(
(item) => item.orderItemId == orderItemId
);
};
},
isAdd() {
return this.$route.path === "/order/warehousing-add"
return this.$route.path === "/order/warehousing-add";
},
isEdit() {
return this.$route.path === "/order/warehousing-update"
return this.$route.path === "/order/warehousing-update";
},
title() {
return this.$i18n.locale === 'en_US' ? this.$route.meta.titleEn : this.$route.name
return this.$i18n.locale === "en_US"
? this.$route.meta.titleEn
: this.$route.name;
},
orderSpecialNeedsDict() {
return this.$store.state.dict.dictDatas.order_special_needs
},
orderSpecialNeeds(){
const result = []
this.specialList.forEach(e => {
const t = this.orderSpecialNeedsDict.find(f => f.value === e.advanceType)
if(t) {
result.push({...e, label: t.label, labelEn: t.labelEn})
}
})
return result
return this.$store.state.dict.dictDatas.order_special_needs;
},
warehouseId(){
return this.order?.logisticsInfoDto?.startWarehouseId
}
orderSpecialNeeds() {
const result = [];
this.specialList.forEach((e) => {
const t = this.orderSpecialNeedsDict.find(
(f) => f.value === e.advanceType
);
if (t) {
result.push({ ...e, label: t.label, labelEn: t.labelEn });
}
}
});
return result;
},
warehouseId() {
return this.order?.logisticsInfoDto?.startWarehouseId;
},
},
};
</script>
<style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red{
.red {
color: $--color-danger;
}
.green{
.green {
color: $--color-success;
}
</style>
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