<template> <el-dialog :visible="show" @close="handleClose" :title="$t('收货人限制修改申请')" width="1000px"> <el-form label-position="left" label-width="150px" :model="form" :disabled="applyStatus === 1"> <el-row :gutter="20"> <!-- 订单号 --> <el-col :span="8"> <el-form-item :label="$t('订单号')"> <span>{{ order.orderNo }}</span> </el-form-item> </el-col> <!-- 总箱数 --> <el-col :span="8"> <el-form-item :label="$t('总箱数')"> <span>{{ order.sumNum }}</span> </el-form-item> </el-col> <!-- 体积 --> <el-col :span="8"> <el-form-item :label="$t('体积')"> <span>{{ order.sumVolume }}m³</span> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <!-- 重量 --> <el-col :span="8"> <el-form-item :label="$t('重量')"> <span>{{ order.sumWeight }}Kg</span> </el-form-item> </el-col> <!-- 总控箱数 --> <el-col :span="8"> <el-form-item :label="$t('总控货箱数')"> <span>{{ order.sumNum }}</span> </el-form-item> </el-col> <!-- 剩余放货箱数 --> <el-col :span="8"> <el-form-item :label="$t('剩余放货箱数')"> <span>{{order.sumNum - order.releaseNum }}</span> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <!-- 邮库/到仓时间 --> <el-col :span="8"> <el-form-item :label="$t('卸柜/到仓时间')"> <span>{{ order.unloadTime }}</span> </el-form-item> </el-col> <!-- 订单限制修改收货人 --> <el-col :span="8"> <el-form-item :label="$t('订单限制修改收货人')"> <span>{{ order.isLimitUpdateConsignee ? $t('是') : $t('否') }}</span> </el-form-item> </el-col> <!-- 订单锁定收货人天数 --> <el-col :span="8" v-if="order.isLimitUpdateConsignee"> <el-form-item :label="$t('订单锁定收货人天数')"> <span>{{ order.lockConsigneeDay }}</span> </el-form-item> </el-col> </el-row> <el-row :gutter="20" v-if="order.isLimitUpdateConsignee"> <!-- 放货锁定收货人到期时间 --> <el-col :span="12"> <el-form-item :label="$t('放货锁定收货人到期时间')" label-width="180px"> <span>{{ order.lockConsigneeTime }}</span> </el-form-item> </el-col> </el-row> <el-divider>{{$t('修改信息')}}</el-divider> <el-row :gutter="20"> <!-- 订单限制修改收货人 --> <el-col :span="8"> <el-form-item :label="$t('订单限制修改收货人')"> <el-radio-group v-model="form.newIsLimitUpdateConsignee"> <el-radio :label="true">{{$t('是')}}</el-radio> <el-radio :label="false">{{$t('否')}}</el-radio> </el-radio-group> </el-form-item> </el-col> <!-- 订单锁定收货人天数 --> <el-col :span="8"> <el-form-item :label="$t('订单锁定收货人天数')" required> <el-input-number :min="0" v-model="form.newLockConsigneeDay" :disabled="!form.newIsLimitUpdateConsignee"></el-input-number> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <!-- 放货锁定收货人到期时间 --> <el-col :span="12"> <el-form-item :label="$t('放货锁定收货人到期时间')" label-width="180px"> <span>{{ newLockConsigneeTime }}</span> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <!-- 修改原因 --> <el-col :span="24"> <el-form-item :label="$t('修改原因')"> <el-input type="textarea" v-model="form.reasonZh"></el-input> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <!-- 附件 --> <el-col :span="24"> <el-form-item :label="$t('附件')"> <file-upload v-model="form.annex" :fileType="fileType"></file-upload> </el-form-item> </el-col> </el-row> <el-row> <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 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> <script> import WorkFlow from '@/components/WorkFlow/index.vue' import FileUpload from '@/components/FileUpload/index.vue' import { applyCargoControlApproval, getLimitUpdateInfo } from '@/api/ecw/orderCargoControl' import dayjs from 'dayjs' import { getApproval } from '@/api/ecw/order' export default { components:{ FileUpload, WorkFlow }, props:{ order: Object }, data() { return { // 是否显示弹窗 show: true, fileType: ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "pdf", 'jpg', 'jpeg', 'png', 'mp4', 'mov', 'avi', 'mp3'], applyStatus: 0, // 审批状态: 1 处理中 2 通过 3 不通过 4 已取消 bpmId: null, // 审批流程ID form: { // 申请类型:此处应该是 61 放货限制修改申请 62 海外仓修改申请 applyType: 61, // 新的是否限制修改收货人 newIsLimitUpdateConsignee: false, // 新的放货锁定收货人天数 newLockConsigneeDay: '', // 修改原因 reasonZh: '', // 附件 annex: '', ccIds: [] }, // 审批信息 approvalDetail: null } }, computed:{ // 当订单已卸柜/到仓,则时间为卸柜/到仓时间 + 锁定收货人天数,否则为空 newLockConsigneeTime(){ if(!this.order.unloadTime || !this.form.newIsLimitUpdateConsignee || !this.form.newLockConsigneeDay){ return '-' } return dayjs(this.order.unloadTime).add(this.form.newLockConsigneeDay, "day").format('YYYY-MM-DD HH:mm:ss') } }, watch:{ // 不限制则天数清空 'form.newIsLimitUpdateConsignee'(val){ if(!val){ this.form.newLockConsigneeDay = '' } } }, mounted() { this.form.newIsLimitUpdateConsignee = !!this.order.isLimitUpdateConsignee 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 console.log({data}) if(data.applyType === this.form.applyType){ this.form.newIsLimitUpdateConsignee = data.newIsLimitUpdateConsignee this.form.newLockConsigneeDay = data.newLockConsigneeDay this.form.reasonZh = data.reasonZh this.form.annex = data.annex this.form.ccIds = data.ccIds?.split(",").filter(item => !!item).map(item => Number(item)) || [] this.applyStatus = data.applyStatus this.bpmId = data.formId /* // 如果是申请中,则需要查询审批数据 if(this.applyStatus === 1){ this.getApproval() } */ } }) }, /* getApproval(){ getApproval(this.id).then(res => { this.approvalDetail = res.data }) }, */ handleGoBpm(){ console.log("跳转审批页面,待完善") this.handleClose() this.$router.push({ path: "/bpm/process-instance/detail", query: { id: this.bpmId } }) }, handleClose(){ this.show = false this.$emit("close") }, handleSubmit(){ const data = { ...this.form, ccIds: this.form.ccIds.join(','), orderId: this.order.orderId } applyCargoControlApproval(data).then(res => { this.$message.success(this.$t('操作成功')) this.$emit('success') }) } } } </script>