Commit 4bd6846c authored by lanbaoming's avatar lanbaoming

Merge branch 'dev'

parents 6cd3037c fad5e683
......@@ -34,6 +34,14 @@ export function listServiceUser() {
method: 'get'
})
}
export function listServiceUser2() {
return request({
url: '/system/user/list-service-user',
method: 'get'
})
}
// 获取用户精简信息列表
export function listAllSimpl(){
return request({
......
......@@ -3,44 +3,95 @@
<el-row style="margin-top: 25px">
<el-row v-if="flag == 'edit'" class="table-title">
<div>
<el-button size="small" type="primary" @click="removeBatch">{{ $t('批量移出合包') }}</el-button>
<el-button size="small" type="primary" @click="sealBox">{{ $t('封箱') }}</el-button>
<el-button size="small" type="primary" @click="removeBatch">{{
$t("批量移出合包")
}}</el-button>
<!--lanbm 2024-06-20 处理封箱确认对话框带出的体积异常问题-->
<el-button size="small" type="primary" @click="sealBox">{{
$t("封箱")
}}</el-button>
</div>
<div>
<template>
<el-input v-model="qrCode" :placeholder="$t('请输入二维码/条码编号')" clearable></el-input>
<el-button type="primary" @click="handlerBatchCreate()">{{$t('确定')}}</el-button>
<el-button type="primary" @click="handlerClick('batchInput',$t('批量输入'))">{{$t('批量输入')}}</el-button>
<el-button type="primary" @click="handlerClick('correction',$t('装箱纠错'))">{{$t('装箱纠错')}}</el-button>
<el-button type="primary" @click="handlerClick('correctionOrder',$t('批量装箱纠错'))">{{$t('批量装箱纠错')}}</el-button>
<el-input
v-model="qrCode"
:placeholder="$t('请输入二维码/条码编号')"
clearable
></el-input>
<el-button type="primary" @click="handlerBatchCreate()">{{
$t("确定")
}}</el-button>
<el-button
type="primary"
@click="handlerClick('batchInput', $t('批量输入'))"
>{{ $t("批量输入") }}</el-button
>
<el-button
type="primary"
@click="handlerClick('correction', $t('装箱纠错'))"
>{{ $t("装箱纠错") }}</el-button
>
<el-button
type="primary"
@click="handlerClick('correctionOrder', $t('批量装箱纠错'))"
>{{ $t("批量装箱纠错") }}</el-button
>
</template>
</div>
</el-row>
<el-row style="margin-top: 5px">
<el-table border :data="pagList" max-height="600px" @select="checkboxSelect" @select-all="checkboxSelect">
<el-table-column type="selection" align="center" width="55" fixed="left" />
<el-table-column align="center" :label="$t('序号')" width="50" type="index" />
<el-table
border
:data="pagList"
max-height="600px"
@select="checkboxSelect"
@select-all="checkboxSelect"
>
<el-table-column
type="selection"
align="center"
width="55"
fixed="left"
/>
<el-table-column
align="center"
:label="$t('序号')"
width="50"
type="index"
/>
<el-table-column :label="$t('订单号')" align="center" prop="orderNo">
<template slot-scope="scope">
<router-link :to="{path: '/order/detail',query: {orderId: scope.row.orderId}}" class="link-type">
<router-link
:to="{
path: '/order/detail',
query: { orderId: scope.row.orderId },
}"
class="link-type"
>
<span>{{ scope.row.orderNo }}</span>
</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('商品信息')" width="250px" align="center">
<template slot-scope="{ row }">
<div v-for="item in row.orderItemDOS" :key="item.orderItemId">
{{ $l(item, 'prodTitle') }}
{{ $l(item, "prodTitle") }}
</div>
</template>
</el-table-column>
<el-table-column :label="$t('备案')" align="center">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :value="row.productRecord" />
<dict-tag
:type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
:value="row.productRecord"
/>
</template>
</el-table-column>
<el-table-column :label="$t('计划/已装')" align="center" prop="sumNum">
<el-table-column
:label="$t('计划/已装')"
align="center"
prop="sumNum"
>
<template slot-scope="scope">
<el-link type="primary" @click.native="orderClick(scope.row)">
{{ scope.row.sumNum }}/{{ scope.row.installNum }}
......@@ -50,167 +101,365 @@
<el-table-column :label="$t('纸箱尺寸')" align="center">
<template slot-scope="{ row }">
<div v-for="item in row.orderItemDOS" :key="item.orderItemId">
{{ item.warehouseInInfoVO?item.warehouseInInfoVO.boxGauge:'' }}
{{
item.warehouseInInfoVO ? item.warehouseInInfoVO.boxGauge : ""
}}
</div>
</template>
</el-table-column>
<el-table-column :label="$t('体积')" align="center" prop="sumVolume" />
<el-table-column :label="$t('重量')" align="center" prop="sumWeight" />
<el-table-column :label="$t('数量(个)')" align="center" prop="sumQuantity" />
<el-table-column :label="$t('储位')" align="center" prop="positionNo" width="250px">
<el-table-column
:label="$t('体积')"
align="center"
prop="sumVolume"
/>
<el-table-column
:label="$t('重量')"
align="center"
prop="sumWeight"
/>
<el-table-column
:label="$t('数量(个)')"
align="center"
prop="sumQuantity"
/>
<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">
{{ (item.warehouseInInfoVO&&item.warehouseInInfoVO.orderLocationMergeVOSet)?notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)):'' }}
{{
item.warehouseInInfoVO &&
item.warehouseInInfoVO.orderLocationMergeVOSet
? notset(
getpositionNo(
item.warehouseInInfoVO.orderLocationMergeVOSet
)
)
: ""
}}
</div>
</template>
</el-table-column>
<el-table-column :label="$t('理货时间')" align="center">
<template slot-scope="scope">
{{ formatDate(scope.row.tallyTime, 'YYYY-MM-DD HH:mm:ss') }}
{{ formatDate(scope.row.tallyTime, "YYYY-MM-DD HH:mm:ss") }}
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center" width="160" class-name="small-padding fixed-width">
<el-table-column
:label="$t('操作')"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click="removePkg(scope.row)">{{ $t('移出') }}</el-button>
<el-button
type="text"
size="small"
@click="removePkg(scope.row)"
>{{ $t("移出") }}</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" @pagination="getList" />
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
</el-row>
<!-- 封箱 -->
<el-dialog :title="$t('封箱确认')" :visible.sync="sealBoxdialogVisible" width="800px" :modal-append-to-body="false" append-to-body>
<el-dialog
:title="$t('封箱确认')"
:visible.sync="sealBoxdialogVisible"
width="800px"
:modal-append-to-body="false"
append-to-body
>
<el-form ref="sealBoxForm" :model="sealBoxForm" label-width="100px">
<el-form-item :label="$t('箱号')" prop="pkgNum">
{{ pkgData.pkgNum }}
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item :label="$t('长')" prop="pkgLength" :rules="[
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('长度保留两位小数')}
]">
<el-input v-model="sealBoxForm.pkgLength" style="width: 150px" @change="culSumVolume">
<el-form-item
:label="$t('长')"
prop="pkgLength"
:rules="[
{
pattern:
/^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/,
message: $t('长度保留两位小数'),
},
]"
>
<el-input
v-model="sealBoxForm.pkgLength"
style="width: 150px"
@change="culSumVolume"
>
<template slot="append">
{{ $t('cm') }}
{{ $t("cm") }}
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('宽')" prop="pkgWidth" :rules="[
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('宽度保留两位小数')}
]">
<el-input v-model="sealBoxForm.pkgWidth" style="width: 150px" @change="culSumVolume">
<el-form-item
:label="$t('宽')"
prop="pkgWidth"
:rules="[
{
pattern:
/^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/,
message: $t('宽度保留两位小数'),
},
]"
>
<el-input
v-model="sealBoxForm.pkgWidth"
style="width: 150px"
@change="culSumVolume"
>
<template slot="append">
{{ $t('cm') }}
{{ $t("cm") }}
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('高')" prop="pkgHight" :rules="[
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('高度保留两位小数')}
]">
<el-input v-model="sealBoxForm.pkgHight" style="width: 150px" @change="culSumVolume">
<el-form-item
:label="$t('高')"
prop="pkgHight"
:rules="[
{
pattern:
/^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/,
message: $t('高度保留两位小数'),
},
]"
>
<el-input
v-model="sealBoxForm.pkgHight"
style="width: 150px"
@change="culSumVolume"
>
<template slot="append">
{{ $t('cm') }}
{{ $t("cm") }}
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item :label="$t('体积')" prop="sumVolume" :rules="[
{ required: true, message: $t('请填写体积')},
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('体积保留两位小数')}
]">
<el-form-item
:label="$t('体积')"
prop="sumVolume"
:rules="[
{ required: true, message: $t('请填写体积') },
{
pattern:
/^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/,
message: $t('体积保留两位小数'),
},
]"
>
<el-input v-model="sealBoxForm.sumVolume" style="width: 180px">
<template slot="append">
{{ $t('') }}
{{ $t("") }}
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('重量')" prop="sumWeight" :rules="[
{ required: true, message: $t('请填写重量')},
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('重量保留两位小数')}
]">
<el-form-item
:label="$t('重量')"
prop="sumWeight"
:rules="[
{ required: true, message: $t('请填写重量') },
{
pattern:
/^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/,
message: $t('重量保留两位小数'),
},
]"
>
<el-input v-model="sealBoxForm.sumWeight" style="width: 180px">
<template slot="append">
{{ $t('kg') }}
{{ $t("kg") }}
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('箱数')" prop="sumNum" :rules="[
{ required: true, message: $t('请填写数量')},
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('数量保留两位小数')}
]">
<el-form-item
:label="$t('箱数')"
prop="sumNum"
:rules="[
{ required: true, message: $t('请填写数量') },
{
pattern:
/^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/,
message: $t('数量保留两位小数'),
},
]"
>
<el-input v-model="sealBoxForm.sumNum" style="width: 180px">
<template slot="append">
{{ $t('') }}
{{ $t("") }}
</template>
</el-input>
</el-form-item>
</el-form>
<div style="text-align: center">
<el-button size="small" type="primary" @click="sealBoxSubmit">{{ $t('确定') }}</el-button>
<el-button size="small" type="primary" @click="sealBoxdialogVisible = false">{{ $t('取消') }}</el-button>
<el-button size="small" type="primary" @click="sealBoxSubmit">{{
$t("确定")
}}</el-button>
<el-button
size="small"
type="primary"
@click="sealBoxdialogVisible = false"
>{{ $t("取消") }}</el-button
>
</div>
</el-dialog>
<!-- 打印标签 -->
<el-dialog :title="$t('封箱标签')" :visible.sync="printdialogVisible" width="350px" :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-dialog custom-class="shipping-dialog" :title="checkDialogConfig.title" :visible.sync="checkDialogConfig.dialogVisible" :fullscreen="checkDialogConfig.fullscreen" :width="checkDialogConfig.width" :modal-append-to-body=false append-to-body>
<el-dialog
custom-class="shipping-dialog"
:title="checkDialogConfig.title"
:visible.sync="checkDialogConfig.dialogVisible"
:fullscreen="checkDialogConfig.fullscreen"
:width="checkDialogConfig.width"
:modal-append-to-body="false"
append-to-body
>
<!-- 已装未装订单 -->
<template v-if="checkDialogConfig.type === 'orderTable'">
<el-table :data="orderList" height="500px" border>
<el-table-column :label="$t('已装')" align="center" prop="loadTag" />
<el-table-column :label="$t('未装')" align="center" prop="unloadTag" />
<el-table-column
:label="$t('已装')"
align="center"
prop="loadTag"
/>
<el-table-column
:label="$t('未装')"
align="center"
prop="unloadTag"
/>
</el-table>
</template>
<!-- 装柜纠错 -->
<template v-if="checkDialogConfig.type === 'correction' && checkDialogConfig.dialogVisible">
<el-form ref="correctionForm" :rules="rules" :model="correctionObj" label-position="top">
<el-form-item :label="$t('装柜纠错(二维码/条形码编号)')" prop="qrCode">
<el-input v-model="correctionObj.qrCode" :placeholder="$t('请输入二维码/条形码编号')" clearable />
<template
v-if="
checkDialogConfig.type === 'correction' &&
checkDialogConfig.dialogVisible
"
>
<el-form
ref="correctionForm"
:rules="rules"
:model="correctionObj"
label-position="top"
>
<el-form-item
:label="$t('装柜纠错(二维码/条形码编号)')"
prop="qrCode"
>
<el-input
v-model="correctionObj.qrCode"
:placeholder="$t('请输入二维码/条形码编号')"
clearable
/>
</el-form-item>
</el-form>
<el-row class="operate-button">
<el-button type="primary" @click="delCheck()">{{$t('提交')}}</el-button>
<el-button @click="closeDialog2">{{$t('取消')}}</el-button>
<el-button type="primary" @click="delCheck()">{{
$t("提交")
}}</el-button>
<el-button @click="closeDialog2">{{ $t("取消") }}</el-button>
</el-row>
</template>
<!-- 批量装柜纠错(订单号) -->
<template v-if="checkDialogConfig.type === 'correctionOrder' && checkDialogConfig.dialogVisible">
<el-form ref="orderForm" :rules="rules" :model="orderObj" label-position="top">
<el-form-item :label="$t('装柜纠错') +'(' + $t('订单号') + ')'" prop="orderNo">
<el-input type="textarea" :rows="3" v-model="orderObj.orderNo" :placeholder="$t('请输入,多个以逗号分隔')" clearable />
<template
v-if="
checkDialogConfig.type === 'correctionOrder' &&
checkDialogConfig.dialogVisible
"
>
<el-form
ref="orderForm"
:rules="rules"
:model="orderObj"
label-position="top"
>
<el-form-item
:label="$t('装柜纠错') + '(' + $t('订单号') + ')'"
prop="orderNo"
>
<el-input
type="textarea"
:rows="3"
v-model="orderObj.orderNo"
:placeholder="$t('请输入,多个以逗号分隔')"
clearable
/>
</el-form-item>
</el-form>
<el-row class="operate-button">
<el-button type="primary" @click="batchDelCheck()">{{$t('提交')}}</el-button>
<el-button @click="closeDialog2">{{$t('取消')}}</el-button>
<el-button type="primary" @click="batchDelCheck()">{{
$t("提交")
}}</el-button>
<el-button @click="closeDialog2">{{ $t("取消") }}</el-button>
</el-row>
</template>
<!-- 装柜批量输入 -->
<template v-if="checkDialogConfig.type === 'batchInput' && checkDialogConfig.dialogVisible">
<template
v-if="
checkDialogConfig.type === 'batchInput' &&
checkDialogConfig.dialogVisible
"
>
<el-form ref="batchForm" :rules="rules" :model="batchObj">
<el-form-item label="" prop="qrCode" class="two-element">
<el-input v-model="batchObj.qrCode" :placeholder="$t('请输入订单号')" clearable />
<el-button style="marginLeft:10px;" type="primary" @click="queryOrderInfo">{{$t('确定')}}</el-button>
<el-input
v-model="batchObj.qrCode"
:placeholder="$t('请输入订单号')"
clearable
/>
<el-button
style="marginleft: 10px"
type="primary"
@click="queryOrderInfo"
>{{ $t("确定") }}</el-button
>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('订单号')">
{{boxOrderInfo.orderNo}}
{{ boxOrderInfo.orderNo }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('箱数')">
<el-input-number v-if="boxOrderInfo.isExternalWarehouse === 1" v-model="batchObj.boxNum" :min="0" :max="boxOrderInfo.num" />
<el-input-number
v-if="boxOrderInfo.isExternalWarehouse === 1"
v-model="batchObj.boxNum"
:min="0"
:max="boxOrderInfo.num"
/>
<template v-else>
{{boxOrderInfo.num}}
{{ boxOrderInfo.num }}
</template>
</el-form-item>
</el-col>
......@@ -219,20 +468,24 @@
<el-row>
<el-col :span="12">
<el-form-item :label="$t('方数')">
{{getTotlContent(boxOrderInfo, ['volume'])}}
{{ getTotlContent(boxOrderInfo, ["volume"]) }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('重量')">
{{getTotlContent(boxOrderInfo, ['weight'])}}
{{ getTotlContent(boxOrderInfo, ["weight"]) }}
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row class="operate-button">
<el-button type="primary" :disabled="boxOrderInfo.orderId ? false : true" @click="batchLoad">{{$t('提交')}}</el-button>
<el-button @click="closeDialog2">{{$t('取消')}}</el-button>
<el-button
type="primary"
:disabled="boxOrderInfo.orderId ? false : true"
@click="batchLoad"
>{{ $t("提交") }}</el-button
>
<el-button @click="closeDialog2">{{ $t("取消") }}</el-button>
</el-row>
</template>
</el-dialog>
......@@ -241,21 +494,33 @@
</template>
<script>
import { getPkgPageByPkgId, deleteRelate, deleteBatchRelate, getMergePkgInfoById, updateMergePkg, getMergeTagById, checkInfoSingleCreate, checkInfoBatchCreate, getOrderTagList, checkInfoSingleDelete, checkInfoBatchDelete } from '@/api/ecw/boxAir'
import { formatDate, serviceMsg, getTotlContent } from '../../utils'
import {
getPkgPageByPkgId,
deleteRelate,
deleteBatchRelate,
getMergePkgInfoById,
updateMergePkg,
getMergeTagById,
checkInfoSingleCreate,
checkInfoBatchCreate,
getOrderTagList,
checkInfoSingleDelete,
checkInfoBatchDelete,
} from "@/api/ecw/boxAir";
import { formatDate, serviceMsg, getTotlContent } from "../../utils";
import { getOrderDetailByBoxNo } from "@/api/ecw/boxSea";
import printTag from './printTag.vue'
import printTag from "./printTag.vue";
export default {
props: {
pkgData: Object,
shipmentObj: Object,
flag: {
type: String,
default: 'edit'
}
default: "edit",
},
},
components: {
printTag
printTag,
},
data() {
return {
......@@ -263,7 +528,7 @@ export default {
// 查询参数
queryParams: {
page: 1,
rows: 10
rows: 10,
},
total: 0,
// 勾选行
......@@ -302,105 +567,115 @@ export default {
},
// 已理/未理
orderList: [],
}
};
},
created() {
this.getList()
this.getList();
},
methods: {
getList() {
let queryParams = {
id: this.pkgData.id,
shipmentId: this.shipmentObj.id,
...this.queryParams
}
...this.queryParams,
};
getPkgPageByPkgId(queryParams).then((res) => {
this.pagList = res.data.list
this.total = res.data.total
console.log(this.pagList,'222');
})
this.pagList = res.data.list;
this.total = res.data.total;
console.log(this.pagList, "222");
});
},
// 格式化日期
formatDate,
getTotlContent,
//去重
notset(string) {
if (!string) return string
let arr = string.split(',')
if (!string) return string;
let arr = string.split(",");
arr = arr.filter((item, index) => {
return arr.indexOf(item) == index
})
return arr.toString()
return arr.indexOf(item) == index;
});
return arr.toString();
},
//计算封箱体积
culSumVolume() {
let temp = this.sealBoxForm.pkgLength*this.sealBoxForm.pkgWidth*0.01*0.01
let sumVolume = this.accMul(temp, this.sealBoxForm.pkgHight*0.01)
if(sumVolume <= 0){
sumVolume = 0.01
let temp =
this.sealBoxForm.pkgLength * this.sealBoxForm.pkgWidth * 0.01 * 0.01;
let sumVolume = this.accMul(temp, this.sealBoxForm.pkgHight * 0.01);
if (sumVolume <= 0) {
sumVolume = 0.01;
}
this.$set(this.sealBoxForm, 'sumVolume', sumVolume)
this.$set(this.sealBoxForm, "sumVolume", sumVolume);
},
accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
let num = Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
return num.toFixed(2)
},
getpositionNo(arr){
if(!arr) return arr
let data = []
arr.forEach(item=>{
data.push(item.areaName+item.locationName)
})
return data.toString()
accMul(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length;
} catch (e) {}
try {
m += s2.split(".")[1].length;
} catch (e) {}
let num =
(Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) /
Math.pow(10, m);
return num.toFixed(2);
},
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('移出成功'))
this.getList()
this.$emit('reload')
})
this.$message.success(this.$t("移出成功"));
this.getList();
this.$emit("reload");
});
},
// 选中
checkboxSelect(selection) {
this.selectedRows = selection
this.selectedRows = selection;
},
removeBatch() {
if (this.selectedRows.length === 0) {
this.$message.error(this.$t('请选择需要移出的订单'))
return
this.$message.error(this.$t("请选择需要移出的订单"));
return;
}
let data = []
let data = [];
this.selectedRows.forEach((item) => {
let json = {
pkgId: this.pkgData.id,
orderId: item.orderId
}
data.push(json)
})
orderId: item.orderId,
};
data.push(json);
});
deleteBatchRelate(data).then(() => {
this.$message.success(this.$t('移出成功'))
this.getList()
})
this.$message.success(this.$t("移出成功"));
this.getList();
});
},
//封箱
sealBox() {
let flag = false
let orderNo = ''
this.pagList.forEach(item=>{
if(item.installNum != item.sumNum){
flag = true
orderNo = orderNo + '' + item.orderNo + ''
let flag = false;
let orderNo = "";
this.pagList.forEach((item) => {
if (item.installNum != item.sumNum) {
flag = true;
orderNo = orderNo + "" + item.orderNo + "";
}
})
if(flag){
this.$message.error(this.$t(`订单号${orderNo}未完成装箱,请完成全部订单装箱后重试`));
});
if (flag) {
this.$message.error(
this.$t(`订单号${orderNo}未完成装箱,请完成全部订单装箱后重试`)
);
return;
}
getMergePkgInfoById(this.pkgData.id).then(res=>{
getMergePkgInfoById(this.pkgData.id).then((res) => {
this.sealBoxForm = {
pkgHight: res.data.pkgHight,
pkgLength: res.data.pkgLength,
......@@ -408,35 +683,41 @@ export default {
sumNum: res.data.sumNum,
sumVolume: res.data.sumVolume,
sumWeight: res.data.sumWeight,
}
this.sealBoxdialogVisible = true
})
};
this.sealBoxdialogVisible = true;
});
},
sealBoxSubmit() {
this.$refs['sealBoxForm'].validate((valid) => {
this.$refs["sealBoxForm"].validate((valid) => {
if (!valid) {
return
return;
}
this.sealBoxForm.shipmentId = this.shipmentObj.id
this.sealBoxForm.id = this.pkgData.id
this.sealBoxForm.status = 3
this.sealBoxForm.shipmentId = this.shipmentObj.id;
this.sealBoxForm.id = this.pkgData.id;
this.sealBoxForm.status = 3;
updateMergePkg(this.sealBoxForm).then(() => {
this.sealBoxdialogVisible = false
this.$confirm(this.$t('箱号:')+this.pkgData.pkgNum+this.$t(',请问是否打印封箱标签?'), this.$t("封箱成功"), {
confirmButtonText: this.$t('立刻打印'),
cancelButtonText: this.$t('稍后再试'),
})
this.sealBoxdialogVisible = false;
this.$confirm(
this.$t("箱号:") +
this.pkgData.pkgNum +
this.$t(",请问是否打印封箱标签?"),
this.$t("封箱成功"),
{
confirmButtonText: this.$t("立刻打印"),
cancelButtonText: this.$t("稍后再试"),
}
)
.then((_) => {
getMergeTagById(this.pkgData.id).then(res=>{
this.tagData = res.data
this.printdialogVisible = true
})
getMergeTagById(this.pkgData.id).then((res) => {
this.tagData = res.data;
this.printdialogVisible = true;
});
})
.catch((_) => {
this.$emit('closeDialog');
this.$emit("closeDialog");
});
});
});
})
})
},
/** 表格订单号点击 */
orderClick(row) {
......@@ -543,7 +824,7 @@ export default {
orderNo: this.boxOrderInfo.orderNo,
shipmentId: this.shipmentObj.id,
pkgId: this.pkgData.id,
type: 1
type: 1,
};
checkInfoBatchCreate(params).then((res) => {
serviceMsg(res, this).then(() => {
......@@ -563,7 +844,7 @@ export default {
shipmentId: this.shipmentObj.id,
type: 1,
pkgId: this.pkgData.id,
orderNumCode: this.correctionObj.qrCode
orderNumCode: this.correctionObj.qrCode,
};
checkInfoSingleDelete(params).then((res) => {
serviceMsg(res, this).then(() => {
......@@ -582,7 +863,7 @@ export default {
shipmentId: this.shipmentObj.id,
pkgId: this.pkgData.id,
type: 1,
orderNo: this.orderObj.orderNo
orderNo: this.orderObj.orderNo,
};
checkInfoBatchDelete(params).then((res) => {
serviceMsg(res, this).then(() => {
......@@ -590,9 +871,9 @@ export default {
this.getList();
});
});
}
}
}
},
},
};
</script>
<style lang="scss" scoped>
......
......@@ -159,7 +159,8 @@
</el-card>
<el-card class="mt-10">
<div slot="header" class="card-title">
<div class="card-name">{{$t('商品信息')}}</div>
<!--lanbm 根据需求文档改 商品信息 为 商品 -->
<div class="card-name">{{$t('商品')}}</div>
<el-button type="primary" size="mini" @click="addProduct(null)" :disabled="!canAddProduct || !productEditable || updateChannel">{{$t('添加货物')}}</el-button>
<el-button type="primary" size="mini" @click="showBatchImportDialog=true" :disabled="!canAddProduct || !productEditable || updateChannel">{{$t('批量添加货物')}}</el-button>
</div>
......
<!--空运待出列表-->
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item :label="$t('编号')" prop="orderNo">
......@@ -42,21 +41,23 @@
<el-form-item :label="$t('商品')" prop="tidanNo">
<el-input v-model="queryParams.prodKey" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!--根据需求文档 lanbm 2024-06-23 隐藏
<el-form-item :label="$t('控货')" prop="isCargoControl">
<dict-selector v-model="queryParams.isCargoControl" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" clearable />
</el-form-item>
</el-form-item>-->
<!--根据需求文档 lanbm 2024-06-23 隐藏
<el-form-item :label="$t('入仓类型')" prop="warehouseType">
<dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="queryParams.warehouseType" clearable/>
</el-form-item>
</el-form-item>-->
<el-form-item :label="$t('客户经理')" >
<user-selector manage v-model="queryParams.salesmanId" clearable @change="handleQuery"
:prepend="{ id: 0, nickname: $t('未分配客户经理')}"/>
</el-form-item>
<!--根据需求文档 lanbm 2024-06-23 隐藏
<el-form-item :label="$t('订单状态')" prop="status">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status"
@keyup.enter.native="handleQuery" clearable />
</el-form-item>
</el-form-item>-->
<el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable @change="handleQuery" />
</el-form-item>
......@@ -68,9 +69,10 @@
<el-form-item :label="$t('备案属性')" prop="productRecord">
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="queryParams.productRecord" clearable @change="handleQuery" />
</el-form-item>
<!--lanbm 2024-06-23 根据需求文档隐藏
<el-form-item :label="$t('快递单号')" prop="number">
<el-input v-model="queryParams.number" :placeholder="$t('快递单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
</el-form-item>-->
<el-form-item :label="$t('外部仓')" prop="number">
<el-select v-model="queryParams.isExternalWarehouse" :placeholder="$t('请选择')" clearable @change="handleQuery">
<el-option :label="$t('外部仓')" :value="1"></el-option>
......
......@@ -83,7 +83,6 @@
{{currencyMap[row.orderExceptionAmountCurrencyId]}}
</template>
</el-table-column>
</el-table-column>
<el-table-column :label="$t('状态')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionStatus" />
......
......@@ -1970,8 +1970,6 @@
>{{ currencyMap[scope.row.clearanceFreightCurrency] }} /
{{ unitMap[scope.row.clearanceFreightVolume] }}</span
>
<!-- <selector v-model="scope.row.clearanceFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="scope.row.clearanceFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> -->
</div>
</div>
<div v-else>
......@@ -2557,6 +2555,7 @@ export default {
this.orderExceptionData.orderExceptionType ==
"not_shipping_channel_exception"
) {
//not_shipping_channel_exception 不可出渠道异常
this.selectLine = this.routerList.find(
(item) => item.id == this.handlerParams.lineId
);
......@@ -2568,6 +2567,7 @@ export default {
},
//订单详情
getOrderData() {
//not_shipping_channel_exception 不可出渠道异常
getOrder(this.orderId).then((response) => {
this.orderData = response.data;
if (this.orderData.channelId != 0) {
......@@ -3071,11 +3071,12 @@ export default {
if (!item.prodId) {
calcable = false;
}
//alert(item.oneClearanceFreight);
});
console.log("calculationPrice", this.handlerParams.channelId);
if (this.calculating || !calcable) return false;
this.calculating = true;
console.log("calculating ---> ");
//console.log("calculating ---> ");
const params = {
lineId: this.handlerParams.lineId,
transportId: this.orderData.transportId,
......@@ -3093,8 +3094,10 @@ export default {
calculationPrice(params)
.then((res) => {
this.orderData.orderItemVOList.map((item, index) => {
//清关价问题关键点在这,后台获取的值的变量名称换了
item.oneClearanceFreight =
res.data.prodCostDtoList[index].oneClearanceFee;
//alert( item.oneClearanceFreight);
item.clearanceFreightCurrency =
res.data.prodCostDtoList[index].clearanceFeeCurrency;
item.clearanceFreightVolume =
......@@ -3120,6 +3123,8 @@ export default {
if (!tmp.quantity) tmp.quantity = 1;
if (!tmp.num) tmp.num = 1;
tmp.orderType = item.orderItemType;
//lanbm 2024-06-22 包装类型
tmp.packaging=item.unit;
arr.push(tmp);
});
return arr;
......
......@@ -121,6 +121,8 @@ export default {
},
},
async created() {
//alert(this.orderId);
//alert(this.warehouseInId);
getOrderItemCommonAttr(this.orderId, this.warehouseInId || 0).then(
(res) => {
this.orderItemDetails = res.data;
......
......@@ -579,6 +579,7 @@ export default {
}).then(r => {
if (r.data) {
this.$message.success('打包成功')
//this.getAttrList();
this.handleClose()
} else {
this.$message.success('打包失败')
......
......@@ -117,6 +117,7 @@
}}</el-button>
</template>
</el-table-column>
<!--添加箱明细 lanbm 2024-06-21 -->
<el-table-column prop="areaName" width="220px">
<template v-slot="{ row }">
<WarehouseRecordDetail
......@@ -301,13 +302,24 @@
})
}}
</el-form-item>
<!--lanbm 2024-06-21 处理问题
<el-form-item :label="$t('入仓统计')" class="mb-0">
{{
$t(`{num}箱 {weight}Kg {volume}m³ {quantity}个`, {
num: statistics.sumCartonsNumFinishedWarehouseIn,
weight: statistics.sumWeightFinishedWarehouseIn,
volume: statistics.sumVolumeFinishedWarehouseIn,
quantity: statistics.sumQuantityAllFinishedWarehouseIn,
num:statistics.sumCartonsNumFinishedWarehouseIn,
weight:statistics.sumWeightFinishedWarehouseIn,
volume:statistics.sumVolumeFinishedWarehouseIn,
quantity:statistics.sumQuantityAllFinishedWarehouseIn,
})
}}
</el-form-item>-->
<el-form-item :label="$t('入仓统计')" class="mb-0">
{{
$t(`{num}箱 {weight}Kg {volume}m³ {quantity}个`, {
num:form.sumNum,
weight:form.sumWeight,
volume:form.sumVolume,
quantity:form.sumQuantity,
})
}}
</el-form-item>
......@@ -502,6 +514,8 @@ export default {
manualExceptionType: [],
sumVolume: "",
sumWeight: "",
sumNum:"",//入仓件数 lanbm 2024-06-21 add
sumQuantity:"",//入仓数量
},
currencyList: [],
order: {},
......@@ -599,6 +613,8 @@ export default {
this.order = r.data;
this.form.sumVolume = this.order.sumVolume;
this.form.sumWeight = this.order.sumWeight;
this.form.sumNum=this.order.sumNum;
this.form.sumQuantity=this.order.sumQuantity;
})
.then(() => {
// this.getLabelByOrder()
......
......@@ -43,13 +43,20 @@
prop="salesmanid"
v-show="showCustomsManage"
>
<user-selector
manage
v-model="queryParams.salesmanid"
<el-select
clearable
@change="handleQuery"
:prepend="{ id: 0, nickname: $t('未分配客户经理') }"
:multiple="true"
v-model="queryParams.salesmanid"
:placeholder="$t('请选择客户经理')"
size="small"
>
<el-option
v-for="dict in customerServiceList"
:key="dict.id"
:label="dict.nickname"
:value="dict.id"
/>
</el-select>
</el-form-item>
<el-form-item label="首次成交" prop="delFlag">
......@@ -71,6 +78,7 @@
<el-form-item label="客户来源" prop="remark">
<el-select
v-model="queryParams.source"
:multiple="true"
:placeholder="$t('请选择客户来源')"
>
<el-option
......@@ -85,6 +93,7 @@
<el-select
v-model="queryParams.customerrole"
clearable
:multiple="true"
style="width: 200px"
>
<el-option
......@@ -98,6 +107,7 @@
<el-form-item label="客户国家" prop="country">
<el-select
clearable
:multiple="true"
v-model="queryParams.country"
:placeholder="$t('请选择国家')"
>
......@@ -376,6 +386,7 @@
//国家列表接口
import { getCountryListAll } from "@/api/ecw/country";
import UserSelector from "@/components/UserSelector";
import { listServiceUser2 } from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect";
//自定义目录数样式
import "@/assets/styles/vue-treeselect.css";
......@@ -528,12 +539,17 @@ export default {
objEcwReportPermission: {},
DeptEx: { id: undefined, name: undefined, parentId: undefined },
ParentPar: {},
customerServiceList: [],
};
},
created() {
getCountryListAll().then((r) => {
this.countryList = r.data;
});
listServiceUser2().then((r) => {
this.customerServiceList = r.data;
});
this.doLoadData();
},
watch: {
......@@ -541,7 +557,7 @@ export default {
//lanbm 2024-05-06 解决重新进入参数不刷新的问题
//this.$route.name == "客户分析" 用name做逻辑判断,有时候菜单名称会变化
//"/report/customer_analysis" lanbm 2024-05-07 调整为根据path做逻辑判断
if (this.$route.path== "/report/customer_analysis") {
if (this.$route.path == "/report/customer_analysis") {
this.doLoadData();
}
},
......@@ -769,19 +785,19 @@ export default {
},
test() {
//当前路径
let sP=this.$route.path;
let sP = this.$route.path;
alert(sP);
//当前参数
let sPar= this.$route.params;
let sPar = this.$route.params;
alert(sPar);
//路由名称
let sRoute=this.$route.name;
let sRoute = this.$route.name;
alert(sRoute);
//路由查询参数
let sQ=this.$route.query;
let sQ = this.$route.query;
alert(sQ.toString());
//路由匹配项
let sM=this.$route.matched;
let sM = this.$route.matched;
alert(sM.toString());
return;
......
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