diff --git a/src/api/wms/relegateRecordDetail/index.ts b/src/api/wms/relegateRecordDetail/index.ts
new file mode 100644
index 000000000..3127b99cf
--- /dev/null
+++ b/src/api/wms/relegateRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface RelegateRecordDetailVO {
+ id: number
+ masterId: number
+ itemCode: string
+ downItemCode: string
+ businessType: string
+ uom: string
+ qty: number
+ inventoryStatus: string
+ fromBatch: string
+ fromPackingNumber: string
+ fromLocationCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toPackingNumber: string
+ toBatch: string
+ toLocationCode: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ number: string
+ available: string
+ remark: string
+ departmentCode: string
+ siteId: number
+ extraProperties: string
+ status: string
+ concurrencyStamp: number
+ serialNumber: string
+ ruleUserId: number
+}
+
+// 查询物料降级记录子列表
+export const getRelegateRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-record-detail/page`, params })
+ }
+}
+
+// 查询物料降级记录子详情
+export const getRelegateRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-record-detail/get?id=` + id })
+}
+
+// 新增物料降级记录子
+export const createRelegateRecordDetail = async (data: RelegateRecordDetailVO) => {
+ return await request.post({ url: `/wms/relegate-record-detail/create`, data })
+}
+
+// 修改物料降级记录子
+export const updateRelegateRecordDetail = async (data: RelegateRecordDetailVO) => {
+ return await request.put({ url: `/wms/relegate-record-detail/update`, data })
+}
+
+// 删除物料降级记录子
+export const deleteRelegateRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-record-detail/delete?id=` + id })
+}
+
+// 导出物料降级记录子 Excel
+export const exportRelegateRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/relegate-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRecordMain/index.ts b/src/api/wms/relegateRecordMain/index.ts
new file mode 100644
index 000000000..78d63d873
--- /dev/null
+++ b/src/api/wms/relegateRecordMain/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface RelegateRecordMainVO {
+ id: number
+ requestNumber: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询物料降级记录主列表
+export const getRelegateRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-record-main/page`, params })
+ }
+}
+
+// 查询物料降级记录主详情
+export const getRelegateRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-record-main/get?id=` + id })
+}
+
+// 新增物料降级记录主
+export const createRelegateRecordMain = async (data: RelegateRecordMainVO) => {
+ return await request.post({ url: `/wms/relegate-record-main/create`, data })
+}
+
+// 修改物料降级记录主
+export const updateRelegateRecordMain = async (data: RelegateRecordMainVO) => {
+ return await request.put({ url: `/wms/relegate-record-main/update`, data })
+}
+
+// 删除物料降级记录主
+export const deleteRelegateRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-record-main/delete?id=` + id })
+}
+
+// 导出物料降级记录主 Excel
+export const exportRelegateRecordMain = async (params) => {
+ return await request.download({ url: `/wms/relegate-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRequestMain/index.ts b/src/api/wms/relegateRequestMain/index.ts
index 1b3ca3018..03e02454a 100644
--- a/src/api/wms/relegateRequestMain/index.ts
+++ b/src/api/wms/relegateRequestMain/index.ts
@@ -65,4 +65,34 @@ export const exportRelegateRequestMain = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/relegate-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/handle?id=' + id })
}
\ No newline at end of file
diff --git a/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/index.vue b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/index.vue
new file mode 100644
index 000000000..4860432a5
--- /dev/null
+++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/relegateRecordMain.data.ts b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/relegateRecordMain.data.ts
new file mode 100644
index 000000000..bca43b73f
--- /dev/null
+++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/relegateRecordMain.data.ts
@@ -0,0 +1,204 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RelegateRecordMainRules = reactive({
+ departmentCode: [required],
+ interfaceType: [required],
+ number: [required],
+ businessType: [required],
+})
+
+export const RelegateRecordMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '申请单号',
+ field: 'requestNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '执行时间',
+ field: 'executeTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '生效日期',
+ field: 'activeDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '申请时间',
+ field: 'requestTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '截止时间',
+ field: 'dueTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '用户组',
+ field: 'userGroupCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '接口类型',
+ field: 'interfaceType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '代码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '业务类型',
+ field: 'businessType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue b/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
index 36313533a..4e313c902 100644
--- a/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
+++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
@@ -239,6 +239,12 @@ const butttondata = (row, $index) => {
return []
}
return [
+ defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:relegate-request-main:close'}), // 关闭
+ defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:relegate-request-main:reAdd'}), //重新添加
+ defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:relegate-request-main:submit'}), // 提交审批
+ defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:relegate-request-main:refused'}), // 驳回
+ defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:relegate-request-main:agree'}), // 审批通过
+ defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:relegate-request-main:handle'}), // 处理
defaultButtons.mainListEditBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'wms:relegate-request-main:update' }), // 编辑
defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:relegate-request-main:delete' }), // 删除
]
diff --git a/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
index 5f3724f1b..be42e4a99 100644
--- a/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
+++ b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
@@ -29,7 +29,7 @@
v-model:sort="tableObject.sort"
>
-
+
{{ row.number }}