feat: update

main
sankeyangshu 2024-11-30 20:41:01 +08:00
parent 22e100136b
commit b723a0839c
19 changed files with 286 additions and 112 deletions

View File

@ -21,7 +21,7 @@
<script lang="ts" setup>
import { computed, onMounted, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { getAdImageAPI } from '@/api/ApiManage';
// import { getAdImageAPI } from '@/api/ApiManage';
//
const route = useRoute();
@ -76,13 +76,13 @@ const onClickMenu = (item: menuListType) => {
};
// 广
const getAdImage = async () => {
const { data } = await getAdImageAPI();
console.log(data);
};
// const getAdImage = async () => {
// const { data } = await getAdImageAPI();
// console.log(data);
// };
onMounted(async () => {
await getAdImage();
// await getAdImage();
});
</script>

View File

@ -18,7 +18,7 @@
</div>
<!-- 表格 -->
<div class="footer-table">
<el-table v-loading="tableLoading" :data="tableState.tableData" border max-height="180">
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="180">
<el-table-column prop="name" label="接口名称" align="center" width="180" />
<el-table-column prop="remark" label="功能描述" align="center" />
<el-table-column prop="operator" label="操作" width="200px" align="center" fixed="right">

View File

@ -4,7 +4,7 @@
<div class="footer">
<!-- 表格 -->
<div class="footer-table">
<el-table v-loading="tableLoading" :data="tableState.tableData" border max-height="100%">
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="100%">
<el-table-column prop="enterprise.name" label="企业" align="center" width="150" />
<el-table-column prop="ship.name" label="船舶" align="center" width="150" />
<el-table-column prop="voyage" label="航次" align="center" width="180" />

View File

@ -13,8 +13,7 @@
<el-table
v-loading="tableLoading"
:data="tableData"
border
max-height="100%"
max-height="400px"
v-el-table-infinite-scroll="tableDataLoad"
:infinite-scroll-disabled="disabled"
>
@ -153,7 +152,6 @@ const tableDataLoad = async () => {
.footer-table {
position: relative;
flex: 1;
overflow: auto;
}
.footer-pagination {
display: flex;

View File

@ -10,7 +10,7 @@
<div class="footer">
<!-- 表格 -->
<div class="footer-table">
<el-table v-loading="tableLoading" :data="tableState.tableData" border max-height="100%">
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="100%">
<el-table-column prop="enterprise.name" label="企业" align="center" width="150" />
<el-table-column prop="ship.name" label="船舶" align="center" width="150" />
<el-table-column prop="voyage" label="航次" align="center" width="180" />

View File

@ -21,7 +21,7 @@ defineProps({
<style lang="scss" scoped>
.chart {
width: 300px;
width: 280px;
height: 200px;
}
</style>

View File

@ -29,32 +29,22 @@
<Card title="本港年度货物" :number="tableData.yearPortCargos"></Card>
</div>
<div class="home-content">
<el-row :gutter="32">
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
<div class="charts">
<HomeChart :option="outImportVoyages" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
<HomeChart :option="outExportVoyages" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
<HomeChart :option="inTotalVoyages" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
<HomeChart :option="inYearVoyages" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
<HomeChart :option="outImportCargos" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
</div>
<div class="charts">
<HomeChart :option="outExportVoyages" />
<HomeChart :option="outExportCargos" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
</div>
<div class="charts">
<HomeChart :option="inTotalVoyages" />
<HomeChart :option="inTotalCargos" />
</el-col>
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="4" class="charts">
</div>
<div class="charts">
<HomeChart :option="inYearVoyages" />
<HomeChart :option="inYearCargos" />
</el-col>
</el-row>
</div>
</div>
<div class="home-footer">
<div class="notice">最新公告{{ noticeData?.title }}</div>
@ -495,10 +485,12 @@ onMounted(async () => {
<style lang="scss" scoped>
.home {
position: relative;
box-sizing: border-box;
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
padding: 40px;
.home-search {
display: flex;
align-items: center;
@ -550,11 +542,13 @@ onMounted(async () => {
width: 100%;
}
.home-content {
display: flex;
flex: 1;
width: 100%;
align-items: center;
justify-content: center;
.charts {
width: 100%;
margin-bottom: 20px;
display: flex;
flex-direction: column;
}
}
.home-footer {

View File

@ -21,7 +21,6 @@
<el-table
v-loading="tableLoading"
:data="tableState.tableData"
border
style="width: 100%; height: 100%"
>
<el-table-column prop="manifest.name" label="舱单" align="center" width="150" />

View File

@ -25,7 +25,6 @@
<el-table
v-loading="tableLoading"
:data="tableState.tableData"
border
style="width: 100%; height: 100%"
>
<el-table-column prop="schedule.name" label="船期" align="center" width="120" />

View File

@ -125,7 +125,7 @@ const onClickOpenDialog = async (row: NoticeType) => {
height: calc(100% - 100px);
.list-wrap {
box-sizing: border-box;
width: 320px;
width: 420px;
height: 500px;
overflow: auto;
.list-item {
@ -158,7 +158,7 @@ const onClickOpenDialog = async (row: NoticeType) => {
.content {
position: relative;
box-sizing: border-box;
flex: 1;
width: 700px;
height: 100%;
margin-left: 100px;
font-size: 21px;

View File

@ -125,11 +125,11 @@
</el-form-item>
<div class="footer">
<div>
<el-button type="info" @click="onClickDownload"></el-button>
<el-button type="success" @click="onClickUpload"></el-button>
<div class="footer-left">
<div class="btn-down btn" @click="onClickDownload"></div>
<div class="btn-import btn" @click="onClickUpload"></div>
</div>
<el-button type="primary" @click="onClickConfirm(ruleFormRef)"></el-button>
<div class="btn-red btn" @click="onClickConfirm(ruleFormRef)"></div>
</div>
</el-form>
@ -288,12 +288,56 @@ const onClickConfirm = (formEl: FormInstance | undefined) => {
height: 100%;
overflow-y: auto;
.footer {
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 47px;
margin: 20px 0;
padding: 20px;
.footer-left {
display: flex;
.btn-down {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
margin-right: 20px;
font-size: 21px;
color: #fff;
background-color: rgb(127 127 127 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn-import {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(0 128 128 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 34.9%);
}
}
.btn-red {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(163 0 20 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn:hover {
background: rgb(0 191 191 / 100%);
box-shadow: 0 3px 5px rgb(0 0 0 / 19.2%);
}
}
}
</style>

View File

@ -65,13 +65,13 @@
</el-form-item>
<div class="footer">
<div>
<el-button type="info" @click="onClickDownload"></el-button>
<el-button type="success" @click="onClickUpload"></el-button>
<div class="footer-left">
<div class="btn btn-down" @click="onClickDownload"></div>
<div class="btn btn-import" @click="onClickUpload"></div>
</div>
<div>
<el-button type="primary" @click="onClickAddSubmit(ruleFormRef)"></el-button>
<el-button type="primary" @click="onClickConfirm(ruleFormRef)"></el-button>
<div class="footer-left">
<div class="btn btn-blue" @click="onClickAddSubmit(ruleFormRef)"></div>
<div class="btn btn-red" @click="onClickConfirm(ruleFormRef)"></div>
</div>
</div>
</el-form>
@ -228,12 +228,69 @@ const onClickConfirm = (formEl: FormInstance | undefined) => {
height: 100%;
overflow-y: auto;
.footer {
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 47px;
margin: 20px 0;
padding: 20px;
.footer-left {
display: flex;
.btn-down {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
margin-right: 20px;
font-size: 21px;
color: #fff;
background-color: rgb(127 127 127 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn-import {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(0 128 128 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 34.9%);
}
.btn-blue {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
margin-right: 20px;
font-size: 21px;
color: #fff;
background-color: rgb(2 125 180 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn-red {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(163 0 20 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn:hover {
background: rgb(0 191 191 / 100%);
box-shadow: 0 3px 5px rgb(0 0 0 / 19.2%);
}
}
}
}
</style>

View File

@ -92,13 +92,13 @@
</el-form-item>
<div class="footer">
<div>
<el-button type="info" @click="onClickDownload"></el-button>
<el-button type="success" @click="onClickUpload"></el-button>
<div class="footer-left">
<div class="btn btn-down" @click="onClickDownload"></div>
<div class="btn btn-import" @click="onClickUpload"></div>
</div>
<div>
<el-button type="primary" @click="onClickAddSubmit(ruleFormRef)"></el-button>
<el-button type="primary" @click="onClickConfirm(ruleFormRef)"></el-button>
<div class="footer-left">
<div class="btn btn-blue" @click="onClickAddSubmit(ruleFormRef)"></div>
<div class="btn btn-red" @click="onClickConfirm(ruleFormRef)"></div>
</div>
</div>
</el-form>
@ -266,12 +266,69 @@ const onClickConfirm = (formEl: FormInstance | undefined) => {
height: 100%;
overflow-y: auto;
.footer {
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 47px;
margin: 20px 0;
padding: 20px;
.footer-left {
display: flex;
.btn-down {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
margin-right: 20px;
font-size: 21px;
color: #fff;
background-color: rgb(127 127 127 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn-import {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(0 128 128 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 34.9%);
}
.btn-blue {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
margin-right: 20px;
font-size: 21px;
color: #fff;
background-color: rgb(2 125 180 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn-red {
display: flex;
align-items: center;
justify-content: center;
width: 160px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(163 0 20 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
}
.btn:hover {
background: rgb(0 191 191 / 100%);
box-shadow: 0 3px 5px rgb(0 0 0 / 19.2%);
}
}
}
}
</style>

View File

@ -1,10 +1,12 @@
<template>
<div class="send">
<el-steps class="header" :active="currentActive" finish-status="success">
<div class="header">
<el-steps class="header-steps" :active="currentActive" finish-status="success">
<el-step title="发布船期信息" />
<el-step title="发布舱单信息" />
<el-step title="提交舱单明细" />
</el-steps>
</div>
<div class="content">
<div class="content-left">
<div class="left-icon">{{ currentActive }}</div>
@ -38,8 +40,8 @@ import BoatInfoSend from './BoatInfoSend.vue';
import ManifestDetailSend from './ManifestDetailSend.vue';
import ManifestSend from './ManifestSend.vue';
//
const currentActive = ref(1);
// TODO:
const currentActive = ref(2);
const currentTitle = ref(['发布船期信息', '发布舱单信息', '提交舱单明细']);
interface manifestPropsType {
@ -74,8 +76,14 @@ const onUpdateManifest = (params: manifestDetailPropsType) => {
width: 100%;
height: 100%;
.header {
display: flex;
justify-content: center;
width: 100%;
height: 70px;
.header-steps {
width: 700px;
height: 100%;
}
}
.content {
box-sizing: border-box;

View File

@ -3,16 +3,10 @@
<div class="footer">
<div class="footer-util">
<div class="title">我最近发布的信息</div>
<el-button type="primary" icon="Plus" @click="onClickSendInfo"> </el-button>
</div>
<!-- 表格 -->
<div class="footer-table">
<el-table
v-loading="tableLoading"
:data="tableState.tableData"
border
style="width: 100%; height: 100%"
>
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="100%">
<el-table-column prop="enterprise.name" label="企业" align="center" width="150" />
<el-table-column prop="ship.name" label="船舶" align="center" width="150" />
<el-table-column prop="voyage" label="航次" align="center" width="180" />
@ -62,11 +56,10 @@
</div>
<!-- 分页 -->
<div class="footer-pagination">
<Pagination
:pageAble="tableState.pageAble"
:handle-size-change="handleSizeChange"
:handle-current-change="handleCurrentChange"
/>
<div class="btn-add" @click="onClickSendInfo">
<svg-icon icon="Add" className="icon"></svg-icon>
新增发布
</div>
</div>
</div>
</div>
@ -76,7 +69,6 @@
import dayjs from 'dayjs';
import { onMounted, ref } from 'vue';
import { getSailScheduleGetAPI, getSailSchedulePageAPI } from '@/api/Boat/info';
import Pagination from '@/components/Pagination/Pagination.vue';
import { useTable } from '@/hooks/useTable';
import { PageRowsResult } from '@/types';
import { BoatInfoType } from '@/types/boatInfo';
@ -91,7 +83,7 @@ const handleTableData = (data: PageRowsResult<BoatInfoType>) => {
};
//
const { getTableList, tableState, tableChangeCurrent, tableChangeSize } = useTable({
const { getTableList, tableState } = useTable({
api: getSailSchedulePageAPI,
dataCallBack: handleTableData,
});
@ -115,16 +107,6 @@ const onClickOpenDetail = async (row: BoatInfoType) => {
const { data } = await getSailScheduleGetAPI({ id: row.id });
console.log('🚀 ~ file: BoatTable.vue:146 ~ onClickOpenDetail ~ data:', data);
};
//
const handleSizeChange = async (val: number) => {
await tableChangeSize(val);
};
//
const handleCurrentChange = async (val: number) => {
await tableChangeCurrent(val);
};
</script>
<style lang="scss" scoped>
@ -166,10 +148,31 @@ const handleCurrentChange = async (val: number) => {
.footer-pagination {
box-sizing: border-box;
display: flex;
flex-shrink: 0;
justify-content: flex-end;
justify-content: center;
width: 100%;
padding-top: 20px;
margin-top: 40px;
.btn-add {
display: flex;
align-items: center;
justify-content: center;
width: 200px;
height: 60px;
font-size: 21px;
color: #fff;
background-color: rgb(163 0 20 / 100%);
border-radius: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 85.1%);
.icon {
width: 32px;
height: 32px;
margin-right: 10px;
color: #80fffe;
}
}
.btn-add:hover {
background: rgb(0 191 191 / 100%);
box-shadow: 0 3px 5px rgb(0 0 0 / 19.2%);
}
}
}
}

View File

@ -1,7 +1,9 @@
<template>
<div class="table">
<div class="header">
<svg-icon icon="return" className="side-icon" @click="onClickReturn"></svg-icon>
<div class="title">发布船货信息</div>
<div></div>
</div>
<div class="content">
@ -13,9 +15,17 @@
<script lang="ts" setup>
import { ref } from 'vue';
import { useRouter } from 'vue-router';
import Send from './components/Send.vue';
import SendTable from './components/SendTable.vue';
const router = useRouter();
//
const onClickReturn = () => {
router.back();
};
//
const currentSubscribeNav = ref('船货信息');
@ -38,10 +48,17 @@ const onClickSendInfo = () => {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
justify-content: space-between;
padding: 16px 16px 0;
margin-bottom: 15px;
color: #fff;
.side-icon {
width: 36px;
height: 32px;
font-weight: 400;
line-height: normal;
color: #b4b4b4;
}
.title {
font-size: 28px;
font-weight: 700;

View File

@ -3,7 +3,7 @@
<div class="footer">
<!-- 表格 -->
<div class="footer-table">
<el-table v-loading="tableLoading" :data="tableState.tableData" border max-height="460">
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="460">
<el-table-column prop="name" label="姓名" align="center" width="180" />
<el-table-column prop="dept" label="部门" align="center" width="180" />
<el-table-column prop="job" label="职位" align="center" width="180" />

View File

@ -6,7 +6,7 @@
<div class="footer">
<!-- 表格 -->
<div class="footer-table">
<el-table v-loading="tableLoading" :data="tableState.tableData" border max-height="100%">
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="100%">
<el-table-column prop="enterprise.name" label="订阅企业" align="center" width="150" />
<el-table-column prop="port.name" label="订阅港口" align="center" width="150" />
<el-table-column prop="wharf.name" label="订阅码头" align="center" width="150" />
@ -273,6 +273,10 @@ const onClickDel = (row: SubscriptionType) => {
color: #80fffe;
}
}
.btn-add:hover {
background: rgb(0 191 191 / 100%);
box-shadow: 0 3px 5px rgb(0 0 0 / 19.2%);
}
}
}
}

View File

@ -6,13 +6,7 @@
<div class="footer">
<!-- 表格 -->
<div class="footer-table">
<el-table
v-loading="tableLoading"
:data="tableState.tableData"
border
stripe
max-height="100%"
>
<el-table v-loading="tableLoading" :data="tableState.tableData" max-height="100%">
<el-table-column prop="enterprise.name" label="订阅企业" align="center" width="150" />
<el-table-column prop="port.name" label="订阅港口" align="center" width="150" />
<el-table-column prop="wharf.name" label="订阅码头" align="center" width="150" />