Commit 9e0647f4 authored by dragondean@qq.com's avatar dragondean@qq.com

Merge branch 'feature/cargo_control' into pre-release

parents cf2ba127 36296c73
......@@ -174,3 +174,11 @@ export function applyCargoControlApproval(data){
data
})
}
//根据订单ID查询控货订单放货限制修改审核详情
export function getLimitUpdateInfo(orderId){
return request({
url: '/ecw/order-cargo-control/limit-update/info/' + orderId,
method: 'get'
})
}
......@@ -88,7 +88,7 @@
</div>
</el-col>
</el-card>
<!-- 申请信息 -->
<el-card class="box-card mt-10" v-loading="processInstanceLoading">
<div slot="header" class="clearfix">
......@@ -661,6 +661,16 @@ export default {
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath,
},
// 收货人限制修改申请
order_consignee_limit_change:{
component: () => import("@/views/ecw/order/components/updateReleaseLimitApproval"),
id: this.processInstance.businessKey,
},
// 海外仓修改申请,下面的组件待改
order_overseas_warehouse_change:{
component: () => import("@/views/ecw/order/components/updateReleaseLimitApproval"),
id: this.processInstance.businessKey,
}
};
console.log(
"formCustomViewPath",
......
......@@ -197,11 +197,31 @@
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px">
<template slot-scope="scope">
<!--
2408新需求,当订单放货状态不等于已放完货,按钮可点击,佛足额置灰不可点击
https://czxy.cpolar.cn/task-view-266.html
-->
<!--修改放货限制-->
<el-button type="text" size="mini" @click="showUpdateReleaseLimit=scope.row" v-hasPermi="['ecw:cargo_control:update']">{{$t('修改放货限制')}}</el-button>
<el-button
type="text"
size="mini"
@click="showUpdateReleaseLimit=scope.row"
v-hasPermi="['ecw:cargo_control:updateReleaseLimit']"
:disabled="scope.row.cargoControlStatus == 1 && !scope.row.isToReview"
>{{$t('修改放货限制')}}</el-button>
<!--控货中,已入仓-->
<template v-if="[0,2].indexOf(scope.row.cargoControlStatus) > -1 && scope.row.sumNum > 0">
<el-button type="text" size="mini" @click="showReleaseOrderId=scope.row.orderId" v-hasPermi="['ecw:cargo_control:release']">{{$t('放货')}}</el-button>
<!--
2408新需求,如果有修改放货限制审批 和 海外仓修改申请在途则置灰
https://czxy.cpolar.cn/task-view-266.html
-->
<el-button
type="text"
size="mini"
@click="showReleaseOrderId=scope.row.orderId"
v-hasPermi="['ecw:cargo_control:release']"
:disabled="scope.row.auditType == 61 || scope.row.auditType == 62"
>{{$t('放货')}}</el-button>
<el-button type="text" size="mini" @click="showTransferOrder = scope.row" v-hasPermi="['ecw:cargo_control:transfer']">{{$t('控货权转移')}}</el-button>
</template>
......
......@@ -120,12 +120,13 @@
</el-col>
</el-row>
<el-row>
<work-flow xmlkey="shipment_change_release_goods_limit" v-model="form.ccIds"></work-flow>
<work-flow xmlkey="order_consignee_limit_change" v-model="form.ccIds"></work-flow>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose">{{$t('取消')}}</el-button>
<el-button type="primary" @click="handleSubmit">{{$t('确定')}}</el-button>
<el-button v-if="applyStatus === 1" type="primary" @click="handleGoBpm">{{$t('审批中')}}</el-button>
<el-button v-else type="primary" @click="handleSubmit">{{$t('确定')}}</el-button>
</span>
</el-dialog>
</template>
......@@ -133,7 +134,9 @@
<script>
import WorkFlow from '@/components/WorkFlow/index.vue'
import FileUpload from '@/components/FileUpload/index.vue'
import { applyCargoControlApproval } from '@/api/ecw/orderCargoControl'
import { applyCargoControlApproval, getLimitUpdateInfo } from '@/api/ecw/orderCargoControl'
import dayjs from 'dayjs'
import { getApproval } from '@/api/ecw/order'
export default {
components:{
FileUpload,
......@@ -147,6 +150,7 @@ export default {
// 是否显示弹窗
show: true,
fileType: ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "pdf", 'jpg', 'jpeg', 'png', 'mp4', 'mov', 'avi', 'mp3'],
applyStatus: 0, // 审批状态: 1 处理中 2 通过 3 不通过 4 已取消
form: {
// 申请类型:此处应该是 61 放货限制修改申请 62 海外仓修改申请
applyType: 61,
......@@ -159,7 +163,9 @@ export default {
// 附件
annex: '',
ccIds: []
}
},
// 审批信息
approvalDetail: null
}
},
computed:{
......@@ -168,7 +174,7 @@ export default {
if(!this.order.unloadTime || !this.form.newIsLimitUpdateConsignee || !this.form.newLockConsigneeDay){
return '-'
}
return new Date(new Date().getTime() + this.form.newLockConsigneeDay * 86400 * 1000).toLocaleString()
return dayjs(this.order.unloadTime).add(this.form.newLockConsigneeDay, "day").format('YYYY-MM-DD HH:mm:ss')
}
},
watch:{
......@@ -184,8 +190,37 @@ export default {
if(this.form.newIsLimitUpdateConsignee){
this.form.newLockConsigneeDay = this.order.lockConsigneeDay
}
// 根据订单获取审批详情
this.getApply()
},
methods:{
getApply(){
// 先重置
this.applyStatus = 0
getLimitUpdateInfo(this.order.orderId).then(res => {
const data = res.data
if(data.applyType === this.form.applyType){
this.newIsLimitUpdateConsignee = data.newIsLimitUpdateConsignee
this.newLockConsigneeDay = data.newLockConsigneeDay
this.reasonZh = data.reasonZh
this.annex = data.annex
this.applyStatus = data.applyStatus
// 如果是申请中,则需要查询审批数据
if(this.applyStatus === 1){
this.getApproval()
}
}
})
},
getApproval(){
getApproval(this.id).then(res => {
this.approvalDetail = res.data
})
},
handleGoBpm(){
console.log("跳转审批页面,待完善")
},
handleClose(){
this.show = false
this.$emit("close")
......
<script>
import { getApproval, getOrderDetail } from '@/api/ecw/order'
import { getPickRleaseInfo } from '@/api/ecw/orderCargoControl'
import Template from '@/views/cms/template/index.vue'
import dayjs from 'dayjs'
export default {
name: 'updateReleaseLimitApproval',
components: { Template },
props: {
// 审批ID
id: Number
},
data(){
return {
detail: null,
releaseInfo: null
}
},
mounted() {
this.getApprovalDetail()
},
computed:{
showExpireTime(){
return (days) => {
if(!this.releaseInfo?.unloadTime || !days){
return '-'
}
return dayjs(this.releaseInfo.unloadTime).add(this.detail.newLockConsigneeDay, "day").format('YYYY-MM-DD HH:mm:ss')
}
}
},
methods:{
getApprovalDetail(){
getApproval(this.id).then(res => {
try {
this.detail = JSON.parse(res.data?.details)
this.getPickRleaseInfo(this.detail.orderId)
}catch (e) {
console.error("审核详情解析失败", e)
this.$message.error("审核详情数据解析失败")
}
})
},
getPickRleaseInfo(orderId){
getPickRleaseInfo(orderId).then(res => {
this.releaseInfo = res.data
})
}
}
}
</script>
<template>
<div v-if="detail && releaseInfo">
<el-descriptions>
<el-descriptions-item :label="$t('订单号')">
{{detail.orderNo}}
</el-descriptions-item>
<el-descriptions-item :label="$t('总箱数')">
{{detail.sumNum}}
</el-descriptions-item>
<el-descriptions-item :label="$t('总体积')">
{{detail.sumVolume}}
</el-descriptions-item>
<el-descriptions-item :label="$t('总重量')">
{{detail.sumWeight}}Kg
</el-descriptions-item>
<el-descriptions-item :label="$t('总控货箱数')">
{{detail.sumNum}}
</el-descriptions-item>
<el-descriptions-item :label="$t('剩余放货箱数')">
{{detail.sumNum - detail.releaseNum}}
</el-descriptions-item>
<el-descriptions-item :label="$t('卸柜/到仓时间')">
{{releaseInfo.unloadTime || '-'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单限制修改收货人')">
{{releaseInfo.isLimitUpdateConsignee ? $t('') : $t('')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单锁定收货人天数')" v-if="releaseInfo.isLimitUpdateConsignee">
{{releaseInfo.lockConsigneeDay}}
</el-descriptions-item>
<el-descriptions-item :label="$t('放货锁定收货人到期时间')" v-if="releaseInfo.isLimitUpdateConsignee">
{{showExpireTime(releaseInfo.lockConsigneeDay)}}
</el-descriptions-item>
</el-descriptions>
<el-divider>{{$t('修改内容')}}</el-divider>
<el-descriptions :column="3">
<el-descriptions-item :label="$t('订单限制修改收货人')">
{{detail.newIsLimitUpdateConsignee ? $t('') : $t('')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单锁定收货人天数')" v-if="detail.newIsLimitUpdateConsignee">
{{detail.newLockConsigneeDay}}
</el-descriptions-item>
<el-descriptions-item :label="$t('放货锁定收货人到期时间')" v-if="detail.newIsLimitUpdateConsignee">
{{showExpireTime(detail.newLockConsigneeDay)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('修改原因')" :span="3">
{{detail.reasonZh}}
</el-descriptions-item>
<el-descriptions-item :label="$t('附件')" :span="3">
<div v-if="detail.annex">
<div v-for="url in detail.annex.split(',').filter(item => !!item)">
<el-link :href="url" target="_blank">{{url.split("/").pop()}}</el-link>
</div>
</div>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<style scoped lang="scss">
</style>
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