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

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

parents df1cce2b 81c0bb98
...@@ -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'
})
}
...@@ -4,17 +4,17 @@ ...@@ -4,17 +4,17 @@
<el-descriptions-item :label="$t('唛头')">{{ order.marks }}</el-descriptions-item> <el-descriptions-item :label="$t('唛头')">{{ order.marks }}</el-descriptions-item>
<el-descriptions-item :label="$t('已到箱数/总箱数')">{{ order.sumNum }}/{{ order.costVO.totalNum }}</el-descriptions-item> <el-descriptions-item :label="$t('已到箱数/总箱数')">{{ order.sumNum }}/{{ order.costVO.totalNum }}</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" :class="{red: order.status === 1, green: order.status === 5 || order.status === 2}" /></el-descriptions-item> <el-descriptions-item :label="$t('订单状态')"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" :class="{red: order.status === 1, green: order.status === 5 || order.status === 2}" /></el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')"> <el-descriptions-item :label="$t('运输方式') + '(' + $t('渠道') + ')'">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag> ({{ order.channelName }})
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('始发地')">{{ order.logisticsInfoDto.startTitleZh || '' }}<span v-if="order.isExternalWarehouse" style="color: red">{{ $t('(外部仓)') }}</span></el-descriptions-item> <el-descriptions-item :label="$t('始发地')">{{ order.logisticsInfoDto.startTitleZh || '' }}<span v-if="order.isExternalWarehouse" style="color: red">{{ $t('(外部仓)') }}</span></el-descriptions-item>
<el-descriptions-item :label="$t('目的地')">{{ order.logisticsInfoDto.destTitleZh || '' }}</el-descriptions-item> <el-descriptions-item :label="$t('目的地')">{{ order.logisticsInfoDto.destTitleZh || '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('发货人姓名')">{{ order.consignorVO && order.consignorVO.name || ''}}</el-descriptions-item> <el-descriptions-item :label="$t('发货人姓名')">{{ order.consignorVO && order.consignorVO.name || ''}}</el-descriptions-item>
<el-descriptions-item :label="$t('发货人公司')">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item> <el-descriptions-item :label="$t('发货人公司')">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('发货人电话')">{{ order.consignorVO && (order.consignorVO.countryCode + order.consignorVO.phone) || '' }}</el-descriptions-item> <el-descriptions-item :label="$t('发货人电话')">{{ order.consignorVO && ('+' + order.consignorVO.countryCode + order.consignorVO.phone) || '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('收货人姓名')">{{ order.consigneeVO && order.consigneeVO.name || ''}}</el-descriptions-item> <el-descriptions-item :label="$t('收货人姓名')">{{ order.consigneeVO && order.consigneeVO.name || ''}}</el-descriptions-item>
<el-descriptions-item :label="$t('收货人公司')">{{ order.consigneeVO && order.consigneeVO.company || '' }}</el-descriptions-item> <el-descriptions-item :label="$t('收货人公司')">{{ order.consigneeVO && order.consigneeVO.company || '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('收货人电话')">{{ order.consigneeVO &&(order.consigneeVO.countryCode + order.consigneeVO.phone) || '' }}</el-descriptions-item> <el-descriptions-item :label="$t('收货人电话')">{{ order.consigneeVO &&('+' + order.consigneeVO.countryCode + order.consigneeVO.phone) || '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('送货时间')">{{ order.deliveryDate || '' }}</el-descriptions-item> <el-descriptions-item :label="$t('送货时间')">{{ order.deliveryDate || '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('入仓类型')">{{ getDictDataLabel(DICT_TYPE.ECW_WAREHOUSING_TYPE, order.warehouseType) }}</el-descriptions-item> <el-descriptions-item :label="$t('入仓类型')">{{ getDictDataLabel(DICT_TYPE.ECW_WAREHOUSING_TYPE, order.warehouseType) }}</el-descriptions-item>
<el-descriptions-item :label="$t('订单号')">{{ order.orderNo }}</el-descriptions-item> <el-descriptions-item :label="$t('订单号')">{{ order.orderNo }}</el-descriptions-item>
...@@ -27,9 +27,11 @@ ...@@ -27,9 +27,11 @@
<script> <script>
import {DICT_TYPE, getDictDataLabel} from "@/utils/dict" import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
import DictTag from "@/components/DictTag/index.vue";
export default { export default {
name: "orderBaseInfo", name: "orderBaseInfo",
components: {DictTag},
props: { props: {
order: Object, order: Object,
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"/> :end-placeholder="$t('结束日期')"/>
</el-form-item> </el-form-item>
<<!-- el-form-item :label="$t('业务编号')" prop="businessNo"> <!-- el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable <el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable
@keyup.enter.native="handleQuery"/> @keyup.enter.native="handleQuery"/>
</el-form-item> --> </el-form-item> -->
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/> <dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('当前审批节点')" align="center" prop="name" width="200"/> <el-table-column :label="$t('当前审批节点')" align="center" prop="name" width="200"/>
<!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >{{ $t('缺少字段') }}</el-table-column> --> <!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >{{ $t('缺少字段') }}</el-table-column> -->
<!-- <el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/>--> <!-- <el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/>-->
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="message-title">{{$t(`您确定撤销${cancelClearInfo.orderNo}已清关状态吗?`)}}</div> <div class="message-title">{{$t(`您确定撤销${cancelClearInfo.orderNo}已清关状态吗?`)}}</div>
<el-form ref="arrivalForm" :rules="rules" :model="cusClearanceObj" label-width="120px"> <el-form ref="arrivalForm" :rules="rules" :model="cusClearanceObj" label-width="120px">
<el-form-item :label="$t('撤销理由')" prop="clEstTime"> <el-form-item :label="$t('撤销理由')" prop="clEstTime">
<el-input v-if="flag" v-model="cusClearanceObj.applyReason" type="textarea" :rows="4"></el-input> <el-input v-if="[0,3,4].includes(apply.approvalStatus)" v-model="cusClearanceObj.applyReason" type="textarea" :rows="4"></el-input>
<template v-else> <template v-else>
{{apply.applyReason}} {{apply.applyReason}}
</template> </template>
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button v-if="flag" type="primary" @click="onSubmit">{{$t('确定')}}</el-button> <el-button v-if="[0,3,4].includes(apply.approvalStatus)" type="primary" @click="onSubmit">{{$t('确定')}}</el-button>
<el-button v-if="!flag" type="primary" @click="$router.push({path: '/bpm/process-instance/detail', query: {id: apply.bpmProcessId}})">{{$t('审核中')}}</el-button> <el-button v-if="apply.approvalStatus == 1" type="primary" @click="$router.push({path: '/bpm/process-instance/detail', query: {id: apply.bpmProcessId}})">{{$t('审核中')}}</el-button>
<el-button v-if="apply.approvalStatus == 1" plain type="primary" @click="canclAudit">{{$t('取消审核')}}</el-button>
<el-button @click="cancel">{{$t('取消')}}</el-button> <el-button @click="cancel">{{$t('取消')}}</el-button>
</el-row> </el-row>
</div> </div>
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
<script> <script>
import { approvalCreate } from "@/api/ecw/boxSea"; import { approvalCreate } from "@/api/ecw/boxSea";
import {cancelProcessInstance} from "@/api/bpm/processInstance";
export default { export default {
name: "updateError", name: "updateError",
...@@ -39,8 +41,7 @@ export default { ...@@ -39,8 +41,7 @@ export default {
{ required: true, message: this.$t("必填"), trigger: "change" }, { required: true, message: this.$t("必填"), trigger: "change" },
] ]
}, },
apply: {}, apply: {}
flag: true
}; };
}, },
created() { created() {
...@@ -48,7 +49,6 @@ export default { ...@@ -48,7 +49,6 @@ export default {
let order = orders.find(item=>item.orderId == this.cancelClearInfo.orderId) let order = orders.find(item=>item.orderId == this.cancelClearInfo.orderId)
if(order){ if(order){
this.apply = order this.apply = order
this.flag = false
} }
}, },
methods: { methods: {
...@@ -68,8 +68,14 @@ export default { ...@@ -68,8 +68,14 @@ export default {
} }
}); });
}, },
/* 取消审核 */
canclAudit() {
cancelProcessInstance(this.apply.bpmProcessId, this.$t("取消审核")).then(() => {
this.$emit("closeDialog","edit");
});
},
cancel() { cancel() {
this.$emit("closeDialog"); this.$emit("closeDialog","edit");
}, },
}, },
}; };
......
...@@ -192,10 +192,10 @@ ...@@ -192,10 +192,10 @@
<editForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :warehouseList="warehouseList" :transportTypes="transportTypes" :cabinetList="cabinetList" /> <editForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :warehouseList="warehouseList" :transportTypes="transportTypes" :cabinetList="cabinetList" />
</template> </template>
<template v-if="dialogConfig.type === 'cost'"> <template v-if="dialogConfig.type === 'cost'">
<costForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :costDetail="costDetail" :flag="flag" /> <costForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :costDetail="costDetail" flag="sea" />
</template> </template>
<template v-if="dialogConfig.type === 'error'"> <template v-if="dialogConfig.type === 'error'">
<regError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :allUsers="allUsers" :flag="flag" /> <regError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :allUsers="allUsers" flag="sea" />
</template> </template>
<template v-if="dialogConfig.type === 'updateError'"> <template v-if="dialogConfig.type === 'updateError'">
<updateError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :errorInfo="errorInfo" /> <updateError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :errorInfo="errorInfo" />
......
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
<div class="status-line"></div> <div class="status-line"></div>
<div class="status-number">{{logList.length - index}}</div> <div class="status-number">{{logList.length - index}}</div>
<div class="status-info"> <div class="status-info">
<div>{{$l(item, 'title')}}</div> <div>{{$l(item, 'title')}} <el-button v-if="item.approvalId>0" type="text" @click="handleApproval(item.bpmProcessId)">{{$t('查看审批')}}</el-button></div>
<div> <div>
<p>{{formatDate(item.createTime)}}</p> <p>{{formatDate(item.createTime)}}</p>
<p>{{item.operator}}</p> <p>{{item.operator}}</p>
...@@ -161,12 +161,12 @@ ...@@ -161,12 +161,12 @@
<el-table-column type="index" align="center" :label="$t('序号')" width="50" /> <el-table-column type="index" align="center" :label="$t('序号')" width="50" />
<el-table-column prop="opStep" :label="$t('操作')" align="center"> <el-table-column prop="opStep" :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PROCESS" :value="scope.row.opStep" /> <dict-tag :type="DICT_TYPE.BOX_AIR_SHIPMENT_PROCESS" :value="scope.row.opStep" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="billAbnId" :label="$t('异常')" align="center"> <el-table-column prop="billAbnId" :label="$t('异常')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION" :value="scope.row.billAbnId" /> <dict-tag :type="DICT_TYPE.BOX_AIR_SHIPMENT_PROCESS" :value="scope.row.billAbnId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="abnDetail" :label="$t('异常描述')" align="center" width="300"></el-table-column> <el-table-column prop="abnDetail" :label="$t('异常描述')" align="center" width="300"></el-table-column>
...@@ -656,6 +656,9 @@ export default { ...@@ -656,6 +656,9 @@ export default {
); );
} }
}, },
handleApproval(id) {
this.$router.push({path: '/bpm/process-instance/detail', query: {id: id}})
}
}, },
computed: { computed: {
visitedViews() { visitedViews() {
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<span v-for="order in cusClearanceObj.clearanceOrderList" :key="order.id">{{ order.orderNo }} </span> <span v-for="order in cusClearanceObj.clearanceOrderList" :key="order.id">{{ order.orderNo }} </span>
</el-form-item> </el-form-item>
<div> <div v-if="cusClearanceObj.clearanceType == 1">
<el-form ref="airArrivalForm" :rules="airArrivalrules" :model="airArrivalInfo" label-width="160px"> <el-form ref="airArrivalForm" :rules="airArrivalrules" :model="airArrivalInfo" label-width="160px">
<el-form-item :label="$t('实际二程起飞时间')" prop="actSecondTime"> <el-form-item :label="$t('实际二程起飞时间')" prop="actSecondTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airArrivalInfo.actSecondTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airArrivalInfo.actSecondTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
...@@ -336,7 +336,7 @@ export default { ...@@ -336,7 +336,7 @@ export default {
onSubmit(operateType) { onSubmit(operateType) {
this.$refs['cusClearanceForm'].validate((valid) => { this.$refs['cusClearanceForm'].validate((valid) => {
if (valid) { if (valid) {
if (this.cusClearanceObj.clearanceType == 1 && this.cusClearanceObj.clearanceOrderIdList.length > 0) { if (this.cusClearanceObj.clearanceType == 1) {
this.$refs['airArrivalForm'].validate((arrvalid) => { this.$refs['airArrivalForm'].validate((arrvalid) => {
if (arrvalid) { if (arrvalid) {
updateOrderArrival({ updateOrderArrival({
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<el-form-item :label="$t('品名')" prop="itemName"> <el-form-item :label="$t('品名')" prop="itemName">
<el-input v-model="queryParams.itemName" :placeholder="$t('请输入品名')" clearable /> <el-input v-model="queryParams.itemName" :placeholder="$t('请输入品名')" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('货比')" prop="weightRatioMax"> <el-form-item :label="$t('货比')" prop="weightRatioMax">
<el-input v-model="queryParams.weightRatioMax" :placeholder="$t('请输入 大')" clearable /> <el-input v-model="queryParams.weightRatioMax" :placeholder="$t('请输入 大')" clearable />
</el-form-item> </el-form-item>
<el-form-item label="" prop="weightRatioMin"> <el-form-item label="" prop="weightRatioMin">
...@@ -177,7 +177,7 @@ ...@@ -177,7 +177,7 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('体积') + '/' + $t('重量') + '/' + $t('货比')" align="center" width="140" prop="volumeWeight"> <el-table-column :label="$t('体积') + '/' + $t('重量') + '/' + $t('货比')" align="center" width="140" prop="volumeWeight">
<template slot-scope="scope"> <template slot-scope="scope">
<p v-if="scope.row.warehouseInInfoVO.volume">{{getTotlContent(scope.row.warehouseInInfoVO,['volume'])}}</p> <p v-if="scope.row.warehouseInInfoVO.volume">{{getTotlContent(scope.row.warehouseInInfoVO,['volume'])}}</p>
<p v-if="scope.row.warehouseInInfoVO.weight">{{getTotlContent(scope.row.warehouseInInfoVO,['weight'])}}</p> <p v-if="scope.row.warehouseInInfoVO.weight">{{getTotlContent(scope.row.warehouseInInfoVO,['weight'])}}</p>
...@@ -265,7 +265,7 @@ ...@@ -265,7 +265,7 @@
<p>{{getShipChannelName(item.channelId)}}</p> <p>{{getShipChannelName(item.channelId)}}</p>
</div> </div>
<div> <div>
<p>{{$t('货比')}}</p> <p>{{$t('货比')}}</p>
<p>{{item.weightRatio}}</p> <p>{{item.weightRatio}}</p>
</div> </div>
<div v-if="item.isExternalWarehouse === 1" style="color:blue;fontWeight:bold;"> <div v-if="item.isExternalWarehouse === 1" style="color:blue;fontWeight:bold;">
......
...@@ -3,7 +3,14 @@ ...@@ -3,7 +3,14 @@
<el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="95%" append-to-body> <el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="95%" append-to-body>
<el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList"> <el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList">
<el-table-column type="index" :label="$t('序号')" /> <el-table-column type="index" :label="$t('序号')" />
<el-table-column :label="$t('箱数')" prop="cartonsNum" /> <el-table-column :label="$t('箱数')" prop="cartonsNum">
<template slot-scope="{row}">
<template v-if="row.orderWarehouseInDetailsVOList && row.orderWarehouseInDetailsVOList.length">
<WarehouseRecordDetail v-model="row.orderWarehouseInDetailsVOList" :num="row.cartonsNum" text readonly />
</template>
<template v-else>{{ row.cartonsNum }}</template>
</template>
</el-table-column>
<el-table-column :label="$t('入仓类型')" prop="cartonsNum"> <el-table-column :label="$t('入仓类型')" prop="cartonsNum">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" /> <dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" />
...@@ -44,10 +51,13 @@ ...@@ -44,10 +51,13 @@
</template> </template>
<script> <script>
import { getOrder, getOrderWarehouseIn } from "@/api/ecw/order"; import { getOrder, getOrderWarehouseIn } from "@/api/ecw/order";
import { DICT_TYPE } from "@/utils/dict";
import { parseTime } from "@/utils/ruoyi"; import { parseTime } from "@/utils/ruoyi";
import WarehouseRecordDetail from '@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue'
export default { export default {
filters: { parseTime }, filters: { parseTime },
components: {
WarehouseRecordDetail
},
props: { props: {
order: Object, // order 和 orderId 二选一 order: Object, // order 和 orderId 二选一
orderId: Number, orderId: Number,
......
...@@ -186,6 +186,10 @@ export default { ...@@ -186,6 +186,10 @@ export default {
break; break;
// 清关 // 清关
case "cusClearance": case "cusClearance":
if((!this.shipmentObj.airArrivalInfo || this.shipmentObj.airArrivalInfo.arriveType == 0) && this.shipmentObj.sapStatus != 152){
this.$message.error(this.$t("请先完成到港操作"));
return;
}
this.$set(this.dialogConfig, "width", "700px"); this.$set(this.dialogConfig, "width", "700px");
break; break;
// AGENT // AGENT
...@@ -220,6 +224,10 @@ export default { ...@@ -220,6 +224,10 @@ export default {
break; break;
// 卸柜 // 卸柜
case "unloading": case "unloading":
if((!this.shipmentObj.clearanceInfo || this.shipmentObj.clearanceInfo.clearanceType == 0) && this.shipmentObj.clStatus != 132){
this.$message.error(this.$t("请先完成清关操作"));
return;
}
// 卸柜反审 // 卸柜反审
const unStatus = this.shipmentObj[node.keyName]; const unStatus = this.shipmentObj[node.keyName];
if ([186].includes(unStatus)) { if ([186].includes(unStatus)) {
...@@ -269,6 +277,10 @@ export default { ...@@ -269,6 +277,10 @@ export default {
if (start.includes(val[keyName]) && val[voName]) { if (start.includes(val[keyName]) && val[voName]) {
node.currStatus = "wait"; node.currStatus = "wait";
if(type === "arrival" || type === "cusClearance"){
++nodeIndex;
continue;
}
} }
if (wait.includes(val[keyName])) { if (wait.includes(val[keyName])) {
......
...@@ -3,7 +3,14 @@ ...@@ -3,7 +3,14 @@
<el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="95%" append-to-body> <el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="95%" append-to-body>
<el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList"> <el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList">
<el-table-column type="index" :label="$t('序号')" /> <el-table-column type="index" :label="$t('序号')" />
<el-table-column :label="$t('箱数')" prop="cartonsNum" /> <el-table-column :label="$t('箱数')" prop="cartonsNum">
<template slot-scope="{row}">
<template v-if="row.orderWarehouseInDetailsVOList && row.orderWarehouseInDetailsVOList.length">
<WarehouseRecordDetail v-model="row.orderWarehouseInDetailsVOList" :num="row.cartonsNum" text readonly />
</template>
<template v-else>{{ row.cartonsNum }}</template>
</template>
</el-table-column>
<el-table-column :label="$t('入仓类型')" prop="cartonsNum"> <el-table-column :label="$t('入仓类型')" prop="cartonsNum">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" /> <dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" />
...@@ -44,10 +51,13 @@ ...@@ -44,10 +51,13 @@
</template> </template>
<script> <script>
import { getOrder, getOrderWarehouseIn } from "@/api/ecw/order"; import { getOrder, getOrderWarehouseIn } from "@/api/ecw/order";
import { DICT_TYPE } from "@/utils/dict"; import WarehouseRecordDetail from '@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue'
import { parseTime } from "@/utils/ruoyi"; import { parseTime } from "@/utils/ruoyi";
export default { export default {
filters: { parseTime }, filters: { parseTime },
components: {
WarehouseRecordDetail
},
props: { props: {
order: Object, // order 和 orderId 二选一 order: Object, // order 和 orderId 二选一
orderId: Number, orderId: Number,
......
...@@ -107,11 +107,7 @@ ...@@ -107,11 +107,7 @@
<el-table-column :label="$t('客户名称')" align="center" prop="name"/> <el-table-column :label="$t('客户名称')" align="center" prop="name"/>
<el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/> <el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/>
<el-table-column :label="$t('唛头')" align="center" prop="marks"/> <el-table-column :label="$t('唛头')" align="center" prop="marks"/>
<el-table-column :label="$t('订单状态')" align="center"> <el-table-column :label="$t('订单状态')" align="center" prop="statusMsg"/>
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl"> <el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.isCargoControl?$t(''):$t('')}} {{scope.row.isCargoControl?$t(''):$t('')}}
......
...@@ -111,11 +111,7 @@ ...@@ -111,11 +111,7 @@
<el-table-column :label="$t('客户名称')" align="center" prop="name"/> <el-table-column :label="$t('客户名称')" align="center" prop="name"/>
<el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/> <el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/>
<el-table-column :label="$t('唛头')" align="center" prop="marks"/> <el-table-column :label="$t('唛头')" align="center" prop="marks"/>
<el-table-column :label="$t('订单状态')" align="center"> <el-table-column :label="$t('订单状态')" align="center" prop="statusMsg"/>
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl"> <el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.isCargoControl?$t(''):$t('')}} {{scope.row.isCargoControl?$t(''):$t('')}}
......
...@@ -110,11 +110,7 @@ ...@@ -110,11 +110,7 @@
<el-table-column :label="$t('客户名称')" align="center" prop="name"/> <el-table-column :label="$t('客户名称')" align="center" prop="name"/>
<el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/> <el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/>
<el-table-column :label="$t('唛头')" align="center" prop="marks"/> <el-table-column :label="$t('唛头')" align="center" prop="marks"/>
<el-table-column :label="$t('订单状态')" align="center"> <el-table-column :label="$t('订单状态')" align="center" prop="statusMsg"/>
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl"> <el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.isCargoControl?$t(''):$t('')}} {{scope.row.isCargoControl?$t(''):$t('')}}
...@@ -151,7 +147,7 @@ ...@@ -151,7 +147,7 @@
import dayjs from "dayjs"; import dayjs from "dayjs";
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
export default { export default {
name: "EcwDepttargetMydeptachievement", name: "EcwDepttargetMydeptachievement",
components: {}, components: {},
...@@ -241,7 +237,7 @@ ...@@ -241,7 +237,7 @@
} }
return '/' return '/'
} }
}, },
exportWarehouseList(){ exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */ /* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3) return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
......
...@@ -811,7 +811,27 @@ export default { ...@@ -811,7 +811,27 @@ export default {
that.calculation() that.calculation()
getOrder(that.$route.query.orderId).then(response => { getOrder(that.$route.query.orderId).then(response => {
// console.log(response.data) // console.log(response.data)
if(response.data.customerId) that.$set(that.form,'customerId',response.data.customerId) if(response.data.customerId){
that.$set(that.form,'customerId',response.data.customerId)
}else{
if(response.data.drawee==1){
that.$set(that.form,'customerId',response.data.consignorVO.customerId)
}else if(response.data.drawee==2){
that.$set(that.form,'customerId',response.data.consigneeVO.customerId)
}else{
if(response.data.customDraweeVOList){
response.data.customDraweeVOList.map(v=>{
if(v.name == 'freight'){
if(v.value==1){
that.$set(that.form,'customerId',response.data.consignorVO.customerId)
}else{
that.$set(that.form,'customerId',response.data.consigneeVO.customerId)
}
}
})
}
}
}
}) })
getDestCountryByOrderId({orderId:that.$route.query.orderId}).then(response => { getDestCountryByOrderId({orderId:that.$route.query.orderId}).then(response => {
// console.log(response.data) // console.log(response.data)
...@@ -854,7 +874,27 @@ export default { ...@@ -854,7 +874,27 @@ export default {
}) })
this.calculation() this.calculation()
getOrder(that.$route.query.orderId).then(response => { getOrder(that.$route.query.orderId).then(response => {
if(response.data.customerId) this.$set(this.form,'customerId',response.data.customerId) if(response.data.customerId){
that.$set(that.form,'customerId',response.data.customerId)
}else{
if(response.data.drawee==1){
that.$set(that.form,'customerId',response.data.consignorVO.customerId)
}else if(response.data.drawee==2){
that.$set(that.form,'customerId',response.data.consigneeVO.customerId)
}else{
if(response.data.customDraweeVOList){
response.data.customDraweeVOList.map(v=>{
if(v.name == 'freight'){
if(v.value==1){
that.$set(that.form,'customerId',response.data.consignorVO.customerId)
}else{
that.$set(that.form,'customerId',response.data.consigneeVO.customerId)
}
}
})
}
}
}
}) })
}) })
getDestCountryByOrderId({orderId:this.$route.query.orderId}).then(response => { getDestCountryByOrderId({orderId:this.$route.query.orderId}).then(response => {
......
...@@ -676,10 +676,10 @@ export default { ...@@ -676,10 +676,10 @@ export default {
this.$modal.msgError(this.$t('请选择供应商未付款项')); this.$modal.msgError(this.$t('请选择供应商未付款项'));
return return
} }
if(!params.supplierBankAccount){ /*if(!params.supplierBankAccount){
this.$modal.msgError(this.$t('请选择供应商银行账号')); this.$modal.msgError(this.$t('请选择供应商银行账号'));
return return
} }*/
if (this.id && this.id !== '0') { if (this.id && this.id !== '0') {
updatePayment(params).then(res => { updatePayment(params).then(res => {
this.$modal.msgSuccess(this.$t('申请成功')); this.$modal.msgSuccess(this.$t('申请成功'));
...@@ -727,7 +727,7 @@ export default { ...@@ -727,7 +727,7 @@ export default {
}, },
selectChangeBank(val){ selectChangeBank(val){
this.$forceUpdate() this.$forceUpdate()
var bank = this.bankData.find(item=>item.bankAccount==this.form.supplierBankAccount) let bank = this.bankData.find(item=>item.bankAccount==this.form.supplierBankAccount)
this.form.supplierBank = bank.bankName this.form.supplierBank = bank.bankName
this.form.supplierBankAccountName = bank.accountName this.form.supplierBankAccountName = bank.accountName
}, },
...@@ -737,9 +737,9 @@ export default { ...@@ -737,9 +737,9 @@ export default {
if(val){ if(val){
getSupplier(val).then((res)=>{ getSupplier(val).then((res)=>{
this.bankData = res.data.bankList this.bankData = res.data.bankList
var bank = this.bankData.find(item=>item.bankAccount==this.form.supplierBankAccount) let bank = this.bankData.find(item=>item.bankAccount==this.form.supplierBankAccount)
console.log(this.bankData) if(!bank) this.form.supplierBankAccount=''
if(this.bankData.length>0&&!bank) this.form.supplierBankAccount= this.bankData[0]['bankAccount'] if(!bank&&this.bankData.length>0) this.form.supplierBankAccount= this.bankData[0]['bankAccount']
}) })
} }
......
...@@ -476,7 +476,7 @@ ...@@ -476,7 +476,7 @@
</el-col> </el-col>
</el-row> </el-row>
<div v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" class="page-title">优惠详情</div> <div v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" class="page-title">{{ $t('优惠详情') }}</div>
<el-table v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" :data="feeDetail.coupons"> <el-table v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" :data="feeDetail.coupons">
<el-table-column label="优惠ID" prop="couponId"></el-table-column> <el-table-column label="优惠ID" prop="couponId"></el-table-column>
<el-table-column label="优惠名称"> <el-table-column label="优惠名称">
...@@ -756,8 +756,10 @@ export default { ...@@ -756,8 +756,10 @@ export default {
value: row[item.field], value: row[item.field],
currency: row.seaFreightCurrency, currency: row.seaFreightCurrency,
volume: row.seaFreightVolume, volume: row.seaFreightVolume,
remark: row.specialPriceType && item.field == 'oneSeaFreight' ? this.$t('特价') : null // 特价通过四个字段标识,任一为true则为特价
remark: item.field == 'oneSeaFreight' && (row.specialPriceType || row.splitCustomPriceType || row.channelManualPricing) ? this.$t('特价') : null
}) })
} }
}) })
......
...@@ -1396,7 +1396,7 @@ export default { ...@@ -1396,7 +1396,7 @@ export default {
// 修改的提交 // 修改的提交
if (this.form.orderNo != null) { if (this.form.orderId) {
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
status: submitType, status: submitType,
customDraweeVOList: this.customDraweeList, customDraweeVOList: this.customDraweeList,
......
...@@ -21,8 +21,9 @@ ...@@ -21,8 +21,9 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div v-for="(row,index) in orderItemData" :key="row.orderItemId"> <div v-for="(row,index) in orderItemData" :key="row.orderItemId">
<div style="font-weight:600;font-size:14px;margin-bottom:10px">品名{{parseInt(index)+1}}{{$l(row, 'prodTitle')}}</div>
<div v-if="row.charging ==1" class="price_list"> <div v-if="row.charging ==1" class="price_list">
<span>品名{{parseInt(index)+1}}{{$l(row.prodTitle, 'desc')}}</span>
<span>旧成交价:</span> <span>旧成交价:</span>
<div> <div>
<div v-if="!row.freightFee"> <div v-if="!row.freightFee">
...@@ -174,17 +175,23 @@ export default { ...@@ -174,17 +175,23 @@ export default {
if(this.orderExceptionData.orderExceptionRemark){ if(this.orderExceptionData.orderExceptionRemark){
this.orderExceptionData.orderExceptionRemark=JSON.parse(this.orderExceptionData.orderExceptionRemark) this.orderExceptionData.orderExceptionRemark=JSON.parse(this.orderExceptionData.orderExceptionRemark)
} }
if(res.data.oldPriceJson){
this.orderItemData = JSON.parse(res.data.oldPriceJson)
}
if(res.data.orderId){ if(res.data.orderId){
getOrder(res.data.orderId).then(res => { getOrder(res.data.orderId).then(res => {
this.order = res.data this.order = res.data
this.orderItemData.map(v=>{
let item = this.order.orderItemVOList.find(vs=>vs.orderItemId==v.orderItemId)
if(item){
v.prodTitleZh = item.prodTitleZh
v.prodTitleEn = item.prodTitleEn
}
})
this.getExceptionPriceList(res.data.orderId) this.getExceptionPriceList(res.data.orderId)
}) })
} }
console.log(res.data)
if(res.data.oldPriceJson){
this.orderItemData = JSON.parse(res.data.oldPriceJson)
console.log(this.orderItemData)
}
}) })
}, },
getProdAtrr(ids){ getProdAtrr(ids){
......
...@@ -46,7 +46,16 @@ ...@@ -46,7 +46,16 @@
<el-option v-for="dict in followUpList" :key="parseInt(dict.id)" :label="dict.nickname" :value="parseInt(dict.id)"/> <el-option v-for="dict in followUpList" :key="parseInt(dict.id)" :label="dict.nickname" :value="parseInt(dict.id)"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="channelId">
<!--嵌套一个form来脱离disabled控制-->
<selector
:clearable="true"
v-model="queryParams.channelId"
:options="channelList"
value-field="channelId"
:label-field="$l(null, 'name')"
></selector>
</el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item :label="$t('控货')+':'"> <el-form-item :label="$t('控货')+':'">
...@@ -284,12 +293,14 @@ import CustomerSelector from '@/components/CustomerSelector' ...@@ -284,12 +293,14 @@ import CustomerSelector from '@/components/CustomerSelector'
import ProductSelector from '@/components/ProductSelector' import ProductSelector from '@/components/ProductSelector'
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import {getChannelList} from '@/api/ecw/channel'
import Selector from '@/components/Selector'
export default { export default {
name: "EcwOrderException", name: "EcwOrderException",
components: { components: {
Template, Template,
CustomerSelector,ProductSelector CustomerSelector,ProductSelector,Selector
}, },
data() { data() {
return { return {
...@@ -315,14 +326,15 @@ export default { ...@@ -315,14 +326,15 @@ export default {
warehouseList:[], warehouseList:[],
totalData:{}, totalData:{},
followUpList:[], followUpList:[],
channelList: [], // 出货取到
}; };
}, },
activated(){ activated(){
this.getList(); this.getList();
}, },
created() { async created() {
this.getList(); this.getList();
this.channelList = (await getChannelList()).data
getTradeCityList().then(res => this.tradeCityList = res.data) getTradeCityList().then(res => this.tradeCityList = res.data)
listServiceUser().then(r => { listServiceUser().then(r => {
this.creatorData = r.data this.creatorData = r.data
......
...@@ -361,7 +361,7 @@ ...@@ -361,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>
...@@ -566,6 +566,7 @@ import { ...@@ -566,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'
...@@ -1021,6 +1022,12 @@ export default { ...@@ -1021,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)
})
} }
} }
}; };
......
...@@ -479,8 +479,9 @@ ...@@ -479,8 +479,9 @@
<div style="width:80px">{{$t('全包价')}}:</div> <div style="width:80px">{{$t('全包价')}}:</div>
<div style="width:88%" class="channel" v-if="orderExceptionData.orderExceptionStatus==0&&handlerParams.orderExceptionHandlerResult=='allow_over'"> <div style="width:88%" class="channel" v-if="orderExceptionData.orderExceptionStatus==0&&handlerParams.orderExceptionHandlerResult=='allow_over'">
<inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" /> <inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" />
<selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <span>{{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <!-- <selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> -->
</div> </div>
<div v-else class="channel"> <div v-else class="channel">
<span v-if="!scope.row.oneSeaFreight">{{$t('未报价')}}</span> <span v-if="!scope.row.oneSeaFreight">{{$t('未报价')}}</span>
...@@ -494,8 +495,9 @@ ...@@ -494,8 +495,9 @@
<div style="width:80px">{{$t('运费')}}:</div> <div style="width:80px">{{$t('运费')}}:</div>
<div style="width:88%" class="channel" > <div style="width:88%" class="channel" >
<inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" /> <inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" />
<selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <span>{{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <!-- <selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> -->
</div> </div>
</div> </div>
<div v-else class="channel"> <div v-else class="channel">
...@@ -511,8 +513,9 @@ ...@@ -511,8 +513,9 @@
<!-- <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span> --> <!-- <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span> -->
<div class="channel" v-if="orderExceptionData.orderExceptionStatus==0&&handlerParams.orderExceptionHandlerResult=='allow_over'"> <div class="channel" v-if="orderExceptionData.orderExceptionStatus==0&&handlerParams.orderExceptionHandlerResult=='allow_over'">
<inputor default2="0" v-model.number="scope.row.oneClearanceFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" /> <inputor default2="0" v-model.number="scope.row.oneClearanceFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" />
<selector v-model="scope.row.clearanceFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <span>{{currencyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}</span>
/ <selector v-model="scope.row.clearanceFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <!-- <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> <div v-else>
<span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span> <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span>
...@@ -531,8 +534,9 @@ ...@@ -531,8 +534,9 @@
<div v-if="orderExceptionData.orderExceptionStatus==0" class="price_list"> <div v-if="orderExceptionData.orderExceptionStatus==0" class="price_list">
<div class="price_label">{{$t('全包价')}}:</div> <div class="price_label">{{$t('全包价')}}:</div>
<inputor default2="0" style="width:100px" v-model.number="row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor default2="0" style="width:100px" v-model.number="row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" />
<selector v-model="row.seaFreightCurrency" style="width:100px" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 /> <span>{{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span>
/ <selector v-model="row.seaFreightVolume" style="width:100px" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 /> <!-- <selector v-model="row.seaFreightCurrency" style="width:100px" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 />
/ <selector v-model="row.seaFreightVolume" style="width:100px" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 /> -->
</div> </div>
<div v-else class="price_list"> <div v-else class="price_list">
<div v-if="!row.oneSeaFreight"> <div v-if="!row.oneSeaFreight">
...@@ -552,16 +556,18 @@ ...@@ -552,16 +556,18 @@
<div class="price_label">{{$t('运费')}}:</div> <div class="price_label">{{$t('运费')}}:</div>
<div class="price_list"> <div class="price_list">
<inputor style="width:100px" default2="0" v-model.number="row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor style="width:100px" default2="0" v-model.number="row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" />
<selector style="width:100px" v-model="row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 /> <span>{{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span>
/ <selector style="width:100px" v-model="row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 /> <!-- <selector style="width:100px" v-model="row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 />
/ <selector style="width:100px" v-model="row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 /> -->
</div> </div>
</div> </div>
<div class="price_list"> <div class="price_list">
<div class="price_label">{{$t('清关费')}}:</div> <div class="price_label">{{$t('清关费')}}:</div>
<div class="price_list"> <div class="price_list">
<inputor style="width:100px" default2="0" v-model.number="row.oneClearanceFreight" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor style="width:100px" default2="0" v-model.number="row.oneClearanceFreight" type="number" :placeholder="$t('整数或者两位小数')" />
<selector style="width:100px" v-model="row.clearanceFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 /> <span>{{currencyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}</span>
/ <selector style="width:100px" v-model="row.clearanceFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 /> <!-- <selector style="width:100px" v-model="row.clearanceFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 />
/ <selector style="width:100px" v-model="row.clearanceFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 /> -->
</div> </div>
</div> </div>
</div> </div>
...@@ -830,8 +836,9 @@ ...@@ -830,8 +836,9 @@
<div style="width:80px">{{$t('全包价')}}:</div> <div style="width:80px">{{$t('全包价')}}:</div>
<div style="width:88%" class="channel" v-if="orderExceptionData.orderExceptionStatus==0"> <div style="width:88%" class="channel" v-if="orderExceptionData.orderExceptionStatus==0">
<inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" /> <inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" />
<selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <span>{{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <!-- <selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> -->
</div> </div>
<div v-else class="channel"> <div v-else class="channel">
<span v-if="!scope.row.oneSeaFreight">{{$t('未报价')}}</span> <span v-if="!scope.row.oneSeaFreight">{{$t('未报价')}}</span>
...@@ -845,8 +852,9 @@ ...@@ -845,8 +852,9 @@
<div style="width:80px">{{$t('运费')}}:</div> <div style="width:80px">{{$t('运费')}}:</div>
<div style="width:88%" class="channel" > <div style="width:88%" class="channel" >
<inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" /> <inputor default2="0" v-model.number="scope.row.oneSeaFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" />
<selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <span>{{$t('运费')}}:{{scope.row.oneSeaFreight}} {{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <!-- <selector v-model="scope.row.seaFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="scope.row.seaFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> -->
</div> </div>
</div> </div>
<div v-else class="channel"> <div v-else class="channel">
...@@ -862,8 +870,9 @@ ...@@ -862,8 +870,9 @@
<!-- <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span> --> <!-- <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span> -->
<div class="channel" v-if="orderExceptionData.orderExceptionStatus==0"> <div class="channel" v-if="orderExceptionData.orderExceptionStatus==0">
<inputor default2="0" v-model.number="scope.row.oneClearanceFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" /> <inputor default2="0" v-model.number="scope.row.oneClearanceFreight" type="number" :placeholder="$t('整数或者两位小数')" class="w100" />
<selector v-model="scope.row.clearanceFreightCurrency" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <span>{{currencyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}</span>
/ <selector v-model="scope.row.clearanceFreightVolume" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" /> <!-- <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> <div v-else>
<span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span> <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span>
......
...@@ -211,7 +211,7 @@ ...@@ -211,7 +211,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('数量(个)')" align="center" prop="quantity" width="80"></el-table-column> <el-table-column :label="$t('数量(个)')" align="center" prop="quantity" width="80"></el-table-column>
<el-table-column :label="$t('成交单价')" align="center" min-width="220px" v-if="[3,4].indexOf(orderData.transportId) > -1"> <el-table-column :label="$t('成交单价')" align="center" min-width="220px" v-if="[3,4].indexOf(item.transportId) > -1">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="scope.row.charging != 1"> <template v-if="scope.row.charging != 1">
<div class="flex"> <div class="flex">
......
...@@ -12,9 +12,10 @@ ...@@ -12,9 +12,10 @@
<span style="min-width: 200px;margin-right: 15px;display: inline-block"> <span style="min-width: 200px;margin-right: 15px;display: inline-block">
<product-selector <product-selector
v-model="form.prodId" v-model="form.prodId"
@change="handleProdChange"
/> />
</span> </span>
<el-button type="text" @click="isShowProduct = true">{{ $t('添加新品名') }}</el-button> <el-button type="text" @click="isShowProduct = true">{{ $t('添加新商品') }}</el-button>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"><span style="color: red">*</span>{{ $t('英文品名') }}</template> <template slot="label"><span style="color: red">*</span>{{ $t('英文品名') }}</template>
...@@ -22,6 +23,7 @@ ...@@ -22,6 +23,7 @@
<product-selector <product-selector
lang="En" lang="En"
v-model="form.prodId" v-model="form.prodId"
@change="handleProdChange"
/> />
</span> </span>
</el-descriptions-item> </el-descriptions-item>
...@@ -215,7 +217,7 @@ ...@@ -215,7 +217,7 @@
</el-card> </el-card>
<el-card style="margin-top: 15px;"> <el-card style="margin-top: 15px;">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="font-size: 18px">{{$t('入仓影像')}}</span> <span style="font-size: 18px"><span style="color: red">*</span>{{$t('入仓影像')}}</span>
</div> </div>
<div> <div>
<image-and-video-upload :fileSize="50" :isShowTip="true" v-model="pictureUrls" ></image-and-video-upload> <image-and-video-upload :fileSize="50" :isShowTip="true" v-model="pictureUrls" ></image-and-video-upload>
...@@ -272,7 +274,7 @@ import WarehouseRecordDetail from "@/views/ecw/order/warehousing/components/Ware ...@@ -272,7 +274,7 @@ import WarehouseRecordDetail from "@/views/ecw/order/warehousing/components/Ware
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue"; import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue";
export default { export default {
name: "Package", name: "NewProduct",
components: { components: {
ImageAndVideoUpload, ImageAndVideoUpload,
WarehouseRecordDetail, WarehouseRecordDetail,
...@@ -520,6 +522,13 @@ export default { ...@@ -520,6 +522,13 @@ export default {
}) })
if (this.pictureUrls?.length === 0) {
return this.$notify({
title: '请上传入仓影像',
type: 'warning'
});
}
// 首次入仓、入仓补充 // 首次入仓、入仓补充
return finishPacked({ return finishPacked({
brand: this.form.brand, brand: this.form.brand,
...@@ -665,6 +674,12 @@ export default { ...@@ -665,6 +674,12 @@ export default {
titleZh: undefined, titleZh: undefined,
titleEn: undefined titleEn: undefined
} }
},
handleProdChange(prod){
console.log('handleProdChange', prod)
let attrIds = prod.attrId?.split(',')?.map(item => parseInt(item)) || []
this.$set(this.form,'warehouseInProdAttrIds', attrIds)
this.$set(this.form, 'material', prod.materialType)
} }
} }
} }
......
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
</el-card> </el-card>
<el-card style="margin-top: 15px;"> <el-card style="margin-top: 15px;">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="font-size: 18px">{{$t('入仓影像')}}</span> <span style="font-size: 18px"><span style="color: red">*</span>{{$t('入仓影像')}}</span>
</div> </div>
<div> <div>
<image-and-video-upload :fileSize="50" :isShowTip="true" v-model="pictureUrls" ></image-and-video-upload> <image-and-video-upload :fileSize="50" :isShowTip="true" v-model="pictureUrls" ></image-and-video-upload>
...@@ -533,6 +533,13 @@ export default { ...@@ -533,6 +533,13 @@ export default {
}) })
if (this.pictureUrls?.length === 0) {
return this.$notify({
title: '请上传入仓影像',
type: 'warning'
});
}
// 首次入仓、入仓补充 // 首次入仓、入仓补充
return finishPacked({ return finishPacked({
brand: this.form.brand, brand: this.form.brand,
......
...@@ -15,14 +15,14 @@ ...@@ -15,14 +15,14 @@
--> -->
<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.filter(item => !!wareItem(item.orderItemId).orderWarehouseInBackItemDoList.length) || []" :data="order.orderItemVOList || []"
default-expand-all default-expand-all
style="width: 100%"> style="width: 100%">
<!--入仓记录--> <!--入仓记录-->
<el-table-column type="expand"> <el-table-column type="expand">
<template slot-scope="props"> <template slot-scope="props">
<div style="padding-left: 80px"> <div style="padding-left: 80px" v-if="orderWarehouseInList(props.row.orderItemId).length">
<el-table v-if="wareItem(props.row.orderItemId).orderWarehouseInBackItemDoList" :data="wareItem(props.row.orderItemId).orderWarehouseInBackItemDoList"> <el-table :data="orderWarehouseInList(props.row.orderItemId)">
<el-table-column :label="$t('序号')" width="80px"> <el-table-column :label="$t('序号')" width="80px">
<template slot-scope="{row, column, $index}"> <template slot-scope="{row, column, $index}">
{{$index + 1}} {{$index + 1}}
...@@ -151,20 +151,25 @@ ...@@ -151,20 +151,25 @@
</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"> <!--没有入仓记录的不显示打包按钮 https://zentao.test.jdshangmen.com/bug-view-5389.html-->
<el-button size="mini" type="warning" @click="noNeedPack(row)">{{$t('无需打包')}}</el-button> <el-button-group v-if="orderWarehouseInList(row.orderItemId).length">
<el-button size="mini" type="primary" @click="package(row, $t('打包'))">{{$t('打包')}}</el-button> <template v-if="wareItemPackStatus(row.orderItemId) == 1">
</template> <el-button size="mini" type="warning" @click="noNeedPack(row)">{{$t('无需打包')}}</el-button>
<el-button v-else size="mini" type="primary" @click="package(row, $t('修改打包'))">{{$t('修改打包')}}</el-button> <el-button 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>
...@@ -255,7 +260,7 @@ import { ...@@ -255,7 +260,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"
...@@ -416,7 +421,8 @@ export default { ...@@ -416,7 +421,8 @@ export default {
async handleSubmit() { async handleSubmit() {
let unpackProds = [] let unpackProds = []
this.orderItemList.forEach(item => { this.orderItemList.forEach(item => {
if(item.packStatus == 1){ // 有入仓记录且未打包
if(item.orderWarehouseInBackItemDoList.length && item.packStatus == 1){
unpackProds.push(this.$l(item, 'prodTitle')) unpackProds.push(this.$l(item, 'prodTitle'))
} }
}) })
...@@ -477,6 +483,19 @@ export default { ...@@ -477,6 +483,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: {
...@@ -498,6 +517,12 @@ export default { ...@@ -498,6 +517,12 @@ export default {
return this.orderItemList.find(item => item.orderItemId == orderItemId) return this.orderItemList.find(item => item.orderItemId == orderItemId)
} }
}, },
// 根据orderItemId获取入仓记录
orderWarehouseInList(){
return (orderItemId) => {
return this.wareItem(orderItemId)?.orderWarehouseInBackItemDoList || []
}
},
// 获取打包状态 // 获取打包状态
wareItemPackStatus(){ wareItemPackStatus(){
return orderItemId => { return orderItemId => {
......
...@@ -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) {
...@@ -140,6 +142,20 @@ export default { ...@@ -140,6 +142,20 @@ export default {
.catch(_ => {}); .catch(_ => {});
}, },
handleSave() { handleSave() {
for (let i = 0; i < this.dataList.length; i++) {
if (!this.dataList[i].prodId) {
return this.$notify({
title: '明细' + (i + 1) + ': ' + '请选择品名',
type: "warning"
})
}
if (!this.dataList[i].brand) {
return this.$notify({
title: '明细' + (i + 1) + ': ' + '请选择品牌',
type: "warning"
})
}
}
this.$emit('input', this.dataList) this.$emit('input', this.dataList)
this.dialogVisible = false this.dialogVisible = false
} }
......
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
</div> </div>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('中文品名')"> <el-form-item :label="$t('中文品名')" required>
<product-selector v-model="value.prodId" @change="onProductChange" determined :disabled="readonly" /> <product-selector v-model="value.prodId" @change="onProductChange" determined :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('品牌')"> <el-form-item :label="$t('品牌')" required>
<el-select <el-select
v-model="value.brand" v-model="value.brand"
:placeholder="$t('可修改')" :placeholder="$t('可修改')"
...@@ -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
......
...@@ -39,10 +39,14 @@ ...@@ -39,10 +39,14 @@
{{$t('第{index}阶梯定价方案', {index: index+1})}} {{$t('第{index}阶梯定价方案', {index: index+1})}}
<template v-if="index == form.priceStepList.length - 1"> <template v-if="index == form.priceStepList.length - 1">
<el-link type="primary" @click.native="form.priceStepList.push({})">{{$t('添加区间')}}</el-link> <el-link type="primary" @click.native="form.priceStepList.push({})">{{$t('添加区间')}}</el-link>
<el-divider direction="vertical"></el-divider> <el-divider v-if="index" direction="vertical"></el-divider>
<el-link type="danger" @click.native="form.priceStepList.splice(index, 1)">{{$t('删除')}}</el-link> <el-link v-if="index" type="danger" @click.native="form.priceStepList.splice(index, 1)">{{$t('删除')}}</el-link>
</template> </template>
</div> </div>
<div v-if="willBeIgnore(item)" style="color:red">{{$t('此阶梯未设置阶梯和价格,将会被忽略')}}</div>
<div v-else-if="!isStepPriceOk(item)" style="color:red">{{$t('此阶梯价信息设置不完整')}}</div>
<el-form-item :label="$t(`第{index}阶梯`, {index: index+1})"> <el-form-item :label="$t(`第{index}阶梯`, {index: index+1})">
<el-input v-model="item.startNum" type="number" placeholder="" class="w100"></el-input> <el-input v-model="item.startNum" type="number" placeholder="" class="w100"></el-input>
- -
...@@ -255,7 +259,33 @@ export default { ...@@ -255,7 +259,33 @@ export default {
} }
return {currency, unit} return {currency, unit}
} },
// 判断是否空值
isEmpty(){
return (content) => {
return !content && content !== 0 && content !== '0'
}
},
// 判断某个阶梯价是否会被忽略
willBeIgnore(){
return (stepPrice) => {
if(!this.isEmpty(stepPrice.startNum) || !this.isEmpty(stepPrice.endNum)) return false
if(this.form.priceType == 1 && !this.isEmpty(stepPrice.allPrice)) return false
if(this.form.priceType != 1 && !this.isEmpty(stepPrice.transportPrice) && !this.isEmpty(stepPrice.clearancePrice)) return false
return true
}
},
// 判断阶梯价是否设置不完整
isStepPriceOk(){
return (stepPrice) => {
if(this.isEmpty(stepPrice.startNum) || this.isEmpty(stepPrice.endNum)) return false
if(this.form.priceType == 1 && (this.isEmpty(stepPrice.allPrice) || this.isEmpty(stepPrice.allPriceUnit) || this.isEmpty(stepPrice.allVolumeUnit))) return false
else if(this.isEmpty(stepPrice.transportPrice) || this.isEmpty(stepPrice.transportPriceUnit)){ // 清关费可能为0或者空
return false
}
return true
}
},
}, },
watch: { watch: {
checkList() { //选择路线 checkList() { //选择路线
...@@ -504,6 +534,27 @@ export default { ...@@ -504,6 +534,27 @@ export default {
// 没有设置阶梯价格则不提交priceStepList // 没有设置阶梯价格则不提交priceStepList
if(data.stepPrice != 1){ if(data.stepPrice != 1){
delete data.priceStepList delete data.priceStepList
}else{
// 根据23-11-23 21点左右的群讨论,阶梯价如果留空则不提交,如果全部为空则不提交此字段
// 相关工单 https://zentao.test.jdshangmen.com/bug-view-5460.html
// 填写不完整的给提示
let notOk = []
data.priceStepList.forEach((item, index) => {
if(!this.willBeIgnore(item) && !this.isStepPriceOk(item)){
notOk.push(index + 1)
}
})
if(notOk.length){
return this.$confirm(this.$t("第{steps}阶梯设置不完整", {steps: notOk.join(",")}))
}
// 删除未填写的阶梯价
data.priceStepList = data.priceStepList.filter(item => {
return !this.willBeIgnore(item)
})
if(!data.priceStepList.length){
delete data.priceStepList
}
} }
data.lineChannelList = this.selectedRoutes data.lineChannelList = this.selectedRoutes
......
...@@ -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>
......
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