diff --git a/src/views/ContainerManagement/OfflineAudit/api.ts b/src/views/ContainerManagement/OfflineAudit/api.ts index 5d142e9c..42704b37 100644 --- a/src/views/ContainerManagement/OfflineAudit/api.ts +++ b/src/views/ContainerManagement/OfflineAudit/api.ts @@ -1,97 +1,39 @@ -// @ts-ignore import { request } from '/@/utils/request' import { DataResult, PageRequest } from '/@/api/model/baseModel' enum Api { - list = '/containerManagementApi/CM_State_Change/GetCM_State_ChangeList', - edit = '/containerManagementApi/CM_State_Change/EditCM_State_Change', - multiEdit = '/containerManagementApi/CM_State_Change/CM_State_Change_Multi', - Changeinfo = '/containerManagementApi/CM_State_Change/GetCM_State_Change', - Changedel = '/containerManagementApi/CM_State_Change/DeleteCM_State_Change', - - info = '/containerManagementApi/CM_CurrentState/GetCM_CurrentStateInfo', - del = '/mainApi/CodeCtn/BatchDelCodeCtn', - BasicsList = '/mainApi/CodeCtn/GetBasicsCodeCtnList', - ExistList = '/mainApi/CodeCtn/GetExistCodeCtnList', - Import = '/mainApi/CodeCtn/ImportCodeCtn', + list = '/containerManagementApi/VW_CM_OfflineAudit/GetCM_OfflineAuditList', + confirm = '/containerManagementApi/VW_CM_OfflineAudit/CM_OfflineAudit_Confirm', + cancel = '/containerManagementApi/VW_CM_OfflineAudit/CM_OfflineAudit_Cancel', + detailList = '/containerManagementApi/CM_SellCtn_Detail/GetCM_SellCtn_DetailList', } // 列表 (Auth) -export function ApiChangeList(data: PageRequest) { +export function ApiList(data: PageRequest) { return request({ url: Api.list, method: 'post', data, }) } - -// 批量编辑状态 (Auth) -export function ApiMultiEdit(data: PageRequest) { +// 卖箱_明细 列表 (Auth) +export function ApiDetailList(data: PageRequest) { return request({ - url: Api.multiEdit, + url: Api.detailList, method: 'post', data, }) } - -// 编辑 (Auth) -export function ApiEdit(data: PageRequest) { +// 下线审批_确认 (Auth) +export function ApiConfirm(data: PageRequest) { return request({ - url: Api.edit, + url: Api.confirm, method: 'post', data, }) } -// 详情 (Auth) -export function ApiChangeInfo(query) { +// 下线审批_取消 (Auth) +export function ApiCancel(data: PageRequest) { return request({ - url: Api.Changeinfo, - method: 'get', - params: query, - }) -} -// 详情 (Auth) -export function ApiInfo(query) { - return request({ - url: Api.info, - method: 'get', - params: query, - }) -} - -// 批量删除 (Auth) -export function ApiChangeDel(data: PageRequest) { - return request({ - url: Api.Changedel, - method: 'post', - data, - }) -} -// 批量删除 (Auth) -export function ApiDel(data: PageRequest) { - return request({ - url: Api.del, - method: 'post', - data, - }) -} -// 获取商品类型列表-基础库 (Auth) -export function ApiBasicsList(data: PageRequest) { - return request({ - url: Api.BasicsList, - method: 'post', - data, - }) -} -// 获取当前租户已有的商品类型 (Auth) -export function ApiExistList() { - return request({ - url: Api.ExistList, - method: 'get', - }) -} -// 导入商品类型列表-基础库 (Auth) -export function ApiImport(data: PageRequest) { - return request({ - url: Api.Import, + url: Api.cancel, method: 'post', data, }) diff --git a/src/views/ContainerManagement/OfflineAudit/columns.tsx b/src/views/ContainerManagement/OfflineAudit/columns.tsx index 1f612976..6fb0a2b6 100644 --- a/src/views/ContainerManagement/OfflineAudit/columns.tsx +++ b/src/views/ContainerManagement/OfflineAudit/columns.tsx @@ -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 录入 + } else if (text == 1001) { + return 提交审核 + } else if (text == 10001) { + return 驳回提交 + } else if (text == 1100) { + return 审核通过 + } 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 重箱 + if (text == 6) { + return '卖箱' + } else if (text == 1) { + return '租入退租' + } else if (text == 2) { + return '租出' } else { - return 空箱 + 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, }, ] diff --git a/src/views/ContainerManagement/OfflineAudit/index.vue b/src/views/ContainerManagement/OfflineAudit/index.vue index 675ada2c..b3e54d09 100644 --- a/src/views/ContainerManagement/OfflineAudit/index.vue +++ b/src/views/ContainerManagement/OfflineAudit/index.vue @@ -1,119 +1,159 @@ + diff --git a/src/views/operation/seaexport/index.vue b/src/views/operation/seaexport/index.vue index 9df20438..c7f32cd7 100644 --- a/src/views/operation/seaexport/index.vue +++ b/src/views/operation/seaexport/index.vue @@ -110,7 +110,8 @@