引入舱位

szh-new
sunzehua 2 months ago
parent 69b0b7e453
commit 717ea6cddd

@ -4,105 +4,104 @@
* @Date: 2024-04-29 11:54:04
-->
<template>
<a-modal
title="引入舱位"
@cancel="visible = false"
@ok="handleOk"
v-if="visible"
:visible="visible"
width="80%"
:confirmLoading="loading"
>
<a-modal title="引入舱位" @cancel="visible = false" @ok="handleOk" v-if="visible" :visible="visible" width="80%"
:confirmLoading="loading">
<a-spin :spinning="loading">
<BasicTable
class="ds-table-detail"
@register="registerTable"
/>
<BasicTable class="ds-table-detail" @register="registerTable" />
</a-spin>
</a-modal>
</template>
<script lang="ts" setup>
import { defineExpose, ref, defineProps, defineEmits } from 'vue'
import { BasicTable, useTable } from '/@/components/Table'
import { GetAvailableBookingSlots, BringInBookingSlotToOrder } from '../../api/BookingLedger.js'
import { storageColumns, storageSearchFormSchema } from './ladingInfo'
//
import { useMessage } from '/@/hooks/web/useMessage'
const { createMessage } = useMessage()
import { useI18n } from '/@/hooks/web/useI18n'
const { t } = useI18n()
const props = defineProps({
// id
id: {
type: String
},
//
reload: {
type: Function
}
})
const emit = defineEmits(['createTask'])
//
import { formatParams } from '/@/hooks/web/common'
const [registerTable, { reload, getSelectRows }] = useTable({
title: '',
api: async (p) => {
const res: API.DataResult = await GetAvailableBookingSlots(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
},
//
beforeFetch: (p) => {
return formatParams(p)
},
columns: storageColumns,
formConfig: {
labelWidth: 120,
//
schemas: storageSearchFormSchema,
},
maxHeight: 600,
isTreeTable: false,
pagination: true,
useSearchForm: true,
showTableSetting: false,
bordered: true,
showIndexColumn: true,
indexColumnProps: {
width: 60,
},
rowSelection: {
type: 'radio'
},
canResize: true,
resizeHeightOffset: 80
})
const visible = ref(false)
//
const init = () => {
visible.value = true
import { defineExpose, ref, defineProps, defineEmits } from 'vue'
import { BasicTable, useTable } from '/@/components/Table'
import { GetAvailableBookingSlots, BringInBookingSlotToOrder } from '../../api/BookingLedger.js'
import { storageColumns, storageSearchFormSchema } from './ladingInfo'
//
import { useMessage } from '/@/hooks/web/useMessage'
const { createMessage } = useMessage()
import { useI18n } from '/@/hooks/web/useI18n'
const { t } = useI18n()
const props = defineProps({
// id
id: {
type: String
},
//
reload: {
type: Function
}
const loading = ref(false)
const handleOk = () => {
const slots = getSelectRows()
if (!slots.length) return createMessage.warning('请选择舱位!')
loading.value = true
BringInBookingSlotToOrder({ seaExportId: props.id, slots }).then(res => {
// createMessage.success(res.data)
emit('createTask', 'WAIT_BOOKING')
visible.value = false
loading.value = false
}).catch(() => {
visible.value = false
loading.value = false
})
const emit = defineEmits(['createTask'])
//
import { formatParams } from '/@/hooks/web/common'
const [registerTable, { getForm, reload, getSelectRows }] = useTable({
title: '',
api: async (p) => {
const res: API.DataResult = await GetAvailableBookingSlots(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
}
defineExpose({
init
},
//
beforeFetch: (p) => {
const data = formatParams(p)
const queryData = JSON.parse(formatParams(p).queryCondition)
let i = queryData.length
while (i--) {
if (queryData[i].FieldName === 'slotNo') {
queryData.splice(i, 1)
}
}
data.queryCondition = JSON.stringify(queryData)
data.otherQueryCondition = {}
data.otherQueryCondition = getForm().getFieldsValue().slotNo
return data
},
columns: storageColumns,
formConfig: {
labelWidth: 120,
//
schemas: storageSearchFormSchema,
},
maxHeight: 600,
isTreeTable: false,
pagination: true,
useSearchForm: true,
showTableSetting: false,
bordered: true,
showIndexColumn: true,
indexColumnProps: {
width: 60,
},
rowSelection: {
type: 'radio'
},
canResize: true,
resizeHeightOffset: 80
})
const visible = ref(false)
//
const init = () => {
visible.value = true
}
const loading = ref(false)
const handleOk = () => {
const slots = getSelectRows()
if (!slots.length) return createMessage.warning('请选择舱位!')
loading.value = true
BringInBookingSlotToOrder({ seaExportId: props.id, slots }).then(res => {
// createMessage.success(res.data)
emit('createTask', 'WAIT_BOOKING')
visible.value = false
loading.value = false
}).catch(() => {
visible.value = false
loading.value = false
})
}
defineExpose({
init
})
</script>
<style lang="less">
</style>
<style lang="less"></style>
Loading…
Cancel
Save