07/02
parent
ef8079b2b3
commit
9270da0014
@ -0,0 +1,213 @@
|
||||
<!--
|
||||
* @Description: 海运出口列表
|
||||
* @Author: lijj
|
||||
* @Date: 2024-04-29 11:54:04
|
||||
-->
|
||||
<template>
|
||||
<div class="ds-table-action-bar">
|
||||
<div class="nav" @click="addBooking"> <i class="iconfont icon-jiahao2fill"></i>新建 </div>
|
||||
<div class="nav" @click="copyBookingMore"><i class="iconfont icon-fuzhi1"></i>复制多票</div>
|
||||
<div class="nav">
|
||||
<a-dropdown>
|
||||
<span> <i class="iconfont icon-bianjiwenjian"></i>批量操作 </span>
|
||||
<template #overlay>
|
||||
<a-menu>
|
||||
<a-menu-item>
|
||||
<a @click="batchEditing()" href="javascript:;">批量编辑</a>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
<a-popconfirm
|
||||
title="确定删除当前选中订舱?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="removeMoreFun"
|
||||
>
|
||||
<div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div>
|
||||
</a-popconfirm>
|
||||
<a-modal
|
||||
title="输入复制数量"
|
||||
:visible="copyMoreFlag"
|
||||
:footer="null"
|
||||
@cancel="copyMoreFlag = false"
|
||||
>
|
||||
<a-form
|
||||
ref="RefcopyMoreForm"
|
||||
:model="copyMoreForm"
|
||||
:label-col="{ span: 5 }"
|
||||
:wrapper-col="{ span: 12 }"
|
||||
@submit="handleSubmitCopyMore"
|
||||
:style="{ padding: '10px' }"
|
||||
>
|
||||
<a-form-item
|
||||
label="数量"
|
||||
name="number"
|
||||
:rules="[{ required: true, message: '请输入数量' }]"
|
||||
>
|
||||
<a-input-number :min="1" :max="10" v-model:value="copyMoreForm.number" />
|
||||
</a-form-item>
|
||||
<a-form-item :wrapper-col="{ span: 12, offset: 5 }">
|
||||
<a-button type="primary" html-type="submit">确定</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
<BatchModification @register="registerModal" @success="BMSuccess" />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref, defineProps, reactive } from 'vue'
|
||||
import { useGo } from '/@/hooks/web/usePage'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useModal } from '/@/components/Modal'
|
||||
import { SeaExportBatchDel, SaveBookingTxxp } from '../api/BookingLedger.js'
|
||||
import BatchModification from '../modules/BatchModification.vue'
|
||||
const router = useRouter()
|
||||
const { createMessage } = useMessage()
|
||||
const go = useGo()
|
||||
const props = defineProps({
|
||||
selectRow: {
|
||||
type: Function,
|
||||
},
|
||||
reload: {
|
||||
type: Function,
|
||||
},
|
||||
})
|
||||
// 新建
|
||||
function addBooking() {
|
||||
const addNum = Math.round(Math.random() * 1000)
|
||||
go(`/BookingDetail?addNum=${addNum}`)
|
||||
}
|
||||
const copyMoreFlag = ref(false)
|
||||
const copyMoreForm = reactive({
|
||||
number: 1,
|
||||
})
|
||||
// 复制多票
|
||||
function copyBookingMore() {
|
||||
const select = props.selectRow()
|
||||
const pkIdArr = select.map((item, index) => {
|
||||
return item.id
|
||||
})
|
||||
if (pkIdArr.length === 0 || pkIdArr.length > 1) {
|
||||
createMessage.warning('请仅选择一条数据!')
|
||||
return false
|
||||
}
|
||||
copyMoreFlag.value = true
|
||||
}
|
||||
function handleSubmitCopyMore(e) {
|
||||
const select = props.selectRow()
|
||||
const pkIdArr = select.map((item) => {
|
||||
return item.id
|
||||
})
|
||||
for (let index = 0; index < copyMoreForm.number; index++) {
|
||||
setTimeout(() => {
|
||||
console.log(`/?id=${pkIdArr[0]}&isCopy=${true}©Id=${index}`)
|
||||
router.push({
|
||||
path: '/BookingDetail',
|
||||
query: { id: pkIdArr[0], isCopy: true, copyId: index },
|
||||
})
|
||||
}, 100)
|
||||
}
|
||||
copyMoreFlag.value = false
|
||||
}
|
||||
// 批量编辑 弹窗
|
||||
const [registerModal, { openModal }] = useModal()
|
||||
// 批量编辑开关
|
||||
const batchFlag = ref(false)
|
||||
// 批量编辑
|
||||
function batchEditing() {
|
||||
const select = props.selectRow()
|
||||
if (select.length === 0) {
|
||||
createMessage.warning('请选择操作订单!')
|
||||
return false
|
||||
}
|
||||
const removeArr = select.map((item) => {
|
||||
return item.id
|
||||
})
|
||||
batchFlag.value = true
|
||||
openModal(true, { removeArr, flag: true })
|
||||
}
|
||||
function BMSuccess() {
|
||||
props.reload()
|
||||
}
|
||||
// 删除
|
||||
function removeMoreFun() {
|
||||
const select = props.selectRow()
|
||||
if (select.length === 0) {
|
||||
createMessage.warning('请选择操作订单!')
|
||||
return false
|
||||
}
|
||||
const removeArr = select.map((item) => {
|
||||
return item.id
|
||||
})
|
||||
deleteBookingOrder(removeArr)
|
||||
}
|
||||
// 删除方法
|
||||
function deleteBookingOrder(arr) {
|
||||
let api = []
|
||||
arr.forEach((e, i) => {
|
||||
api.push(e)
|
||||
})
|
||||
SeaExportBatchDel({ ids: api })
|
||||
.then((res) => {
|
||||
if (res.succeeded) {
|
||||
createMessage.success('删除成功!')
|
||||
props.reload()
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
const xGrid = ref()
|
||||
const txxpForm = ref({})
|
||||
// 小票状态
|
||||
function handleSearchTxxp() {
|
||||
return
|
||||
const select = xGrid.value.getCheckboxRecords()
|
||||
if (select.length === 0) {
|
||||
createMessage.warning('请选择操作订单!')
|
||||
return false
|
||||
}
|
||||
const pkIdArr = select.map((item, index) => {
|
||||
return item.id
|
||||
})
|
||||
SaveBookingTxxp({ Id: pkIdArr[0] }).then((res) => {
|
||||
if (res.succeeded) {
|
||||
txxpForm.value = res.data
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.ds-table-action-bar {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
padding: 0 10px;
|
||||
.nav {
|
||||
display: inline-block;
|
||||
margin-right: 27px;
|
||||
cursor: pointer;
|
||||
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
letter-spacing: 1px;
|
||||
line-height: 15.84px;
|
||||
color: rgba(51, 56, 61, 1);
|
||||
text-align: left;
|
||||
|
||||
.iconfont {
|
||||
color: rgba(37, 122, 250, 1);
|
||||
margin-right: 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
&:hover {
|
||||
border: 1px solid rgba(255, 255, 255, 0);
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue