部分接口 按需
commit
ef71b2e831
@ -0,0 +1,10 @@
|
||||
// 格式表格时间
|
||||
export function formatTableData(v) {
|
||||
if (v) {
|
||||
v = v.split(' ')[0]
|
||||
if ( v.includes('1900')) v = ''
|
||||
return v
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
@ -0,0 +1,352 @@
|
||||
<!--
|
||||
* @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="copyBooking"
|
||||
><i class="iconfont icon-fuzhi"></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"
|
||||
@cancel="cancelRemove"
|
||||
>
|
||||
<div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div>
|
||||
</a-popconfirm>
|
||||
<!-- <div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div>
|
||||
|
||||
<div class="nav" @click="handleSearchTxxp">
|
||||
<a-spin :spinning="txxpLoading">
|
||||
<i class="iconfont icon-xiaopiaodayin"></i>小票状态
|
||||
</a-spin>
|
||||
</div>
|
||||
<div class="nav" @click="openTraceModel"
|
||||
><i class="iconfont icon-yunshu1"></i>运踪订阅</div
|
||||
>
|
||||
<div class="nav">
|
||||
<a-dropdown>
|
||||
<span>
|
||||
<i
|
||||
class="iconfont icon-a-wendangcaozuoxiazaishangchuanshanchuxinzengfujianyasuochakan-01"
|
||||
></i
|
||||
>船公司文件
|
||||
</span>
|
||||
<template #overlay>
|
||||
<a-menu>
|
||||
<a-menu-item>
|
||||
<a @click="handleDownByBc(1)" href="javascript:;">BC下载</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item>
|
||||
<a @click="handleDownByBc(2)" href="javascript:;">DRAFT下载</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item>
|
||||
<a @click="handleDownByBc(4)" href="javascript:;">舱位分配查询</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item>
|
||||
<a @click="handleImportBc" href="javascript:;">单票BC引入</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item>
|
||||
<a @click="handleImportBcMore" href="javascript:;">多票BC引入</a>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
<div class="nav" @click="GoExpress"><i class="iconfont icon-goods"></i>快递</div> -->
|
||||
<!-- 多票复制 -->
|
||||
<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 v-if="batchFlag" @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 } 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}`)
|
||||
}
|
||||
// 复制
|
||||
function copyBooking() {
|
||||
const select = props.selectRow()
|
||||
const pkIdArr = select.map((item, index) => {
|
||||
return item.id
|
||||
})
|
||||
if (pkIdArr.length === 0 || pkIdArr.length > 1) {
|
||||
createMessage.warning('请仅选择一条数据!')
|
||||
return false
|
||||
}
|
||||
go(`/BookingDetail?id=${pkIdArr[0]}&isCopy=${true}`)
|
||||
}
|
||||
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 })
|
||||
}
|
||||
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)
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ds-table-action-bar {
|
||||
padding: 0 10px;
|
||||
.nav {
|
||||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
cursor: pointer;
|
||||
border: 1px solid rgba(255, 255, 255, 0);
|
||||
padding: 0 10px;
|
||||
height: 28px;
|
||||
line-height: 26px;
|
||||
color: #000;
|
||||
|
||||
.iconfont {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border: 1px solid rgba(255, 255, 255, 0);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
&:nth-of-type(1) {
|
||||
.iconfont {
|
||||
color: #1d8aff;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(2) {
|
||||
.iconfont {
|
||||
color: #865ef8;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(3) {
|
||||
.iconfont {
|
||||
color: #ff9702;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(4) {
|
||||
.iconfont {
|
||||
color: #1d8aff;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(5) {
|
||||
.iconfont {
|
||||
color: #ff1062;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(6) {
|
||||
.iconfont {
|
||||
color: #1ebeca;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(7) {
|
||||
.iconfont {
|
||||
color: #82c93d;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(8) {
|
||||
.iconfont {
|
||||
color: #1d8aff;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(9) {
|
||||
.iconfont {
|
||||
color: #f6826b;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px #eee;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue