Commit b3d1ff02 authored by 我在何方's avatar 我在何方
parents 8ceaa209 c1f8f56c
......@@ -4,8 +4,8 @@
<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('订单状态')"><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.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag>
<el-descriptions-item :label="$t('运输方式') + '(' + $t('渠道') + ')'">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag> ({{ order.channelName }})
</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>
......@@ -27,9 +27,11 @@
<script>
import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
import DictTag from "@/components/DictTag/index.vue";
export default {
name: "orderBaseInfo",
components: {DictTag},
props: {
order: Object,
......
......@@ -3,7 +3,7 @@
<div class="message-title">{{$t(`您确定撤销${cancelClearInfo.orderNo}已清关状态吗?`)}}</div>
<el-form ref="arrivalForm" :rules="rules" :model="cusClearanceObj" label-width="120px">
<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>
{{apply.applyReason}}
</template>
......@@ -11,16 +11,17 @@
</el-form>
<el-row class="operate-button">
<el-button v-if="flag" 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="!flag" plain type="primary" @click="canclAudit">{{$t('取消审核')}}</el-button>
<el-button v-if="[0,3,4].includes(apply.approvalStatus)" type="primary" @click="onSubmit">{{$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-row>
</div>
</template>
<script>
import { approvalCreate, approvalCancel } from "@/api/ecw/boxSea";
import { approvalCreate } from "@/api/ecw/boxSea";
import {cancelProcessInstance} from "@/api/bpm/processInstance";
export default {
name: "updateError",
......@@ -40,8 +41,7 @@ export default {
{ required: true, message: this.$t("必填"), trigger: "change" },
]
},
apply: {},
flag: true
apply: {}
};
},
created() {
......@@ -49,7 +49,6 @@ export default {
let order = orders.find(item=>item.orderId == this.cancelClearInfo.orderId)
if(order){
this.apply = order
this.flag = false
}
},
methods: {
......@@ -71,16 +70,12 @@ export default {
},
/* 取消审核 */
canclAudit() {
approvalCancel({
applyReason: this.$t("取消审核"),
id: this.apply.id,
shipmentId: this.shipmentObj.id,
}).then((res) => {
this.$emit("closeDialog");
cancelProcessInstance(this.apply.bpmProcessId, this.$t("取消审核")).then(() => {
this.$emit("closeDialog","edit");
});
},
cancel() {
this.$emit("closeDialog");
this.$emit("closeDialog","edit");
},
},
};
......
......@@ -192,10 +192,10 @@
<editForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :warehouseList="warehouseList" :transportTypes="transportTypes" :cabinetList="cabinetList" />
</template>
<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 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 v-if="dialogConfig.type === 'updateError'">
<updateError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :errorInfo="errorInfo" />
......
......@@ -186,7 +186,7 @@ export default {
break;
// 清关
case "cusClearance":
if(!this.shipmentObj.airArrivalInfo || this.shipmentObj.airArrivalInfo.arriveType == 0){
if((!this.shipmentObj.airArrivalInfo || this.shipmentObj.airArrivalInfo.arriveType == 0) && this.shipmentObj.sapStatus != 152){
this.$message.error(this.$t("请先完成到港操作"));
return;
}
......@@ -224,7 +224,7 @@ export default {
break;
// 卸柜
case "unloading":
if(!this.shipmentObj.clearanceInfo || this.shipmentObj.clearanceInfo.clearanceType == 0){
if((!this.shipmentObj.clearanceInfo || this.shipmentObj.clearanceInfo.clearanceType == 0) && this.shipmentObj.clStatus != 132){
this.$message.error(this.$t("请先完成清关操作"));
return;
}
......
<script>
export default {
name: "jd-input-number",
props:{
value:[Number,String]
},
computed:{
val:{
get(){
return this.value
},
set(val){
this.$emit('input',val)
}
}
}
}
</script>
<template>
<div style="display: flex;">
<div style="flex: 1">
<el-input-number controls-position="right" v-model="val" style="width: 100%;text-align: left;" ></el-input-number>
</div>
<slot></slot>
</div>
</template>
<style scoped lang="scss">
::v-deep.el-input-number{
.el-input__inner{
text-align: left;
}
span{
display: none;
}
}
</style>
......@@ -182,11 +182,13 @@
<el-input type="textarea" :placeholder="$t('请输入处理结果')" v-model="form.result"></el-input>
</el-form-item>
<el-form-item v-show="form.status == '3'" :label="$t('赔付金额')">
<el-input v-model="form.indemnity" :placeholder="$t('请输入赔付金额')">
<el-select slot="append" defaultable v-model="form.currencyUnit" :placeholder="$t('请选择货币单位')" style="width: 110px">
<jd-input-number v-model="form.indemnity" >
<el-select defaultable v-model="form.currencyUnit" :placeholder="$t('请选择货币单位')" style="width: 110px">
<el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh : item.titleEn " :value="item.id" />
</el-select>
</el-input>
</jd-input-number>
<!-- <el-input :placeholder="$t('请输入赔付金额')">-->
<!-- </el-input>-->
</el-form-item>
<el-form-item v-show="form.status == '3'" :label="$t('处理时间')" required>
<span>{{parseTime(form.handleAt)}}</span>
......@@ -278,14 +280,20 @@
<el-input type="textarea" :placeholder="$t('请输入处理结果')" v-model="form.result"></el-input>
</el-form-item>
<el-form-item v-show="form.status == '3'" :label="$t('赔付金额')">
<el-input v-model="form.indemnity" :placeholder="$t('请输入赔付金额')">
<el-select slot="append" defaultable v-model="form.currencyUnit" :placeholder="$t('请选择货币单位')" style="width: 110px">
<jd-input-number v-model="form.indemnity" >
<el-select defaultable v-model="form.currencyUnit" :placeholder="$t('请选择货币单位')" style="width: 110px">
<el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh :item.titleEn" :value="item.id" />
</el-select>
</el-input>
</jd-input-number>
<!-- <el-input-number v-model.number="form.indemnity" :placeholder="$t('请输入赔付金额')">-->
<!-- <el-select slot="append" defaultable v-model="form.currencyUnit" :placeholder="$t('请选择货币单位')" style="width: 110px">-->
<!-- <el-option v-for="item in currencyList" :key="item.id" :label="isChinese ? item.titleZh :item.titleEn" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-input-number>-->
</el-form-item>
<el-form-item v-show="form.status == '3'" :label="$t('处理时间')" required>
<el-date-picker type="datetime" v-model="form.handleAt" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
<el-date-picker type="datetime" v-model="form.handleAt">
</el-date-picker>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
......@@ -306,6 +314,7 @@ import { getBillNoSearch, getOrderNoSearch } from '@/api/ecw/order'
import customerSelect from '@/views/ecw/customer/customerSelect'
import { getCurrencyPage } from "@/api/ecw/currency";
import {listServiceUser} from "@/api/system/user";
import JdInputNumber from "@/views/ecw/customer/components/jd-input-number.vue";
export default {
name: "CustomerComplaint",
......@@ -317,6 +326,7 @@ export default {
customerId: Number
},
components: {
JdInputNumber,
CustomerFollow,
DictSelector,
customerSelect
......@@ -396,7 +406,6 @@ export default {
},
methods: {
getBillList(key){
getBillNoSearch({key, pageNo: 1, pageSize: 20}).then(r => {
if (r.code === 0){
......
......@@ -476,7 +476,7 @@
</el-col>
</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-column label="优惠ID" prop="couponId"></el-table-column>
<el-table-column label="优惠名称">
......@@ -756,8 +756,10 @@ export default {
value: row[item.field],
currency: row.seaFreightCurrency,
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
})
}
})
......
......@@ -39,10 +39,14 @@
{{$t('第{index}阶梯定价方案', {index: index+1})}}
<template v-if="index == form.priceStepList.length - 1">
<el-link type="primary" @click.native="form.priceStepList.push({})">{{$t('添加区间')}}</el-link>
<el-divider direction="vertical"></el-divider>
<el-link type="danger" @click.native="form.priceStepList.splice(index, 1)">{{$t('删除')}}</el-link>
<el-divider v-if="index" direction="vertical"></el-divider>
<el-link v-if="index" type="danger" @click.native="form.priceStepList.splice(index, 1)">{{$t('删除')}}</el-link>
</template>
</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-input v-model="item.startNum" type="number" placeholder="" class="w100"></el-input>
-
......@@ -255,8 +259,34 @@ export default {
}
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: {
checkList() { //选择路线
if (this.checkList.length > 0) {
......@@ -504,6 +534,27 @@ export default {
// 没有设置阶梯价格则不提交priceStepList
if(data.stepPrice != 1){
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
......
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