列表样式

szh-new
lijingjia 5 months ago
parent 08c1765a46
commit b5b4102b22

@ -411,10 +411,6 @@
//}
}
.ant-pagination {
margin: 10px 0 0;
}
.ant-table-footer {
padding: 0;

@ -76,13 +76,16 @@ export function useTable(tableProps?: Props): [
redoHeight: () => {
getTableInstance().redoHeight()
},
initHeight: () => {
initHeight: (h) => {
console.log(h)
const tb = document.getElementsByClassName('ds-table')
for (let i = 0; i < tb.length; i++) {
const child = document.getElementsByClassName('ant-table-body')
console.log(child)
child[0].style.minHeight = 'calc(100vh - 235px)'
child[0].style.maxHeight = 'none'
if (tb && tb.length) {
const child = tb[0].getElementsByClassName('ant-table-body')
if (child && child.length) {
// child[0].style.height = `calc(100vh - ${243 + (h || 0)}px)`
// console.log(child[0].style.height)
// child[0].style.maxHeight = 'none'
}
}
},
setSelectedRows: (rows: Recordable[]) => {

@ -106,7 +106,7 @@ export interface TableActionType {
setLoading: (loading: boolean) => void
setProps: (props: Partial<BasicTableProps>) => void
redoHeight: () => void
initHeight: () => void
initHeight: (h) => void
setSelectedRowKeys: (rowKeys: string[] | number[]) => void
getPaginationRef: () => PaginationProps | boolean
getSize: () => SizeType

@ -1,6 +1,7 @@
@import './pagination.less';
@import './input.less';
@import './btn.less';
@import './tabs.less';
.ant-image-preview-root {
img {

@ -75,6 +75,7 @@ html[data-theme='dark'] {
}
.ant-pagination-options {
padding-right: 20px;
.ant-select-selector, .ant-input-number-input-wrap {
height: 20px!important;
min-height: 20px!important;

@ -0,0 +1,7 @@
@prefix-cls: ~'@{namespace}-tabs';
.ant-tabs-tab {
font-size: 12px!important;
.ant-tabs-nav {
border-bottom: 1px solid #CED5D9;
}
}

@ -59,21 +59,21 @@
.ant-input-affix-wrapper-sm,
.ant-select-selector,
.ant-input-number {
height: 28px !important;
height: 26px !important;
.ant-select-selection-item {
line-height: 26px !important;
}
}
.ant-picker-small {
height: 28px;
height: 26px;
width: 100%;
}
.ant-input-number-input-wrap {
height: 28px;
line-height: 26px;
height: 26px;
line-height: 24px;
}
.ant-form-item-label > label {
height: 20px !important;
.ant-form-item-label {
height: 22px;
}
}
@ -168,6 +168,11 @@
padding: 5px 10px!important;
}
}
.ant-table-thead {
th {
padding: 10px 7px!important;
}
}
.ant-table-container {
padding: 0 0 0 20px;
.ant-table-header {
@ -181,6 +186,9 @@
}
}
}
.ant-table-column-sorters {
}
}
.ant-table-tbody {
.ant-table-row {
@ -194,7 +202,7 @@
}
}
.ant-pagination {
margin: 0!important;
margin: 2px 0 3px!important;
font-size: 12px;
}
}
@ -215,7 +223,7 @@
.ant-input-affix-wrapper-placeholder {
line-height: 26px !important;
}
.ant-select-selection-search-input, .ant-input-affix-wrapper, .ant-form-item-control-input {
.ant-select-selection-search-input, .ant-input-affix-wrapper {
height: 26px!important;
font-size: 12px!important;
}

@ -29,8 +29,8 @@ h4 {
}
h5 {
font-size: 12px;
color: #8c8c8c;
margin-bottom: 8px;
color: #33383D;
font-weight: 400;
}
.ml10 {
@ -116,7 +116,7 @@ h5 {
}
.ds-detail-box {
margin: 10px;
margin: 0 0 0 20px;
}
.flex {

@ -2134,34 +2134,32 @@
</style>
<style lang="less">
.sea-export-detail {
.ant-tabs-nav-wrap {
background: #ffffff;
}
.right-content {
width: 340px;
margin-left: 10px;
}
.ant-tabs-nav {
margin: 0;
}
.main-tab > .ant-tabs-nav > .ant-tabs-nav-wrap {
padding-left: 15px;
}
.right-flag {
position: absolute;
right: 20px;
z-index: 1;
font-size: 12px;
top: 18px;
color: #1677ff;
}
.slide-enter-active,
.slide-leave-active {
transition: width 0.1s;
}
.slide-enter,
.slide-leave-to {
width: 0;
}
// .ant-tabs-nav-wrap {
// background: #ffffff;
// }
// .right-content {
// width: 340px;
// margin-left: 10px;
// }
// .ant-tabs-nav {
// margin: 0;
// }
// .right-flag {
// position: absolute;
// right: 20px;
// z-index: 1;
// font-size: 12px;
// top: 18px;
// color: #1677ff;
// }
// .slide-enter-active,
// .slide-leave-active {
// transition: width 0.1s;
// }
// .slide-enter,
// .slide-leave-to {
// width: 0;
// }
}
</style>

@ -1,6 +1,26 @@
<template>
<div class="operation-area">
<a-card
<a-button type="link" @click="openModel('bookingSpace')">
<span class="iconfont icon-gongdanqueren"></span>
订舱
</a-button>
<a-button type="link" @click="openModel('cutOff')">
<span class="iconfont icon-lanjie"></span>
截单
</a-button>
<a-button type="link" @click="openModel('trace')">
<span class="iconfont icon-dingwei"></span>
运踪
</a-button>
<a-button type="link" @click="openPreOrderFun">
<span class="iconfont icon-chuanfanguanli-chuanfanshenqing"></span>
舱单
</a-button>
<a-button type="link" @click="openModel('paper')">
<span class="iconfont icon-touzijilu"></span>
下货纸
</a-button>
<!-- <a-card
:bordered="false"
:bodyStyle="{
'padding-top': ' 6px',
@ -53,7 +73,7 @@
</a-popconfirm>
<button @click="openModel('trace')">
<span class="iconfont icon-yunshu1" style="font-size: 14px"></span> 运踪
</button>
</button> -->
<!-- <a-popconfirm
title="您当前未选择服务项目,是否继续操作?"
:visible="visible"
@ -62,15 +82,15 @@
@visibleChange="handleVisibleChange"
@confirm="openPreOrderFun"
> -->
<button @click="openPreOrderFun">
<!-- <button @click="openPreOrderFun">
<span class="iconfont icon-yunshu1" style="font-size: 14px"></span> 舱单
</button>
</button> -->
<!-- </a-popconfirm> -->
<button @click="openModel('paper')">
<!-- <button @click="openModel('paper')">
<span class="iconfont icon-zhizhishu" style="font-size: 14px"></span>下货纸
</button>
</div>
<div class="btn-list more-view-2">
</button> -->
<!-- </div>
<div class="btn-list more-view-2"> -->
<!-- <button @click="FnLetterChange">
<span class="iconfont icon-dayinxiaopiao"></span>变更通知
</button>
@ -79,7 +99,7 @@
<span class="iconfont icon-dayinxiaopiao"></span>电放保函
</button>
<LSDetails :letterId="details.id" @register="LSregisterModal" /> -->
<button @click="FnOpBusinessYard">
<!-- <button @click="FnOpBusinessYard">
<span class="iconfont icon-dayinxiaopiao"></span>场站入货
</button>
<OYDetails :businessId="details.id" @register="OYregisterModal" />
@ -88,7 +108,7 @@
</button>
<OTDetails :businessId="details.id" @register="OTregisterModal" />
</div>
<div class="btn-list single-view-1" :style="{ width: '110px' }">
<div class="btn-list single-view-1" :style="{ width: '110px' }"> -->
<!-- <button @click="openModel('initCabin')">
<span class="iconfont icon-chuanfanguanli-chuanfanshenqing"></span>放舱
</button> -->
@ -98,7 +118,7 @@
<!-- <button @click="openModel('vgmlink')">
<span class="iconfont icon-lianjie"></span>VGM链接
</button> -->
<button @click="FnTxxpLink">
<!-- <button @click="FnTxxpLink">
<span class="iconfont icon-dayinxiaopiao"></span>提箱小票
</button>
</div>
@ -110,21 +130,21 @@
:customRequest="uploadFile"
>
<button @click="ShowOCR"><span class="iconfont icon-OCR"></span>OCR</button>
</a-upload>
</a-upload> -->
<!-- <button v-if="cabinShow && appStore.slotShow" @click="openModel('cabinSpace')">
引入舱位
</button>
<button v-if="!cabinShow && appStore.slotShow" @click="handleCancelCabin">
<a-spin :spinning="cabinLoad">取消舱位</a-spin>
</button> -->
</div>
<!-- </div>
<div class="btn-list single-view-1" :style="{ width: '110px' }">
<a-spin :spinning="telxLoad">
<button @click="handleSubmitTelex">
<span class="iconfont icon-dengjizongshu"></span>船司电放
</button>
</a-spin>
</div>
</div> -->
<!-- <div class="btn-list single-view-1" :style="{ width: '110px' }">
<a-popconfirm
title="确定删除当前订舱?"
@ -154,8 +174,7 @@
<span class="iconfont icon-xia" :style="{ fontSize: '17px' }"></span>下一票
</button>
</div> -->
<div class="btn-list single-view-1" :class="{ inLoad: props.inChildLoading || !changeFlag }">
<!-- <div class="nav"> -->
<!-- <div class="btn-list single-view-1" :class="{ inLoad: props.inChildLoading || !changeFlag }">
<a-dropdown>
<span>
<i class="iconfont icon-bianjiwenjian" :style="{ fontSize: '14px' }"></i> 存默认
@ -179,7 +198,7 @@
<div>提单号:{{ props.details.mblno }}</div>
<div>委托单位:{{ props.details.customername }}</div>
</div>
</a-card>
</a-card> -->
<!-- 弹窗部分 start -->
<a-modal
:title="emnuHeader(modelType)"
@ -1860,65 +1879,4 @@
</script>
<style lang="less" scoped>
@import url('../style/operationArea.less');
// .voltaForm {
// /deep/ .ant-form-item {
// margin-bottom: 4px;
// }
// .bottom {
// display: flex;
// textarea {
// line-height: 22px;
// }
// .line-count {
// width: 24px;
// padding-top: 3px;
// height: 100%;
// overflow: auto;
// &::-webkit-scrollbar {
// display: none;
// }
// // max-height: 192px;
// // overflow-y: auto;
// div {
// text-align: right;
// height: 22px;
// line-height: 22px;
// font-size: 12px;
// color: #999;
// }
// }
// }
// }
// .tear-list {
// display: flex;
// flex-wrap: wrap;
// margin: 15px 0;
// .item {
// margin-right: 20px;
// margin-bottom: 10px;
// display: flex;
// align-items: flex-start;
// .item-left {
// background: #f59a23;
// color: white;
// text-align: center;
// // height: 31px;
// // line-height: 31px;
// display: inline-block;
// padding: 0 5px;
// }
// }
// }
// /deep/ .ant-input-number-handler-wrap {
// opacity: 1;
// }
</style>

@ -1,417 +0,0 @@
.vgm-info {
padding-top: 0px;
.ant-form-item {
margin-bottom: 0px;
}
}
.OCRBox {
/deep/.ant-drawer-body {
position: relative;
padding: 0 !important;
}
}
.CvBox {
position: absolute;
width: 100px;
border: 1px solid #f0f0f0;
box-shadow: 0 1px 2px -2px #00000029, 0 3px 6px #0000001f, 0 5px 12px 4px #00000017;
padding: 0;
background: #ffffff;
li {
width: 100%;
text-align: center;
list-style-type: none;
padding: 3px 0;
&:hover {
background: #f0f0f0;
}
}
}
.CV {
// width: 100%;
// height: auto;
// background-repeat: no-repeat;
}
// @import url('../index.less');
.operation-area {
width: 100%;
text-align: left;
.btn-list {
padding: 0 0 0 10px;
box-sizing: border-box;
display: inline-block;
vertical-align: top;
text-align: left;
height: 48px;
margin-bottom: 6px;
position: relative;
background: #fff;
&::before {
content: '';
position: absolute;
top: 10px;
right: 0;
width: 1px;
height: 28px;
margin-right: 5px;
background: #ccc;
}
&:nth-last-of-type(1) {
&::before {
display: none;
}
}
button {
border: none;
font-size: 14px;
color: #666;
cursor: pointer;
color: #262626;
background: #fff;
.iconfont {
font-size: 14px;
font-weight: 400;
}
}
}
.more-view {
width: 140px;
.iconfont {
color: #2095f2;
}
}
.more-view-1 {
width: 205px;
.iconfont {
color: #26b578;
}
}
.more-view-2 {
width: 205px;
.iconfont {
color: #ff9702;
}
}
.more-view-3 {
width: 160px;
.iconfont {
color: #f36f48;
}
}
.single-view {
width: 80px;
.iconfont {
color: #fcd017;
}
}
.single-view-1 {
width: 100px;
.iconfont {
color: #3455b6;
}
button:hover {
color: @primary-color;
}
&.inLoad button {
cursor: not-allowed !important;
}
&.inLoad button:hover {
color: #262626 !important;
}
}
.single-view-4 {
width: 85px;
// padding-top: 10px;
.iconfont {
color: #1e7ece;
}
}
}
.box-flex {
display: flex;
padding-top: 8px;
.box-input {
flex: 1;
text-align: left;
}
span {
display: inline-block;
width: 25px;
text-align: right;
height: 100%;
// height: 32px;
// line-height: 32px;
font-size: 13px;
cursor: pointer;
> textarea {
background: #f6fdfd !important;
}
i {
color: @primary-color;
}
}
}
// .item-box {
// margin-bottom: 20px;
// padding-bottom: 20px;
// padding-top: 20px;
// overflow: hidden;
// border-bottom: 1px dashed #ccc;
// &:nth-last-of-type(1) {
// border: none;
// margin-bottom: 0;
// }
// }
.cabin-box {
.ant-row {
margin-bottom: 10px;
}
}
.book-model-box {
position: relative;
padding-left: 50px;
.book-check {
position: absolute;
width: 50px;
height: 40px;
line-height: 40px;
top: 0;
left: 17px;
}
}
.pdf-view {
height: 400px;
}
.no-pdf {
text-align: center;
margin: 20px 0;
}
.Citems {
display: flex;
align-items: center;
justify-content: center;
}
.PrintMain {
display: flex;
flex-wrap: wrap;
.PrintTitle {
width: 100%;
display: flex;
padding: 20px;
box-sizing: border-box;
background: #f7f8fe;
border: 1px dashed #cdcdcd;
p {
margin: 0;
&:nth-child(2) {
margin-left: 35px;
}
span {
color: #ff6646;
}
}
}
.PrintMainBox {
width: 100%;
max-height: 50vh;
overflow-y: auto;
margin-top: 5px;
.items {
padding-left: 1rem;
height: 2.5rem;
line-height: 2.5rem;
border-bottom: 1px solid #ebebeb;
cursor: pointer;
&:hover {
color: #2f54eb;
}
span {
font-weight: bolder;
margin-right: 0.6rem;
}
}
}
}
/*订舱弹窗文件功能对齐 */
/deep/ .ant-form-file {
.ant-form-item-label {
margin-top: -5px;
margin-right: 12px;
}
}
/*弹窗按钮颜色修改 */
/deep/ .ant-modal-footer .ant-btn.ant-btn-primary span {
color: #fff;
}
/*弹窗文本框背景颜色修改 */
/deep/ .ant-modal-body .ant-input-affix-wrapper {
position: relative;
z-index: 1;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
// height: 24px;
z-index: -1;
// background-color: @primary-color !important;
opacity: 0.04;
display: block;
}
}
.cabin-box {
/deep/ .ant-modal-body .ant-input-affix-wrapper {
position: relative;
z-index: 1;
&::after {
content: '';
position: absolute;
top: 4px;
left: 0;
width: 100%;
// height: 100%;
height: 24px;
z-index: -1;
// background-color: @primary-color !important;
opacity: 0.04;
}
}
}
.initCabin-box {
/deep/ .ant-select-selection {
position: relative;
z-index: 1;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
// background-color: @primary-color !important;
opacity: 0.04;
}
}
}
/deep/ .ant-calendar-picker {
position: relative;
z-index: 1;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
// background-color: @primary-color !important;
opacity: 0.04;
}
}
/deep/ .ant-input-affix-wrapper,
.ant-input-affix-wrapper-textarea-with-clear-btn {
position: relative;
z-index: 1;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
// background-color: @primary-color !important;
opacity: 0.04;
}
}
.remark-input {
position: relative;
z-index: 1;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
// background-color: @primary-color !important;
opacity: 0.04;
}
}
/deep/ .ant-modal-body .ant-input {
background: none;
}
.PrintRadio {
width: 100%;
padding-left: 1rem;
margin-bottom: 0.8rem;
}
.PrintMain {
display: flex;
flex-wrap: wrap;
padding: 12px 24px;
.PrintTitle {
width: 100%;
display: flex;
padding: 20px;
box-sizing: border-box;
background: #f7f8fe;
border: 1px dashed #cdcdcd;
p {
margin: 0;
&:nth-child(2) {
margin-left: 35px;
}
span {
color: #ff6646;
}
}
}
.PrintMainBox {
width: 100%;
max-height: 50vh;
overflow-y: auto;
margin-top: 5px;
.items {
padding-left: 1rem;
height: 2.5rem;
line-height: 2.5rem;
border-bottom: 1px solid #ebebeb;
cursor: pointer;
&:hover {
color: #2f54eb;
}
span {
font-weight: bolder;
margin-right: 0.6rem;
}
}
}
}
.trace-box {
padding: 20px 0;
}
.trace-check {
margin-left: 10px;
}
.model-btn-list {
margin-bottom: 15px;
.btn {
margin-right: 6px;
&.ant-btn-primary {
color: #fff;
}
}
}
button {
margin-right: 15px;
}

@ -75,6 +75,16 @@
</template>
</template>
</BasicTable>
<!-- 合计 -->
<div>
<h5 style="position: absolute; bottom: 70px; left: 22px;">合计</h5>
<a-table
class="ds-table"
:columns="calcColumns"
:data-source="calcData"
:pagination="false"
></a-table>
</div>
<!-- 多提单号查询 -->
<a-modal
title="多提单号查询"
@ -207,14 +217,97 @@
const router = useRouter()
const { notification } = useMessage()
const go = useGo()
//
const calcColumns = [
{
title: '主票数',
dataIndex: 'mainCount',
width: 110
},
{
title: '分票数',
dataIndex: 'partCount',
width: 110
},
{
title: '退仓数',
dataIndex: 'returnCount',
width: 110
},
{
title: '箱TEU',
dataIndex: 'teu',
width: 110
},
{
title: '件数',
dataIndex: 'pkgs',
width: 110
},
{
title: '毛重',
dataIndex: 'kgs',
width: 110
},
{
title: '20GP',
dataIndex: 'cntr1',
width: 110
},
{
title: '40GP',
dataIndex: 'cntr2',
width: 110
},{
title: '40HC',
dataIndex: 'cntr3',
width: 110
},{
title: '20OT',
dataIndex: 'cntr4',
width: 110
},{
title: '40OT',
dataIndex: 'cntr5',
width: 110
},{
title: '20FR',
dataIndex: 'cntr6',
width: 110
},{
title: '40FR',
dataIndex: 'cntr7',
width: 110
},{
title: '20RF',
dataIndex: 'cntr8',
width: 110
},{
title: '40RF',
dataIndex: 'cntr9',
width: 110
},{
title: '40HQ',
dataIndex: 'cntr10',
width: 110
},{
title: '其他箱型',
dataIndex: 'otherCntr',
width: 120
},
]
//
const calcData = ref([])
//
const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows }] = useTable({
title: '',
api: async (p) => {
const res: API.DataResult = await PageDataByBooking(p)
console.log(res.data?.dataTotal)
calcData.value = [res.data?.dataTotal]
return new Promise((resolve) => {
res.data.forEach(item => {
res.data?.list.forEach(item => {
item.stlDate = formatTableData(item.stlDate)
item.etd = formatTableData(item.etd)
item.closingDate = formatTableData(item.closingDate)
@ -223,7 +316,7 @@
item.customDate = formatTableData(item.customDate)
item.inspectionDate = formatTableData(item.inspectionDate)
})
resolve({ data: [...res.data], total: res.count })
resolve({ data: [...res.data.list], total: res.data.totalCount })
// 使
optionsStore.getOptionsByCode('GetVesselSelectList')
optionsStore.getOptionsByCode('GetClientStlModeSelectList')

Loading…
Cancel
Save