diff --git a/src/views/ContainerManagement/CurrentState/columns.tsx b/src/views/ContainerManagement/CurrentState/columns.tsx index 9f813d3d..a1df805c 100644 --- a/src/views/ContainerManagement/CurrentState/columns.tsx +++ b/src/views/ContainerManagement/CurrentState/columns.tsx @@ -123,8 +123,8 @@ export const columns: BasicColumn[] = [ width: 150, }, { - title: '运输工具', - dataIndex: 'vehicleName', + title: '船名航次', + dataIndex: 'vesselVoyno', sorter: true, width: 200, }, @@ -636,8 +636,8 @@ export const formSchema: FormSchema[] = [ }, }, { - field: 'vehicleName', - label: '运输工具', + field: 'vesselVoyno', + label: '船名航次', component: 'Input', colProps: { span: 6 }, }, diff --git a/src/views/ContainerManagement/CustFeeDui/TenantAuditStepModal.vue b/src/views/ContainerManagement/CustFeeDui/TenantAuditStepModal.vue new file mode 100644 index 00000000..83bd68f5 --- /dev/null +++ b/src/views/ContainerManagement/CustFeeDui/TenantAuditStepModal.vue @@ -0,0 +1,881 @@ + + + diff --git a/src/views/ContainerManagement/CustFeeDui/api.ts b/src/views/ContainerManagement/CustFeeDui/api.ts new file mode 100644 index 00000000..961999cf --- /dev/null +++ b/src/views/ContainerManagement/CustFeeDui/api.ts @@ -0,0 +1,127 @@ +// @ts-ignore +import { request } from '/@/utils/request' +import { DataResult, PageRequest } from '/@/api/model/baseModel' +enum Api { + list = '/containerManagementApi/CM_RentIn/GetCM_RentInList', + edit = '/containerManagementApi/CM_RentIn/EditCM_RentIn', + info = '/containerManagementApi/CM_RentIn/GetCM_RentIn', + del = '/containerManagementApi/CM_RentIn/DeleteCM_RentIn', + + listDetail = '/containerManagementApi/CM_RentIn_Detail/GetCM_RentIn_DetailList', + editDetail = '/containerManagementApi/CM_RentIn_Detail/EditCM_RentIn_Detail', + delDetail = '/containerManagementApi/CM_RentIn_Detail/DeleteCM_RentIn_Detail', + + Confirm = '/containerManagementApi/CM_RentIn/CM_RentIn_Confirm', + Cancel = '/containerManagementApi/CM_RentIn/CM_RentIn_Cancel', + MakeFee = '/containerManagementApi/CM_RentIn/CM_RentIn_MakeFee', + + DetailView = '/containerManagementApi/CM_RentIn/CM_RentIn_Detail_View', + AddCtn = '/containerManagementApi/CM_RentIn/CM_RentIn_AddCtn', + +} +// 租箱租入明细视图 (Auth) +export function ApiDetailView(data: PageRequest) { + return request({ + url: Api.DetailView, + method: 'post', + data, + }) +} +// 租箱租入退租_添加 (Auth) +export function ApiAddCtn(data: PageRequest) { + return request({ + url: Api.AddCtn, + method: 'post', + data, + }) +} +// 租箱租入_生成费用 (Auth) +export function ApiMakeFee(data: PageRequest) { + return request({ + url: Api.MakeFee, + method: 'post', + headers:{ + 'Content-Type':'application/json-patch+json' + }, + data, + }) +} +// 租箱租入_确认 (Auth) +export function ApiConfirm(data: PageRequest) { + return request({ + url: Api.Confirm, + method: 'post', + headers:{ + 'Content-Type':'application/json-patch+json' + }, + data, + }) +} +// 租箱租入_取消 (Auth) +export function ApiCancel(data: PageRequest) { + return request({ + url: Api.Cancel, + method: 'post', + headers:{ + 'Content-Type':'application/json-patch+json' + }, + data, + }) +} +// 列表 (Auth) +export function ApiList(data: PageRequest) { + return request({ + url: Api.list, + method: 'post', + data, + }) +} +// 编辑 (Auth) +export function ApiEdit(data: PageRequest) { + return request({ + url: Api.edit, + method: 'post', + data, + }) +} +// 详情 (Auth) +export function ApiInfo(query) { + return request({ + url: Api.info, + method: 'get', + params: query, + }) +} +// 删除 (Auth) +export function ApiDel(data: PageRequest) { + return request({ + url: Api.del, + method: 'post', + data, + }) +} + +// 列表详情 (Auth) +export function ApiListDetail(data: PageRequest) { + return request({ + url: Api.listDetail, + method: 'post', + data, + }) +} +// // 编辑详情 (Auth) +// export function ApiEditDetail(data: PageRequest) { +// return request({ +// url: Api.editDetail, +// method: 'post', +// data, +// }) +// } +// 删除详情 (Auth) +export function ApiDelDetail(data: PageRequest) { + return request({ + url: Api.delDetail, + method: 'post', + data, + }) +} \ No newline at end of file diff --git a/src/views/ContainerManagement/CustFeeDui/columns.tsx b/src/views/ContainerManagement/CustFeeDui/columns.tsx new file mode 100644 index 00000000..fffb35e5 --- /dev/null +++ b/src/views/ContainerManagement/CustFeeDui/columns.tsx @@ -0,0 +1,488 @@ +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', + }, +] +// 业务类型字典 +const businessTypeDict = ref([]) +getDictOption('CM_BusinessType').then((res) => { + businessTypeDict.value = res +}) +// 租箱类型字典 +const rentTypeIdDict = ref([]) +getDictOption('CM_RentType').then((res) => { + rentTypeIdDict.value = res +}) + +export const columns: BasicColumn[] = [ + { + title: '租箱业务号', + dataIndex: 'billno', + sorter: true, + width: 150, + }, + { + title: '业务类型', + dataIndex: 'businessType', + sorter: true, + width: 150, + customRender: ({ text }) => { + let RData = '-' + businessTypeDict.value.forEach((item: any) => { + if (text == item.value) { + RData = item.label + } + }) + return RData + }, + }, + { + title: '租箱业务', + dataIndex: 'rentDirect', + sorter: true, + width: 150, + }, + { + title: '租箱类型', + dataIndex: 'rentTypeId', + sorter: true, + width: 150, + customRender: ({ text }) => { + let RData = '-' + rentTypeIdDict.value.forEach((item: any) => { + if (text == item.value) { + RData = item.label + } + }) + return RData + }, + }, + { + title: '业务状态', + dataIndex: 'billState', + sorter: true, + width: 200, + }, + { + title: '原箱主', + dataIndex: 'oldContainerOwner', + sorter: true, + width: 200, + }, + { + title: '业务日期', + dataIndex: 'bsdate', + sorter: true, + width: 200, + }, + { + title: '会计期间', + dataIndex: 'accdate', + sorter: true, + width: 200, + }, + { + title: '业务锁定', + dataIndex: 'isBusinessLocking', + sorter: true, + width: 200, + customRender: ({ text }) => { + if (text) { + return + } else { + return + } + return text + }, + }, + { + title: '费用锁定', + dataIndex: 'isFeeLocking', + sorter: true, + width: 200, + customRender: ({ text }) => { + if (text) { + return + } else { + return + } + return text + }, + }, + { + title: '备注', + dataIndex: 'remark', + sorter: true, + width: 200, + }, +] + +export const searchFormSchema: FormSchema[] = [ + { + field: 'billno', + label: '租箱业务号', + component: 'Input', + colProps: { span: 4 }, + }, + { + field: 'oldContainerOwner', + label: '原箱主', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: ({ formModel }) => { + return { + allowClear: true, + showSearch: true, + api: GetClientListByCode, + params: { code: 'leasing' }, + labelField: 'pinYinCode', + showName: 'shortName', + valueField: 'shortName', + resultField: 'data', + immediate: false, + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + + { + field: 'rentDirectId', + label: '租箱业务', + component: 'ApiSelect', + colProps: { span: 4 }, + componentProps: ({}) => { + return { + api: () => { + return new Promise((resolve) => { + getDictOption('CM_RentDirect').then((res) => { + let data: any = [] + res.forEach((item) => { + item.value = parseInt(item.value) + if (!item.label.indexOf('租入')) { + data.push(item) + } + }) + resolve(data) + }) + }) + }, + labelField: 'label', + valueField: 'value', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + field: 'etd', + label: 'ETD', + component: 'DatePicker', + colProps: { span: 4 }, + defaultValue: '', + componentProps: { + showTime: true, + style: 'width:100%', + }, + }, + { + 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: 'businessType', + label: '业务类型', + component: 'ApiSelect', + colProps: { span: 6 }, + defaultValue: 101, + dynamicDisabled: ({}) => { + return true + }, + componentProps: ({}) => { + return { + api: () => { + return new Promise((resolve) => { + getDictOption('CM_BusinessType').then((res) => { + res.forEach((item) => { + item.value = parseInt(item.value) + }) + resolve(res) + }) + }) + }, + labelField: 'label', + valueField: 'value', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + + { + field: 'rentDirectId', + label: '租箱业务', + component: 'ApiSelect', + colProps: { span: 6 }, + defaultValue: 0, + componentProps: ({ formModel, formActionType }) => { + return { + api: () => { + return new Promise((resolve) => { + getDictOption('CM_RentDirect').then((res) => { + let data: any = [] + res.forEach((item) => { + console.log(item) + item.value = parseInt(item.value) + if (!item.label.indexOf('租入')) { + data.push(item) + } + }) + resolve(data) + }) + }) + }, + labelField: 'label', + valueField: 'value', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + onChange: (e, obj) => { + formActionType ? formActionType.submit() : null + if (e && obj) { + formModel.rentDirect = obj.label + } else { + formModel.rentDirect = '' + } + }, + } + }, + }, + { + field: 'rentTypeId', + label: '租箱类型', + component: 'ApiSelect', + colProps: { span: 6 }, + defaultValue: 1, + componentProps: ({}) => { + return { + api: () => { + return new Promise((resolve) => { + getDictOption('CM_RentType').then((res) => { + res.forEach((item) => { + item.value = parseInt(item.value) + }) + resolve(res) + }) + }) + }, + labelField: 'label', + valueField: 'value', + resultField: 'data', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + field: 'billState', + label: '业务状态', + component: 'Input', + colProps: { span: 6 }, + dynamicDisabled: ({}) => { + return true + }, + }, + { + field: 'oldContainerOwnerId', + label: '原箱主', + component: 'Input', + colProps: { span: 6 }, + show: false, + }, + { + field: 'oldContainerOwner', + 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: false, + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + onChange: (e, obj) => { + if (e && obj) { + formModel.oldContainerOwnerId = obj.id + } + if (!e && !obj) { + formModel.oldContainerOwnerId = '' + } + }, + } + }, + }, + { + field: 'bsdate', + label: '业务日期', + component: 'DatePicker', + colProps: { span: 6 }, + defaultValue: '', + componentProps: { + allowClear: true, + valueFormat: 'YYYY-MM-DD 00:00:00', + style: 'width:100%', + }, + }, + { + field: 'accdate', + label: '会计期间', + component: 'MonthPicker', + colProps: { span: 6 }, + defaultValue: '', + componentProps: { + showTime: true, + allowClear: true, + valueFormat: 'YYYY-MM', + format: 'YYYY-MM', + }, + }, + { + field: 'isBusinessLocking', + label: '业务锁定', + component: 'Switch', + defaultValue: false, + colProps: { span: 6 }, + componentProps: { + checkedChildren: '是', + unCheckedChildren: '否', + }, + }, + { + field: 'isFeeLocking', + label: '费用锁定', + component: 'Switch', + defaultValue: false, + colProps: { span: 6 }, + componentProps: { + checkedChildren: '是', + unCheckedChildren: '否', + }, + }, + { + field: 'remark', + label: '备注', + component: 'Input', + colProps: { span: 24 }, + }, +] + +export const formSearchBoxSchema: FormSchema[] = [ + { + field: 'oldContainerOwner', + 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: false, + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + field: 'ctnall', + label: '箱型', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 6 }, + componentProps: () => { + return { + allowClear: true, + showSearch: true, + api: GetCtnSelectList, + params: { code: 'leasing' }, + labelField: 'ctnName', + showName: 'ctnName', + valueField: 'ctnName', + resultField: 'data', + immediate: false, + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + } + }, + }, + { + field: 'cntrno', + label: '箱号', + component: 'Input', + colProps: { span: 10 }, + }, +] diff --git a/src/views/ContainerManagement/CustFeeDui/index.vue b/src/views/ContainerManagement/CustFeeDui/index.vue new file mode 100644 index 00000000..b41a886b --- /dev/null +++ b/src/views/ContainerManagement/CustFeeDui/index.vue @@ -0,0 +1,153 @@ + + diff --git a/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue index c5e8e2a1..5b51db29 100644 --- a/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue @@ -28,7 +28,7 @@ - + 保存 @@ -50,6 +50,15 @@ +
@@ -105,6 +114,24 @@