diff --git a/index.html b/index.html
index d244ea91..4755bf2c 100644
--- a/index.html
+++ b/index.html
@@ -10,7 +10,7 @@
/>
<%= title %>
-
+
+
+
\ No newline at end of file
diff --git a/src/components/CostEntry/mainInfo.vue b/src/components/CostEntry/mainInfo.vue
index 1c6f1c70..cab0de1e 100644
--- a/src/components/CostEntry/mainInfo.vue
+++ b/src/components/CostEntry/mainInfo.vue
@@ -65,6 +65,8 @@
\ No newline at end of file
diff --git a/src/components/Table/src/BasicTable.vue b/src/components/Table/src/BasicTable.vue
index 0028527a..e90dba36 100644
--- a/src/components/Table/src/BasicTable.vue
+++ b/src/components/Table/src/BasicTable.vue
@@ -24,6 +24,7 @@
v-bind="getBindValues"
:row-class-name="getRowClassName"
@change="handleTableChange"
+ @resize-column="resizeColumn"
>
@@ -326,7 +327,9 @@
expose(tableAction)
emit('register', tableAction, formActions)
-
+ const resizeColumn = (w, col) => {
+ setCacheColumnsByField(col.dataIndex, { width: w })
+ }
return {
formRef,
tableElRef,
@@ -346,6 +349,7 @@
getFormSlotKeys,
getWrapperClass,
columns: getViewColumns,
+ resizeColumn
}
},
})
diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts
index b9a58fe1..a3429131 100644
--- a/src/components/Table/src/hooks/useColumns.ts
+++ b/src/components/Table/src/hooks/useColumns.ts
@@ -119,7 +119,7 @@ export function useColumns(
columns.forEach((item) => {
const { customRender, slots } = item
-
+ item['resizable'] = true
handleItem(
item,
Reflect.has(item, 'ellipsis') ? !!item.ellipsis : !!ellipsis && !customRender && !slots,
@@ -193,7 +193,8 @@ export function useColumns(
if (!dataIndex || !value) {
return
}
- cacheColumns.forEach((item) => {
+ // cacheColumns.forEach((item) => {
+ columnsRef.value.forEach((item) => {
if (item.dataIndex === dataIndex) {
Object.assign(item, value)
return
diff --git a/src/components/importExcel/index.vue b/src/components/importExcel/index.vue
new file mode 100644
index 00000000..dd1e62d7
--- /dev/null
+++ b/src/components/importExcel/index.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+ 引入excel数据
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/registerGlobComp.ts b/src/components/registerGlobComp.ts
index 1c07b514..19b16f23 100644
--- a/src/components/registerGlobComp.ts
+++ b/src/components/registerGlobComp.ts
@@ -4,6 +4,7 @@ import { Button } from './Button'
import VXETable from 'vxe-table'
import ConfigForm from './ConfigForm/index.vue'
import ActionBar from './ActionBar/index.vue'
+import ImportExcel from './importExcel/index.vue'
import 'vxe-table/lib/style.css'
import {
// Need
@@ -56,7 +57,7 @@ import {
Timeline
} from 'ant-design-vue'
-const compList = [AntButton.Group, Icon, ConfigForm, ActionBar]
+const compList = [AntButton.Group, Icon, ConfigForm, ActionBar, ImportExcel]
export function registerGlobComp(app: App) {
compList.forEach((comp) => {
diff --git a/src/design/ant/form.less b/src/design/ant/form.less
new file mode 100644
index 00000000..9e6be4fc
--- /dev/null
+++ b/src/design/ant/form.less
@@ -0,0 +1,5 @@
+.ant-form-item-label {
+ >label {
+ font-size: 12px!important;
+ }
+}
\ No newline at end of file
diff --git a/src/design/ant/index.less b/src/design/ant/index.less
index b4a3e9fc..566e4bea 100644
--- a/src/design/ant/index.less
+++ b/src/design/ant/index.less
@@ -3,6 +3,8 @@
@import './btn.less';
@import './tabs.less';
@import './modal.less';
+@import './table.less';
+@import './form.less';
.ant-image-preview-root {
img {
diff --git a/src/design/ant/table.less b/src/design/ant/table.less
index ee62b998..51083f61 100644
--- a/src/design/ant/table.less
+++ b/src/design/ant/table.less
@@ -1,76 +1,111 @@
-@prefix-cls: ~'@{namespace}-basic-table';
-
-// fix table unnecessary scrollbar
-.@{prefix-cls} {
- .hide-scrollbar-y {
- .ant-spin-nested-loading {
- .ant-spin-container {
- .ant-table {
- .ant-table-content {
- .ant-table-scroll {
- .ant-table-hide-scrollbar {
- overflow-y: auto !important;
- }
-
- .ant-table-body {
- overflow-y: auto !important;
- }
- }
-
- .ant-table-fixed-right {
- .ant-table-body-outer {
- .ant-table-body-inner {
- overflow-y: auto !important;
- }
- }
- }
+.ant-table-thead {
+ th {
+ background-color: rgba(240, 244, 250, 1) !important;
+ font-size: 12px;
+ font-weight: 400 !important;
+ letter-spacing: 1px;
+ line-height: 15.84px;
+ color: rgba(51, 56, 61, 1) !important;
+ text-align: left !important;
+ vertical-align: bottom;
+ border: none !important;
+ border-bottom: 1px solid rgba(232, 232, 232, 1) !important;
+ &.ant-table-selection-column {
+ border-right: 1px solid rgba(232, 232, 232, 1) !important;
+ text-align: center!important;
+ }
+ }
+}
- .ant-table-fixed-left {
- .ant-table-body-outer {
- .ant-table-body-inner {
- overflow-y: auto !important;
- }
- }
- }
- }
- }
+.ant-table-tbody {
+ .ant-table-row {
+ td {
+ font-size: 12px;
+ letter-spacing: 0px;
+ line-height: 15.84px;
+ color: rgba(51, 56, 61, 1) !important;
+ text-align: left !important;
+ vertical-align: bottom;
+ font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial,
+ sans-serif !important;
+ font-weight: 400 !important;
+ color: #262626 !important;
+ background: rgba(255, 255, 255, 1);
+ border: none !important;
+ border-bottom: 1px solid rgba(232, 232, 232, 1) !important;
+ &.ant-table-selection-column {
+ border-right: 1px solid rgba(232, 232, 232, 1) !important;
+ text-align: center!important;
}
}
}
+}
+.ant-table-cell {
+ font-size: 12px;
+}
- .hide-scrollbar-x {
- .ant-spin-nested-loading {
- .ant-spin-container {
- .ant-table {
- .ant-table-content {
- .ant-table-scroll {
- .ant-table-hide-scrollbar {
- //overflow-x: auto !important;
- }
-
- .ant-table-body {
- overflow: auto !important;
- }
- }
-
- .ant-table-fixed-right {
- .ant-table-body-outer {
- .ant-table-body-inner {
- overflow-x: auto !important;
- }
- }
- }
-
- .ant-table-fixed-left {
- .ant-table-body-outer {
- .ant-table-body-inner {
- overflow-x: auto !important;
- }
- }
- }
- }
+.vben-basic-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th::before, .vben-basic-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th::before, .vben-basic-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th::before {
+ background-color: #CED5D9!important;
+}
+// handsontable 全选checkbox
+.handsontable {
+ .hot-tb-no-data {
+ position: absolute;
+ top: 100px;
+ width: 300px;
+ left: 50%;
+ margin-left: -150px;
+ }
+ input[type="checkbox"] {
+ border-color: #E8EBED;
+ }
+ .htCore {
+ thead {
+ tr {
+ height: 24px;
+ background: #fafafa;
+ th {
+ line-height: 22px;
+ background: #F5F9FC;
+ font-size: 12px;
+ border-color: #E8EBED;
+ }
+ }
+ }
+ tbody {
+ tr {
+ td {
+ height: 24px !important;
+ line-height: 22px;
+ font-size: 12px;
+ color: #262626;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ border-color: #E8EBED;
}
}
}
}
-}
+ // 清除禁用状态下的下拉图标
+ .htDimmed {
+ cursor: no-drop;
+ .htAutocompleteArrow {
+ display: none;
+ }
+ }
+ .handsontableInput {
+ height: 24px !important;
+ line-height: 24px !important;
+ }
+ .hot-green {
+ color: #419638 !important;
+ font-weight: 600;
+ }
+ .hot-yellow {
+ background: #e1a200 !important;
+ }
+ .hot-red {
+ background-color: #f5222d;
+ }
+}
\ No newline at end of file
diff --git a/src/design/public.less b/src/design/public.less
index 7feba680..adfe53d2 100644
--- a/src/design/public.less
+++ b/src/design/public.less
@@ -121,51 +121,6 @@
padding: 5px 15px !important;
}
}
-.ant-table-thead {
- th {
- background-color: rgba(240, 244, 250, 1) !important;
- font-size: 12px;
- font-weight: 400 !important;
- letter-spacing: 1px;
- line-height: 15.84px;
- color: rgba(51, 56, 61, 1) !important;
- text-align: left !important;
- vertical-align: bottom;
- border: none !important;
- border-bottom: 1px solid rgba(232, 232, 232, 1) !important;
- &.ant-table-selection-column {
- border-right: 1px solid rgba(232, 232, 232, 1) !important;
- text-align: center!important;
- }
- }
-}
-
-.ant-table-tbody {
- .ant-table-row {
- td {
- font-size: 12px;
- letter-spacing: 0px;
- line-height: 15.84px;
- color: rgba(51, 56, 61, 1) !important;
- text-align: left !important;
- vertical-align: bottom;
- font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial,
- sans-serif !important;
- font-weight: 400 !important;
- color: #262626 !important;
- background: rgba(255, 255, 255, 1);
- border: none !important;
- border-bottom: 1px solid rgba(232, 232, 232, 1) !important;
- &.ant-table-selection-column {
- border-right: 1px solid rgba(232, 232, 232, 1) !important;
- text-align: center!important;
- }
- }
- }
-}
-.ant-table-cell {
- font-size: 12px;
-}
// 列表页面表单和表格的整体样式管理
.ds-table, .ds-table-detail {
@@ -190,7 +145,7 @@
}
.ant-table-thead {
th {
- padding: 10px 7px!important;
+ padding: 7px 7px!important;
}
.ant-table-column-sorters, .ant-table-filter-column {
justify-content: flex-start;
@@ -265,4 +220,215 @@ input, button, textarea {
}
.vben-basic-table-header__toolbar > * {
margin-right: 0!important;
-}
\ No newline at end of file
+}
+
+h1,
+h2,
+h3,
+h4,
+h5 {
+ font-weight: 600;
+ color: #262626;
+ padding: 0;
+ margin: 0;
+}
+// 各级标题 适配UI
+h1 {
+ font-size: 18px;
+}
+
+h2 {
+ font-size: 14px;
+ font-weight: 600!important;
+}
+h3 {
+ font-size: 14px;
+ font-weight: bold !important;
+ height: 40px;
+ line-height: 40px;
+ padding-left: 15px;
+ border-bottom: 0.7px solid #d9d9d9;
+}
+h4 {
+ font-size: 12px;
+ font-weight: 600!important;
+}
+h5 {
+ font-size: 12px;
+ color: #33383D;
+ font-weight: 400;
+}
+
+.ml10 {
+ margin-left: 10px;
+}
+// 表单详情样式
+.ds-form-detail {
+ .ant-form-item {
+ margin-bottom: 10px;
+ }
+ .ant-form-item-control-input-content {
+ white-space: nowrap;
+ width: 100%;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ font-size: 12px;
+ }
+ .ant-form-item-control-input {
+ min-height: 28px;
+ }
+ .ant-form-item-label {
+ padding: 0 !important;
+ label {
+ font-family: PingFang SC-Semibold, PingFang SC;
+ font-size: 12px;
+ color: #7A8798;
+ }
+ }
+}
+
+
+.ds-tb-check {
+ position: absolute;
+ z-index: 199;
+ left: 15px;
+ margin-top: 9px;
+ width: 12px;
+}
+
+.ds-detail-box {
+ margin: 0 0 0 20px;
+}
+
+.flex {
+ display: flex;
+ .auto {
+ flex: 1;
+ }
+}
+
+.mt2 {
+ margin-top: 2px !important;
+}
+
+.mt5 {
+ margin-top: 5px !important;
+}
+
+.mt10 {
+ margin-top: 10px !important;
+}
+
+.mr10 {
+ margin-right: 10px !important;
+}
+
+.mb10 {
+ margin-bottom: 10px !important;
+}
+
+.ml10 {
+ margin-left: 10px !important;
+}
+
+.ds-card {
+ padding: 10px 20px;
+ background-color: #ffffff;
+ border: 0.7px solid #E8EBED;
+}
+
+.mr15 {
+ margin-right: 15px !important;
+}
+.mt15 {
+ margin-top: 15px;
+}
+.mb15 {
+ margin-bottom: 15px;
+}
+.ml15 {
+ margin-left: 15px;
+}
+
+// 表格状态使用
+.ds-green-tag,
+.ds-blue-tag,
+.ds-orange-tag,
+.ds-red-tag,
+.ds-purple-tag {
+ padding: 4px 13px;
+ border-radius: 30px;
+ font-size: 10px;
+ font-weight: 700 !important;
+ color: #ffffff;
+ display: inline-block;
+ vertical-align: bottom;
+}
+
+.ds-green-tag {
+ background-color: rgba(223, 247, 247, 1);
+ color: rgba(43, 176, 194, 1);
+}
+
+.ds-blue-tag {
+ background-color: rgba(222, 242, 255, 1);
+ color: rgba(70, 145, 255, 1);
+}
+
+.ds-orange-tag {
+ background-color: rgba(255, 232, 204, 1);
+ color: rgba(219, 146, 72, 1);
+}
+
+.ds-red-tag {
+ background-color: rgba(255, 232, 232, 1);
+ color: rgba(255, 128, 145, 1);
+}
+
+.ds-purple-tag {
+ background-color: rgba(232, 232, 255, 1);
+ color: rgba(137, 124, 222, 1);
+}
+
+// 表格状态使用(定义2)
+.ds-green-status,
+.ds-blue-status,
+.ds-orange-status,
+.ds-red-status,
+.ds-purple-status,
+.ds-grey-status {
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: 600;
+}
+
+.ds-green-status {
+ color: #419638;
+}
+
+.ds-blue-status {
+ color: #096dd9;
+}
+
+.ds-orange-status {
+ color: #e1a200;
+}
+
+.ds-red-status {
+ color: #f5222d;
+}
+
+.ds-purple-status {
+ color: #531dab;
+}
+
+.ds-grey-status {
+ color: #8c8c8c;
+}
+
+.icon-30jiantouxiangxiafill {
+ font-size: 6px;
+ position: relative;
+ left: 3px;
+ top: -1px;
+ color: #7A8798;
+}
diff --git a/src/styles/common.scss b/src/styles/common.scss
deleted file mode 100644
index 24a0ef6c..00000000
--- a/src/styles/common.scss
+++ /dev/null
@@ -1,251 +0,0 @@
-h1,
-h2,
-h3,
-h4,
-h5 {
- font-weight: 600;
- color: #262626;
- padding: 0;
- margin: 0;
-}
-// 各级标题 适配UI
-h1 {
- font-size: 18px;
-}
-
-h2 {
- font-size: 14px;
- font-weight: 600!important;
-}
-h3 {
- font-size: 14px;
- font-weight: bold !important;
- height: 40px;
- line-height: 40px;
- padding-left: 15px;
- border-bottom: 0.7px solid #d9d9d9;
-}
-h4 {
- font-size: 12px;
- font-weight: 600!important;
-}
-h5 {
- font-size: 12px;
- color: #33383D;
- font-weight: 400;
-}
-
-.ml10 {
- margin-left: 10px;
-}
-// 表单详情样式
-.ds-form-detail {
- .ant-form-item {
- margin-bottom: 10px;
- }
- .ant-form-item-control-input-content {
- white-space: nowrap;
- width: 100%;
- text-overflow: ellipsis;
- overflow: hidden;
- font-size: 12px;
- }
- .ant-form-item-control-input {
- min-height: 28px;
- }
- .ant-form-item-label {
- padding: 0 !important;
- label {
- font-family: PingFang SC-Semibold, PingFang SC;
- font-size: 12px;
- color: #7A8798;
- }
- }
-}
-
-// handsontable 全选checkbox
-.handsontable {
- .htCore {
- thead {
- tr {
- height: 24px;
- background: #fafafa;
- th {
- line-height: 22px;
- background: #fafafa;
- font-size: 12px;
- }
- }
- }
- tbody {
- tr {
- td {
- height: 24px !important;
- line-height: 22px;
- font-size: 12px;
- color: #262626;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- }
- }
- }
- // 清除禁用状态下的下拉图标
- .htDimmed {
- cursor: no-drop;
- .htAutocompleteArrow {
- display: none;
- }
- }
- .handsontableInput {
- height: 24px !important;
- line-height: 24px !important;
- }
- .hot-green {
- color: #9acd32 !important;
- font-weight: 600;
- }
- .hot-yellow {
- background: #ffe37e !important;
- }
- .hot-red {
- background-color: #ff4500;
- }
-}
-.ds-tb-check {
- position: absolute;
- z-index: 199;
- left: 15px;
- margin-top: 9px;
- width: 12px;
-}
-
-.ds-detail-box {
- margin: 0 0 0 20px;
-}
-
-.flex {
- display: flex;
- .auto {
- flex: 1;
- }
-}
-
-.mt2 {
- margin-top: 2px !important;
-}
-
-.mt5 {
- margin-top: 5px !important;
-}
-
-.mt10 {
- margin-top: 10px !important;
-}
-
-.mr10 {
- margin-right: 10px !important;
-}
-
-.mb10 {
- margin-bottom: 10px !important;
-}
-
-.ml10 {
- margin-left: 10px !important;
-}
-
-.ds-card {
- padding: 10px 20px;
- background-color: #ffffff;
- border: 0.7px solid #E8EBED;
-}
-
-.mr15 {
- margin-right: 15px !important;
-}
-.mt15 {
- margin-top: 15px;
-}
-.mb15 {
- margin-bottom: 15px;
-}
-.ml15 {
- margin-left: 15px;
-}
-
-// 表格状态使用
-.ds-green-tag,
-.ds-blue-tag,
-.ds-orange-tag,
-.ds-red-tag,
-.ds-purple-tag {
- padding: 4px 13px;
- border-radius: 30px;
- font-size: 10px;
- font-weight: 700 !important;
- color: #ffffff;
- display: inline-block;
- vertical-align: bottom;
-}
-
-.ds-green-tag {
- background-color: rgba(223, 247, 247, 1);
- color: rgba(43, 176, 194, 1);
-}
-
-.ds-blue-tag {
- background-color: rgba(222, 242, 255, 1);
- color: rgba(70, 145, 255, 1);
-}
-
-.ds-orange-tag {
- background-color: rgba(255, 232, 204, 1);
- color: rgba(219, 146, 72, 1);
-}
-
-.ds-red-tag {
- background-color: rgba(255, 232, 232, 1);
- color: rgba(255, 128, 145, 1);
-}
-
-.ds-purple-tag {
- background-color: rgba(232, 232, 255, 1);
- color: rgba(137, 124, 222, 1);
-}
-
-// 表格状态使用(定义2)
-.ds-green-status,
-.ds-blue-status,
-.ds-orange-status,
-.ds-red-status,
-.ds-purple-status,
-.ds-grey-status {
- font-family: Arial, Helvetica, sans-serif;
- font-weight: 600;
-}
-
-.ds-green-status {
- color: #419638;
-}
-
-.ds-blue-status {
- color: #096dd9;
-}
-
-.ds-orange-status {
- color: #e1a200;
-}
-
-.ds-red-status {
- color: #f5222d;
-}
-
-.ds-purple-status {
- color: #531dab;
-}
-
-.ds-grey-status {
- color: #8c8c8c;
-}
diff --git a/src/styles/index.scss b/src/styles/index.scss
index de4ff23f..5e587711 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -1,6 +1,5 @@
// import dark theme
@use "element-plus/theme-chalk/src/dark/css-vars.scss" as *;
-@import './common.scss';
:root {
.el-segmented {
--el-segmented-radius: var(--el-border-radius-base);
diff --git a/src/views/operation/seaexport/api/BookingLedger.js b/src/views/operation/seaexport/api/BookingLedger.js
index a42478ca..bb6c65cf 100644
--- a/src/views/operation/seaexport/api/BookingLedger.js
+++ b/src/views/operation/seaexport/api/BookingLedger.js
@@ -1907,3 +1907,49 @@ export function GetSeaExportBillManageList(data) {
data,
})
}
+
+// 复制单票
+export function SeaExportCopy(params) {
+ return request({
+ url: '/opApi/SeaExport/SeaExportCopy',
+ method: 'get',
+ params
+ })
+}
+
+// 提单信息保存
+export function EditSeaExportBillManage(data) {
+ return request({
+ url: '/opApi/SeaExportBillManage/EditSeaExportBillManage',
+ method: 'post',
+ data
+ })
+}
+
+// 舱单分票列表
+export function GetShippingBillPartCtnList(data) {
+ return request({
+ url: '/opApi/ShippingBillPartCtn/GetShippingBillPartCtnList',
+ method: 'post',
+ data
+ })
+}
+
+// 舱单分票编辑
+export function EditShippingBillPartCtn(data) {
+ return request({
+ url: '/opApi/ShippingBillPartCtn/EditShippingBillPartCtn',
+ method: 'post',
+ data
+ })
+}
+
+// 提单信息删除
+export function BatchDelBillManageCtn(data) {
+ return request({
+ url: '/opApi/SeaExportBillManage/BatchDelBillManageCtn',
+ method: 'post',
+ data
+ })
+}
+
diff --git a/src/views/operation/seaexport/detail/components/container.vue b/src/views/operation/seaexport/detail/components/container.vue
index b59a6b40..e020e989 100644
--- a/src/views/operation/seaexport/detail/components/container.vue
+++ b/src/views/operation/seaexport/detail/components/container.vue
@@ -21,7 +21,7 @@
@cancel="cancelDelete"
@click="checkDelete"
>
-
+
删除
@@ -30,19 +30,22 @@
更新合计
-
-
+
+
调入主单信息
-
+
+
+
\ No newline at end of file
diff --git a/src/views/operation/seaexport/detail/components/manifestTicket.vue b/src/views/operation/seaexport/detail/components/manifestTicket.vue
new file mode 100644
index 00000000..ac9937cb
--- /dev/null
+++ b/src/views/operation/seaexport/detail/components/manifestTicket.vue
@@ -0,0 +1,381 @@
+
+
+
+
+
+
+
舱单分票信息
+
+
+ 添加
+
+
+
+ 保存明细
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
分票合计
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/operation/seaexport/detail/components/textareaView.vue b/src/views/operation/seaexport/detail/components/textareaView.vue
index 7e3a8408..0798f414 100644
--- a/src/views/operation/seaexport/detail/components/textareaView.vue
+++ b/src/views/operation/seaexport/detail/components/textareaView.vue
@@ -2,7 +2,7 @@
diff --git a/src/views/operation/seaexport/detail/index.vue b/src/views/operation/seaexport/detail/index.vue
index 6b4f91aa..0fd38dc4 100644
--- a/src/views/operation/seaexport/detail/index.vue
+++ b/src/views/operation/seaexport/detail/index.vue
@@ -79,8 +79,13 @@
:details="bookingDetails"
>
-
-
+
+
+
+
+
@@ -121,13 +126,15 @@