From 7d61f247e3f44376049cc6e951085af62c002de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=90=8C=E6=B5=B7?= <14166000+zhangtonghai@user.noreply.gitee.com> Date: Thu, 13 Jun 2024 17:59:51 +0800 Subject: [PATCH] 06/13 --- src/components/CostEntry/feeTable.vue | 268 +++-- src/styles/buttonGroup.scss | 5 +- .../components/Button.vue | 1 + .../CustomerReconciliation/detail/index.vue | 8 +- .../detail/info/index.vue | 52 +- .../detail/info/infoColumns.tsx | 381 +++++-- .../detail/modules/operationArea.vue | 2 +- .../seaexport/detail/modules/preOrder.vue | 1015 ++++++++++++++++- 8 files changed, 1461 insertions(+), 271 deletions(-) diff --git a/src/components/CostEntry/feeTable.vue b/src/components/CostEntry/feeTable.vue index e59678b5..ae0b9b7f 100644 --- a/src/components/CostEntry/feeTable.vue +++ b/src/components/CostEntry/feeTable.vue @@ -75,13 +75,13 @@ type: Array, default: () => { return [] - } + }, }, // 业务ID id: { type: String, - default: '' - } + default: '', + }, }) const emits = defineEmits(['broInsert']) // 费用名称字典 @@ -110,7 +110,7 @@ feeEnName: '', quantity: 1, exchangeRate: 1, - feeType: props.tbType == 'receive' ? 1 : 2 + feeType: props.tbType == 'receive' ? 1 : 2, } // 表格绑定数据 const list = ref([]) @@ -159,7 +159,7 @@ if (!feeDict.value.length) feeDict.value = res console.log(res) const dict = res.map((res) => { - return res.code + '-' +res.name + return res.code + '-' + res.name }) process(dict) }, @@ -199,13 +199,13 @@ type: 'dropdown', source: async (query, process) => { // 获取当前选中行 - const rowIndex = hotTb.value.hotInstance.getActiveEditor().row + const rowIndex = hotTb.value.hotInstance.getActiveEditor().row const code = list.value[rowIndex - 1].customerType console.log(list.value[rowIndex - 1]) if (code) { - GetClientListByCode({ code }).then(res => { + GetClientListByCode({ code }).then((res) => { const { data } = res - data.forEach(item => { + data.forEach((item) => { item['label'] = item.shortName item['value'] = item.codeName }) @@ -216,7 +216,7 @@ process(dict) }) } else { - createMessage.warning("请先选择客户类别!") + createMessage.warning('请先选择客户类别!') process([]) } }, @@ -267,7 +267,7 @@ width: 120, data: 'noTaxPrice', type: 'numeric', - readOnly: true + readOnly: true, }, { title: '不含税金额', @@ -275,7 +275,7 @@ data: 'noTaxAmount', type: 'numeric', format: '0.00', - readOnly: true + readOnly: true, }, { title: '金额', @@ -359,8 +359,9 @@ title: '录入人', width: 100, data: 'createByName', - readOnly: true - }, { + readOnly: true, + }, + { title: '录入日期', width: 100, data: 'createTime', @@ -388,13 +389,15 @@ title: '修改人', width: 100, data: 'updateByName', - readOnly: true - }, { + readOnly: true, + }, + { title: '修改日期', width: 100, data: 'updateTime', - readOnly: true - }, { + readOnly: true, + }, + { title: '发票申请金额', width: 100, data: 'orderInvoiceAmount', @@ -429,9 +432,9 @@ rowHeights: 32, fixedColumnsLeft: 1, // 需要隐藏的列 - hiddenColumns: { + hiddenColumns: { columns: [1, 2], - indicators: true + indicators: true, }, // 控制回车移动 enterMoves: 'row', @@ -528,34 +531,54 @@ // 修改不含税单价计算 if (changes[0][1] === 'noTaxPrice') { // 单价 - list.value[index].unitPrice = Number((changes[0][3] || 0) * ((list.value[index].taxRate || 0) / 100 + 1)).toFixed(6) + list.value[index].unitPrice = Number( + (changes[0][3] || 0) * ((list.value[index].taxRate || 0) / 100 + 1), + ).toFixed(6) // 金额 - list.value[index].amount = Number((list.value[index].unitPrice || 0) * (list.value[index].quantity || 0)).toFixed(6) + list.value[index].amount = Number( + (list.value[index].unitPrice || 0) * (list.value[index].quantity || 0), + ).toFixed(6) // 不含税金额 - list.value[index].noTaxAmount = Number((changes[0][3] || 0) * (list.value[index].quantity || 0)).toFixed(6) + list.value[index].noTaxAmount = Number( + (changes[0][3] || 0) * (list.value[index].quantity || 0), + ).toFixed(6) } // 修改单价计算 if (changes[0][1] === 'unitPrice') { // 不含税单价 - list.value[index].noTaxPrice = Number((changes[0][3] || 0) / ((list.value[index].taxRate || 0) / 100 + 1)).toFixed(6) + list.value[index].noTaxPrice = Number( + (changes[0][3] || 0) / ((list.value[index].taxRate || 0) / 100 + 1), + ).toFixed(6) // 金额 - list.value[index].amount = Number((changes[0][3] || 0) * (list.value[index].quantity || 0)).toFixed(6) + list.value[index].amount = Number( + (changes[0][3] || 0) * (list.value[index].quantity || 0), + ).toFixed(6) // 不含税金额 - list.value[index].noTaxAmount = Number((list.value[index].noTaxPrice || 0) * (list.value[index].quantity || 0)).toFixed(6) + list.value[index].noTaxAmount = Number( + (list.value[index].noTaxPrice || 0) * (list.value[index].quantity || 0), + ).toFixed(6) } // 修改数量 if (changes[0][1] === 'quantity') { // 金额 - list.value[index].amount = Number((changes[0][3] || 0) * (list.value[index].unitPrice || 0)).toFixed(6) + list.value[index].amount = Number( + (changes[0][3] || 0) * (list.value[index].unitPrice || 0), + ).toFixed(6) // 不含税金额 - list.value[index].noTaxAmount = Number((changes[0][3] || 0) * (list.value[index].noTaxPrice || 0)).toFixed(6) + list.value[index].noTaxAmount = Number( + (changes[0][3] || 0) * (list.value[index].noTaxPrice || 0), + ).toFixed(6) } // 修改税率 if (changes[0][1] === 'taxRate') { // 不含税单价 - list.value[index].noTaxPrice = Number((list.value[index].unitPrice || 0) / ((changes[0][3] || 0) / 100 + 1)).toFixed(6) + list.value[index].noTaxPrice = Number( + (list.value[index].unitPrice || 0) / ((changes[0][3] || 0) / 100 + 1), + ).toFixed(6) // 不含税金额 - list.value[index].noTaxAmount = Number((list.value[index].noTaxPrice || 0) * (list.value[index].quantity || 0)).toFixed(6) + list.value[index].noTaxAmount = Number( + (list.value[index].noTaxPrice || 0) * (list.value[index].quantity || 0), + ).toFixed(6) } } }, @@ -567,62 +590,70 @@ items: list.value.filter((res) => { return res.feeStatus == 1 }), - businessType: 1 + businessType: 1, } loading.value = true - SubmitFee(postData).then(res => { - loading.value = false - init() - createMessage.success(res.message) - }).catch(() => { - loading.value = false - }) + SubmitFee(postData) + .then((res) => { + loading.value = false + init() + createMessage.success(res.message) + }) + .catch(() => { + loading.value = false + }) } // 提交审核 const submit = (arr) => { loading.value = true const ids = [] - arr.forEach(res => { + arr.forEach((res) => { if (res.id) ids.push(res.id) }) if (ids.length == arr.length) { - ApplyAudit({ id: '', ids }).then(res => { - loading.value = false - createMessage.success(res.message) - init() - }).catch(() => { - loading.value = false - }) + ApplyAudit({ id: '', ids }) + .then((res) => { + loading.value = false + createMessage.success(res.message) + init() + }) + .catch(() => { + loading.value = false + }) } else { const postData = { BusinessId: props.id, - items: arr + items: arr, } - SubmitFee(postData).then(res => { + SubmitFee(postData).then((res) => { const { data } = res - const ids = data.map(item => { + const ids = data.map((item) => { return item.id }) - ApplyAudit({ ids }).then(res => { - loading.value = false - createMessage.success(res.message) - init() - }).catch(() => { - loading.value = false - }) + ApplyAudit({ ids }) + .then((res) => { + loading.value = false + createMessage.success(res.message) + init() + }) + .catch(() => { + loading.value = false + }) }) } } // 撤销提交 const revoke = (ids) => { loading.value = true - Withdraw({ ids }).then(res => { - loading.value = false - createMessage.success(res.message) - init() - }).catch(() => { - loading.value = false - }) + Withdraw({ ids }) + .then((res) => { + loading.value = false + createMessage.success(res.message) + init() + }) + .catch(() => { + loading.value = false + }) } // 取消编辑 const cancelEdit = () => { @@ -700,68 +731,69 @@ pageCondition: { pageIndex: 1, pageSize: 1000, - sortConditions: [] + sortConditions: [], }, queryCondition: JSON.stringify([ { FieldName: 'BusinessId', FieldValue: props.id, ConditionalType: 1 }, { FieldName: 'FeeType', FieldValue: props.tbType == 'receive' ? 1 : 2, ConditionalType: 1 }, - ]) + ]), } - GetList(postData).then(res => { - loading.value = false - const { data } = res - data.forEach((item, index) => { - item['feeStatusText'] = feeStatusList[item.feeStatus] - if (item.createTime) item.createTime = item.createTime.split(' ')[0] - if (item.auditDate) item.auditDate = item.auditDate.split(' ')[0] - if (item.updateTime) item.updateTime = item.updateTime.split(' ')[0] - if (item.updateTime == '1900-01-01') item.updateTime = '' - }) - list.value = data - // 设置原始数据,取消使用 - oldData = JSON.parse(JSON.stringify(data)) - if (data.length != 0) { - hotTb.value.hotInstance.updateSettings({ - cells: function(row, col) { - // 设置费用状态不是录入状态的行为只读 - const props = { readOnly: true } - // 审核通过(STATUS=0) - // 录入状态(STATUS=1) - // 提交审核(STATUS=2) - // 申请修改 (STATUS=3) - // 申请删除 (STATUS=4) - // 撤销申请 (STATUS=5) - // 驳回提交(STATUS=6) - // 驳回申请(STATUS=7) - // 部分结算(STATUS=8) - // 结算完毕(STATUS=9) - if (data[row]?.feeStatus != 1 && col != 0) { - // 配置不同状态的行颜色 - if (data[row]?.feeStatus == 0) { - props['className'] = 'hot-green' - } - if (data[row]?.feeStatus == 2) { - props['className'] = 'hot-yellow' - } - if (data[row]?.feeStatus == 7) { - props['className'] = 'hot-red' - } - return props - } else { - return - } - } + GetList(postData) + .then((res) => { + loading.value = false + const { data } = res + data.forEach((item, index) => { + item['feeStatusText'] = feeStatusList[item.feeStatus] + if (item.createTime) item.createTime = item.createTime.split(' ')[0] + if (item.auditDate) item.auditDate = item.auditDate.split(' ')[0] + if (item.updateTime) item.updateTime = item.updateTime.split(' ')[0] + if (item.updateTime == '1900-01-01') item.updateTime = '' }) - } - hotTb.value.hotInstance.loadData(list.value) - }) - .catch(() => { - loading.value = false - }) + list.value = data + // 设置原始数据,取消使用 + oldData = JSON.parse(JSON.stringify(data)) + if (data.length != 0) { + hotTb.value.hotInstance.updateSettings({ + cells: function (row, col) { + // 设置费用状态不是录入状态的行为只读 + const props = { readOnly: true } + // 审核通过(STATUS=0) + // 录入状态(STATUS=1) + // 提交审核(STATUS=2) + // 申请修改 (STATUS=3) + // 申请删除 (STATUS=4) + // 撤销申请 (STATUS=5) + // 驳回提交(STATUS=6) + // 驳回申请(STATUS=7) + // 部分结算(STATUS=8) + // 结算完毕(STATUS=9) + if (data[row]?.feeStatus != 1 && col != 0) { + // 配置不同状态的行颜色 + if (data[row]?.feeStatus == 0) { + props['className'] = 'hot-green' + } + if (data[row]?.feeStatus == 2) { + props['className'] = 'hot-yellow' + } + if (data[row]?.feeStatus == 7) { + props['className'] = 'hot-red' + } + return props + } else { + return + } + }, + }) + } + hotTb.value.hotInstance.loadData(list.value) + }) + .catch(() => { + loading.value = false + }) } onMounted(() => { const hot = hotTb.value.hotInstance - hot.addHook('afterOnCellMouseDown', function(event, coords, TD) {}) + hot.addHook('afterOnCellMouseDown', function (event, coords, TD) {}) // 定义表格按键处理逻辑 hot.addHook('beforeKeyDown', function (event) { // 检查按下的是否是特定的键(例如 'Enter') @@ -797,13 +829,13 @@ row.forEach((item) => { list.value.push(item) }) - } + }, ) watch( () => props.id, () => { - init() - } + init() + }, ) watch( list.value, diff --git a/src/styles/buttonGroup.scss b/src/styles/buttonGroup.scss index 94febfd9..f3dde0a1 100644 --- a/src/styles/buttonGroup.scss +++ b/src/styles/buttonGroup.scss @@ -7,14 +7,15 @@ height: 28px; line-height: 26px; color: #000; - + font-size: 12px !important; .iconfont { margin-right: 6px; + font-size: 14px !important; } span { &.iconfont{ - font-size: 18px !important; + font-size: 16px !important; } } &:hover { diff --git a/src/views/operation/CustomerReconciliation/components/Button.vue b/src/views/operation/CustomerReconciliation/components/Button.vue index 172016c5..7bb5e16e 100644 --- a/src/views/operation/CustomerReconciliation/components/Button.vue +++ b/src/views/operation/CustomerReconciliation/components/Button.vue @@ -17,5 +17,6 @@ @import url('/@/styles/buttonGroup.scss'); .nav { margin-top: 20px !important; + padding: 0 2px; } diff --git a/src/views/operation/CustomerReconciliation/detail/index.vue b/src/views/operation/CustomerReconciliation/detail/index.vue index b319e8fd..1f5bdb02 100644 --- a/src/views/operation/CustomerReconciliation/detail/index.vue +++ b/src/views/operation/CustomerReconciliation/detail/index.vue @@ -381,8 +381,12 @@ height: calc(100vh - 366px); .ant-table-body { max-height: none !important; - .ant-table-expanded-row-fixed { - height: calc(100vh - 365px); + height: calc(100% - 50px) !important; + .ant-table-placeholder { + display: none; + .ant-table-expanded-row-fixed { + height: calc(100vh - 365px); + } } } } diff --git a/src/views/operation/CustomerReconciliation/detail/info/index.vue b/src/views/operation/CustomerReconciliation/detail/info/index.vue index 67cdbe13..c9508594 100644 --- a/src/views/operation/CustomerReconciliation/detail/info/index.vue +++ b/src/views/operation/CustomerReconciliation/detail/info/index.vue @@ -158,17 +158,49 @@ } }) if (ToRType) { - othercondition.push({ - FieldName: e, - FieldValue: data[e], - ConditionalType: 1, - }) + // 判断是数组 + if (Array.isArray(data[e])) { + othercondition.push( + { + FieldName: e, + FieldValue: data[e][0], + ConditionalType: 3, + }, + { + FieldName: e, + FieldValue: data[e][1], + ConditionalType: 5, + }, + ) + } else { + othercondition.push({ + FieldName: e, + FieldValue: data[e], + ConditionalType: 1, + }) + } } else { - condition.push({ - FieldName: e, - FieldValue: data[e], - ConditionalType: 1, - }) + // 判断是数组 + if (Array.isArray(data[e])) { + condition.push( + { + FieldName: e, + FieldValue: data[e][0], + ConditionalType: 3, + }, + { + FieldName: e, + FieldValue: data[e][1], + ConditionalType: 5, + }, + ) + } else { + condition.push({ + FieldName: e, + FieldValue: data[e], + ConditionalType: 1, + }) + } } } }) diff --git a/src/views/operation/CustomerReconciliation/detail/info/infoColumns.tsx b/src/views/operation/CustomerReconciliation/detail/info/infoColumns.tsx index eb3bbf8c..1c73dba0 100644 --- a/src/views/operation/CustomerReconciliation/detail/info/infoColumns.tsx +++ b/src/views/operation/CustomerReconciliation/detail/info/infoColumns.tsx @@ -7,14 +7,36 @@ import { GetFeeCodeSelectList, GetFeeCurrencySelectList, } from '/@/views/operation/CustomerReconciliation/api.js' +import { + GetClientStlModeSelectList, + GetVesselSelectList, + GetVoynoSelectList, + GetAgentCnClientList, + GetClientPortSelectList, +} from '/@/views/operation/seaexport/api/BookingLedger.js' +import { GetClientListByCode } from '/@/api/common' import { billTypeData } from '/@/views/operation/CustomerReconciliation/detail/detailColumns' -export const RQueryArr = ['currency'] +export const TFData = [ + { value: true, label: '是' }, + { value: false, label: '否' }, +] +export const RQueryArr = [ + 'customerId', + 'createTime', + 'billType', + 'isDebit', + 'stlName', + 'currency', + 'feeName', + 'forwarderId', + 'dischargePortId', + 'loadPortId', +] // 表单 export const schemas: FormSchema[] = [ - { field: 'mblno', component: 'Input', label: '主提单号', colProps: { span: 4 } }, { - label: '币别', - field: 'currency', + label: '费用对象', + field: 'customerId', component: 'ApiSelect', required: false, dynamicDisabled: false, @@ -23,14 +45,14 @@ export const schemas: FormSchema[] = [ return { api: () => { return new Promise((resolve) => { - GetFeeCurrencySelectList().then((res) => { - console.log(res, 111111111111111111111111) + GetClientListByCode().then((res) => { + console.log(res) resolve(res) }) }) }, immediate: false, - labelField: 'name', + labelField: 'shortName', valueField: 'codeName', resultField: 'data', filterOption: (input: string, option: any) => { @@ -39,39 +61,35 @@ export const schemas: FormSchema[] = [ } }, }, - // { - // label: '费用对象', - // field: 'customerId', - // component: 'ApiSelect', - // required: false, - // dynamicDisabled: false, - // colProps: { span: 4 }, - // componentProps: () => { - // return { - // api: () => { - // return new Promise((resolve) => { - // GetFeeCodeSelectList().then((res) => { - // res.data.forEach((item) => { - // item.label = item.code + '-' + item.name - // }) - // resolve(res) - // }) - // }) - // }, - // immediate: false, - // valueField: 'id', - // resultField: 'data', - // filterOption: (input: string, option: any) => { - // return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 - // }, - // } - // }, - // }, - // { field: 'field1', component: 'Input', label: '编号检索', colProps: { span: 4 } }, - // { field: 'field2', component: 'DatePicker', label: '从业务日期', colProps: { span: 4 } }, - // { field: 'field3', component: 'DatePicker', label: '到业务日期', colProps: { span: 3 } }, - // { field: 'field4', component: 'DatePicker', label: '从费用日期', colProps: { span: 3 } }, - // { field: 'field5', component: 'DatePicker', label: '到费用日期', colProps: { span: 3 } }, + { + field: 'customNo', + component: 'Input', + label: '编号检索', + dynamicDisabled: false, + colProps: { span: 4 }, + }, + { + field: 'etd', + label: '业务日期', + component: 'RangePicker', + required: false, + dynamicDisabled: false, + colProps: { span: 7 }, + componentProps: { + allowClear: true, + }, + }, + { + field: 'createTime', + label: '费用日期', + component: 'RangePicker', + required: false, + dynamicDisabled: false, + colProps: { span: 6 }, + componentProps: { + allowClear: true, + }, + }, { field: 'CZ', component: 'Button', @@ -89,52 +107,130 @@ export const schemas: FormSchema[] = [ } }, }, - // { - // field: 'billType', - // component: 'Select', - // componentProps: { - // options: billTypeData, - // }, - // label: '收付类型', - // colProps: { span: 2 }, - // }, - - // { field: 'field7', component: 'Select', label: 'FRT', colProps: { span: 2 } }, - // { field: 'field7', component: 'Select', label: '包含已到账', colProps: { span: 2 } }, - // { field: 'field7', component: 'Select', label: '是否开票', colProps: { span: 2 } }, - // { field: 'field7', component: 'Select', label: '是否垫付', colProps: { span: 2 } }, - // { field: 'field6', component: 'Select', label: '委托单位', colProps: { span: 3 } }, - // { - // label: '费用名称', - // field: 'field9', - // component: 'ApiSelect', - // required: false, - // dynamicDisabled: false, - // colProps: { span: 3 }, - - // componentProps: () => { - // return { - // api: () => { - // return new Promise((resolve) => { - // GetFeeCodeSelectList().then((res) => { - // res.data.forEach((item) => { - // item.label = item.code + '-' + item.name - // }) - // resolve(res) - // }) - // }) - // }, - // immediate: false, - // valueField: 'id', - // resultField: 'data', - // mode: 'multiple', - // filterOption: (input: string, option: any) => { - // return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 - // }, - // } - // }, - // }, - // { field: 'field9', component: 'Select', label: '费用范围', colProps: { span: 3 } }, + { + field: 'billType', + component: 'Select', + componentProps: { + options: billTypeData, + }, + label: '收付类型', + colProps: { span: 2 }, + }, + { + field: 'isDebit', + component: 'Select', + label: '是否对账', + dynamicDisabled: false, + colProps: { span: 2 }, + componentProps: { + options: TFData, + }, + }, + { + label: '结算方式', + field: 'stlName', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: () => { + return { + api: GetClientStlModeSelectList, + immediate: false, + labelField: 'stlName', + valueField: 'id', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + label: '币别', + field: 'currency', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 3 }, + componentProps: () => { + return { + api: GetFeeCurrencySelectList, + immediate: false, + labelField: 'name', + valueField: 'codeName', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + label: '费用名称', + field: 'feeName', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: () => { + return { + api: () => { + return new Promise((resolve) => { + GetFeeCodeSelectList().then((res) => { + res.data.forEach((item) => { + item.label = item.code + '-' + item.name + }) + resolve(res) + }) + }) + }, + immediate: false, + valueField: 'id', + resultField: 'data', + // mode: 'multiple', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + field: 'isSeaFreight', + component: 'Select', + label: '是否海运费', + dynamicDisabled: false, + colProps: { span: 3 }, + componentProps: ({ formModel }) => { + return { + options: TFData, + onchange: (e) => { + if (e) { + formModel.feeName = '海运费' + } + }, + } + }, + }, + { + label: '船名', + field: 'vessel', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 3 }, + componentProps: () => { + return { + api: GetVesselSelectList, + labelField: 'vesselName', + valueField: 'id', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, { field: 'CS', component: 'Button', @@ -152,15 +248,112 @@ export const schemas: FormSchema[] = [ } }, }, - // { field: 'field9', component: 'Select', label: '船名', colProps: { span: 4 } }, - // { field: 'field9', component: 'Input', label: '航次', colProps: { span: 4 } }, - // { field: 'field7', component: 'Select', label: '含海运费业务', colProps: { span: 2 } }, - // { field: 'field7', component: 'Switch', label: '记忆查询', colProps: { span: 2 } }, - // { field: 'field9', component: 'Select', label: '港口(国外)', colProps: { span: 3 } }, - // { field: 'field9', component: 'Select', label: '港口(国内)', colProps: { span: 3 } }, - // { field: 'field9', component: 'Select', label: '国外代理', colProps: { span: 3 } }, + + { + label: '航次', + field: 'voyno', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: () => { + return { + api: GetVoynoSelectList, + immediate: false, + labelField: 'voyNo', + valueField: 'id', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + label: '国外代理', + field: 'forwarderId', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: ({ formModel }) => { + return { + api: GetAgentCnClientList, + labelField: 'shortName', + valueField: 'id', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + onChange: (e, obj) => { + if (e) { + formModel.forwarder = obj.label + } else { + formModel.forwarder = '' + } + }, + } + }, + }, + { + label: '港口(国外)', + field: 'dischargePortId', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 3 }, + componentProps: () => { + return { + api: () => { + return new Promise((resolve) => { + GetClientPortSelectList().then((res) => { + res.data.forEach((item) => { + if (item.ediCode) item.cnName = item.ediCode + '/' + item.cnName + }) + resolve(res) + }) + }) + }, + immediate: false, + labelField: 'cnName', + valueField: 'id', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + label: '港口(国内)', + field: 'loadPortId', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: () => { + return { + api: () => { + return new Promise((resolve) => { + GetClientPortSelectList().then((res) => { + res.data.forEach((item) => { + if (item.ediCode) item.cnName = item.ediCode + '/' + item.cnName + }) + resolve(res) + }) + }) + }, + immediate: false, + labelField: 'cnName', + valueField: 'id', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, ] -//左列表 export const columnsL: BasicColumn[] = [ { title: '业务类型', dataIndex: 'businessTypeName', align: 'left' }, { title: '委托单位', dataIndex: 'customerName', align: 'left' }, diff --git a/src/views/operation/seaexport/detail/modules/operationArea.vue b/src/views/operation/seaexport/detail/modules/operationArea.vue index d7f4d558..d3000150 100644 --- a/src/views/operation/seaexport/detail/modules/operationArea.vue +++ b/src/views/operation/seaexport/detail/modules/operationArea.vue @@ -62,7 +62,7 @@ @visibleChange="handleVisibleChange" @confirm="openPreOrderFun" > - + + +
+ + + + + + + + + China + U.S.A + + + + + + + + + + + + China + U.S.A + + + + + + + China + U.S.A + + + + + +
+ +
+
+
+
+
+
+ + +
+
+ 发货人信息 +
+ + China + U.S.A + + + + 保存 + +
+
+
+
+ + + + + + + + + + + + + + + China + U.S.A + + + + + + + + + +
+
+
+ +
+
+ 收货人信息 +
+ + China + U.S.A + + + + 保存 + +
+ + + 复制通知人 + +
+
+ + + + + + + + + + + + + + + China + U.S.A + + + + + + + + + +
+
+
+ +
+
+ 通知人信息 +
+ + China + U.S.A + + + + 保存 + +
+ + + 复制收货人 + +
+
+ + + + + + + + + + + + + + + China + U.S.A + + + + + + + + + +
+
+
+ +
+
港口信息
+
+ + + + + China + U.S.A + + + + + + + + + + + + + China + U.S.A + + + + + + + + + + + + + China + U.S.A + + + + + + + + + +
+
+
+ +
+
货物信息
+
+
+ + + + +
+
+ + + + +
+
+ + + + + China + U.S.A + + + + + + + + + China + U.S.A + + + + + +
+ +
+
+
+ + + + C摄氏 + F华氏 + + + + + +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
备注信息
+
+ + + + + + + + +
+
+
+ +
+
集装箱信息
+
+ +
+ 新建 +
+ +
+ 复制新建 +
+ +
+ 删除 +
+
+ + + China + U.S.A + + +
+
+ + + +
+
+ +
+ +
+
+
+
+
+
+