diff --git a/src/views/operation/seaexport/detail/modules/Letter/LetterApi.js b/src/views/operation/seaexport/detail/modules/Letter/LetterApi.js
new file mode 100644
index 00000000..2424bb1b
--- /dev/null
+++ b/src/views/operation/seaexport/detail/modules/Letter/LetterApi.js
@@ -0,0 +1,26 @@
+import { request } from '/@/utils/request'
+// ------------------------------------函电信息更改通知服务-----------------------------------------
+// 列表 (Auth)
+export function GetOpLetterChangeList(parameter) {
+ return request({
+ url: '/opApi/LetterChange/GetOpLetterChangeList',
+ method: 'post',
+ data: parameter,
+ })
+}
+// 编辑 (Auth)
+export function EditOpLetterChange(parameter) {
+ return request({
+ url: '/opApi/LetterChange/EditOpLetterChange',
+ method: 'post',
+ data: parameter,
+ })
+}
+// 详情 (Auth)
+export function GetOpLetterChangeInfo(parameter) {
+ return request({
+ url: '/opApi/LetterChange/GetOpLetterChangeInfo',
+ method: 'get',
+ params: parameter,
+ })
+}
diff --git a/src/views/operation/seaexport/detail/modules/Letter/LetterChangeColumns.tsx b/src/views/operation/seaexport/detail/modules/Letter/LetterChangeColumns.tsx
new file mode 100644
index 00000000..ac6554d6
--- /dev/null
+++ b/src/views/operation/seaexport/detail/modules/Letter/LetterChangeColumns.tsx
@@ -0,0 +1,521 @@
+import { BasicColumn, FormSchema } from '/@/components/Table'
+import { Tag } from 'ant-design-vue'
+import { useOptionsStore } from '/@/store/modules/options'
+const optionsStore = useOptionsStore()
+export const columns: BasicColumn[] = [
+ {
+ title: '主提单号',
+ dataIndex: 'mblno',
+ width: 150,
+ },
+ {
+ title: '卸货港',
+ dataIndex: 'dischargePort',
+ width: 150,
+ },
+ {
+ title: '船名航次',
+ dataIndex: 'vesselVoyNo',
+ width: 150,
+ },
+ {
+ title: '开船日期',
+ dataIndex: 'etd',
+ width: 150,
+ },
+ {
+ title: '件重尺',
+ dataIndex: 'pkc',
+ width: 150,
+ },
+ {
+ title: '箱型箱量',
+ dataIndex: 'cntr',
+ width: 150,
+ },
+ {
+ title: '更改项目',
+ dataIndex: 'projectName',
+ width: 150,
+ },
+ {
+ title: '原内容',
+ dataIndex: 'oldContent',
+ width: 150,
+ },
+ {
+ title: '现内容',
+ dataIndex: 'newContent',
+ width: 150,
+ },
+ {
+ title: '备注',
+ dataIndex: 'remark',
+ width: 150,
+ },
+ // {
+ // title: '状态',
+ // dataIndex: 'status',
+ // width: 100,
+ // customRender: ({ text }) => {
+ // if (text === 0) {
+ // return 启用
+ // } else if (text === 1) {
+ // return 禁用
+ // }
+ // return text
+ // },
+ // },
+]
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'mblno',
+ label: '主提单号',
+ component: 'Input',
+ colProps: { span: 4 },
+ },
+]
+export const formSchema: FormSchema[] = [
+ {
+ label: '主键Id',
+ field: 'mainInfo.id',
+ component: 'Input',
+ defaultValue: '',
+ show: false,
+ },
+ {
+ label: 'TO',
+ field: 'mainInfo.headTo',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '业务编号',
+ field: 'mainInfo.bsno',
+ component: 'Input',
+ defaultValue: '',
+ dynamicDisabled: true,
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ label: 'ATTN',
+ field: 'mainInfo.headATTN',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ label: 'ATTN电话',
+ field: 'mainInfo.headATTNTel',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ label: 'ATTN传真',
+ field: 'mainInfo.headATTNFax',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ label: 'FROM电话',
+ field: 'mainInfo.headFromTel',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ label: 'FROM传真',
+ field: 'mainInfo.headFromFax',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ label: 'FROM邮箱',
+ field: 'mainInfo.headFromEmail',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 6,
+ },
+ },
+
+ {
+ field: 'divider-selects',
+ component: 'Divider',
+ label: '变更通知详细信息',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '主键Id',
+ field: 'id',
+ component: 'Input',
+ defaultValue: '',
+ show: false,
+ },
+ {
+ label: '主表Id',
+ field: 'letterId',
+ component: 'Input',
+ defaultValue: '',
+ show: false,
+ },
+ {
+ label: '船名航次',
+ field: 'vesselVoyNo',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '主提单号',
+ field: 'mblno',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '卸货港',
+ field: 'dischargePort',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '开船日期',
+ field: 'etd',
+ component: 'RangePicker',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '件重尺',
+ field: 'pkc',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '箱型箱量',
+ field: 'cntr',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '更改项目',
+ field: 'projectName',
+ component: 'InputTextArea',
+ defaultValue: '',
+ colProps: {
+ span: 8,
+ },
+ componentProps: {
+ rows: 6,
+ },
+ },
+ {
+ label: '原内容',
+ field: 'oldContent',
+ component: 'InputTextArea',
+ defaultValue: '',
+ colProps: {
+ span: 8,
+ },
+ componentProps: {
+ rows: 6,
+ },
+ },
+ {
+ label: '现内容',
+ field: 'newContent',
+ component: 'InputTextArea',
+ defaultValue: '',
+ colProps: {
+ span: 8,
+ },
+ componentProps: {
+ rows: 6,
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ component: 'InputTextArea',
+ defaultValue: '',
+ colProps: {
+ span: 24,
+ },
+ componentProps: {
+ rows: 3,
+ },
+ },
+]
+
+export const BankColumns: BasicColumn[] = [
+ {
+ title: '代码',
+ dataIndex: 'codeName',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '币别',
+ dataIndex: 'currency',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '银行名称',
+ dataIndex: 'bankName',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '银行名称2',
+ dataIndex: 'bankName2',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '银行账户',
+ dataIndex: 'bankAccountNo',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '户头名称',
+ dataIndex: 'accountName',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '科目代码',
+ dataIndex: 'subjectCode',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '财务软件代码',
+ dataIndex: 'financeSoftCode',
+ width: 230,
+ align: 'left',
+ },
+ {
+ title: '是否默认',
+ dataIndex: 'isDefault',
+ width: 100,
+ customRender: ({ text }) => {
+ if (text === true) {
+ return 是
+ } else if (text === false) {
+ return 否
+ }
+ return text
+ },
+ },
+ {
+ title: '排序',
+ dataIndex: 'orderNo',
+ width: 100,
+ },
+ {
+ title: '状态',
+ dataIndex: 'status',
+ width: 100,
+ customRender: ({ text }) => {
+ if (text === 0) {
+ return 启用
+ } else if (text === 1) {
+ return 禁用
+ }
+ return text
+ },
+ },
+ {
+ title: '备注',
+ dataIndex: 'note',
+ width: 100,
+ },
+]
+export const BankformSchema: FormSchema[] = [
+ {
+ field: 'divider-selects',
+ component: 'Divider',
+ label: '账户信息',
+ colProps: {
+ span: 24,
+ },
+ },
+ {
+ label: '',
+ field: 'id',
+ component: 'Input',
+ defaultValue: '',
+ show: false,
+ },
+ {
+ label: '',
+ field: 'linkId',
+ component: 'Input',
+ defaultValue: '',
+ show: false,
+ },
+ {
+ label: '代码',
+ field: 'codeName',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ field: 'currency',
+ label: '币别',
+ component: 'ApiSelect',
+ defaultValue: '',
+ colProps: { span: 12 },
+ componentProps: () => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ option: optionsStore.getOptionsByCode('GetFeeCurrencySelectList'),
+ labelField: 'codeName',
+ valueField: 'codeName',
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ label: '银行名称',
+ field: 'bankName',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ label: '银行名称2',
+ field: 'bankName2',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ label: '银行账户',
+ field: 'bankAccountNo',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ label: '户头名称',
+ field: 'accountName',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ label: '科目代码',
+ field: 'subjectCode',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ label: '财务软件代码',
+ field: 'financeSoftCode',
+ component: 'Input',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ label: '排序',
+ field: 'orderNo',
+ component: 'InputNumber',
+ defaultValue: '',
+ colProps: {
+ span: 12,
+ },
+ },
+ {
+ field: 'isDefault',
+ component: 'RadioButtonGroup',
+ label: '是否默认',
+ required: true,
+ componentProps: {
+ options: [
+ // { label: '是', value: 1 },
+ // { label: '否', value: 0 },
+ { label: '是', value: true },
+ { label: '否', value: false },
+ ],
+ },
+ defaultValue: true,
+ colProps: {
+ span: 6,
+ },
+ },
+ {
+ field: 'status',
+ component: 'RadioButtonGroup',
+ label: '状态',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '启用', value: 0 },
+ { label: '禁用', value: 1 },
+ ],
+ },
+ defaultValue: 0,
+ colProps: {
+ span: 6,
+ },
+ },
+]
diff --git a/src/views/operation/seaexport/detail/modules/Letter/LetterChangeDetails.vue b/src/views/operation/seaexport/detail/modules/Letter/LetterChangeDetails.vue
new file mode 100644
index 00000000..207ad624
--- /dev/null
+++ b/src/views/operation/seaexport/detail/modules/Letter/LetterChangeDetails.vue
@@ -0,0 +1,140 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/operation/seaexport/detail/modules/Letter/LetterChangeEdit.vue b/src/views/operation/seaexport/detail/modules/Letter/LetterChangeEdit.vue
new file mode 100644
index 00000000..df571b03
--- /dev/null
+++ b/src/views/operation/seaexport/detail/modules/Letter/LetterChangeEdit.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+ 取消
+ 仅保存
+ 保存并关闭
+
+
+
+
diff --git a/src/views/operation/seaexport/detail/modules/operationArea.vue b/src/views/operation/seaexport/detail/modules/operationArea.vue
index 5d88212e..b313f650 100644
--- a/src/views/operation/seaexport/detail/modules/operationArea.vue
+++ b/src/views/operation/seaexport/detail/modules/operationArea.vue
@@ -83,6 +83,10 @@
+
+