|
|
|
@ -4,7 +4,7 @@
|
|
|
|
|
* @Date: 2024-04-29 11:54:04
|
|
|
|
|
-->
|
|
|
|
|
<template>
|
|
|
|
|
<div class="ds-detail-box sea-export-detail" :class="{ 'ds-view-box': route.query.source == 'view' }">
|
|
|
|
|
<div class="ds-detail-box sea-export-detail" :class="{ 'ds-view-box': route.query.source != 'edit' }">
|
|
|
|
|
<a-tabs
|
|
|
|
|
size="small"
|
|
|
|
|
:class="!Showtabs ? 'Showtabs' : ''"
|
|
|
|
@ -32,6 +32,8 @@
|
|
|
|
|
:id="id"
|
|
|
|
|
:details="bookingDetails"
|
|
|
|
|
:inChildLoading="inChildLoading"
|
|
|
|
|
:taskType="taskType"
|
|
|
|
|
:source="source"
|
|
|
|
|
@refresh="refreshPage"
|
|
|
|
|
@SetOCR="SetOCR"
|
|
|
|
|
>
|
|
|
|
@ -46,10 +48,12 @@
|
|
|
|
|
@editLineName="editLineNameFun"
|
|
|
|
|
>
|
|
|
|
|
</mailingInfo>
|
|
|
|
|
<div v-if="source == 'edit'" class="ds-card mt15">
|
|
|
|
|
<!-- 货物信息 -->
|
|
|
|
|
<div class="ds-card mt15">
|
|
|
|
|
<cargoInfo ref="RefcargoInfo" :details="bookingDetails"></cargoInfo>
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
<goodsTable
|
|
|
|
|
v-if="source == 'edit'"
|
|
|
|
|
ref="RefgoodsTable"
|
|
|
|
|
:details="bookingDetails"
|
|
|
|
|
isParent="parent"
|
|
|
|
@ -95,13 +99,14 @@
|
|
|
|
|
></manifestTicket>
|
|
|
|
|
</a-tab-pane>
|
|
|
|
|
</a-tabs>
|
|
|
|
|
<div v-if="route.query.source == 'view'" class="ds-approve-btns">
|
|
|
|
|
<ApproveBtns
|
|
|
|
|
agreeText="审核通过"
|
|
|
|
|
rejectText="驳回任务"
|
|
|
|
|
:approve="approveDc"
|
|
|
|
|
></ApproveBtns>
|
|
|
|
|
</div>
|
|
|
|
|
<ApproveBtns
|
|
|
|
|
agreeText="审核通过"
|
|
|
|
|
rejectText="驳回任务"
|
|
|
|
|
:approve="approveDc"
|
|
|
|
|
:source="route.query.source"
|
|
|
|
|
:id="id"
|
|
|
|
|
businessType="1"
|
|
|
|
|
></ApproveBtns>
|
|
|
|
|
</a-spin>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -137,6 +142,20 @@
|
|
|
|
|
{{ rightFlag ? '收起' : '展开' }}
|
|
|
|
|
</a-button>
|
|
|
|
|
</a-tabs>
|
|
|
|
|
<!-- 选择舱位 -->
|
|
|
|
|
<StorageSpace ref="sspace" :id="id" @createTask="createTask"></StorageSpace>
|
|
|
|
|
<a-modal
|
|
|
|
|
:visible="cvisible"
|
|
|
|
|
title="是否现舱"
|
|
|
|
|
width="30%"
|
|
|
|
|
@ok="handleOk"
|
|
|
|
|
@cancel="cvisible = false"
|
|
|
|
|
>
|
|
|
|
|
<a-radio-group v-model:value="cvalue">
|
|
|
|
|
<a-radio :value="1">现舱</a-radio>
|
|
|
|
|
<a-radio :value="2">非现舱</a-radio>
|
|
|
|
|
</a-radio-group>
|
|
|
|
|
</a-modal>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
@ -152,6 +171,8 @@
|
|
|
|
|
import manifestTicket from './components/manifestTicket.vue'
|
|
|
|
|
// 审批组件
|
|
|
|
|
import ApproveBtns from '/@/components/ApproveBtns/index.vue'
|
|
|
|
|
// 剩余仓位组件
|
|
|
|
|
import StorageSpace from './components/storageSpace.vue'
|
|
|
|
|
const router = useRouter()
|
|
|
|
|
const route = useRoute()
|
|
|
|
|
import {
|
|
|
|
@ -163,7 +184,8 @@
|
|
|
|
|
GetDeptList,
|
|
|
|
|
SeaExportCopy,
|
|
|
|
|
SeaExportTaskAudit,
|
|
|
|
|
CreateTask
|
|
|
|
|
CreateTask,
|
|
|
|
|
GetCurrent
|
|
|
|
|
} from '../api/BookingLedger'
|
|
|
|
|
import { getDictDropDown } from '/@/api/common'
|
|
|
|
|
const appStore = useAppStore()
|
|
|
|
@ -186,6 +208,7 @@
|
|
|
|
|
import ContactList from './modules/contactList.vue'
|
|
|
|
|
// 关闭标签页
|
|
|
|
|
import { closePage } from '/@/hooks/web/common'
|
|
|
|
|
import { findLast } from 'xe-utils'
|
|
|
|
|
const go = useGo()
|
|
|
|
|
const initDetail = {}
|
|
|
|
|
// 页面loading
|
|
|
|
@ -220,12 +243,14 @@
|
|
|
|
|
const inGoodsSave = ref(false)
|
|
|
|
|
// const defaultData = ref({})
|
|
|
|
|
// const ctnDefaultData = ref({})
|
|
|
|
|
const basicRules = ref(rules.basicRules)
|
|
|
|
|
const mailingRules = ref(rules.mailingRules)
|
|
|
|
|
// const basicRules = ref(rules.basicRules)
|
|
|
|
|
// const mailingRules = ref(rules.mailingRules)
|
|
|
|
|
// const remarksRules = ref(rules.remarksRules)
|
|
|
|
|
// const historyData = ref({})
|
|
|
|
|
// const hasHbList = ref(false)
|
|
|
|
|
const moreStr = ref('')
|
|
|
|
|
// 存储任务状态
|
|
|
|
|
const taskType = ref()
|
|
|
|
|
// 计算费用表格高度
|
|
|
|
|
const feeHeight = computed(() => {
|
|
|
|
|
const height = window.innerHeight
|
|
|
|
@ -292,153 +317,11 @@
|
|
|
|
|
console.log(document.getElementsByClassName('main-tab')[0])
|
|
|
|
|
// 如果详情页,隐藏主页面tab标签页
|
|
|
|
|
if (source.value != 'edit') document.getElementsByClassName('main-tab')[0].getElementsByClassName('ant-tabs-nav-wrap')[0].style.display = 'none'
|
|
|
|
|
// 如果是任务业务,获取任务状态
|
|
|
|
|
if (route.query.taskId) {
|
|
|
|
|
getTask()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
// onBeforeRouteUpdate((to, from, next) => {
|
|
|
|
|
// console.log(to, from, next, 'onBeforeRouteUpdate')
|
|
|
|
|
// next()
|
|
|
|
|
// })
|
|
|
|
|
// // onBeforeRouteUpdate((to, from, next) => {
|
|
|
|
|
// // if (inAddSave.value) {
|
|
|
|
|
// // next()
|
|
|
|
|
// // return false
|
|
|
|
|
// // }
|
|
|
|
|
// // if (isCopy.value) {
|
|
|
|
|
// // const hisData = {
|
|
|
|
|
// // bookingDetails: bookingDetails.value,
|
|
|
|
|
// // excuteRules: excuteRules.value,
|
|
|
|
|
// // excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// // isAdd: isAdd.value,
|
|
|
|
|
// // tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// // mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // // type: type.value,
|
|
|
|
|
// // isCopy: isCopy.value,
|
|
|
|
|
// // id: id.value,
|
|
|
|
|
// // }
|
|
|
|
|
// // // if (Object.keys(that.$refs).includes('RefsedOrder')) {
|
|
|
|
|
// // // const secActive = RefsedOrder.value.$data.editIndex
|
|
|
|
|
// // // hisData.RefsedOrder = secActive
|
|
|
|
|
// // // }
|
|
|
|
|
// // historyData.value[`copy-${id.value}`] = hisData
|
|
|
|
|
// // } else if (route.query.addNum) {
|
|
|
|
|
// // const hisData = {
|
|
|
|
|
// // bookingDetails: bookingDetails.value,
|
|
|
|
|
// // excuteRules: excuteRules.value,
|
|
|
|
|
// // excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// // isAdd: isAdd.value,
|
|
|
|
|
// // tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// // mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // // type: type.value,
|
|
|
|
|
// // isCopy: isCopy.value,
|
|
|
|
|
// // // id: id.value
|
|
|
|
|
// // }
|
|
|
|
|
// // // if (Object.keys(that.$refs).includes('RefsedOrder')) {
|
|
|
|
|
// // // const secActive = RefsedOrder.value.$data.editIndex
|
|
|
|
|
// // // hisData.RefsedOrder = secActive
|
|
|
|
|
// // // }
|
|
|
|
|
// // historyData.value[`add-${route.query.addNum}`] = hisData
|
|
|
|
|
// // } else {
|
|
|
|
|
// // const hisData = {
|
|
|
|
|
// // bookingDetails: bookingDetails.value,
|
|
|
|
|
// // excuteRules: excuteRules.value,
|
|
|
|
|
// // excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// // isAdd: isAdd.value,
|
|
|
|
|
// // tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// // mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // // type: type.value,
|
|
|
|
|
// // isCopy: isCopy.value,
|
|
|
|
|
// // id: id.value,
|
|
|
|
|
// // }
|
|
|
|
|
// // // if (Object.keys(that.$refs).includes('RefsedOrder')) {
|
|
|
|
|
// // // const secActive = RefsedOrder.value.$data.editIndex
|
|
|
|
|
// // // hisData.secActive = secActive
|
|
|
|
|
// // // }
|
|
|
|
|
// // historyData.value[id.value] = hisData
|
|
|
|
|
// // }
|
|
|
|
|
// // if (appStore.getfeeShow) {
|
|
|
|
|
// // const mapFrame = iframe.value
|
|
|
|
|
// // const iframeWin = mapFrame.contentWindow
|
|
|
|
|
// // iframeWin.postMessage(
|
|
|
|
|
// // {
|
|
|
|
|
// // type: 'save',
|
|
|
|
|
// // },
|
|
|
|
|
// // '*',
|
|
|
|
|
// // )
|
|
|
|
|
// // }
|
|
|
|
|
// // setTimeout(() => {
|
|
|
|
|
// // next()
|
|
|
|
|
// // }, 100)
|
|
|
|
|
// // setTimeout(() => {
|
|
|
|
|
// // getRouterHis()
|
|
|
|
|
// // }, 800)
|
|
|
|
|
// // })
|
|
|
|
|
// // onBeforeRouteLeave((to, from, next) => {
|
|
|
|
|
// // inChildLoading.value = true
|
|
|
|
|
// // if (isCopy.value) {
|
|
|
|
|
// // const hisData = {
|
|
|
|
|
// // bookingDetails: bookingDetails.value,
|
|
|
|
|
// // excuteRules: excuteRules.value,
|
|
|
|
|
// // excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// // isAdd: isAdd.value,
|
|
|
|
|
// // tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// // mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // // type: type.value,
|
|
|
|
|
// // isCopy: isCopy.value,
|
|
|
|
|
// // id: id.value,
|
|
|
|
|
// // }
|
|
|
|
|
// // // if (Object.keys(this.$refs).includes('RefsedOrder')) {
|
|
|
|
|
// // // const secActive = RefsedOrder.value.$data.editIndex
|
|
|
|
|
// // // hisData.secActive = secActive
|
|
|
|
|
// // // }
|
|
|
|
|
// // if (!route.query.copyId) {
|
|
|
|
|
// // historyData.value[`copy-${id.value}`] = hisData
|
|
|
|
|
// // } else {
|
|
|
|
|
// // historyData.value[`copy-${id.value}-${route.query.copyId}`] = hisData
|
|
|
|
|
// // }
|
|
|
|
|
// // } else if (route.query.addNum) {
|
|
|
|
|
// // const hisData = {
|
|
|
|
|
// // bookingDetails: bookingDetails.value,
|
|
|
|
|
// // excuteRules: excuteRules.value,
|
|
|
|
|
// // excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// // isAdd: isAdd.value,
|
|
|
|
|
// // tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// // mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // // type: type.value,
|
|
|
|
|
// // isCopy: isCopy.value,
|
|
|
|
|
// // // id: id.value
|
|
|
|
|
// // }
|
|
|
|
|
// // // if (Object.keys(that.$refs).includes('RefsedOrder')) {
|
|
|
|
|
// // // const secActive = RefsedOrder.value.$data.editIndex
|
|
|
|
|
// // // hisData.secActive = secActive
|
|
|
|
|
// // // }
|
|
|
|
|
// // historyData.value[`add-${route.query.addNum}`] = hisData
|
|
|
|
|
// // } else {
|
|
|
|
|
// // const hisData = {
|
|
|
|
|
// // bookingDetails: bookingDetails.value,
|
|
|
|
|
// // excuteRules: excuteRules.value,
|
|
|
|
|
// // excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// // isAdd: isAdd.value,
|
|
|
|
|
// // tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// // mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // // type: type.value,
|
|
|
|
|
// // isCopy: isCopy.value,
|
|
|
|
|
// // id: id.value,
|
|
|
|
|
// // }
|
|
|
|
|
// // // if (Object.keys(that.$refs).includes('RefsedOrder')) {
|
|
|
|
|
// // // const secActive = RefsedOrder.value.$data.editIndex
|
|
|
|
|
// // // hisData.secActive = secActive
|
|
|
|
|
// // // }
|
|
|
|
|
// // historyData.value[id.value] = hisData
|
|
|
|
|
// // }
|
|
|
|
|
// // if (appStore.gethasbookingDetail) {
|
|
|
|
|
// // bookingDetails.value = { ...initDetail }
|
|
|
|
|
// // }
|
|
|
|
|
// // next()
|
|
|
|
|
// // setTimeout(() => {
|
|
|
|
|
// // inChildLoading.value = false
|
|
|
|
|
// // }, 2000)
|
|
|
|
|
// // })
|
|
|
|
|
// // ============================================
|
|
|
|
|
|
|
|
|
|
init()
|
|
|
|
|
// 初始化
|
|
|
|
|
function init() {
|
|
|
|
@ -1086,6 +969,22 @@
|
|
|
|
|
loading.value = false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 创建任务
|
|
|
|
|
const createTask = async (type) => {
|
|
|
|
|
const postData = {
|
|
|
|
|
businessId: id.value,
|
|
|
|
|
businessType: '1',
|
|
|
|
|
taskType: type
|
|
|
|
|
}
|
|
|
|
|
loading.value = true
|
|
|
|
|
await CreateTask(postData).then(res => {
|
|
|
|
|
taskType.value = type
|
|
|
|
|
loading.value = false
|
|
|
|
|
createMessage.success(res.message)
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
loading.value = false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// // ============================================
|
|
|
|
|
// // function getRouterHis() {
|
|
|
|
|
// // inChildLoading.value = true
|
|
|
|
@ -1551,6 +1450,18 @@
|
|
|
|
|
const submitDc = (v) => {
|
|
|
|
|
loading.value = v
|
|
|
|
|
}
|
|
|
|
|
// 选择舱位
|
|
|
|
|
const sspace = ref()
|
|
|
|
|
const cvisible = ref(false)
|
|
|
|
|
const cvalue = ref(1)
|
|
|
|
|
const handleOk = () => {
|
|
|
|
|
if (cvalue.value == 1) {
|
|
|
|
|
sspace.value.init()
|
|
|
|
|
} else {
|
|
|
|
|
createTask(202)
|
|
|
|
|
}
|
|
|
|
|
cvisible.value = false
|
|
|
|
|
}
|
|
|
|
|
// 订舱审核
|
|
|
|
|
const approveDc = (remark) => {
|
|
|
|
|
const postData = {
|
|
|
|
@ -1563,359 +1474,29 @@
|
|
|
|
|
SeaExportTaskAudit(postData).then(res => {
|
|
|
|
|
loading.value = false
|
|
|
|
|
createMessage.success(res.message)
|
|
|
|
|
closePage()
|
|
|
|
|
// 最后一个审批完,弹出选择是否现舱
|
|
|
|
|
if (res.data.isCompleted && res.data.flowStatus == 3) {
|
|
|
|
|
cvisible.value = true
|
|
|
|
|
}
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
loading.value = false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// function handleSaveCtnListCover(data, slots) {
|
|
|
|
|
// const arr = []
|
|
|
|
|
// data.forEach((item) => {
|
|
|
|
|
// if (item.ctnnum > 0) {
|
|
|
|
|
// arr.push(item)
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// bookingDetails.value.ctnInputs = arr
|
|
|
|
|
// bookingDetails.value.slots = slots
|
|
|
|
|
// bookingDetails.value.mblno = slots[0].sloT_BOOKING_NO
|
|
|
|
|
// bookingDetails.value.carrier = slots[0].carrier
|
|
|
|
|
// bookingDetails.value.carrierid = slots[0].carrierid
|
|
|
|
|
// bookingDetails.value.voynoinner = slots[0].voyno
|
|
|
|
|
// bookingDetails.value.voyno = slots[0].voyno
|
|
|
|
|
// bookingDetails.value.vessel = slots[0].vessel
|
|
|
|
|
// bookingDetails.value.etd = slots[0].etd
|
|
|
|
|
// bookingDetails.value.cntrtotal = slots[0].ctN_STAT
|
|
|
|
|
// bookingDetails.value.startETA = slots[0].eta
|
|
|
|
|
// that.$forceUpdate()
|
|
|
|
|
// RefgoodsTable.value.init()
|
|
|
|
|
// }
|
|
|
|
|
// function handleSaveCtnList(data, slots) {
|
|
|
|
|
// const arr = []
|
|
|
|
|
// data.forEach((item) => {
|
|
|
|
|
// if (item.ctnnum > 0) {
|
|
|
|
|
// arr.push(item)
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// bookingDetails.value.ctnInputs = arr
|
|
|
|
|
// bookingDetails.value.slots = slots
|
|
|
|
|
// RefgoodsTable.value.init()
|
|
|
|
|
// }
|
|
|
|
|
// function handleSetCtnList() {
|
|
|
|
|
// bookingDetails.value.slots = []
|
|
|
|
|
// that.$forceUpdate()
|
|
|
|
|
// }
|
|
|
|
|
// function frompre(data) {
|
|
|
|
|
// RefbasicInfo.value._data.frompre = data.data1
|
|
|
|
|
// }
|
|
|
|
|
// function changePage(type) {
|
|
|
|
|
// const nowId = route.query.id
|
|
|
|
|
// const arr = Object.keys(appStore.getbookingList)
|
|
|
|
|
// const index = arr.indexOf(nowId.toString())
|
|
|
|
|
// if (type === 'prev') {
|
|
|
|
|
// if (index < 1) {
|
|
|
|
|
// notification.error({ message: '当前已经是第一票', duration: 3 })
|
|
|
|
|
// return false
|
|
|
|
|
// }
|
|
|
|
|
// const prevId = arr[index - 1]
|
|
|
|
|
// const prevType = appStore.getbookingList[prevId].carrierid
|
|
|
|
|
|
|
|
|
|
// const $data = appStore.getneedSavePages
|
|
|
|
|
// delete $data[route.fullPath]
|
|
|
|
|
// appStore.setneedSavePages($data)
|
|
|
|
|
// appStore.settopDown(true)
|
|
|
|
|
// router.replace({
|
|
|
|
|
// name: 'BookingDetail',
|
|
|
|
|
// query: {
|
|
|
|
|
// id: prevId,
|
|
|
|
|
// type: prevType,
|
|
|
|
|
// mblno: appStore.getbookingList[prevId].mblno,
|
|
|
|
|
// noOpenTab: true,
|
|
|
|
|
// },
|
|
|
|
|
// })
|
|
|
|
|
// } else {
|
|
|
|
|
// if (index === arr.length - 1) {
|
|
|
|
|
// notification.error({ message: '当前已经是最后一票', duration: 3 })
|
|
|
|
|
// return false
|
|
|
|
|
// }
|
|
|
|
|
// const nextId = arr[index + 1]
|
|
|
|
|
// const nextType = appStore.getbookingList[nextId].carrierid
|
|
|
|
|
// const $data = appStore.getneedSavePages
|
|
|
|
|
// delete $data[route.fullPath]
|
|
|
|
|
// appStore.setneedSavePages($data)
|
|
|
|
|
// appStore.settopDown(true)
|
|
|
|
|
// router.replace({
|
|
|
|
|
// name: 'BookingDetail',
|
|
|
|
|
// query: {
|
|
|
|
|
// id: nextId,
|
|
|
|
|
// type: nextType,
|
|
|
|
|
// mblno: appStore.getbookingList[nextId].mblno,
|
|
|
|
|
// noOpenTab: true,
|
|
|
|
|
// },
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 获取当前任务的任务状态
|
|
|
|
|
const getTask = () => {
|
|
|
|
|
GetCurrent({ businessId: id.value, businessType: 1 }).then(res => {
|
|
|
|
|
console.log(res)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function setDeatilsFun(res, overSet = false) {
|
|
|
|
|
let newData = res.data
|
|
|
|
|
bookingDetails.value = {
|
|
|
|
|
...bookingDetails.value,
|
|
|
|
|
...newData,
|
|
|
|
|
}
|
|
|
|
|
// oldBookingDetails.value = bookingDetails.value
|
|
|
|
|
// sendMessageFY()
|
|
|
|
|
// if (route.query.isCopy && route.query.copyId) {
|
|
|
|
|
// const hisData = {
|
|
|
|
|
// bookingDetails: bookingDetails.value,
|
|
|
|
|
// excuteRules: excuteRules.value,
|
|
|
|
|
// excuteRulesType: excuteRulesType.value,
|
|
|
|
|
// isAdd: isAdd.value,
|
|
|
|
|
// tabActiveKey: tabActiveKey.value,
|
|
|
|
|
// mainOrderActiveKey: mainOrderActiveKey.value,
|
|
|
|
|
// // type: type.value,
|
|
|
|
|
// isCopy: isCopy.value,
|
|
|
|
|
// id: id.value,
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// historyData.value[`copyMore-${id.value}`] = hisData
|
|
|
|
|
// }
|
|
|
|
|
// getFilter()
|
|
|
|
|
// inPageLoading.value = false
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
// checkSaveFun({ type: 'details', hasChange: false })
|
|
|
|
|
// }, 600)
|
|
|
|
|
// detailsLoadOver.value = true
|
|
|
|
|
// inChildLoading.value = false
|
|
|
|
|
// notification.success({ message: '加载完成', duration: 3 })
|
|
|
|
|
// if (res.data.hbList && res.data.hbList.length > 0) {
|
|
|
|
|
// Showtabs.value = true
|
|
|
|
|
// }
|
|
|
|
|
// }, 1200)
|
|
|
|
|
}
|
|
|
|
|
// function sendMessageFY() {
|
|
|
|
|
// const mapFrame = iframe.value
|
|
|
|
|
// const data = {
|
|
|
|
|
// custno: bookingDetails.value.custno,
|
|
|
|
|
// mblno: bookingDetails.value.mblno,
|
|
|
|
|
// cntrtotal: bookingDetails.value.cntrtotal,
|
|
|
|
|
// cbm: bookingDetails.value.cbm,
|
|
|
|
|
// kgs: bookingDetails.value.kgs,
|
|
|
|
|
// pkgs: bookingDetails.value.pkgs,
|
|
|
|
|
// customername: bookingDetails.value.customername,
|
|
|
|
|
// customerid: bookingDetails.value.customerid,
|
|
|
|
|
// portdischarge: bookingDetails.value.portdischarge,
|
|
|
|
|
// vessel: bookingDetails.value.vessel,
|
|
|
|
|
// voyno: bookingDetails.value.voyno,
|
|
|
|
|
// sale: bookingDetails.value.sale,
|
|
|
|
|
// etd: bookingDetails.value.etd,
|
|
|
|
|
// blfrt: bookingDetails.value.blfrt,
|
|
|
|
|
// destination: bookingDetails.value.destination,
|
|
|
|
|
// portload: bookingDetails.value.portload,
|
|
|
|
|
// truckerid: bookingDetails.value.truckerid,
|
|
|
|
|
// trucker: bookingDetails.value.trucker,
|
|
|
|
|
// customser: bookingDetails.value.customser,
|
|
|
|
|
// customserid: bookingDetails.value.customserid,
|
|
|
|
|
// forwarder: bookingDetails.value.forwarder,
|
|
|
|
|
// forwarderid: bookingDetails.value.forwarderid,
|
|
|
|
|
// agentname: bookingDetails.value.agentname,
|
|
|
|
|
// agentnameid: bookingDetails.value.agentnameid,
|
|
|
|
|
// yard: bookingDetails.value.yard,
|
|
|
|
|
// yardid: bookingDetails.value.yardid,
|
|
|
|
|
// shipagency: bookingDetails.value.shipagency,
|
|
|
|
|
// shipagencyid: bookingDetails.value.shipagencyid,
|
|
|
|
|
// id: bookingDetails.value.id,
|
|
|
|
|
// }
|
|
|
|
|
// if (appStore.getfeeShow) {
|
|
|
|
|
// const iframeWin = mapFrame.contentWindow
|
|
|
|
|
// iframeWin.postMessage(
|
|
|
|
|
// {
|
|
|
|
|
// token: localStorage.getItem('pro__Access-Token'),
|
|
|
|
|
// data: data,
|
|
|
|
|
// customerTypeList: this.$options.filters['dictData']('djy_cust_prop'),
|
|
|
|
|
// },
|
|
|
|
|
// '*',
|
|
|
|
|
// )
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// function calc(num1, num2, calcStr) {
|
|
|
|
|
// var str1 // 转换为字符串的数字
|
|
|
|
|
// var str2
|
|
|
|
|
// var ws1 = 0 // ws1,ws2 用来存储传入的num的小数点后的数字的位数
|
|
|
|
|
// var ws2 = 0 // 赋默认值,解决当整数和小数运算时倍数计算错误导致的结果误差
|
|
|
|
|
// var bigger // bigger和smaller用于加,减,除法找出小的那个数字,给后面补0,解决位数不对从而造成的计算错误的问题;乘法需要将结果除两个数字的倍数之和
|
|
|
|
|
// var smaller // 例如:加减除法中1.001 + 2.03 ,如果不给2.03进行补0,最后会变成1001+203,数字错位导致结果错误;乘法中1.12*1.1会放大为112*11,所以结果需要除以1000才会是正确的结果,112*11/1000=1.232
|
|
|
|
|
// var zeroCount // 需要补充0的个数
|
|
|
|
|
// var isExistDot1 // 传入的数字是否存在小数点
|
|
|
|
|
// var isExistDot2
|
|
|
|
|
// var sum
|
|
|
|
|
// var beishu = 1
|
|
|
|
|
// // 将数字转换为字符串
|
|
|
|
|
// str1 = num1.toString()
|
|
|
|
|
// str2 = num2.toString()
|
|
|
|
|
// // 是否存在小数点(判断需要计算的数字是不是包含小数)
|
|
|
|
|
// isExistDot1 = str1.indexOf('.') != -1
|
|
|
|
|
// isExistDot2 = str2.indexOf('.') != -1
|
|
|
|
|
// // 取小数点后面的位数
|
|
|
|
|
// if (isExistDot1) {
|
|
|
|
|
// ws1 = str1.split('.')[1].length
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if (isExistDot2) {
|
|
|
|
|
// ws2 = str2.split('.')[1].length
|
|
|
|
|
// }
|
|
|
|
|
// // 如ws1 和 ws2 无默认值,如果num1 或 num2 不是小数的话则 ws1 或 ws2 的值将为 undefined
|
|
|
|
|
// // bigger 和 smaller 的值会和预期不符
|
|
|
|
|
// bigger = ws1 > ws2 ? ws1 : ws2
|
|
|
|
|
// smaller = ws1 < ws2 ? ws1 : ws2
|
|
|
|
|
|
|
|
|
|
// switch (calcStr) {
|
|
|
|
|
// // 加减法找出小的那个数字,给后面补0,解决位数不对从而造成的计算错误的问题
|
|
|
|
|
// // 例如:1.001 + 2.03 ,如果不给2.03进行补0,最后会变成1001+203,数字错位导致结果错误
|
|
|
|
|
// case '+':
|
|
|
|
|
// case '-':
|
|
|
|
|
// case '/':
|
|
|
|
|
// zeroCount = bigger - smaller
|
|
|
|
|
// for (var i = 0; i < zeroCount; i++) {
|
|
|
|
|
// if (ws1 == smaller) {
|
|
|
|
|
// str1 += '0'
|
|
|
|
|
// } else {
|
|
|
|
|
// str2 += '0'
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// break
|
|
|
|
|
// case '*':
|
|
|
|
|
// // 乘法需要将结果除两个数字的倍数之和
|
|
|
|
|
// bigger = bigger + smaller
|
|
|
|
|
// break
|
|
|
|
|
// default:
|
|
|
|
|
// return '暂不支持的计算类型,现已支持的有加法、减法、乘法、除法'
|
|
|
|
|
// break
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// // 去除数字中的小数点
|
|
|
|
|
// str1 = str1.replace('.', '')
|
|
|
|
|
// str2 = str2.replace('.', '')
|
|
|
|
|
|
|
|
|
|
// // 计算倍数,例如:1.001小数点后有三位,则需要乘 1000 变成 1001,变成整数后精度丢失问题则不会存在
|
|
|
|
|
// for (var i = 0; i < bigger; i++) {
|
|
|
|
|
// beishu *= 10 // 等价于beishu = beishu * 10;
|
|
|
|
|
// }
|
|
|
|
|
// num1 = parseInt(str1)
|
|
|
|
|
// num2 = parseInt(str2)
|
|
|
|
|
// // 进行最终计算并除相应倍数
|
|
|
|
|
// switch (calcStr) {
|
|
|
|
|
// case '+':
|
|
|
|
|
// sum = (num1 + num2) / beishu
|
|
|
|
|
// break
|
|
|
|
|
// case '-':
|
|
|
|
|
// sum = (num1 - num2) / beishu
|
|
|
|
|
// break
|
|
|
|
|
// case '*':
|
|
|
|
|
// sum = (num1 * num2) / beishu
|
|
|
|
|
// break
|
|
|
|
|
// case '/':
|
|
|
|
|
// sum = num1 / num2
|
|
|
|
|
// /* 除数与被除数同时放大一定倍数,不影响结果,
|
|
|
|
|
// 所以对数字进行放大对应倍数并进行补0操作后不用另对倍数做处理 */
|
|
|
|
|
// break
|
|
|
|
|
// default:
|
|
|
|
|
// return '暂不支持的计算类型,现已支持的有加法、减法、乘法、除法'
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// return sum
|
|
|
|
|
// }
|
|
|
|
|
// function diffObj(obj1, obj2) {
|
|
|
|
|
// function getTypeByObj(obj) {
|
|
|
|
|
// return Object.prototype.toString.call(obj).match(/^\[object ([a-zA-Z]*)\]$/)[1]
|
|
|
|
|
// }
|
|
|
|
|
// function isEmptyObject(obj) {
|
|
|
|
|
// for (const key in obj) {
|
|
|
|
|
// return false
|
|
|
|
|
// }
|
|
|
|
|
// return true
|
|
|
|
|
// }
|
|
|
|
|
// if (!obj1 || isEmptyObject(obj1) || !obj2 || isEmptyObject(obj2)) {
|
|
|
|
|
// return null
|
|
|
|
|
// }
|
|
|
|
|
// const diffRes = {
|
|
|
|
|
// old_val: {},
|
|
|
|
|
// new_val: {},
|
|
|
|
|
// }
|
|
|
|
|
// for (const k in obj2) {
|
|
|
|
|
// // 判断数据类型是否一致
|
|
|
|
|
// if (getTypeByObj(obj2[k]) === getTypeByObj(obj1[k])) {
|
|
|
|
|
// // 比较 “Array”和“Object”类型
|
|
|
|
|
// if (getTypeByObj(obj2[k]) === 'Array' || getTypeByObj(obj2[k]) === 'Object') {
|
|
|
|
|
// const diffData = diffObj(obj1[k], obj2[k])
|
|
|
|
|
// if (!isEmptyObject(diffData)) {
|
|
|
|
|
// diffRes.old_val[k] = diffData.old_val
|
|
|
|
|
// diffRes.new_val[k] = diffData.new_val
|
|
|
|
|
// }
|
|
|
|
|
// } else if (obj1[k] !== obj2[k]) {
|
|
|
|
|
// // 比较其他类型数据
|
|
|
|
|
// diffRes.old_val[k] = obj1[k]
|
|
|
|
|
// diffRes.new_val[k] = obj2[k]
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// if ([undefined, null, ''].includes(obj1[k]) && [undefined, null, ''].includes(obj2[k])) {
|
|
|
|
|
// // 这三类数据可视为相等,不做处理
|
|
|
|
|
// } else {
|
|
|
|
|
// diffRes.old_val[k] = obj1[k]
|
|
|
|
|
// diffRes.new_val[k] = obj2[k]
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// // 若没有变化,返回null
|
|
|
|
|
// if (isEmptyObject(diffRes.old_val) || isEmptyObject(diffRes.new_val)) {
|
|
|
|
|
// return null
|
|
|
|
|
// }
|
|
|
|
|
// return diffRes
|
|
|
|
|
// }
|
|
|
|
|
function getRightAll() {
|
|
|
|
|
// GetAllData({
|
|
|
|
|
// bookingId: route.query.id,
|
|
|
|
|
// })
|
|
|
|
|
// .then((res) => {
|
|
|
|
|
// if (res.succeeded) {
|
|
|
|
|
// if (res.data.statuslog) {
|
|
|
|
|
// res.data.statuslog = res.data.statuslog.reverse()
|
|
|
|
|
// }
|
|
|
|
|
// bookingDetails.value = { ...bookingDetails.value, ...res.data }
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
// checkSaveFun({ type: 'details', hasChange: false })
|
|
|
|
|
// }, 10)
|
|
|
|
|
// } else {
|
|
|
|
|
// console.log(res.message)
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// .catch((err) => {
|
|
|
|
|
// console.log(err)
|
|
|
|
|
// })
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// function changeHBFun(data) {
|
|
|
|
|
// const arr = []
|
|
|
|
|
// data.map((item: any) => {
|
|
|
|
|
// arr.push(item.isNoSave)
|
|
|
|
|
// })
|
|
|
|
|
// if (arr.includes(true)) {
|
|
|
|
|
// bookingDetails.value.hbList = data
|
|
|
|
|
// checkSaveFun({ type: 'hbList', hasChange: true })
|
|
|
|
|
// } else {
|
|
|
|
|
// checkSaveFun({ type: 'hbList', hasChange: false })
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// function sedOrderRemoveFun(sedData) {
|
|
|
|
|
// bookingDetails.value.hbList = sedData
|
|
|
|
|
// if (sedData.length === 0) {
|
|
|
|
|
// Showtabs.value = false
|
|
|
|
|
// tabActiveKey.value = '1'
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// defineExpose({
|
|
|
|
|
// // getRouterHis,
|
|
|
|
|
// init,
|
|
|
|
|
// })
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less">
|
|
|
|
|