|
|
|
@ -1,175 +1,98 @@
|
|
|
|
|
import { ref } from 'vue'
|
|
|
|
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
|
|
|
|
import { Tag } from 'ant-design-vue'
|
|
|
|
|
import { GetCtnSelectList, GetClientListByCode } from '/@/api/common'
|
|
|
|
|
import { GetDeptList } from '/@/views/operation/seaexport/api/BookingLedger'
|
|
|
|
|
import { useOptionsStore } from '/@/store/modules/options'
|
|
|
|
|
const optionsStore = useOptionsStore()
|
|
|
|
|
// 字典
|
|
|
|
|
import { getDictOption } from '/@/utils/dictUtil'
|
|
|
|
|
// 新旧箱数据
|
|
|
|
|
const usedStateList = [
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
value: '',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: 'USED',
|
|
|
|
|
value: 'USED',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: 'NEW',
|
|
|
|
|
value: 'NEW',
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
export const columns: BasicColumn[] = [
|
|
|
|
|
{
|
|
|
|
|
title: '箱号',
|
|
|
|
|
dataIndex: 'cntrno',
|
|
|
|
|
title: '系统业务号',
|
|
|
|
|
dataIndex: 'billno',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '箱型',
|
|
|
|
|
dataIndex: 'ctnall',
|
|
|
|
|
title: '执行状态',
|
|
|
|
|
dataIndex: 'billState',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
customRender: ({ text }) => {
|
|
|
|
|
if (text == 1000) {
|
|
|
|
|
return <Tag color="default">录入</Tag>
|
|
|
|
|
} else if (text == 1001) {
|
|
|
|
|
return <Tag color="processing">提交审核</Tag>
|
|
|
|
|
} else if (text == 10001) {
|
|
|
|
|
return <Tag color="error">驳回提交</Tag>
|
|
|
|
|
} else if (text == 1100) {
|
|
|
|
|
return <Tag color="success">审核通过</Tag>
|
|
|
|
|
} else {
|
|
|
|
|
return '-'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '序号',
|
|
|
|
|
dataIndex: 'index',
|
|
|
|
|
width: 50,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '箱状态',
|
|
|
|
|
dataIndex: 'ctnState',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '箱流转状态',
|
|
|
|
|
dataIndex: 'ctnFlowState',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '船名',
|
|
|
|
|
dataIndex: 'vessel',
|
|
|
|
|
title: '业务日期',
|
|
|
|
|
dataIndex: 'bsdate',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '航次',
|
|
|
|
|
dataIndex: 'voyno',
|
|
|
|
|
title: '租买箱客户',
|
|
|
|
|
dataIndex: 'rentCustomerName',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// title: '原箱主',
|
|
|
|
|
// dataIndex: 'OldContainerOwner',
|
|
|
|
|
// sorter: true,
|
|
|
|
|
// width: 200,
|
|
|
|
|
// },
|
|
|
|
|
{
|
|
|
|
|
title: '提单号',
|
|
|
|
|
dataIndex: 'mblno',
|
|
|
|
|
title: '箱业务',
|
|
|
|
|
dataIndex: 'ctnBizStateId',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '发生日期',
|
|
|
|
|
dataIndex: 'changeTime',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '空重箱',
|
|
|
|
|
dataIndex: 'isHeavy',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 80,
|
|
|
|
|
customRender: ({ text }) => {
|
|
|
|
|
if (text) {
|
|
|
|
|
return <Tag color="success">重箱</Tag>
|
|
|
|
|
if (text == 6) {
|
|
|
|
|
return '卖箱'
|
|
|
|
|
} else if (text == 1) {
|
|
|
|
|
return '租入退租'
|
|
|
|
|
} else if (text == 2) {
|
|
|
|
|
return '租出'
|
|
|
|
|
} else {
|
|
|
|
|
return <Tag color="error">空箱</Tag>
|
|
|
|
|
return '-'
|
|
|
|
|
}
|
|
|
|
|
return text
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '始发港',
|
|
|
|
|
dataIndex: 'portLoad',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '目的港',
|
|
|
|
|
dataIndex: 'portDelivery',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '预抵港',
|
|
|
|
|
dataIndex: 'portDischarge',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '码头或场站',
|
|
|
|
|
dataIndex: 'depot',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '关联合同号',
|
|
|
|
|
dataIndex: 'ctnReleaseNo',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '备注',
|
|
|
|
|
dataIndex: 'remark',
|
|
|
|
|
title: '全部箱号',
|
|
|
|
|
dataIndex: 'cntrnoAll',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '录入时间',
|
|
|
|
|
dataIndex: 'createTime',
|
|
|
|
|
title: '箱型',
|
|
|
|
|
dataIndex: 'ctntotal',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// title: '当前港口',
|
|
|
|
|
// dataIndex: 'port',
|
|
|
|
|
// sorter: true,
|
|
|
|
|
// width: 150,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: '变动来源',
|
|
|
|
|
// dataIndex: 'changeSource',
|
|
|
|
|
// sorter: true,
|
|
|
|
|
// width: 150,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '状态变动',
|
|
|
|
|
// dataIndex: 'ctnFlowState',
|
|
|
|
|
// sorter: true,
|
|
|
|
|
// width: 200,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: '新旧箱',
|
|
|
|
|
// dataIndex: 'usedState',
|
|
|
|
|
// sorter: true,
|
|
|
|
|
// width: 200,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: '箱状态',
|
|
|
|
|
// dataIndex: 'ctnState',
|
|
|
|
|
// sorter: true,
|
|
|
|
|
// width: 200,
|
|
|
|
|
// },
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
export const searchFormSchema: FormSchema[] = [
|
|
|
|
|
{
|
|
|
|
|
field: 'cntrno',
|
|
|
|
|
field: 'billState',
|
|
|
|
|
label: '执行状态',
|
|
|
|
|
component: 'Select',
|
|
|
|
|
colProps: { span: 4 },
|
|
|
|
|
defaultValue: 1001,
|
|
|
|
|
componentProps: {
|
|
|
|
|
options: [
|
|
|
|
|
{ label: '录入', value: 1000 },
|
|
|
|
|
{ label: '提交审核', value: 1001 },
|
|
|
|
|
{ label: '驳回提交', value: 10001 },
|
|
|
|
|
{ label: '审核通过', value: 1100 },
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'cntrnoall',
|
|
|
|
|
label: '箱号',
|
|
|
|
|
component: 'InputTextArea',
|
|
|
|
|
colProps: { span: 8 },
|
|
|
|
@ -179,600 +102,85 @@ export const searchFormSchema: FormSchema[] = [
|
|
|
|
|
rows: 2,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// field: 'changeTime',
|
|
|
|
|
// label: '状态时间',
|
|
|
|
|
// component: 'RangePicker',
|
|
|
|
|
// required: false,
|
|
|
|
|
// dynamicDisabled: false,
|
|
|
|
|
// colProps: { span: 4 },
|
|
|
|
|
// componentProps: {
|
|
|
|
|
// allowClear: true,
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// field: 'ctnBizState',
|
|
|
|
|
// label: '箱业务状态',
|
|
|
|
|
// component: 'ApiSelect',
|
|
|
|
|
// colProps: { span: 4 },
|
|
|
|
|
// defaultValue: '',
|
|
|
|
|
// componentProps: ({ formModel }) => {
|
|
|
|
|
// return {
|
|
|
|
|
// api: () => {
|
|
|
|
|
// return new Promise((resolve) => {
|
|
|
|
|
// getDictOption('CM_CtnBizState').then((res) => {
|
|
|
|
|
// resolve(res)
|
|
|
|
|
// })
|
|
|
|
|
// })
|
|
|
|
|
// },
|
|
|
|
|
// labelField: 'label',
|
|
|
|
|
// valueField: 'label',
|
|
|
|
|
// resultField: 'data',
|
|
|
|
|
// filterOption: (input: string, option: any) => {
|
|
|
|
|
// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
// },
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// field: 'changeSourceId',
|
|
|
|
|
// label: '变动来源',
|
|
|
|
|
// component: 'ApiSelect',
|
|
|
|
|
// colProps: { span: 4 },
|
|
|
|
|
// defaultValue: '',
|
|
|
|
|
// componentProps: ({ formModel }) => {
|
|
|
|
|
// return {
|
|
|
|
|
// api: () => {
|
|
|
|
|
// return new Promise((resolve) => {
|
|
|
|
|
// getDictOption('CM_ChangeSource').then((res) => {
|
|
|
|
|
// resolve(res)
|
|
|
|
|
// })
|
|
|
|
|
// })
|
|
|
|
|
// },
|
|
|
|
|
// labelField: 'label',
|
|
|
|
|
// valueField: 'value',
|
|
|
|
|
// resultField: 'data',
|
|
|
|
|
// filterOption: (input: string, option: any) => {
|
|
|
|
|
// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
// },
|
|
|
|
|
// onChange: (v, obj) => {},
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// field: 'etd',
|
|
|
|
|
// label: 'ETD',
|
|
|
|
|
// component: 'DatePicker',
|
|
|
|
|
// colProps: { span: 4 },
|
|
|
|
|
// defaultValue: '',
|
|
|
|
|
// componentProps: {
|
|
|
|
|
// showTime: true,
|
|
|
|
|
// style: 'width:100%',
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// field: 'Space',
|
|
|
|
|
// label: '',
|
|
|
|
|
// component: 'Space',
|
|
|
|
|
// colProps: { span: 4 },
|
|
|
|
|
// defaultValue: '',
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// field: 'eta',
|
|
|
|
|
// label: 'ETA',
|
|
|
|
|
// component: 'DatePicker',
|
|
|
|
|
// colProps: { span: 4 },
|
|
|
|
|
// defaultValue: '',
|
|
|
|
|
// componentProps: {
|
|
|
|
|
// showTime: true,
|
|
|
|
|
// style: 'width:100%',
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
]
|
|
|
|
|
export const formSchema: FormSchema[] = [
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'id',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'cntrno',
|
|
|
|
|
label: '集装箱号',
|
|
|
|
|
component: 'InputTextArea',
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
trigger: 'blur',
|
|
|
|
|
message: '请输入集装箱号',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
colProps: { span: 24 },
|
|
|
|
|
componentProps: {
|
|
|
|
|
validateOnRuleChange: false,
|
|
|
|
|
placeholder: '请输入,多个箱号请以“,”逗号间隔',
|
|
|
|
|
rows: 3,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'isOnlineId',
|
|
|
|
|
label: '是否上线',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
api: () => {
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
getDictOption('CM_IsOnlineEnum').then((res) => {
|
|
|
|
|
resolve(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'changeSourceId',
|
|
|
|
|
label: '变动来源',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
api: () => {
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
getDictOption('CM_ChangeSource').then((res) => {
|
|
|
|
|
resolve(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'usedState',
|
|
|
|
|
label: '新旧箱',
|
|
|
|
|
component: 'Select',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
componentProps: {
|
|
|
|
|
options: usedStateList,
|
|
|
|
|
allowClear: true,
|
|
|
|
|
showSearch: true,
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnOwner',
|
|
|
|
|
label: '箱主',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
required: false,
|
|
|
|
|
dynamicDisabled: false,
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
allowClear: true,
|
|
|
|
|
showSearch: true,
|
|
|
|
|
api: GetClientListByCode,
|
|
|
|
|
params: { code: 'leasing' },
|
|
|
|
|
labelField: 'pinYinCode',
|
|
|
|
|
showName: 'shortName',
|
|
|
|
|
valueField: 'shortName',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
immediate: true,
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnSourceId',
|
|
|
|
|
label: '箱来源',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
api: () => {
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
getDictOption('CM_CtnSource').then((res) => {
|
|
|
|
|
resolve(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'ctnBizState',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnBizStateId',
|
|
|
|
|
label: '箱业务状态',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
api: () => {
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
getDictOption('CM_CtnBizState').then((res) => {
|
|
|
|
|
resolve(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
formModel.ctnBizState = obj.label
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'billno',
|
|
|
|
|
label: '箱业务编号',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnReleaseNo',
|
|
|
|
|
label: '关联合同号',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
// required: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnStateId',
|
|
|
|
|
label: '箱状态',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
api: () => {
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
getDictOption('CM_CtnState').then((res) => {
|
|
|
|
|
resolve(res)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnBreakState',
|
|
|
|
|
label: '箱损坏',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'isHeavy',
|
|
|
|
|
label: '空重箱',
|
|
|
|
|
component: 'Switch',
|
|
|
|
|
defaultValue: false,
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
componentProps: {
|
|
|
|
|
checkedChildren: '重箱',
|
|
|
|
|
unCheckedChildren: '空箱',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'portLoadCode',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'portLoad',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'portLoadid',
|
|
|
|
|
label: '始发港',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
required: false,
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetClientPortSelectList'),
|
|
|
|
|
labelField: 'portName',
|
|
|
|
|
valueField: 'id',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
console.log(v, obj)
|
|
|
|
|
formModel.portLoad = obj?.label || ''
|
|
|
|
|
formModel.portLoadCode = obj?.ediCode || ''
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'portDeliveryCode',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'portDelivery',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'portDeliveryid',
|
|
|
|
|
label: '目的港',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
required: false,
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetClientPortSelectList'),
|
|
|
|
|
labelField: 'portName',
|
|
|
|
|
valueField: 'id',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
console.log(v, obj)
|
|
|
|
|
formModel.portDelivery = obj?.label || ''
|
|
|
|
|
formModel.portDeliveryCode = obj?.ediCode || ''
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'portDischargeCode',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'portDischarge',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'portDischargeid',
|
|
|
|
|
label: '预抵港',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
required: false,
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetClientPortSelectList'),
|
|
|
|
|
labelField: 'portName',
|
|
|
|
|
valueField: 'id',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
console.log(v, obj)
|
|
|
|
|
formModel.portDischarge = obj?.label || ''
|
|
|
|
|
formModel.portDischargeCode = obj?.ediCode || ''
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'port',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'portid',
|
|
|
|
|
label: '当前港口',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
required: false,
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetClientPortSelectList'),
|
|
|
|
|
labelField: 'portName',
|
|
|
|
|
valueField: 'id',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
formModel.port = obj?.label || ''
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
export const detailColumns: BasicColumn[] = [
|
|
|
|
|
{
|
|
|
|
|
field: 'depot',
|
|
|
|
|
label: '码头或场站',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
required: false,
|
|
|
|
|
componentProps: ({}) => {
|
|
|
|
|
return {
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetYardClientList'),
|
|
|
|
|
labelField: 'shortName',
|
|
|
|
|
valueField: 'shortName',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
title: '箱号',
|
|
|
|
|
dataIndex: 'cntrno',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'vessel',
|
|
|
|
|
label: '船名',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
title: '箱型',
|
|
|
|
|
dataIndex: 'ctnall',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 150,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'Voyno',
|
|
|
|
|
label: '航次',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
title: '合同号',
|
|
|
|
|
dataIndex: 'ctnReleaseNo',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'ctnall',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
title: '提箱日期',
|
|
|
|
|
dataIndex: 'pickupDate',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnCode',
|
|
|
|
|
label: '箱型',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
api: GetCtnSelectList,
|
|
|
|
|
labelField: 'ctnName',
|
|
|
|
|
valueField: 'ediCode',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
onChange: (e, obj) => {
|
|
|
|
|
if (e && obj) {
|
|
|
|
|
formModel.ctnall = obj.label
|
|
|
|
|
}
|
|
|
|
|
if (!e && !obj) {
|
|
|
|
|
formModel.ctnall = ''
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
title: '当前状态',
|
|
|
|
|
dataIndex: 'ctnFlowState',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'mblno',
|
|
|
|
|
label: '提单号',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
title: '箱生产日期',
|
|
|
|
|
dataIndex: 'productionDate',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '',
|
|
|
|
|
field: 'customerName',
|
|
|
|
|
component: 'Input',
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
show: false,
|
|
|
|
|
title: '箱皮重',
|
|
|
|
|
dataIndex: 'ctnWeight',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '业务委托单位',
|
|
|
|
|
field: 'customerId',
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
required: false,
|
|
|
|
|
dynamicDisabled: false,
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
return {
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetControllerClientList'),
|
|
|
|
|
labelField: 'shortName',
|
|
|
|
|
valueField: 'codeName',
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
},
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
formModel.customerName = obj?.label || ''
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
title: '原始价格',
|
|
|
|
|
dataIndex: 'ctnValue_Base',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'etd',
|
|
|
|
|
label: 'ETD',
|
|
|
|
|
component: 'DatePicker',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: {
|
|
|
|
|
showTime: true,
|
|
|
|
|
style: 'width:100%',
|
|
|
|
|
},
|
|
|
|
|
title: '购入成本',
|
|
|
|
|
dataIndex: 'ctnValue_BuyingPrice',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'eta',
|
|
|
|
|
label: 'ETA',
|
|
|
|
|
component: 'DatePicker',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: {
|
|
|
|
|
showTime: true,
|
|
|
|
|
style: 'width:100%',
|
|
|
|
|
},
|
|
|
|
|
title: '卖出价格',
|
|
|
|
|
dataIndex: 'ctnValue_SellPrice',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'changeTime',
|
|
|
|
|
label: '状态时间',
|
|
|
|
|
component: 'DatePicker',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
componentProps: {
|
|
|
|
|
showTime: true,
|
|
|
|
|
style: 'width:100%',
|
|
|
|
|
},
|
|
|
|
|
title: '提箱港口',
|
|
|
|
|
dataIndex: 'pickupPort',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnWeight',
|
|
|
|
|
label: '箱皮重',
|
|
|
|
|
component: 'InputNumber',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
title: '当前港口',
|
|
|
|
|
dataIndex: 'port',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'ctnValue_Base',
|
|
|
|
|
label: '箱初期成本',
|
|
|
|
|
component: 'InputNumber',
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
title: '备注',
|
|
|
|
|
dataIndex: 'remark',
|
|
|
|
|
sorter: true,
|
|
|
|
|
width: 200,
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|