07/25
commit
0c0184042f
@ -0,0 +1,104 @@
|
|||||||
|
<template>
|
||||||
|
<a-row type="flex" :gutter="16">
|
||||||
|
<a-col>
|
||||||
|
<a-button type="primary" @click="OpenUser">转移任务</a-button>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<a-button type="primary" @click="FnCompleteTask">完成任务</a-button>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<a-button type="primary" @click="OpenModal">生 成</a-button>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<a-button type="danger" @click="FnCancelTask">取消任务</a-button>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<a-button type="primary" @click="handleSendMail">发送邮件</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-modal @cancel="UserVisible = false" :visible="UserVisible" title="转移任务" @ok="UserhandleOk">
|
||||||
|
<div style="margin: 15px 0;">接收人</div>
|
||||||
|
<a-select show-search style="width: 200px;" :filter-option="filterOption" v-model:value="UserId">
|
||||||
|
<a-select-option v-for="item in UserList" :key="item.value" :value="item.value">
|
||||||
|
{{ item.label }}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { number } from 'echarts';
|
||||||
|
import { ref, onMounted, defineProps } from 'vue'
|
||||||
|
import { GetUserListAll, TransferTask, CompleteTask, CancelTaskBC } from '../api'
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage'
|
||||||
|
const { createMessage } = useMessage()
|
||||||
|
const props = defineProps({
|
||||||
|
id: {
|
||||||
|
type: String || Number
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const UserVisible = ref(false);
|
||||||
|
const UserList = ref([]) as any
|
||||||
|
const UserId = ref('') //转移任务的用户id
|
||||||
|
const emit = defineEmits(['loadingStart', 'loadingStop'])
|
||||||
|
function OpenUser() {
|
||||||
|
UserVisible.value = true
|
||||||
|
GetUserListAll().then(res => {
|
||||||
|
UserList.value = res.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function UserhandleOk() {
|
||||||
|
const ApiData = {
|
||||||
|
taskPKId: props.id,
|
||||||
|
userId: UserId.value
|
||||||
|
}
|
||||||
|
TransferTask(ApiData).then(res => {
|
||||||
|
if (res.data.succ) {
|
||||||
|
UserVisible.value = false
|
||||||
|
createMessage.success(res.data.msg)
|
||||||
|
} else {
|
||||||
|
createMessage.error(res.data.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function filterOption(input, option) {
|
||||||
|
return (
|
||||||
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// 完成任务
|
||||||
|
function FnCompleteTask() {
|
||||||
|
const ApiData = [props.id]
|
||||||
|
emit('loadingStart')
|
||||||
|
CompleteTask(ApiData).then(res => {
|
||||||
|
if (res.data.succ) {
|
||||||
|
createMessage.success(res.data.msg)
|
||||||
|
} else {
|
||||||
|
createMessage.error(res.data.msg)
|
||||||
|
}
|
||||||
|
emit('loadingStop')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function OpenModal() {
|
||||||
|
console.log('OpenUser')
|
||||||
|
}
|
||||||
|
//取消任务
|
||||||
|
function FnCancelTask() {
|
||||||
|
const ApiData = {
|
||||||
|
taskPKId: props.id
|
||||||
|
}
|
||||||
|
emit('loadingStart')
|
||||||
|
CancelTaskBC(ApiData).then(res => {
|
||||||
|
if (res.data.succ) {
|
||||||
|
createMessage.success(res.data.msg)
|
||||||
|
} else {
|
||||||
|
createMessage.error(res.data.msg)
|
||||||
|
}
|
||||||
|
emit('loadingStop')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function handleSendMail() {
|
||||||
|
console.log('OpenUser')
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,178 @@
|
|||||||
|
<template>
|
||||||
|
<a-spin :spinning="spinning">
|
||||||
|
<a-row style="padding: 15px;" :gutter="16">
|
||||||
|
<a-col :span="pdfUrl ? 11 : 24">
|
||||||
|
<taskData ref="taskDataRef" title='Booking Amendment' ></taskData>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<pdf ref="pdfData"></pdf>
|
||||||
|
<taskButton @loadingStart="loadingStart" @loadingStop="loadingStop" :id="taskPKId" ref="taskButtonRef"></taskButton>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-spin>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
import { useRouter,useRoute } from 'vue-router'
|
||||||
|
import pdf from '../components/pdf.vue'
|
||||||
|
import taskData from '../components/taskData.vue'
|
||||||
|
import taskButton from '../components/taskButton.vue'
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter();
|
||||||
|
const form = ref({
|
||||||
|
"pkId": "08dcab8e-3757-49bb-8082-1bb3de042459",
|
||||||
|
"taskId": "08dcab8e-374d-4a44-8093-6dc531177f01",
|
||||||
|
"busiType": "BookingConfirmation",
|
||||||
|
"bookingParty": "QINGDAO CHENGSI FREIGHT FORWARDER CO",
|
||||||
|
"mblNo": "242636125",
|
||||||
|
"vessel": "GSL MELITA",
|
||||||
|
"voyNo": "431S",
|
||||||
|
"placeReceipt": "Qingdao,Shandong,China",
|
||||||
|
"portload": "QINGDAO QIANWAN CONTAINER CO LTD",
|
||||||
|
"vgmCutoffTime": "2024-08-01 17:00:00",
|
||||||
|
"eta": "2024-09-03 00:00:00",
|
||||||
|
"etd": "2024-08-03 00:00:00",
|
||||||
|
"portDischarge": "Brisbane Patrick Terminal",
|
||||||
|
"placeDelivery": "Brisbane,Queensland,Australia",
|
||||||
|
"contractNo": "299026908",
|
||||||
|
"fstCustomerSerUserName": "Eight chengsi",
|
||||||
|
"cyCutoffTime": "2024-08-01 22:00:00",
|
||||||
|
"ctnList": [
|
||||||
|
{
|
||||||
|
"ctnALL": "40HC",
|
||||||
|
"ctnnum": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fileList": [
|
||||||
|
{
|
||||||
|
"filePath": "BookingAttach\\bcfiles\\08dcab8e-374d-4a44-8093-6dc531177f01\\20240724111048159\\DB_aabhcbhjagaf0x023A.pdf",
|
||||||
|
"fileType": ".pdf",
|
||||||
|
"fileName": "DB_aabhcbhjagaf0x023A.pdf",
|
||||||
|
"fileCategory": "BC",
|
||||||
|
"fileCategoryName": "Booking Confirmation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filePath": "BookingAttach\\bcnoticefiles\\08dcab8e-374d-4a44-8093-6dc531177f01\\20240724111048174\\DB_aabhcbhjagaf0x023A_MODIFY.pdf",
|
||||||
|
"fileType": ".pdf",
|
||||||
|
"fileName": "DB_aabhcbhjagaf0x023A_MODIFY.pdf",
|
||||||
|
"fileCategory": "BC_NOTICE",
|
||||||
|
"fileCategoryName": "Booking Confirmation Notice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bookingSlotId": 571905822330949,
|
||||||
|
"carrierId": "MSK",
|
||||||
|
"carriageType": "DIRECT_SHIP",
|
||||||
|
"carriageTypeName": "直达",
|
||||||
|
"bookingSlotType": "CONTRACT_ORDER",
|
||||||
|
"bookingSlotTypeName": "合约订舱",
|
||||||
|
"ctnStat": "40HC*1",
|
||||||
|
"weekAt": "31",
|
||||||
|
"detensionFreeDays": 0,
|
||||||
|
"siCutDate": "2024-07-31 18:00:00",
|
||||||
|
"bookingConfirmDate": "2024-07-24 11:10:00",
|
||||||
|
"keywords": [
|
||||||
|
{
|
||||||
|
"name": "承运方式:直达",
|
||||||
|
"background": "#FFFF80",
|
||||||
|
"icon": "icon-yunshu1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "订舱方式:合约订舱",
|
||||||
|
"background": "#81D3F8",
|
||||||
|
"icon": "icon-touzijilu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"taskStatus": "Create"
|
||||||
|
}) as any
|
||||||
|
const pdfUrl = ref('123')
|
||||||
|
const taskDataRef = ref()
|
||||||
|
onMounted(() => {
|
||||||
|
taskDataRef.value.init(form.value)
|
||||||
|
})
|
||||||
|
const taskPKId = ref(route.query.taskPKId)
|
||||||
|
const spinning = ref(false)
|
||||||
|
const formItemLayout = {
|
||||||
|
labelCol1: { span: 6 },
|
||||||
|
wrapperCol1: { span: 18 },
|
||||||
|
labelCol2: { span: 8 },
|
||||||
|
wrapperCol2: { span: 16 },
|
||||||
|
labelCol3: { span: 4 },
|
||||||
|
wrapperCol3: { span: 20 },
|
||||||
|
labelCol4: { span: 8 },
|
||||||
|
wrapperCol4: { span: 16 },
|
||||||
|
labelCol5: { span: 14 },
|
||||||
|
wrapperCol5: { span: 10 },
|
||||||
|
labelCol6: { span: 8 },
|
||||||
|
wrapperCol6: { span: 16 }
|
||||||
|
}
|
||||||
|
|
||||||
|
const pdfData = ref()
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
pdfData.value.init()
|
||||||
|
})
|
||||||
|
|
||||||
|
function loadingStart(){
|
||||||
|
spinning.value = true
|
||||||
|
}
|
||||||
|
function loadingStop(){
|
||||||
|
spinning.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.LeftHead {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
font-weight: 700;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-form-item-control-input-content {
|
||||||
|
div {
|
||||||
|
color: rgba(122, 135, 152, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
border: 1px solid rgba(232, 235, 237, 1);
|
||||||
|
padding: 15px 20px;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.CsSee {
|
||||||
|
color: rgb(104, 104, 228);
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.unitBox {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.unit {
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/deep/ .ant-form-item{
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,178 @@
|
|||||||
|
<template>
|
||||||
|
<a-spin :spinning="spinning">
|
||||||
|
<a-row style="padding: 15px;" :gutter="16">
|
||||||
|
<a-col :span="pdfUrl ? 11 : 24">
|
||||||
|
<taskData ref="taskDataRef" title='Booking Cancellation' ></taskData>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<pdf ref="pdfData"></pdf>
|
||||||
|
<taskButton @loadingStart="loadingStart" @loadingStop="loadingStop" :id="taskPKId" ref="taskButtonRef"></taskButton>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-spin>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
import { useRouter,useRoute } from 'vue-router'
|
||||||
|
import pdf from '../components/pdf.vue'
|
||||||
|
import taskData from '../components/taskData.vue'
|
||||||
|
import taskButton from '../components/taskButton.vue'
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter();
|
||||||
|
const form = ref({
|
||||||
|
"pkId": "08dcab8e-3757-49bb-8082-1bb3de042459",
|
||||||
|
"taskId": "08dcab8e-374d-4a44-8093-6dc531177f01",
|
||||||
|
"busiType": "BookingConfirmation",
|
||||||
|
"bookingParty": "QINGDAO CHENGSI FREIGHT FORWARDER CO",
|
||||||
|
"mblNo": "242636125",
|
||||||
|
"vessel": "GSL MELITA",
|
||||||
|
"voyNo": "431S",
|
||||||
|
"placeReceipt": "Qingdao,Shandong,China",
|
||||||
|
"portload": "QINGDAO QIANWAN CONTAINER CO LTD",
|
||||||
|
"vgmCutoffTime": "2024-08-01 17:00:00",
|
||||||
|
"eta": "2024-09-03 00:00:00",
|
||||||
|
"etd": "2024-08-03 00:00:00",
|
||||||
|
"portDischarge": "Brisbane Patrick Terminal",
|
||||||
|
"placeDelivery": "Brisbane,Queensland,Australia",
|
||||||
|
"contractNo": "299026908",
|
||||||
|
"fstCustomerSerUserName": "Eight chengsi",
|
||||||
|
"cyCutoffTime": "2024-08-01 22:00:00",
|
||||||
|
"ctnList": [
|
||||||
|
{
|
||||||
|
"ctnALL": "40HC",
|
||||||
|
"ctnnum": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fileList": [
|
||||||
|
{
|
||||||
|
"filePath": "BookingAttach\\bcfiles\\08dcab8e-374d-4a44-8093-6dc531177f01\\20240724111048159\\DB_aabhcbhjagaf0x023A.pdf",
|
||||||
|
"fileType": ".pdf",
|
||||||
|
"fileName": "DB_aabhcbhjagaf0x023A.pdf",
|
||||||
|
"fileCategory": "BC",
|
||||||
|
"fileCategoryName": "Booking Confirmation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filePath": "BookingAttach\\bcnoticefiles\\08dcab8e-374d-4a44-8093-6dc531177f01\\20240724111048174\\DB_aabhcbhjagaf0x023A_MODIFY.pdf",
|
||||||
|
"fileType": ".pdf",
|
||||||
|
"fileName": "DB_aabhcbhjagaf0x023A_MODIFY.pdf",
|
||||||
|
"fileCategory": "BC_NOTICE",
|
||||||
|
"fileCategoryName": "Booking Confirmation Notice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bookingSlotId": 571905822330949,
|
||||||
|
"carrierId": "MSK",
|
||||||
|
"carriageType": "DIRECT_SHIP",
|
||||||
|
"carriageTypeName": "直达",
|
||||||
|
"bookingSlotType": "CONTRACT_ORDER",
|
||||||
|
"bookingSlotTypeName": "合约订舱",
|
||||||
|
"ctnStat": "40HC*1",
|
||||||
|
"weekAt": "31",
|
||||||
|
"detensionFreeDays": 0,
|
||||||
|
"siCutDate": "2024-07-31 18:00:00",
|
||||||
|
"bookingConfirmDate": "2024-07-24 11:10:00",
|
||||||
|
"keywords": [
|
||||||
|
{
|
||||||
|
"name": "承运方式:直达",
|
||||||
|
"background": "#FFFF80",
|
||||||
|
"icon": "icon-yunshu1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "订舱方式:合约订舱",
|
||||||
|
"background": "#81D3F8",
|
||||||
|
"icon": "icon-touzijilu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"taskStatus": "Create"
|
||||||
|
}) as any
|
||||||
|
const pdfUrl = ref('123')
|
||||||
|
const taskDataRef = ref()
|
||||||
|
onMounted(() => {
|
||||||
|
taskDataRef.value.init(form.value)
|
||||||
|
})
|
||||||
|
const taskPKId = ref(route.query.taskPKId)
|
||||||
|
const spinning = ref(false)
|
||||||
|
const formItemLayout = {
|
||||||
|
labelCol1: { span: 6 },
|
||||||
|
wrapperCol1: { span: 18 },
|
||||||
|
labelCol2: { span: 8 },
|
||||||
|
wrapperCol2: { span: 16 },
|
||||||
|
labelCol3: { span: 4 },
|
||||||
|
wrapperCol3: { span: 20 },
|
||||||
|
labelCol4: { span: 8 },
|
||||||
|
wrapperCol4: { span: 16 },
|
||||||
|
labelCol5: { span: 14 },
|
||||||
|
wrapperCol5: { span: 10 },
|
||||||
|
labelCol6: { span: 8 },
|
||||||
|
wrapperCol6: { span: 16 }
|
||||||
|
}
|
||||||
|
|
||||||
|
const pdfData = ref()
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
pdfData.value.init()
|
||||||
|
})
|
||||||
|
|
||||||
|
function loadingStart(){
|
||||||
|
spinning.value = true
|
||||||
|
}
|
||||||
|
function loadingStop(){
|
||||||
|
spinning.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.LeftHead {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
font-weight: 700;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-form-item-control-input-content {
|
||||||
|
div {
|
||||||
|
color: rgba(122, 135, 152, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
border: 1px solid rgba(232, 235, 237, 1);
|
||||||
|
padding: 15px 20px;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.CsSee {
|
||||||
|
color: rgb(104, 104, 228);
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.unitBox {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.unit {
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/deep/ .ant-form-item{
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
changeShip
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
cutModify
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
draft
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
invoiceBillMail
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
originalLost
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
perBill
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
podDischargeFull
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
podGateoutFull
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
rollingNomination
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
routeCutChange
|
||||||
|
</template>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
transPlanHasChange
|
||||||
|
</template>
|
@ -0,0 +1,192 @@
|
|||||||
|
<template>
|
||||||
|
<div class="task-vgm-contrast">
|
||||||
|
<div class="nav-btn-box" v-if="taskType === 'Create'">
|
||||||
|
<a-button class="nav-btn" type="primary" @click="overTaskFun">完成任务</a-button>
|
||||||
|
<a-button class="nav-btn" type="primary" @click="updateTaskFun">更新订舱</a-button>
|
||||||
|
</div>
|
||||||
|
<div class="vgm-compare">
|
||||||
|
<a-row :gutter="10">
|
||||||
|
<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||||
|
<div class="booking-vgm old">
|
||||||
|
<div class="title">原订舱箱信息</div>
|
||||||
|
<ul class="vgm-table">
|
||||||
|
<li class="top">
|
||||||
|
<span class="label" v-for="(label, index) in columns" :key="index"
|
||||||
|
:class="{ 'isContaNo': label.key === 'contaNo' }"
|
||||||
|
:style="label.key === 'contaNo' ? 'width:110px;' : 'flex:1;'">{{ label.title
|
||||||
|
}}</span>
|
||||||
|
</li>
|
||||||
|
<li v-for="(lastItem, oindex) in vgmLastTableData" :key="oindex">
|
||||||
|
<span class="label" v-for="(lastlabel, lindex) in columns" :key="lindex"
|
||||||
|
:class="[{ 'active': lastItem.compareDiffList.includes(lastlabel.key.slice(0, 1).toUpperCase() + lastlabel.key.slice(1)) || lastItem.compareDiffList.includes(lastlabel.key.toUpperCase()) }, { 'isContaNo': lastlabel.key === 'contaNo' }]"
|
||||||
|
:style="lastlabel.key === 'contaNo' ? 'width:110px;' : 'flex:1;'">
|
||||||
|
{{ lastItem[lastlabel.key] }}
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||||
|
<div class="booking-vgm new">
|
||||||
|
<div class="title">客户提交信息</div>
|
||||||
|
<ul class="vgm-table">
|
||||||
|
<li class="top">
|
||||||
|
<span class="label" v-for="(label, index) in columns" :key="index"
|
||||||
|
:style="label.key === 'contaNo' ? 'width:110px;' : 'flex:1;'">
|
||||||
|
{{ label.title }}
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<li v-for="(submitItem, zindex) in vgmSubmitTableData" :key="zindex">
|
||||||
|
<span class="label" v-for="(slabel, sindex) in columns" :key="sindex"
|
||||||
|
:class="[{ 'active': submitItem.compareDiffList.includes(slabel.key.slice(0, 1).toUpperCase() + slabel.key.slice(1)) || submitItem.compareDiffList.includes(slabel.key.toUpperCase()) }, { 'isContaNo': slabel.key === 'contaNo' }]"
|
||||||
|
:style="slabel.key === 'contaNo' ? 'width:110px;' : 'flex:1;'">
|
||||||
|
{{ submitItem[slabel.key] }}
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
import { GetVGMCompareResult, SaveBookingVGM, CompleteTask } from '../api'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage'
|
||||||
|
const { createMessage } = useMessage()
|
||||||
|
const route = useRoute()
|
||||||
|
const taskPKId = ref(route.query.taskPKId)
|
||||||
|
const taskType = ref(route.query.type)
|
||||||
|
const columns = ref([
|
||||||
|
{ dataIndex: 'contaType', key: 'contaType', title: '箱型' },
|
||||||
|
{ dataIndex: 'contaNo', key: 'contaNo', title: '箱号' },
|
||||||
|
{ dataIndex: 'sealNo', key: 'sealNo', title: '封号' },
|
||||||
|
{ dataIndex: 'kgs', key: 'kgs', title: '毛重' },
|
||||||
|
{ dataIndex: 'tareWeight', key: 'tareWeight', title: '皮重' },
|
||||||
|
{ dataIndex: 'weighKGs', key: 'weighKGs', title: '称重重量' },
|
||||||
|
{ dataIndex: 'weighType', key: 'weighType', title: '称重方式' }
|
||||||
|
])
|
||||||
|
onMounted(() => {
|
||||||
|
getInfo()
|
||||||
|
})
|
||||||
|
const vgmLastTableData = ref([]) as any
|
||||||
|
const vgmSubmitTableData = ref([]) as any
|
||||||
|
function getInfo() {
|
||||||
|
GetVGMCompareResult({
|
||||||
|
taskPKId: taskPKId.value
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
res.data.bookOrderCompareList.map((item, index) => {
|
||||||
|
if (!item.hasOwnProperty('compareDiffList')) {
|
||||||
|
item.compareDiffList = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
res.data.vgmCompareList.map((oitem, oindex) => {
|
||||||
|
if (!oitem.hasOwnProperty('compareDiffList')) {
|
||||||
|
oitem.compareDiffList = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
vgmLastTableData.value = res.data.bookOrderCompareList
|
||||||
|
vgmSubmitTableData.value = res.data.vgmCompareList
|
||||||
|
} else {
|
||||||
|
createMessage.error(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function overTaskFun() {
|
||||||
|
CompleteTask({
|
||||||
|
PKIds: [this.taskPKId]
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success('已完成任务')
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function updateTaskFun() {
|
||||||
|
SaveBookingVGM(this.taskPKId).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success('更新成功')
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.nav-btn-box {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
.nav-btn {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vgm-compare {
|
||||||
|
padding: 20px;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.booking-vgm {
|
||||||
|
padding: 0 20px;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #666;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vgm-table {
|
||||||
|
border: 1px solid #eee;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
height: 40px;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
line-height: 40px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
span {
|
||||||
|
display: block;
|
||||||
|
// flex: 1;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 14px;
|
||||||
|
border-right: 1px solid #eee;
|
||||||
|
|
||||||
|
&:nth-last-of-type(1) {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: #CC3333;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.isContaNo {
|
||||||
|
// width: 110px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.top {
|
||||||
|
background: #f8f8fa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
vgmDetail
|
||||||
|
</template>
|
Loading…
Reference in New Issue