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

Merge remote-tracking branch 'origin/dev1.6' into dev1.6

parents 77de451f 91edfab2
...@@ -143,6 +143,17 @@ export function billCreate(data) { ...@@ -143,6 +143,17 @@ export function billCreate(data) {
}); });
} }
/**
* 获得提单补料pdf
*/
export function getBoxLadingBillPdf(params) {
return request({
url: "/ecw/box-lading-bill/getBoxLadingBillPdf",
method: "get",
params,
});
}
/** /**
* 驳船 * 驳船
* *
......
...@@ -93,3 +93,14 @@ export function getOrderReportVolume(params){ ...@@ -93,3 +93,14 @@ export function getOrderReportVolume(params){
params params
}) })
} }
// 根据运输方式ID获取待排单订单方数
export function getWarehousingVolume(params){
return request({
url: '/ecw/future-box/getWarehousingVolume',
method: 'get',
params
})
}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-button v-show="!readonly" type="primary" size="mini" @click="handleOpen">选择</el-button> <el-button v-show="!readonly" type="primary" size="mini" @click="handleOpen">选择</el-button>
<el-dialog <el-dialog
title="提示" title="储位"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="30%" width="30%"
append-to-body append-to-body
...@@ -177,22 +177,21 @@ export default { ...@@ -177,22 +177,21 @@ export default {
this.initArea() this.initArea()
}, },
handleSave(){ handleSave(){
this.$emit('input', this.inputValue) this.$nextTick(() => {
this.dialogVisible = false const data = this.inputValue.map(e => {
return {
if (this.isEditing) { ...e,
this.$nextTick(() => { orderItemId: this.orderItemId,
const data = this.inputValue.map(e => { warehouseInId: this.warehouseInId
return { }
...e,
orderItemId: this.orderItemId,
warehouseInId: this.warehouseInId
}
})
updateWarehouseInLocation(data)
}) })
} this.$emit('input', data)
this.dialogVisible = false
if (this.isEditing || this.orderItemId) {
updateWarehouseInLocation(data)
}
})
}, },
handleClose() { handleClose() {
this.dialogVisible = false this.dialogVisible = false
......
<template>
<iframe src="https://chat.groupage.cn/" class="iframe"></iframe>
</template>
<style>
.iframe{
width: 100%;
height: calc(100vh - 84px);
border: none;
}
</style>
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
</template> </template>
<script> <script>
import { createFutureBox, updateFutureBox, deleteFutureBox, getFutureBox, getFutureBoxPage, exportFutureBoxExcel, getBoxedVolume, getToBeWareHousedVolume,getWareHousedVolume,getExceptionVolume, getOrderReportVolume} from "@/api/ecw/futureBox"; import { createFutureBox, updateFutureBox, deleteFutureBox, getFutureBox, getFutureBoxPage, exportFutureBoxExcel, getBoxedVolume, getToBeWareHousedVolume,getWareHousedVolume,getExceptionVolume, getOrderReportVolume,getWarehousingVolume} from "@/api/ecw/futureBox";
import {getCabinetPage} from "@/api/ecw/cabinet"; import {getCabinetPage} from "@/api/ecw/cabinet";
import { getChannelList } from '@/api/ecw/channel'; import { getChannelList } from '@/api/ecw/channel';
import { getWarehouseList } from "@/api/ecw/warehouse" import { getWarehouseList } from "@/api/ecw/warehouse"
...@@ -334,10 +334,10 @@ export default { ...@@ -334,10 +334,10 @@ export default {
'form.shippingChannelId'(){ 'form.shippingChannelId'(){
this.getVolume() this.getVolume()
}, },
'form.warehousedNumber'(){ //'form.warehousedNumber'(){
//在仓 = 已入仓-已封柜 //在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber)) //this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
}, //},
'form.loadingNumber'(){ 'form.loadingNumber'(){
//在仓 = 已入仓-已封柜 //在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber)) this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
...@@ -378,6 +378,11 @@ export default { ...@@ -378,6 +378,11 @@ export default {
getOrderReportVolume(data).then(res => { getOrderReportVolume(data).then(res => {
this.$set(this.form, 'orderReportNumber', res.data || 0) this.$set(this.form, 'orderReportNumber', res.data || 0)
}) })
// 获得待排单订单方数
getWarehousingVolume(data).then(res => {
this.$set(this.form, 'warehousingNumber', res.data || 0)
})
}, },
setDefaultVolume(){ setDefaultVolume(){
this.$set(this.form, 'loadingNumber', 0) this.$set(this.form, 'loadingNumber', 0)
......
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
<el-button type="primary" @click="onSubmit(1)">{{$t('保存')}}</el-button> <el-button type="primary" @click="onSubmit(1)">{{$t('保存')}}</el-button>
<el-button type="success" @click="onSubmit(2)">{{$t('提交')}}</el-button> <el-button type="success" @click="onSubmit(2)">{{$t('提交')}}</el-button>
<el-button @click="cancel">{{$t('关闭')}}</el-button> <el-button @click="cancel">{{$t('关闭')}}</el-button>
<el-button :disabled="shipmentObj.ladingBillInfo == null" @click="download">{{$t('下载提单确认件')}}</el-button>
</el-row> </el-row>
</div> </div>
</template> </template>
...@@ -80,9 +81,10 @@ import userSelect from "./common/userSelect.vue"; ...@@ -80,9 +81,10 @@ import userSelect from "./common/userSelect.vue";
import ladingSelect from "./common/ladingSelect.vue"; import ladingSelect from "./common/ladingSelect.vue";
import { getUnitList } from "@/api/ecw/unit"; import { getUnitList } from "@/api/ecw/unit";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
import { billCreate } from "@/api/ecw/boxSea"; import { billCreate, getBoxLadingBillPdf } from "@/api/ecw/boxSea";
import { getSupplier } from "@/api/ecw/supplier"; import { getSupplier } from "@/api/ecw/supplier";
import { formatNumberString, constantDict, serviceMsg } from "../utils"; import { formatNumberString, constantDict, serviceMsg } from "../utils";
import FileSaver from 'file-saver'
/** /**
* 提单补料 * 提单补料
...@@ -132,7 +134,6 @@ export default { ...@@ -132,7 +134,6 @@ export default {
...oldData, ...oldData,
packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit, packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit,
}; };
console.log(this.shipmentObj)
this.$set(this.subMaterialObj,'agentId',this.shipmentObj.agentInfo?.agentId||undefined) this.$set(this.subMaterialObj,'agentId',this.shipmentObj.agentInfo?.agentId||undefined)
this.$set(this.subMaterialObj,'soNo',this.shipmentObj.bookSeaInfo?.sono||undefined) this.$set(this.subMaterialObj,'soNo',this.shipmentObj.bookSeaInfo?.sono||undefined)
this.$set(this.subMaterialObj,'markNo',"N/M") this.$set(this.subMaterialObj,'markNo',"N/M")
...@@ -166,6 +167,7 @@ export default { ...@@ -166,6 +167,7 @@ export default {
operateType, operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.download()
this.cancel("submit"); this.cancel("submit");
}); });
}); });
...@@ -176,6 +178,12 @@ export default { ...@@ -176,6 +178,12 @@ export default {
cancel(type) { cancel(type) {
this.$emit("closeDialog", type); this.$emit("closeDialog", type);
}, },
download() {
getBoxLadingBillPdf({shipmentId: this.shipmentObj.id}).then(res=>{
let blob = new Blob([res], {type: "application/pdf"})
FileSaver.saveAs(blob, this.$t('提单确认件'));
})
}
}, },
}; };
</script> </script>
......
...@@ -46,6 +46,7 @@ import unloadingWidget from "./nodePage/unloading/index.vue"; ...@@ -46,6 +46,7 @@ import unloadingWidget from "./nodePage/unloading/index.vue";
import settlementWidget from "./nodePage/settlement.vue"; import settlementWidget from "./nodePage/settlement.vue";
import reviewWidget from "./nodePage/review.vue"; import reviewWidget from "./nodePage/review.vue";
import tallyWidget from "./nodePage/tally/index.vue"; import tallyWidget from "./nodePage/tally/index.vue";
import {checkPermi} from '@/utils/permission'
/** /**
* 海运流程图 * 海运流程图
...@@ -131,10 +132,10 @@ export default { ...@@ -131,10 +132,10 @@ export default {
}, },
/** 节点点击 */ /** 节点点击 */
nodeClick(currIndex, node) { nodeClick(currIndex, node) {
// if () { if (!checkPermi(['box:'+node.type+':show'])) {
// this.$message.error(this.$t("没有此操作的权限")); this.$message.error(this.$t("没有此操作的权限"));
// return; return;
// } }
if (currIndex > this.currIndex) { if (currIndex > this.currIndex) {
this.$message.error(this.$t("请先完成上一步")); this.$message.error(this.$t("请先完成上一步"));
return; return;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="app-seaStepDetail"> <div class="app-seaStepDetail">
<el-scrollbar :vertical="true" viewClass="shipping-step"> <el-scrollbar :vertical="true" viewClass="shipping-step">
<template v-for="(step, index) in flatSeaStep"> <template v-for="(step, index) in flatSeaStep">
<div :key="index" v-if="shipmentObj[step.voName] && columnsMapping[step.voName]" class="step-table"> <div :key="index" v-if="shipmentObj[step.voName] && columnsMapping[step.voName] && checkPermi(['box:'+step.type+':show'])" class="step-table">
<div class="step-title">{{step.title}}</div> <div class="step-title">{{step.title}}</div>
<div v-for="(data, index) in columnsMapping[step.voName]" :key="index" class="step-content"> <div v-for="(data, index) in columnsMapping[step.voName]" :key="index" class="step-content">
<p>{{data.title}}</p> <p>{{data.title}}</p>
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<script> <script>
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as _C from "./utils"; import * as _C from "./utils";
import {checkPermi} from '@/utils/permission'
export default { export default {
name: "seaStepDetail", name: "seaStepDetail",
...@@ -32,6 +33,7 @@ export default { ...@@ -32,6 +33,7 @@ export default {
}; };
}, },
methods: { methods: {
checkPermi, // 检查权限
getObjInfo(voName, data) { getObjInfo(voName, data) {
const { key, type } = data; const { key, type } = data;
let val = this.shipmentObj[voName]?.[key] ?? ""; let val = this.shipmentObj[voName]?.[key] ?? "";
......
...@@ -662,7 +662,7 @@ export default { ...@@ -662,7 +662,7 @@ export default {
} }
}) })
this.$set(this.form, 'suitableProdType', this.isAllProduct ? 0 : 1)
let data = Object.assign({}, this.form, {discountDetailedVOs}) let data = Object.assign({}, this.form, {discountDetailedVOs})
...@@ -681,6 +681,7 @@ export default { ...@@ -681,6 +681,7 @@ export default {
if(this.form.type != 1 && !this.isAllProduct && !this.form.prodIds){ if(this.form.type != 1 && !this.isAllProduct && !this.form.prodIds){
return this.$message.error('请选择商品') return this.$message.error('请选择商品')
} }
this.$set(this.form, 'suitableProdType', this.isAllProduct ? 0 : 1)
// 修改的提交 // 修改的提交
if (data.couponId != null) { if (data.couponId != null) {
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector> <dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.resourceType" formatter="number"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
...@@ -575,7 +575,7 @@ export default { ...@@ -575,7 +575,7 @@ export default {
department: null, department: null,
creditLevel:null, creditLevel:null,
country:null, country:null,
marketType:null, resourceType:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
......
...@@ -375,7 +375,7 @@ ...@@ -375,7 +375,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.type !== 'total'">{{ scope.row.collectionAmount }}</span> <span v-if="scope.row.type !== 'total'">{{ scope.row.collectionAmount }}</span>
<div v-else> <div v-else>
<div v-for="itemAmount in scope.row.collectionAmount">{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}: {{ itemAmount.amount}}</div> <div v-for="itemAmount in scope.row.collectionAmount">{{$i18n.locale=='zh_CN'?(itemAmount?itemAmount.currencyNameZh:''):(itemAmount?itemAmount.currencyNameEn:'')}}: {{ itemAmount.amount}}</div>
<!-- <div v-if="scope.row.collectionAmount[1]">{{ $t('人民币') }}: {{ scope.row.collectionAmount[1].toFixed(6) }}</div> <!-- <div v-if="scope.row.collectionAmount[1]">{{ $t('人民币') }}: {{ scope.row.collectionAmount[1].toFixed(6) }}</div>
<div v-if="scope.row.collectionAmount[2]">{{ $t('奈拉') }}: {{ scope.row.collectionAmount[2].toFixed(6) }}</div> <div v-if="scope.row.collectionAmount[2]">{{ $t('奈拉') }}: {{ scope.row.collectionAmount[2].toFixed(6) }}</div>
<div v-if="scope.row.collectionAmount[3]">{{ $t('西非法郎') }}: {{ scope.row.collectionAmount[3].toFixed(6) }}</div> --> <div v-if="scope.row.collectionAmount[3]">{{ $t('西非法郎') }}: {{ scope.row.collectionAmount[3].toFixed(6) }}</div> -->
...@@ -810,8 +810,9 @@ export default { ...@@ -810,8 +810,9 @@ export default {
this.form.receiptAccountList.forEach((item, index) => { this.form.receiptAccountList.forEach((item, index) => {
this.rateChange(item, index) this.rateChange(item, index)
// this.calculation()
}); });
this.calculation()
}) })
}) })
} }
...@@ -917,7 +918,7 @@ export default { ...@@ -917,7 +918,7 @@ export default {
// if (row.currencyId == 3 && val == 2) row.collectionRate = this.RMBtoNAN() // if (row.currencyId == 3 && val == 2) row.collectionRate = this.RMBtoNAN()
// if (row.currencyId == 2 && val == 1) row.collectionRate = this.NANtoUS() // if (row.currencyId == 2 && val == 1) row.collectionRate = this.NANtoUS()
// if (row.currencyId == 2 && val == 3) row.collectionRate = this.NANtoRMB() // if (row.currencyId == 2 && val == 3) row.collectionRate = this.NANtoRMB()
row.collectionRate = NP.divide(this.currencyList.find(v => v.id === row.currencyId).huilv, this.currencyList.find(v => v.id === val).huilv).toFixed(6) row.collectionRate = NP.times(this.currencyList.find(v => v.id === row.currencyId).huilv/100, this.currencyList.find(v => v.id === val).exchangeToFc/100).toFixed(6)
} }
this.rateChange(row, index) this.rateChange(row, index)
...@@ -986,12 +987,13 @@ export default { ...@@ -986,12 +987,13 @@ export default {
dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.taxAmount || 0), 0) dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.taxAmount || 0), 0)
discountDollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0) discountDollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
var t = copyList.find(v => v.currencyId == item.id) var t = copyList.find(v => v.currencyId == item.id)
console.log(discountDollar)
this.form.receiptAccountList.push( this.form.receiptAccountList.push(
{ {
discountTotal: discountDollar, discountTotal: discountDollar,
currencyId: item.id, currencyId: item.id,
receivableAmount: dollar, receivableAmount: dollar,
writeOffRate: NP.divide(this.currencyList.find(v => v.id === item.id).huilv, this.currencyList.find(v => v.id === this.showCurrencyId).huilv).toFixed(6), writeOffRate: item.id==this.showCurrencyId?1: NP.times(this.currencyList.find(v => v.id === item.id).huilv/100, this.currencyList.find(v => v.id === this.showCurrencyId).exchangeToFc/100).toFixed(6),
platformAccountId: t?.platformAccountId || '', platformAccountId: t?.platformAccountId || '',
collectionCurrencyId: item.id, collectionCurrencyId: item.id,
collectionRate: 1 collectionRate: 1
...@@ -1206,12 +1208,14 @@ export default { ...@@ -1206,12 +1208,14 @@ export default {
// this.calculation() // this.calculation()
// }) // })
// }else{ // }else{
var discount = this.list[this.selectListIndex]
discount['discountTotal'] = this.discountForm.discountTotal
setTimeout(()=>{ setTimeout(()=>{
getReceivableInfoByIds({ id: this.selectListRow.id }).then(res => { // getReceivableInfoByIds({ id: this.selectListRow.id }).then(res => {
this.$set(this.list, this.selectListIndex, {...res.data}) this.$set(this.list, this.selectListIndex, {...discount})
this.cancelDiscount() this.cancelDiscount()
this.calculation() this.calculation()
}) // })
},1000) },1000)
......
...@@ -885,7 +885,7 @@ export default { ...@@ -885,7 +885,7 @@ export default {
// else if (this.showCurrencyId === 3 && val === 2) rate = this.NANtoRMB() // else if (this.showCurrencyId === 3 && val === 2) rate = this.NANtoRMB()
// else if (this.showCurrencyId === 2 && val === 1) rate = this.UStoNAN() // else if (this.showCurrencyId === 2 && val === 1) rate = this.UStoNAN()
// else if (this.showCurrencyId === 2 && val === 3) rate = this.RMBtoNAN() // else if (this.showCurrencyId === 2 && val === 3) rate = this.RMBtoNAN()
rate = NP.divide(this.currencyList.find(v => v.id === val).huilv, this.currencyList.find(v => v.id === this.showCurrencyId).huilv).toFixed(6) rate = NP.times(this.currencyList.find(v => v.id === val).huilv/100, this.currencyList.find(v => v.id === this.showCurrencyId).exchangeToFc/100).toFixed(6)
} }
this.$set(this.addForm, 'rate', rate) this.$set(this.addForm, 'rate', rate)
}, },
......
...@@ -144,25 +144,25 @@ ...@@ -144,25 +144,25 @@
clearable clearable
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人')"> <!-- <el-form-item :label="$t('发货人')">
<customer-selector <customer-selector
v-model="queryParams.consignorNameOrPhone" v-model="queryParams.consignorNameOrPhone"
@change="consignor = $event" @change="consignor = $event"
clearable clearable
/> />
</el-form-item> </el-form-item> -->
<!-- <el-form-item label="发货人:" > <el-form-item label="发货人:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" :placeholder="$t('请输入发货人')" clearable @keyup.enter.native="handleQuery"/> <el-input style="max-width: 188px;" v-model="queryParams.consignorNameOrPhone" :placeholder="$t('请输入发货人')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> --> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item :label="$t('收货人')"> <el-form-item :label="$t('收货人')">
<!-- <el-input style="max-width: 188px;" v-model="queryParams.consigneeNameOrPhone" :placeholder="$t('请输入收货人')" clearable @keyup.enter.native="handleQuery"/> --> <el-input style="max-width: 188px;" v-model="queryParams.consigneeNameOrPhone" :placeholder="$t('请输入收货人')" clearable @keyup.enter.native="handleQuery"/>
<customer-selector <!-- <customer-selector
v-model="queryParams.consigneeNameOrPhone" v-model="queryParams.consigneeNameOrPhone"
@change="consignor = $event" @change="consignor = $event"
clearable clearable
/> /> -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<!-- <dict-selector :type="DICT_TYPE.BEGINTIME_TYPE_ENDTIME" v-model="queryParams.date"></dict-selector> --> <!-- <dict-selector :type="DICT_TYPE.BEGINTIME_TYPE_ENDTIME" v-model="queryParams.date"></dict-selector> -->
...@@ -328,7 +328,14 @@ export default { ...@@ -328,7 +328,14 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams }; console.log(this.queryParams)
let params = {};
for(let key in this.queryParams){
if(this.queryParams[key]&&this.queryParams[key]!= undefined){
params[key] = this.queryParams[key]
}
}
this.addBeginAndEndTime(params, this.dateType, "createTime"); this.addBeginAndEndTime(params, this.dateType, "createTime");
// 执行查询 // 执行查询
getReceivableList(params).then((response) => { getReceivableList(params).then((response) => {
......
...@@ -307,8 +307,6 @@ export default { ...@@ -307,8 +307,6 @@ export default {
dateType: [], dateType: [],
loading: "", loading: "",
params: { params: {
page: 1,
rows: 20,
}, },
// 查询参数 // 查询参数
queryParams: { queryParams: {
...@@ -355,7 +353,7 @@ export default { ...@@ -355,7 +353,7 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams }; let params = { ...this.params };
this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime"); this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime");
// 执行查询 // 执行查询
getReceiptList(params).then((response) => { getReceiptList(params).then((response) => {
...@@ -484,6 +482,7 @@ export default { ...@@ -484,6 +482,7 @@ export default {
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.params = {}
if(this.dateFilter&&this.dateFilter.length>0){ if(this.dateFilter&&this.dateFilter.length>0){
this.queryParams.beginCreateTime = this.dateFilter[0] this.queryParams.beginCreateTime = this.dateFilter[0]
this.queryParams.endCreateTime = this.dateFilter[1] this.queryParams.endCreateTime = this.dateFilter[1]
...@@ -493,6 +492,11 @@ export default { ...@@ -493,6 +492,11 @@ export default {
} }
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
for(var key in this.queryParams){
if(this.queryParams[key]){
this.params[key] = this.queryParams[key]
}
}
this.getList(); this.getList();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -35,12 +35,12 @@ ...@@ -35,12 +35,12 @@
<el-form-item :label="$t('提单号')" prop="tidanNo"> <el-form-item :label="$t('提单号')" prop="tidanNo">
<el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人')" prop="consignorId"> <el-form-item :label="$t('发货人')" prop="consignorKey">
<el-input v-model="queryParams.consignorId" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consignorKey" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人')" prop="consigneeId"> <el-form-item :label="$t('收货人')" prop="consigneeKey">
<el-input v-model="queryParams.consigneeId" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsType"> <el-form-item :label="$t('报关方式')" prop="customsType">
...@@ -246,15 +246,20 @@ export default { ...@@ -246,15 +246,20 @@ export default {
this.loading = true; this.loading = true;
// 执行查询 // 执行查询
getCargoControlOrderPage(this.combinedQueryParams).then(response => { getCargoControlOrderPage(this.combinedQueryParams).then(response => {
this.list = response.data.list; this.list = []
this.total = response.data.total; // 直接更细数据,可能因为elTable的部分渲染产生bug,比如权限控制异常
this.$nextTick( () => {
this.list = response.data.list;
this.total = response.data.total;
})
this.loading = false; this.loading = false;
}); });
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNo = 1; this.queryParams.page = 1;
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
......
...@@ -42,7 +42,11 @@ ...@@ -42,7 +42,11 @@
<template slot-scope="scope">{{scope.$index + 1}}</template> <template slot-scope="scope">{{scope.$index + 1}}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收货人')" prop="consigneeName" /> <el-table-column :label="$t('收货人')" prop="consigneeName" />
<el-table-column :label="$t('收货人电话')" prop="consigneePhone" /> <el-table-column :label="$t('收货人电话')" prop="consigneePhone">
<template slot-scope="{row}">
+{{row.consigneeCountryCode}} {{row.consigneePhone}}
</template>
</el-table-column>
<el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column> <el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column>
<el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column> <el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column>
<el-table-column :label="$t('体积') + '(m³)'" prop="pickVolume"></el-table-column> <el-table-column :label="$t('体积') + '(m³)'" prop="pickVolume"></el-table-column>
...@@ -67,7 +71,7 @@ ...@@ -67,7 +71,7 @@
<el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button> <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button>
<el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button> <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.id)">{{$t('审核详情')}}</el-button> <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{$t('审核详情')}}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button> <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -181,8 +185,8 @@ export default { ...@@ -181,8 +185,8 @@ export default {
this.loadData() this.loadData()
}, },
// 查看审核详情 // 查看审核详情
showApprovalDetail(id){ showApprovalDetail(formId){
this.$router.push('/bpm/process-instance/detail?id=' + this.getApproval(id, 'formId')) this.$router.push('/bpm/process-instance/detail?id=' + formId)
}, },
// 取消审核 // 取消审核
cancelApproval(id){ cancelApproval(id){
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<p style="padding-bottom:10px;font-size:16px;"> <p style="padding-bottom:10px;font-size:16px;">
{{$t('订单号')}}{{detail.orderNo}} {{$t('订单号')}}{{detail.orderNo}}
&nbsp;&nbsp;&nbsp;{{$t('发货人电话')}}{{detail.consignorVO.countryCode}} {{detail.consignorVO.phone}} &nbsp;&nbsp;&nbsp;{{$t('发货人电话')}}{{detail.consignorVO.countryCode}} {{detail.consignorVO.phone}}
&nbsp;&nbsp;&nbsp;{{$t('提货地点')}}{{objective.titleZh}} &nbsp;&nbsp;&nbsp;{{$t('提货地点')}}{{$l(objective, 'title')}}
<img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" /> <img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" />
</p> </p>
<div id="table1" width="205mm"> <div id="table1" width="205mm">
...@@ -100,10 +100,14 @@ export default { ...@@ -100,10 +100,14 @@ export default {
return t return t
}, },
objective(){ objective(){
if(this.detail && this.detail.orderObjectiveVO && this.detail.orderObjectiveVO.objective){ return {
titleZh: this.detail.logisticsInfoDto.destTitleZh,
titleEn: this.detail.logisticsInfoDto.destTitleEn
}
/* if(this.detail && this.detail.orderObjectiveVO && this.detail.orderObjectiveVO.objective){
return JSON.parse(this.detail.orderObjectiveVO.objective) return JSON.parse(this.detail.orderObjectiveVO.objective)
} }
return {} return {} */
}, },
items(){ items(){
let arr = [] let arr = []
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<el-input v-model="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" /> <dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" :filter="(item) => item.value != 'PickTime'" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" />
<el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" <el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-"
:start-placeholder="$t('开始日期')" :start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')" :end-placeholder="$t('结束日期')"
......
...@@ -31,7 +31,11 @@ ...@@ -31,7 +31,11 @@
:label="$t('入库货物属性')"> :label="$t('入库货物属性')">
<template v-slot="{row}"> <template v-slot="{row}">
<template v-if="row.warehouseInInfoVO"> <template v-if="row.warehouseInInfoVO">
{{$t('品牌')}}<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" /><br> {{$t('品牌')}}
<!-- 23-03-27 根据需求方要求,按照详情页一样的规则显示 -->
<template v-if="row.brandName">{{row.brandName}}</template>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" />
<!-- <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" /> --><br>
{{$t('箱数')}}:{{ row.warehouseInInfoVO.cartonsNum }}<br> {{$t('箱数')}}:{{ row.warehouseInInfoVO.cartonsNum }}<br>
{{$t('体积')}}:{{ row.warehouseInInfoVO.volume }}m³<br> {{$t('体积')}}:{{ row.warehouseInInfoVO.volume }}m³<br>
{{$t('重量')}}:{{ row.warehouseInInfoVO.weight }}Kg {{$t('重量')}}:{{ row.warehouseInInfoVO.weight }}Kg
......
This diff is collapsed.
...@@ -81,14 +81,17 @@ ...@@ -81,14 +81,17 @@
prop="address" prop="address"
:label="$t('操作')"> :label="$t('操作')">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<el-button v-if="isEdit" size="mini" type="text" @click="handleWarehousing(row)">{{$t('修改')}}</el-button> <warehouse v-if="isEdit" :warehousing="{...order.orderItemVOList[$index], ...orderItemList[$index]}" :title="$t('修改')" :order="order" @close="getList"></warehouse>
<!-- <el-button v-if="isEdit" size="mini" type="text" @click="handleWarehousing(row)">{{$t('修改')}}</el-button>-->
<template v-else-if="wareItem(row.orderItemId) && wareItem(row.orderItemId).orderWarehouseInBackItemDoList && wareItem(row.orderItemId).orderWarehouseInBackItemDoList.length > 0"> <template v-else-if="wareItem(row.orderItemId) && wareItem(row.orderItemId).orderWarehouseInBackItemDoList && wareItem(row.orderItemId).orderWarehouseInBackItemDoList.length > 0">
<!-- <template v-if="!order.parentOrderId">--> <!-- <template v-if="!order.parentOrderId">-->
<el-button size="mini" type="text" @click="handleWarehousing(row)">{{$t('追加')}}</el-button> <warehouse :warehousing="{...order.orderItemVOList[$index], ...orderItemList[$index]}" :title="$t('追加')" :order="order" @close="getList"></warehouse>
<!-- <el-button size="mini" type="text" @click="handleWarehousing(row)">{{$t('追加')}}</el-button>-->
<el-button size="mini" type="text" @click="handleWarehousingReturn(row)">{{$t('退仓')}}</el-button> <el-button size="mini" type="text" @click="handleWarehousingReturn(row)">{{$t('退仓')}}</el-button>
<!-- </template>--> <!-- </template>-->
</template> </template>
<el-button v-else size="mini" type="text" @click="handleWarehousing(row)">{{$t('入仓')}}</el-button> <warehouse v-else :warehousing="{...order.orderItemVOList[$index], ...orderItemList[$index]}" :title="$t('入仓')" :order="order" @close="getList"></warehouse>
<!-- <el-button v-else size="mini" type="text" @click="handleWarehousing(row)">{{$t('入仓')}}</el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -212,6 +215,7 @@ import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseRe ...@@ -212,6 +215,7 @@ import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseRe
import imageUpload from "@/components/ImageUpload"; import imageUpload from "@/components/ImageUpload";
import {parseTime} from "@/utils/ruoyi" import {parseTime} from "@/utils/ruoyi"
import ImageAndVideoUpload from '@/components/ImageAndVideoUpload' import ImageAndVideoUpload from '@/components/ImageAndVideoUpload'
import Warehouse from "@/views/ecw/order/warehousing/components/Warehouse"
export default { export default {
name: "Warehousing", name: "Warehousing",
...@@ -223,12 +227,13 @@ export default { ...@@ -223,12 +227,13 @@ export default {
PrintWarehouseReceipt, PrintWarehouseReceipt,
imageUpload, imageUpload,
ImageAndVideoUpload, ImageAndVideoUpload,
Warehouse
}, },
mounted() { mounted() {
if(this.$route.query.id){ if(this.$route.query.id){
this.orderId = parseInt(this.$route.query.id || undefined) this.orderId = parseInt(this.$route.query.id || undefined)
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse()) getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data) getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data)
Promise.all([ Promise.all([
...@@ -286,6 +291,10 @@ export default { ...@@ -286,6 +291,10 @@ export default {
}, },
methods: { methods: {
getList(){
this.getOrder()
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
},
getWarehousePictureList(){ getWarehousePictureList(){
return warehousePictureList({ return warehousePictureList({
bizId: this.order.orderId, bizId: this.order.orderId,
...@@ -439,7 +448,7 @@ export default { ...@@ -439,7 +448,7 @@ export default {
message: this.$t('货物退仓成功!') message: this.$t('货物退仓成功!')
}); });
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse()) getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
this.getOrder() this.getOrder()
}) })
...@@ -452,7 +461,7 @@ export default { ...@@ -452,7 +461,7 @@ export default {
warehousingVisible(val) { warehousingVisible(val) {
if (!val){ if (!val){
this.getOrder() this.getOrder()
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse()) getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
} }
}, },
orderSpecialNeeds(val){ orderSpecialNeeds(val){
......
...@@ -700,7 +700,8 @@ export default { ...@@ -700,7 +700,8 @@ export default {
this.$set(this.form, 'clearancePriceUnit', priceUnit) this.$set(this.form, 'clearancePriceUnit', priceUnit)
this.$set(this.form, 'allPriceUnit', priceUnit) this.$set(this.form, 'allPriceUnit', priceUnit)
}, },
submitForm() { // force 为是否强制提交,在价格过期的时候需要确认后强制提交
submitForm(force = false) {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (!valid) { if (!valid) {
return; return;
...@@ -747,6 +748,20 @@ export default { ...@@ -747,6 +748,20 @@ export default {
} }
} }
// 设置了有效期,且已过期则给提示
if(this.form.validateEndDate && force !== true){
let validateEndDate = new Date(this.form.validateEndDate)
if(validateEndDate.getTime() < Date.now()){
return this.$confirm('您设置的线路价格已过期,确定提交吗?', '提示', {
confirmButtonText: '确认提交',
cancelButtonText: '取消提交',
type: 'warning'
}).then(res => {
this.submitForm(true)
})
}
}
// 修改单条路线 // 修改单条路线
if (this.$route.query.action == 'update') { if (this.$route.query.action == 'update') {
this.loading = true this.loading = true
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".jpg, .png, .gif" :auto-upload="false" drag <el-upload ref="upload" :limit="1" accept=".jpg, .png, .gif,.apk" :auto-upload="false" drag
:headers="upload.headers" :action="upload.url" :data="upload.data" :disabled="upload.isUploading" :headers="upload.headers" :action="upload.url" :data="upload.data" :disabled="upload.isUploading"
:on-change="handleFileChange" :on-change="handleFileChange"
:on-progress="handleFileUploadProgress" :on-progress="handleFileUploadProgress"
......
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