diff --git a/src/views/ContainerManagement/BuyCtn/TenantAuditStepModal.vue b/src/views/ContainerManagement/BuyCtn/TenantAuditStepModal.vue index baf03227..76094afb 100644 --- a/src/views/ContainerManagement/BuyCtn/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/BuyCtn/TenantAuditStepModal.vue @@ -362,10 +362,8 @@ fileId: dsFile.value.dsFileList.SelectId, } ApiDealExcel(ApiData).then((res) => { - list.value.splice(0) - res.data.forEach((item) => { - list.value.push(item) - }) + refresh() + notification.success({ message: res.message, duration: 3 }) }) } else { notification.warning({ message: '请先在电子文档中勾选一个文件。', duration: 3 }) diff --git a/src/views/ContainerManagement/CtnScrap/TenantAuditStepModal.vue b/src/views/ContainerManagement/CtnScrap/TenantAuditStepModal.vue index 19955fb4..5043e5dc 100644 --- a/src/views/ContainerManagement/CtnScrap/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/CtnScrap/TenantAuditStepModal.vue @@ -373,10 +373,8 @@ fileId: dsFile.value.dsFileList.SelectId, } ApiDealExcel(ApiData).then((res) => { - list.value.splice(0) - res.data.forEach((item) => { - list.value.push(item) - }) + refresh() + notification.success({ message: res.message, duration: 3 }) }) } else { notification.warning({ message: '请先在电子文档中勾选一个文件。', duration: 3 }) diff --git a/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue index a930422c..615c27dc 100644 --- a/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue @@ -375,10 +375,8 @@ fileId: dsFile.value.dsFileList.SelectId, } ApiDealExcel(ApiData).then((res) => { - list.value.splice(0) - res.data.forEach((item) => { - list.value.push(item) - }) + refresh() + notification.success({ message: res.message, duration: 3 }) }) } else { notification.warning({ message: '请先在电子文档中勾选一个文件。', duration: 3 }) diff --git a/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue index 8358de0a..c4de6aea 100644 --- a/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue @@ -362,10 +362,8 @@ fileId: dsFile.value.dsFileList.SelectId, } ApiDealExcel(ApiData).then((res) => { - list.value.splice(0) - res.data.forEach((item) => { - list.value.push(item) - }) + refresh() + notification.success({ message: res.message, duration: 3 }) }) } else { notification.warning({ message: '请先在电子文档中勾选一个文件。', duration: 3 }) diff --git a/src/views/ContainerManagement/RentOneWayIn/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentOneWayIn/TenantAuditStepModal.vue new file mode 100644 index 00000000..58da7664 --- /dev/null +++ b/src/views/ContainerManagement/RentOneWayIn/TenantAuditStepModal.vue @@ -0,0 +1,853 @@ + + + diff --git a/src/views/ContainerManagement/RentOneWayIn/api.ts b/src/views/ContainerManagement/RentOneWayIn/api.ts new file mode 100644 index 00000000..143454e4 --- /dev/null +++ b/src/views/ContainerManagement/RentOneWayIn/api.ts @@ -0,0 +1,110 @@ +// @ts-ignore +import { request } from '/@/utils/request' +import { DataResult, PageRequest } from '/@/api/model/baseModel' +enum Api { + list = '/containerManagementApi/CM_RentOneWay_In/GetCM_RentOneWay_InList', + edit = '/containerManagementApi/CM_RentOneWay_In/EditCM_RentOneWay_In', + info = '/containerManagementApi/CM_RentOneWay_In/GetCM_RentOneWay_In', + del = '/containerManagementApi/CM_RentOneWay_In/DeleteCM_RentOneWay_In', + + // listDetail = '/containerManagementApi/CM_RentOneWay_Detail/GetCM_RentOneWay_DetailList', + // editDetail = '/containerManagementApi/CM_RentOneWay_Detail/EditCM_RentOneWay_Detail', + delDetail = '/containerManagementApi/CM_RentOneWay_Detail/DeleteCM_RentOneWay_Detail', + + Confirm = '/containerManagementApi/CM_RentOneWay_In/CM_RentOneWay_In_Confirm', + Cancel = '/containerManagementApi/CM_RentOneWay_In/CM_RentOneWay_In_Cancel', + + // DetailView = '/containerManagementApi/CM_RentOut/CM_RentOut_NeedRent_View', + // AddCtn = '/containerManagementApi/CM_RentOneWay/CM_RentOneWay_AddCtn', +} +// 列表 (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, + }) +} + +// _确认 (Auth) +export function ApiConfirm(data: PageRequest) { + return request({ + url: Api.Confirm, + method: 'post', + data, + }) +} +// _取消 (Auth) +export function ApiCancel(data: PageRequest) { + return request({ + url: Api.Cancel, + method: 'post', + data, + }) +} + +// // 租箱租入明细视图 (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, +// }) +// } diff --git a/src/views/ContainerManagement/RentOneWayIn/columns.tsx b/src/views/ContainerManagement/RentOneWayIn/columns.tsx new file mode 100644 index 00000000..41c46b0c --- /dev/null +++ b/src/views/ContainerManagement/RentOneWayIn/columns.tsx @@ -0,0 +1,517 @@ +import { ref } from 'vue' +import moment from 'moment' +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 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: 'rentCustomerName', + 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: 'accdate', + // sorter: true, + // width: 200, + // }, + { + title: '备注', + dataIndex: 'remark', + sorter: true, + width: 200, + }, +] + +export const searchFormSchema: FormSchema[] = [ + { + field: 'billno', + label: '租箱业务号', + component: 'Input', + colProps: { span: 4 }, + }, + { + field: 'rentCustomerName', + 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: 'bsdate', + label: '业务日期', + component: 'DatePicker', + colProps: { span: 4 }, + defaultValue: '', + componentProps: { + allowClear: true, + valueFormat: 'YYYY-MM-DD 00:00:00', + style: 'width:100%', + }, + }, + { + field: 'accdate', + label: '会计期间', + component: 'MonthPicker', + colProps: { span: 4 }, + defaultValue: '', + componentProps: { + showTime: true, + allowClear: true, + valueFormat: 'YYYY-MM', + format: 'YYYY-MM', + }, + }, + // { + // 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: 103, + 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: 2, + // dynamicDisabled: ({ values }) => { + // return !!values.id + // }, + // componentProps: ({ formModel, formActionType }) => { + // 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 + // }, + // 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, + // dynamicDisabled: ({ values }) => { + // return !!values.id + // }, + // 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: 'rentCustomerId', + label: '租箱客户', + component: 'Input', + colProps: { span: 6 }, + show: false, + }, + { + field: 'rentCustomerName', + 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.rentCustomerId = obj.id + } + if (!e && !obj) { + formModel.rentCustomerId = '' + } + }, + } + }, + }, + { + field: 'bsdate', + label: '业务日期', + component: 'DatePicker', + colProps: { span: 6 }, + defaultValue: moment(), + componentProps: { + allowClear: true, + valueFormat: 'YYYY-MM-DD 00:00:00', + style: 'width:100%', + }, + }, + { + field: 'accdate', + label: '会计期间', + component: 'MonthPicker', + colProps: { span: 6 }, + defaultValue: moment(), + componentProps: { + showTime: true, + allowClear: true, + valueFormat: 'YYYY-MM', + format: 'YYYY-MM', + }, + }, + { + field: 'isBusinessLocking', + label: '业务锁定', + component: 'Switch', + defaultValue: false, + colProps: { span: 6 }, + componentProps: { + checkedChildren: '是', + unCheckedChildren: '否', + }, + dynamicDisabled: ({}) => { + return true + }, + }, + { + field: 'isFeeLocking', + label: '费用锁定', + component: 'Switch', + defaultValue: false, + colProps: { span: 6 }, + componentProps: { + checkedChildren: '是', + unCheckedChildren: '否', + }, + dynamicDisabled: ({}) => { + return true + }, + }, + { + field: 'remark', + label: '备注', + component: 'Input', + colProps: { span: 24 }, + }, +] + +export const formSearchBoxSchema: FormSchema[] = [ + { + field: 'rentCustomerName', + 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/RentOneWayIn/index.vue b/src/views/ContainerManagement/RentOneWayIn/index.vue new file mode 100644 index 00000000..2592f0ec --- /dev/null +++ b/src/views/ContainerManagement/RentOneWayIn/index.vue @@ -0,0 +1,169 @@ + + diff --git a/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue index 5126d116..7b46de3a 100644 --- a/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue @@ -393,10 +393,8 @@ fileId: dsFile.value.dsFileList.SelectId, } ApiDealExcel(ApiData).then((res) => { - list.value.splice(0) - res.data.forEach((item) => { - list.value.push(item) - }) + refresh() + notification.success({ message: res.message, duration: 3 }) }) } else { notification.warning({ message: '请先在电子文档中勾选一个文件。', duration: 3 }) diff --git a/src/views/ContainerManagement/SellCtn/TenantAuditStepModal.vue b/src/views/ContainerManagement/SellCtn/TenantAuditStepModal.vue index 6835fb15..9a6e6615 100644 --- a/src/views/ContainerManagement/SellCtn/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/SellCtn/TenantAuditStepModal.vue @@ -373,10 +373,8 @@ fileId: dsFile.value.dsFileList.SelectId, } ApiDealExcel(ApiData).then((res) => { - list.value.splice(0) - res.data.forEach((item) => { - list.value.push(item) - }) + refresh() + notification.success({ message: res.message, duration: 3 }) }) } else { notification.warning({ message: '请先在电子文档中勾选一个文件。', duration: 3 }) diff --git a/src/views/ContainerManagement/Templat/TenantAuditStepModal.vue b/src/views/ContainerManagement/Templat/TenantAuditStepModal.vue index 45a72684..84f74372 100644 --- a/src/views/ContainerManagement/Templat/TenantAuditStepModal.vue +++ b/src/views/ContainerManagement/Templat/TenantAuditStepModal.vue @@ -93,7 +93,7 @@ const { notification } = useMessage() // 声明Emits const emit = defineEmits(['success', 'register']) - const select = ref([]) + const isUpdate = ref(true) const loading = ref(false) const rowId = ref() const { createMessage } = useMessage() @@ -106,14 +106,23 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { resetFields() setModalProps({ confirmLoading: false, loading: true }) - select.value = data.select - if (select.value.length) { - console.log(select.value) - let cntrno = '' - select.value.forEach((item: any) => { - cntrno = cntrno ? `${cntrno},${item.cntrno}` : item.cntrno - }) - setFieldsValue({ cntrno }) + isUpdate.value = !!data?.isUpdate + list.value.splice(0) + if (unref(isUpdate)) { + rowId.value = data.record.id + const res: any = await ApiInfo({ id: unref(rowId) }) + if (res.succeeded) { + setFieldsValue({ + ...res.data, + }) + allCheck.value = false + someCheck.value = false + res.data.bodyList.forEach((item) => { + list.value.push({ ...item, selected: false }) + }) + } + } else { + setFieldsValue({ permissionIdentity: unref(2) }) } setModalProps({ loading: false }) }) @@ -123,15 +132,19 @@ const values = await validate() setModalProps({ confirmLoading: true, loading: true }) values.bodyList = list.value - const res: API.DataResult = await ApiEdit(values) + const res: any = await ApiEdit(values) if (res.succeeded) { createMessage.success(res.message) emit('success') //刷新页面 if (!exit) { - rowId.value = res.data - select.value = [] - await refresh() + if (unref(isUpdate)) { + await refresh() + } else { + rowId.value = res.data + isUpdate.value = true + await refresh() + } } } else { createMessage.error(res.message) @@ -144,11 +157,17 @@ } } async function refresh() { - const res: API.DataResult = await ApiInfo({ id: unref(rowId) }) + list.value.splice(0) + const res: any = await ApiInfo({ id: unref(rowId) }) if (res.succeeded) { - await setFieldsValue({ + setFieldsValue({ ...res.data, }) + allCheck.value = false + someCheck.value = false + res.data.bodyList.forEach((item) => { + list.value.push({ ...item, selected: false }) + }) } } // ------------------------ @@ -292,7 +311,7 @@ }, } function TableAdd() { - list.value.push({ selected: false }) + list.value.push({ pid: rowId.value ? rowId.value : '', selected: false }) } function FnClickDel() { let ApiData: any = { ids: [] } diff --git a/src/views/ContainerManagement/Templat/index.vue b/src/views/ContainerManagement/Templat/index.vue index beb358e4..a777ccb5 100644 --- a/src/views/ContainerManagement/Templat/index.vue +++ b/src/views/ContainerManagement/Templat/index.vue @@ -1,6 +1,6 @@