Commit 9cbec865 authored by 我在何方's avatar 我在何方
parents 9f7501fd bc8b1378
...@@ -1015,3 +1015,11 @@ export function setCanNotShipment(orderId){ ...@@ -1015,3 +1015,11 @@ export function setCanNotShipment(orderId){
method: 'put', method: 'put',
}) })
} }
// 查看母订单
export function getParentOrder(orderId){
return request({
url: '/ecw/order/getParentOrder?orderId=' + orderId,
method: 'get'
})
}
<template> <template>
<el-select v-model="valueSync" :multiple="multiple" :disabled="disabled" :filterable="filterable" :placeholder="$t('请选择')"> <el-select :clearable="clearable" v-model="valueSync" :multiple="multiple" :disabled="disabled" :filterable="filterable" :placeholder="$t('请选择')">
<el-option v-for="item in optionsFormated" :key="item.key" :label="item.label" :value="item.value" /> <el-option v-for="item in optionsFormated" :key="item.key" :label="item.label" :value="item.value" />
</el-select> </el-select>
</template> </template>
......
...@@ -233,6 +233,9 @@ export const DICT_TYPE = { ...@@ -233,6 +233,9 @@ export const DICT_TYPE = {
BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态 BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态
BOX_FLYING_ERROR_TYPE: 'flying_error_type',// 航班异常状态 BOX_FLYING_ERROR_TYPE: 'flying_error_type',// 航班异常状态
SETTLEMENT_STATUS: 'settlement_status', // 结算状态 SETTLEMENT_STATUS: 'settlement_status', // 结算状态
FLYING_TICKET_EXCEPTION: 'flying_ticket_exception', // 起飞异常
ARRIVAL_TICKET_EXCEPTION: 'arrival_ticket_exception', // 到港异常
CLEARANCE_TICKET_EXCEPTION: 'clearance_ticket_exception', // 清关异常
APP_TYPE:"app_type", //系统类型 APP_TYPE:"app_type", //系统类型
AIR_SHIPMENT_PROCESS:'air_shipment_process', AIR_SHIPMENT_PROCESS:'air_shipment_process',
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('票异常')" :rules="[{required: true,message: this.$t('票异常必填'),trigger: 'blur'}]" prop="billAbnId"> <el-form-item :label="$t('票异常')" :rules="[{required: true,message: this.$t('票异常必填'),trigger: 'blur'}]" prop="billAbnId">
<el-select v-model="errorObj.billAbnId" :placeholder="$t('请选择票异常')"> <el-select v-model="errorObj.billAbnId" :placeholder="$t('请选择票异常')">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION)" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE[this.regprocess])" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('异常情况')"> <el-form-item :label="$t('异常情况')">
...@@ -52,6 +52,7 @@ import { abnormalCreate } from "@/api/ecw/boxSea"; ...@@ -52,6 +52,7 @@ import { abnormalCreate } from "@/api/ecw/boxSea";
import { serviceMsg } from "./shippingSea/utils"; import { serviceMsg } from "./shippingSea/utils";
import userSelect from "./shippingSea/nodePage/common/userSelect.vue"; import userSelect from "./shippingSea/nodePage/common/userSelect.vue";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { log } from 'bpmn-js-token-simulation';
/** /**
* 异常登记 * 异常登记
...@@ -88,6 +89,25 @@ export default { ...@@ -88,6 +89,25 @@ export default {
'sea': 'BOX_SHIPPING_PROCESS', 'sea': 'BOX_SHIPPING_PROCESS',
'seaAir': 'BOX_SEA_AIR' 'seaAir': 'BOX_SEA_AIR'
}[this.flag] }[this.flag]
},
regprocess(){
var data = ''
this.$set(this.errorObj, 'billAbnId', null)
switch(this.errorObj.opStep){
case '10':
data = 'FLYING_TICKET_EXCEPTION'
break;
case '12':
data = 'ARRIVAL_TICKET_EXCEPTION'
break
case '13':
data = 'CLEARANCE_TICKET_EXCEPTION'
break
default:
data = 'BOX_SHIPPING_TICKET_EXCEPTION'
break
}
return data
} }
}, },
created() { created() {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-form-item :label="$t('预计开船时间')"> <el-form-item :label="$t('预计开船时间')">
{{getSailingTime()}} {{getSailingTime()}}
</el-form-item> </el-form-item>
<el-form-item :label="$t('实际开船时间')"> <el-form-item :label="$t('实际开船时间')" prop="dtRealShipTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="departureObj.dtRealShipTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="departureObj.dtRealShipTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
<p class="message-area">{{$t('订单状态与短信通知,将到指定时间更新与发送')}}</p> <p class="message-area">{{$t('订单状态与短信通知,将到指定时间更新与发送')}}</p>
<p class="message-area" v-show="showMsg">{{$t('实际开船实际与预计时间不符')}}</p> <p class="message-area" v-show="showMsg">{{$t('实际开船实际与预计时间不符')}}</p>
...@@ -51,6 +51,9 @@ export default { ...@@ -51,6 +51,9 @@ export default {
dtEstArrivalTime: [ dtEstArrivalTime: [
{ required: true, message: this.$t("必填"), trigger: "change" }, { required: true, message: this.$t("必填"), trigger: "change" },
], ],
dtRealShipTime: [
{ required: true, message: this.$t("必填"), trigger: "change" },
]
}, },
// 弹窗配置 // 弹窗配置
dialogVisible: false, dialogVisible: false,
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<el-form-item :label="$t('到仓时间')"> <el-form-item :label="$t('到仓时间')">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="unloadingObj.ulWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="unloadingObj.ulWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('卸柜时间')"> <el-form-item :label="$t('卸柜时间')" prop="ulBoxTime" :rules="[{ required: true, message: this.$t('必填'), trigger: 'blue' }]">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="unloadingObj.ulBoxTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="unloadingObj.ulBoxTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
</el-form-item> </el-form-item>
<!--空运多一个出货渠道筛选--> <!--空运多一个出货渠道筛选-->
<el-form-item :label="$t('出货渠道')" prop="channelId" v-if="channelList.length"> <el-form-item :label="$t('出货渠道')" prop="channelId" v-if="channelList.length">
<selector :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector> <selector :clearable="true" :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('特需')" prop="packageType"> <el-form-item :label="$t('特需')" prop="packageType">
<el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable > <el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable >
...@@ -343,9 +343,17 @@ ...@@ -343,9 +343,17 @@
</template> </template>
<!-- 合单,拆单 --> <!-- 合单,拆单 -->
<template v-if=" (scope.row.status < 12 || (scope.row.status == 12 && scope.row.shipmentState == 314)) && !scope.row.abnormalState && scope.row.status > 3 && exclude(scope.row.inWarehouseState, [204,205,206,212,213])"> <!--可出后不显示拆单(经确认合单也不显示) https://zentao.test.jdshangmen.com/bug-view-5322.html-->
<template
v-if=" ([3,4].indexOf(scope.row.transportId) < 0 || scope.row.airShipment < 2) &&
(scope.row.status < 12 || (scope.row.status == 12 && scope.row.shipmentState == 314))
&& !scope.row.abnormalState && scope.row.status > 3
&& exclude(scope.row.inWarehouseState, [204,205,206,212,213])">
<el-dropdown-item @click.native="$router.push(`/order/singleApply?orderNo=${scope.row.orderNo}`)" v-hasPermi="['ecw:order:merge']">{{$t('合单申请')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push(`/order/singleApply?orderNo=${scope.row.orderNo}`)" v-hasPermi="['ecw:order:merge']">{{$t('合单申请')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push(`/order/splitApply?orderId=${scope.row.orderId}`)" v-hasPermi="['ecw:order:split']">{{$t('拆单申请')}}</el-dropdown-item>
<el-dropdown-item
@click.native="$router.push(`/order/splitApply?orderId=${scope.row.orderId}`)"
v-hasPermi="['ecw:order:split']">{{$t('拆单申请')}}</el-dropdown-item>
</template> </template>
<!--撤销拆单,拆单的子订单,预装前显示,预装后变灰不可点击--> <!--撤销拆单,拆单的子订单,预装前显示,预装后变灰不可点击-->
...@@ -353,7 +361,7 @@ ...@@ -353,7 +361,7 @@
<el-dropdown-item @click.native="splitRevoke(scope.row)" v-hasPermi="['ecw:order:split_revoke']">{{$t('撤销拆单')}}</el-dropdown-item> <el-dropdown-item @click.native="splitRevoke(scope.row)" v-hasPermi="['ecw:order:split_revoke']">{{$t('撤销拆单')}}</el-dropdown-item>
</template> </template>
<template v-if="scope.row.parentOrderId"> <template v-if="scope.row.parentOrderId">
<el-dropdown-item @click.native="$router.push('./detail?orderId=' + scope.row.parentOrderId)">{{$t('查看母订单')}}</el-dropdown-item> <el-dropdown-item @click.native="showParentOrder(scope.row)">{{$t('查看母订单')}}</el-dropdown-item>
</template> </template>
...@@ -558,6 +566,7 @@ import { ...@@ -558,6 +566,7 @@ import {
exportShippingDatas, exportShippingDatas,
exportShipFee, exportShipFee,
exportUnload, splitCancelApply, orderSplitRevoke, setCanShipment, setCanNotShipment exportUnload, splitCancelApply, orderSplitRevoke, setCanShipment, setCanNotShipment
,getParentOrder
} from "@/api/ecw/order"; } from "@/api/ecw/order";
/* import { getDictDatas, DICT_TYPE } from '@/utils/dict'; */ /* import { getDictDatas, DICT_TYPE } from '@/utils/dict'; */
import PrintTag from './components/PrintTag' import PrintTag from './components/PrintTag'
...@@ -919,6 +928,7 @@ export default { ...@@ -919,6 +928,7 @@ export default {
rows: 10, rows: 10,
packageTypeArr: [] packageTypeArr: []
} }
this.queryParams.channelId = ''
this.noParam.value = '' this.noParam.value = ''
this.prodParam.value = '' this.prodParam.value = ''
this.dateFilter = [] this.dateFilter = []
...@@ -1012,6 +1022,12 @@ export default { ...@@ -1012,6 +1022,12 @@ export default {
this.$message(this.$t('操作成功')) this.$message(this.$t('操作成功'))
this.getList() this.getList()
}) })
},
// 查看母订单
showParentOrder(row){
getParentOrder(row.orderId).then(res => {
this.$router.push('./detail?orderId=' + res.data.orderId)
})
} }
} }
}; };
......
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="number"> <el-form-item :label="$t('出货渠道')" prop="number">
<selector :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector> <selector clearable :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('特需')" prop="packageType"> <el-form-item :label="$t('特需')" prop="packageType">
<el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable > <el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable >
...@@ -258,7 +258,7 @@ import {getChannelList} from "@/api/ecw/channel"; ...@@ -258,7 +258,7 @@ import {getChannelList} from "@/api/ecw/channel";
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload"; import ImageAndVideoUpload from "@/components/ImageAndVideoUpload";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
export default { export default {
name: "EcwPeddingList", name: "EcwOrderPenddinglist",
components: { components: {
Template, Template,
UserSelector, UserSelector,
...@@ -406,6 +406,7 @@ export default { ...@@ -406,6 +406,7 @@ export default {
rows: 10 rows: 10
} }
this.dateFilter = [] this.dateFilter = []
this.queryParams.channelId = ''
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -23,6 +23,9 @@ ...@@ -23,6 +23,9 @@
<el-descriptions-item :label="$t('运输方式')"> <el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')">
{{orderData.channelName|| '/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('始发地')" > <el-descriptions-item :label="$t('始发地')" >
<template v-if="orderData.logisticsInfoDto"> <template v-if="orderData.logisticsInfoDto">
{{$l(orderData.logisticsInfoDto, 'startTitle')}} {{$l(orderData.logisticsInfoDto, 'startTitle')}}
...@@ -143,6 +146,7 @@ ...@@ -143,6 +146,7 @@
</span> </span>
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item.transportId" />
<span>{{$t('发往')}}{{importCityName(item.dstWarehouseId)}}</span> <span>{{$t('发往')}}{{importCityName(item.dstWarehouseId)}}</span>
<span class="ml-10" v-if="item.channelName">{{$t('出货渠道')}}:{{item.channelName}}</span>
</p> </p>
</div> </div>
<div> <div>
...@@ -552,7 +556,7 @@ export default { ...@@ -552,7 +556,7 @@ export default {
loading:false, loading:false,
open:false, open:false,
form:{ form:{
channelId: null
}, },
importCityList:[], importCityList:[],
selectedUsers:[], selectedUsers:[],
...@@ -609,7 +613,7 @@ export default { ...@@ -609,7 +613,7 @@ export default {
} }
Promise.all([this.getList(), this.getOrder()]).then(res => { Promise.all([this.getList(), this.getOrder()]).then(res => {
if(this.orderData.inWarehouseState != 207 && this.splitData.length){ if(this.orderData.inWarehouseState != 207 && this.splitData.length){
// this.reset() this.reset()
} }
// 空运需要获取货币和体积单位 // 空运需要获取货币和体积单位
......
This diff is collapsed.
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
:visible.sync="visible" :visible.sync="visible"
width="90vw" width="90vw"
> >
<el-form ref="form" :model="form" :rules="formRules" label-width="80px"> <el-form ref="form" :model="form" :rules="formRules" label-width="80px">
<el-descriptions border :column="2"> <el-descriptions border :column="2">
<el-descriptions-item> <el-descriptions-item>
...@@ -241,7 +242,6 @@ import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue"; ...@@ -241,7 +242,6 @@ import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue";
export default { export default {
name: "Package", name: "Package",
components: { components: {
ImageAndVideoUpload, ImageAndVideoUpload,
WarehouseRecordDetail, WarehouseRecordDetail,
......
...@@ -5,10 +5,17 @@ ...@@ -5,10 +5,17 @@
<order-base-info :order="order" stocking></order-base-info> <order-base-info :order="order" stocking></order-base-info>
<h2>{{$t('货物信息')}}</h2> <div class="flex items-center">
<div class="flex-1 page-title">{{$t('货物信息')}}</div>
<el-button type="primary" @click="showNewProductDialog=true">{{$t('添加新品名')}}</el-button>
</div>
<!--
未入仓的不显示 https://zentao.test.jdshangmen.com/bug-view-5292.html
-->
<el-table <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 || []" :data="order.orderItemVOList.filter(item => !!wareItem(item.orderItemId).orderWarehouseInBackItemDoList.length) || []"
default-expand-all default-expand-all
style="width: 100%"> style="width: 100%">
<!--入仓记录--> <!--入仓记录-->
...@@ -144,20 +151,24 @@ ...@@ -144,20 +151,24 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createTime" prop="createTime"
:label="$t('打包状态')"> :label="$t('打包状态')" width="100">
<template v-slot="{row}"> <template v-slot="{row}">
<dict-tag :type="DICT_TYPE.ORDER_ITEM_PACK_STATUS" :value="wareItemPackStatus(row.orderItemId)" /> <dict-tag :type="DICT_TYPE.ORDER_ITEM_PACK_STATUS" :value="wareItemPackStatus(row.orderItemId)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
:label="$t('操作')"> :label="$t('操作')" width="220">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<template v-if="wareItemPackStatus(row.orderItemId) == 1"> <el-button-group>
<el-button size="mini" type="warning" @click="noNeedPack(row)">{{$t('无需打包')}}</el-button> <template v-if="wareItemPackStatus(row.orderItemId) == 1">
<el-button size="mini" type="primary" @click="package(row, $t('打包'))">{{$t('打包')}}</el-button> <el-button size="mini" type="warning" @click="noNeedPack(row)">{{$t('无需打包')}}</el-button>
</template> <el-button size="mini" type="primary" @click="package(row, $t('打包'))">{{$t('打包')}}</el-button>
<el-button v-else size="mini" type="primary" @click="package(row, $t('修改打包'))">{{$t('修改打包')}}</el-button> </template>
<el-button v-else size="mini" type="primary" @click="package(row, $t('修改打包'))">{{$t('修改打包')}}</el-button>
<el-button size="mini" type="danger" @click="rollback(row)">{{$t('退仓')}}</el-button>
</el-button-group>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -231,6 +242,11 @@ ...@@ -231,6 +242,11 @@
v-if="!!packageOrderItem" v-if="!!packageOrderItem"
@close="onPackageClose" @close="onPackageClose"
></package> ></package>
<new-product
:order="order"
v-if="showNewProductDialog"
@close="onPackageClose"
></new-product>
<media-dialog v-if="curPictrues" :value="curPictrues" @close="curPictrues=null"></media-dialog> <media-dialog v-if="curPictrues" :value="curPictrues" @close="curPictrues=null"></media-dialog>
</div> </div>
</template> </template>
...@@ -243,7 +259,7 @@ import { ...@@ -243,7 +259,7 @@ import {
getOrder, getOrder,
getOrderWarehouseIn, getOrderWarehouseIn,
getSpecialListByOrderId, getSpecialListByOrderId,
noNeedPack, noNeedPack, rollbackDelete,
warehousePictureList warehousePictureList
} from '@/api/ecw/order' } from '@/api/ecw/order'
import orderBaseInfo from "@/components/OrderBaseInfo" import orderBaseInfo from "@/components/OrderBaseInfo"
...@@ -274,7 +290,8 @@ export default { ...@@ -274,7 +290,8 @@ export default {
PrintWarehouseReceipt, PrintWarehouseReceipt,
imageUpload, imageUpload,
ImageAndVideoUpload, ImageAndVideoUpload,
Package Package,
NewProduct: () => import('@/views/ecw/order/stocking/components/NewProduct.vue')
}, },
mounted() { mounted() {
...@@ -343,7 +360,9 @@ export default { ...@@ -343,7 +360,9 @@ export default {
packageWarehouseItem: null, packageWarehouseItem: null,
productAttrList: [], productAttrList: [],
// 当前查看的影像 // 当前查看的影像
curPictrues: null curPictrues: null,
// 是否显示添加新品弹窗
showNewProductDialog: false
} }
}, },
...@@ -434,6 +453,7 @@ export default { ...@@ -434,6 +453,7 @@ export default {
onPackageClose(){ onPackageClose(){
this.packageOrderItem=null; this.packageOrderItem=null;
this.packageOrderItem=null; this.packageOrderItem=null;
this.showNewProductDialog = false
this.getList() this.getList()
}, },
showMedia(orderItem){ showMedia(orderItem){
...@@ -461,6 +481,19 @@ export default { ...@@ -461,6 +481,19 @@ export default {
finishPacked(data).then(res => { finishPacked(data).then(res => {
this.$message.success(this.$t('操作成功')) this.$message.success(this.$t('操作成功'))
}) })
},
// 退仓
async rollback(orderItem){
this.$confirm(this.$l(orderItem, 'prodTitle') + this.$t("退仓后不可恢复,是否确认退仓?"), this.$t('提示')).then(() => {
return rollbackDelete({
orderId: this.orderId,
orderItemId: orderItem.orderItemId,
isPackagingRollback: true
})
}).then(res =>{
this.$message.success(this.$t('操作成功'))
this.getList()
})
} }
}, },
watch: { watch: {
......
...@@ -93,7 +93,8 @@ export default { ...@@ -93,7 +93,8 @@ export default {
"unit": "", "unit": "",
"usageIds": "", "usageIds": "",
"volume": undefined, "volume": undefined,
"weight": undefined "weight": undefined,
"material": undefined
}] }]
} else { } else {
this.dataList = JSON.parse(JSON.stringify(this.value)) this.dataList = JSON.parse(JSON.stringify(this.value))
...@@ -119,7 +120,8 @@ export default { ...@@ -119,7 +120,8 @@ export default {
"unit": "", "unit": "",
"usageIds": "", "usageIds": "",
"volume": undefined, "volume": undefined,
"weight": undefined "weight": undefined,
"material": undefined
}) })
}, },
handleDelete(index) { handleDelete(index) {
......
...@@ -31,6 +31,11 @@ ...@@ -31,6 +31,11 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4">
<el-form-item :label="$t('材质')">
<dict-selector :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="material" clearable :disabled="readonly"></dict-selector>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('商品特性')"> <el-form-item :label="$t('商品特性')">
<el-checkbox-group v-model="prodAttrIds"> <el-checkbox-group v-model="prodAttrIds">
...@@ -38,7 +43,7 @@ ...@@ -38,7 +43,7 @@
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item :label="$t('用途')"> <el-form-item :label="$t('用途')">
<el-checkbox-group v-model="usageIds"> <el-checkbox-group v-model="usageIds">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value" :disabled="readonly">{{ $l(item, 'label') }}</el-checkbox> <el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value" :disabled="readonly">{{ $l(item, 'label') }}</el-checkbox>
...@@ -46,7 +51,7 @@ ...@@ -46,7 +51,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10"> <!--<el-row :gutter="10">
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('长')"> <el-form-item :label="$t('长')">
<el-input v-model="boxGauge1" type="number" :disabled="readonly" /> <el-input v-model="boxGauge1" type="number" :disabled="readonly" />
...@@ -72,9 +77,9 @@ ...@@ -72,9 +77,9 @@
<el-input v-model="value.volume" type="number" :disabled="readonly" /> <el-input v-model="value.volume" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>-->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4"> <!--<el-col :span="4">
<el-form-item :label="$t('快递单号')"> <el-form-item :label="$t('快递单号')">
<el-input v-model="value.expressNo" :disabled="readonly" /> <el-input v-model="value.expressNo" :disabled="readonly" />
</el-form-item> </el-form-item>
...@@ -83,7 +88,7 @@ ...@@ -83,7 +88,7 @@
<el-form-item :label="$t('包装类型')"> <el-form-item :label="$t('包装类型')">
<dict-selector :type="DICT_TYPE.ECW_PACKAGING_TYPE" v-model="value.unit" :disabled="readonly"></dict-selector> <dict-selector :type="DICT_TYPE.ECW_PACKAGING_TYPE" v-model="value.unit" :disabled="readonly"></dict-selector>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('数量')"> <el-form-item :label="$t('数量')">
<el-input v-model="value.quantityAll" type="number" :disabled="readonly" /> <el-input v-model="value.quantityAll" type="number" :disabled="readonly" />
...@@ -131,7 +136,7 @@ export default { ...@@ -131,7 +136,7 @@ export default {
brandList: [], brandList: [],
prodAttrIds: [], prodAttrIds: [],
usageIds: [], usageIds: [],
material: '',
boxGauge1: '', boxGauge1: '',
boxGauge2: '', boxGauge2: '',
boxGauge3: '', boxGauge3: '',
...@@ -147,6 +152,10 @@ export default { ...@@ -147,6 +152,10 @@ export default {
this.getProductBrandPage() this.getProductBrandPage()
} }
if(this.value.material){
this.material = this.value.material
}
if (typeof this.value.prodAttrIds === 'string' && this.value.prodAttrIds.length > 0) { if (typeof this.value.prodAttrIds === 'string' && this.value.prodAttrIds.length > 0) {
this.prodAttrIds = this.value.prodAttrIds.split(',').map(e => +e) this.prodAttrIds = this.value.prodAttrIds.split(',').map(e => +e)
} }
...@@ -220,6 +229,9 @@ export default { ...@@ -220,6 +229,9 @@ export default {
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3 this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2) this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
}, },
material(material){
this.value.material = material
},
'value.volume'() { 'value.volume'() {
if (this.value.volume < 0) { if (this.value.volume < 0) {
this.value.volume = -this.value.volume this.value.volume = -this.value.volume
......
...@@ -61,8 +61,8 @@ ...@@ -61,8 +61,8 @@
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item v-if="channel" :label="$t('出货渠道')"> <el-form-item v-if="type === 'air'" :label="$t('出货渠道')">
{{$l(channel, 'name')}} {{channel ? $l(channel, 'name') : '/'}}
</el-form-item> </el-form-item>
</template> </template>
<!--有路线则不显示路线选择器--> <!--有路线则不显示路线选择器-->
...@@ -227,15 +227,18 @@ ...@@ -227,15 +227,18 @@
<el-button @click="quickSet" type="primary" :disabled="!quickForm.plus && !quickForm.minus">{{$t('确定')}}</el-button> <el-button @click="quickSet" type="primary" :disabled="!quickForm.plus && !quickForm.minus">{{$t('确定')}}</el-button>
</div> </div>
</el-col> </el-col>
<el-col :span="12" v-else-if="readonly && type === 'air'"> <!--
<!--商品清关费--> 甲方要求不显示清关费 https://zentao.test.jdshangmen.com/bug-view-5298.html
-->
<!--<el-col :span="12" v-else-if="readonly && type === 'air'">
&lt;!&ndash;商品清关费&ndash;&gt;
<h2>{{$t('商品清关费价格')}}</h2> <h2>{{$t('商品清关费价格')}}</h2>
<packaging-type v-if="product && product.priceStepClearanceList && product.priceStepClearanceList.length" <packaging-type v-if="product && product.priceStepClearanceList && product.priceStepClearanceList.length"
:value="product" key-arr="priceStepClearanceList" readonly/> :value="product" key-arr="priceStepClearanceList" readonly/>
<div v-else> <div v-else>
{{$t('未设置清关费')}} {{$t('未设置清关费')}}
</div> </div>
</el-col> </el-col>-->
</el-row> </el-row>
</el-card> </el-card>
...@@ -273,7 +276,8 @@ ...@@ -273,7 +276,8 @@
<el-card class="mt-10" v-if="readonly"> <el-card class="mt-10" v-if="readonly">
<el-descriptions :column="1"> <el-descriptions :column="1">
<el-descriptions-item :label="$t('创建时间')">{{form.createTime|parseTime}}</el-descriptions-item> <el-descriptions-item :label="$t('状态')">{{ statusName(form) }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">{{form.createTime|parseTime}}</el-descriptions-item>
<el-descriptions-item :label="$t('创建人')">{{form.creatorName}}</el-descriptions-item> <el-descriptions-item :label="$t('创建人')">{{form.creatorName}}</el-descriptions-item>
<el-descriptions-item :label="$t('最新修改时间')">{{form.updateTime|parseTime}}</el-descriptions-item> <el-descriptions-item :label="$t('最新修改时间')">{{form.updateTime|parseTime}}</el-descriptions-item>
<el-descriptions-item :label="$t('最新修改人')">{{form.updaterName}}</el-descriptions-item> <el-descriptions-item :label="$t('最新修改人')">{{form.updaterName}}</el-descriptions-item>
...@@ -380,6 +384,7 @@ import {openedRouterList} from '@/api/ecw/warehouse' ...@@ -380,6 +384,7 @@ import {openedRouterList} from '@/api/ecw/warehouse'
import Decimal from "decimal.js"; import Decimal from "decimal.js";
import {getChannel} from "@/api/ecw/channel"; import {getChannel} from "@/api/ecw/channel";
import PackagingType from "@/views/ecw/channel/componrnts/packaging-type.vue"; import PackagingType from "@/views/ecw/channel/componrnts/packaging-type.vue";
import {getStatusName} from './util'
export default { export default {
components: {PackagingType, RoutersSelector, ProductSelector, Selector, Inputor }, components: {PackagingType, RoutersSelector, ProductSelector, Selector, Inputor },
filters: {parseTime}, filters: {parseTime},
...@@ -422,6 +427,9 @@ export default { ...@@ -422,6 +427,9 @@ export default {
} }
}, },
computed: { computed: {
statusName(){
return getStatusName
},
routerOption(){ routerOption(){
return this.$route.query return this.$route.query
}, },
...@@ -582,12 +590,7 @@ export default { ...@@ -582,12 +590,7 @@ export default {
if(this.$route.query.action == 'update'){ if(this.$route.query.action == 'update'){
let res = await getProductPrice(this.$route.query.id) let res = await getProductPrice(this.$route.query.id)
this.$set(this, 'form', res.data) this.$set(this, 'form', res.data)
// 显示渠道
if(this.form.shippingChannelId){
getChannel(this.form.shippingChannelId).then(res => {
this.channel = res.data
})
}
if(this.form.needPay){ if(this.form.needPay){
this.needPay = true this.needPay = true
} }
...@@ -669,22 +672,23 @@ export default { ...@@ -669,22 +672,23 @@ export default {
// 如果指定了始发,目的仓和运输方式,渠道,则是从未报价异常跳转过来的,固定一个路线 // 如果指定了始发,目的仓和运输方式,渠道,则是从未报价异常跳转过来的,固定一个路线
if(this.$route.query.startWarehouseId){ if(this.$route.query.startWarehouseId){
openedRouterList({ const res = await openedRouterList({
destCityId: this.$route.query.importCity, destCityId: this.$route.query.importCity,
lineId: this.$route.query.lineId, lineId: this.$route.query.lineId,
startCityId: this.$route.query.exportCity, startCityId: this.$route.query.exportCity,
transportType: this.$route.query.transportId transportType: this.$route.query.transportId
}).then(res => {
console.log("open ---> ", res)
this.lineList = [
Object.assign({
// id: res.data[0].id,
lineId:this.$route.query.lineId,
shippingChannelId: this.$route.query.channelId,
warehouseLineDO: {... res.data[0]}
})]
}) })
console.log("open ---> ", res)
this.lineList = [
Object.assign({
// id: res.data[0].id,
lineId:this.$route.query.lineId,
shippingChannelId: this.$route.query.channelId,
warehouseLineDO: {... res.data[0]}
})
]
// 后面会根据这个渠道ID获取渠道信息
this.form.shippingChannelId = this.$route.query.channelId
} }
} }
...@@ -710,6 +714,13 @@ export default { ...@@ -710,6 +714,13 @@ export default {
this.$set(this.form, 'productId', +this.$route.query.product_id) this.$set(this.form, 'productId', +this.$route.query.product_id)
} }
// 显示渠道(修改或者从异常处理等进入携带了渠道参数)
if(this.form.shippingChannelId && this.type == 'air'){
getChannel(this.form.shippingChannelId).then(res => {
this.channel = res.data
})
}
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
......
...@@ -37,7 +37,12 @@ ...@@ -37,7 +37,12 @@
<el-option v-for="city in destCityList" :key="city.id" :label="$l(city, 'title')" :value="city.id" /> <el-option v-for="city in destCityList" :key="city.id" :label="$l(city, 'title')" :value="city.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('是否预付')" prop="needPay">
<el-select v-model="queryParams.needPay" :placeholder="$t('请选择')" clearable>
<el-option :label="$t('是')" value="1"></el-option>
<el-option :label="$t('否')" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('上架状态')" prop="auditStatus"> <el-form-item :label="$t('上架状态')" prop="auditStatus">
<dict-selector :type="DICT_TYPE.ECW_PRICE_AUDIT_STATUS" v-model="queryParams.auditStatus" clearable/> <dict-selector :type="DICT_TYPE.ECW_PRICE_AUDIT_STATUS" v-model="queryParams.auditStatus" clearable/>
</el-form-item> </el-form-item>
...@@ -47,7 +52,12 @@ ...@@ -47,7 +52,12 @@
<el-option :label="$t('黑名单')" value="blacklist_1"></el-option> <el-option :label="$t('黑名单')" value="blacklist_1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('是否单询')" prop="needOrderInquiry">
<el-select v-model="queryParams.needOrderInquiry" :placeholder="$t('请选择')" clearable>
<el-option :label="$t('是')" value="1"></el-option>
<el-option :label="$t('否')" value="0"></el-option>
</el-select>
</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>
...@@ -157,12 +167,15 @@ ...@@ -157,12 +167,15 @@
{{ getCurrencyTitle(scope.row.priceStepList[0].transportPriceUnit) + '/' + getUnitTitle(scope.row.priceStepList[0].transportVolumeUnit)}} {{ getCurrencyTitle(scope.row.priceStepList[0].transportPriceUnit) + '/' + getUnitTitle(scope.row.priceStepList[0].transportVolumeUnit)}}
<br /> <br />
<template v-if="[3,4].indexOf(+scope.row.warehouseLineDO.transportType) > -1"> <template v-if="[3,4].indexOf(+scope.row.warehouseLineDO.transportType) > -1">
<!--空运的清关费--> <!--
<template v-if="scope.row.clearPriceStepList.length"> 空运的清关费
根据要求隐藏列表的空运清关费 https://zentao.test.jdshangmen.com/bug-view-5298.html
-->
<!--<template v-if="scope.row.clearPriceStepList.length">
{{$t('清关费')}}:{{ getCurrencySymbol(scope.row.clearPriceStepList[0].clearancePriceUnit) + scope.row.clearPriceStepList[0].clearancePrice}}&nbsp; {{$t('清关费')}}:{{ getCurrencySymbol(scope.row.clearPriceStepList[0].clearancePriceUnit) + scope.row.clearPriceStepList[0].clearancePrice}}&nbsp;
{{ getCurrencyTitle(scope.row.clearPriceStepList[0].clearancePriceUnit) + '/' + getUnitTitle(scope.row.clearPriceStepList[0].clearanceVolumeUnit)}} {{ getCurrencyTitle(scope.row.clearPriceStepList[0].clearancePriceUnit) + '/' + getUnitTitle(scope.row.clearPriceStepList[0].clearanceVolumeUnit)}}
</template> </template>
<template v-else>{{$t('暂无清关费设置')}}</template> <template v-else>{{$t('暂无清关费设置')}}</template>-->
</template> </template>
<template v-else> <template v-else>
<!--海运的清关费--> <!--海运的清关费-->
...@@ -281,7 +294,10 @@ ...@@ -281,7 +294,10 @@
</div> </div>
</el-col> </el-col>
<!--空运的清关费单独显示--> <!--空运的清关费单独显示-->
<el-col :span="12" v-if="[3,4].indexOf(+showMoreStepPriceItem.warehouseLineDO.transportType) > -1"> <!--
甲方要求不显示清关费 https://zentao.test.jdshangmen.com/bug-view-5298.html
-->
<!-- <el-col :span="12" v-if="[3,4].indexOf(+showMoreStepPriceItem.warehouseLineDO.transportType) > -1">
<template v-if="showMoreStepPriceItem.clearPriceStepList.length"> <template v-if="showMoreStepPriceItem.clearPriceStepList.length">
<div v-for="(item, index) in showMoreStepPriceItem.clearPriceStepList"> <div v-for="(item, index) in showMoreStepPriceItem.clearPriceStepList">
<div class="page-title"> <div class="page-title">
...@@ -297,7 +313,7 @@ ...@@ -297,7 +313,7 @@
</div> </div>
</template> </template>
<template v-else>{{$t('暂无清关费设置')}}</template> <template v-else>{{$t('暂无清关费设置')}}</template>
</el-col> </el-col>-->
</el-row> </el-row>
</el-dialog> </el-dialog>
...@@ -330,6 +346,7 @@ import {arrryToKeyedObjectBy} from '@/utils/index' ...@@ -330,6 +346,7 @@ import {arrryToKeyedObjectBy} from '@/utils/index'
import { getProduct } from '@/api/ecw/product'; import { getProduct } from '@/api/ecw/product';
import {parseTime} from '@/utils/ruoyi' import {parseTime} from '@/utils/ruoyi'
import Template from "@/views/cms/template"; import Template from "@/views/cms/template";
import {getStatusName} from "./util";
export default { export default {
name: "EcwProductpriceIndex", name: "EcwProductpriceIndex",
filters: {parseTime}, filters: {parseTime},
...@@ -467,23 +484,7 @@ export default { ...@@ -467,23 +484,7 @@ export default {
}, },
// 根据状态获取状态名称 ,这个应该可以改成字典,目前接口缺少相关数据,待定 // 根据状态获取状态名称 ,这个应该可以改成字典,目前接口缺少相关数据,待定
statusName() { statusName() {
return row => { return getStatusName
//判断价格是否过期
let validateStartDate = row.validateStartDate;
let validateEndDate = row.validateEndDate;
let notSetPrice = false;
let nowDate = new Date().getTime();
if(validateStartDate && validateStartDate > nowDate) {
notSetPrice = true;
}
if(validateEndDate && validateEndDate < nowDate) {
notSetPrice = true;
}
let setPriceText = notSetPrice ? '(' + this.$t('已过期') + ')' : '';
if(row.blacklist) return this.$t('黑名单') // + setPriceText;
if(row.auditStatus === AuditStatusEnum.PASS) return this.$t('已上架') // + setPriceText;
return this.$t('已下架') + setPriceText;
}
}, },
// 根据运输方式获取名称 // 根据运输方式获取名称
......
import {AuditStatusEnum} from "@/utils/constants";
import i18n from '@/i18n'
export const getStatusName = (row) => {
//判断价格是否过期
let validateStartDate = row.validateStartDate;
let validateEndDate = row.validateEndDate;
let notSetPrice = false;
let nowDate = new Date().getTime();
if(validateStartDate && validateStartDate > nowDate) {
notSetPrice = true;
}
if(validateEndDate && validateEndDate < nowDate) {
notSetPrice = true;
}
let setPriceText = notSetPrice ? '(' + i18n.t('已过期') + ')' : '';
if(row.blacklist) return i18n.t('黑名单') // + setPriceText;
if(row.auditStatus === AuditStatusEnum.PASS) return i18n.t('已上架') // + setPriceText;
return i18n.t('已下架') + setPriceText;
}
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