diff --git a/src/api/wms/receivedCalendar/index.ts b/src/api/wms/receivedCalendar/index.ts
new file mode 100644
index 000000000..1db1a2507
--- /dev/null
+++ b/src/api/wms/receivedCalendar/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface ReceivedCalendarVO {
+ id: number
+ receivedNumber: string
+ calendarDate: Date
+ shift: string
+}
+
+// 查询受入日历列表
+export const getReceivedCalendarPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/basic/received-calendar/senior', data })
+ } else {
+ return await request.get({ url: `/basic/received-calendar/page`, params })
+ }
+}
+
+// 查询受入日历详情
+export const getReceivedCalendar = async (id: number) => {
+ return await request.get({ url: `/basic/received-calendar/get?id=` + id })
+}
+
+// 新增受入日历
+export const createReceivedCalendar = async (data: ReceivedCalendarVO) => {
+ return await request.post({ url: `/basic/received-calendar/create`, data })
+}
+
+// 修改受入日历
+export const updateReceivedCalendar = async (data: ReceivedCalendarVO) => {
+ return await request.put({ url: `/basic/received-calendar/update`, data })
+}
+
+// 删除受入日历
+export const deleteReceivedCalendar = async (id: number) => {
+ return await request.delete({ url: `/basic/received-calendar/delete?id=` + id })
+}
+
+// 导出受入日历 Excel
+export const exportReceivedCalendar = async (params) => {
+ return await request.download({ url: `/basic/received-calendar/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/basic/received-calendar/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierDeliDetails/index.ts b/src/api/wms/supplierDeliDetails/index.ts
new file mode 100644
index 000000000..f8ea388da
--- /dev/null
+++ b/src/api/wms/supplierDeliDetails/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+export interface SupplierDeliDetailsVO {
+ id: number
+ supplierCode: string
+ shiftDeliDate: Date
+ shift: string
+ receivedNumber: string
+ deli: number
+}
+
+// 查询供应商送货便次明细列表
+export const getSupplierDeliDetailsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/basic/supplier-deli-details/senior', data })
+ } else {
+ return await request.get({ url: `/basic/supplier-deli-details/page`, params })
+ }
+}
+
+// 查询供应商送货便次明细详情
+export const getSupplierDeliDetails = async (id: number) => {
+ return await request.get({ url: `/basic/supplier-deli-details/get?id=` + id })
+}
+
+// 新增供应商送货便次明细
+export const createSupplierDeliDetails = async (data: SupplierDeliDetailsVO) => {
+ return await request.post({ url: `/basic/supplier-deli-details/create`, data })
+}
+
+// 修改供应商送货便次明细
+export const updateSupplierDeliDetails = async (data: SupplierDeliDetailsVO) => {
+ return await request.put({ url: `/basic/supplier-deli-details/update`, data })
+}
+
+// 删除供应商送货便次明细
+export const deleteSupplierDeliDetails = async (id: number) => {
+ return await request.delete({ url: `/basic/supplier-deli-details/delete?id=` + id })
+}
+
+// 导出供应商送货便次明细 Excel
+export const exportSupplierDeliDetails = async (params) => {
+ return await request.download({ url: `/basic/supplier-deli-details/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/basic/supplier-deli-details/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierShiftDeli/index.ts b/src/api/wms/supplierShiftDeli/index.ts
new file mode 100644
index 000000000..bc6a11fd4
--- /dev/null
+++ b/src/api/wms/supplierShiftDeli/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface SupplierShiftDeliVO {
+ id: number
+ supplierCode: string
+ shiftDeliDate: Date
+ shift: string
+ deli: number
+}
+
+// 查询供应商班次便次列表
+export const getSupplierShiftDeliPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/basic/supplier-shift-deli/senior', data })
+ } else {
+ return await request.get({ url: `/basic/supplier-shift-deli/page`, params })
+ }
+}
+
+// 查询供应商班次便次详情
+export const getSupplierShiftDeli = async (id: number) => {
+ return await request.get({ url: `/basic/supplier-shift-deli/get?id=` + id })
+}
+
+// 新增供应商班次便次
+export const createSupplierShiftDeli = async (data: SupplierShiftDeliVO) => {
+ return await request.post({ url: `/basic/supplier-shift-deli/create`, data })
+}
+
+// 修改供应商班次便次
+export const updateSupplierShiftDeli = async (data: SupplierShiftDeliVO) => {
+ return await request.put({ url: `/basic/supplier-shift-deli/update`, data })
+}
+
+// 删除供应商班次便次
+export const deleteSupplierShiftDeli = async (id: number) => {
+ return await request.delete({ url: `/basic/supplier-shift-deli/delete?id=` + id })
+}
+
+// 导出供应商班次便次 Excel
+export const exportSupplierShiftDeli = async (params) => {
+ return await request.download({ url: `/basic/supplier-shift-deli/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/basic/supplier-shift-deli/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/utils/dict.ts b/src/utils/dict.ts
index 280a64d04..55e6d05a3 100644
--- a/src/utils/dict.ts
+++ b/src/utils/dict.ts
@@ -422,6 +422,7 @@ export enum DICT_TYPE {
CLASS_ITEM = 'class_item', //顺引班组项
DUTY = 'duty', //责任
DUTY_DETAILS ="duty_details",//责任明细字典
+ SHIFT = "shift",// 班次
}
diff --git a/src/views/wms/basicDataManage/supplierManage/receivedCalendar/index.vue b/src/views/wms/basicDataManage/supplierManage/receivedCalendar/index.vue
new file mode 100644
index 000000000..7dcfac71c
--- /dev/null
+++ b/src/views/wms/basicDataManage/supplierManage/receivedCalendar/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/basicDataManage/supplierManage/receivedCalendar/receivedCalendar.data.ts b/src/views/wms/basicDataManage/supplierManage/receivedCalendar/receivedCalendar.data.ts
new file mode 100644
index 000000000..30269a6b6
--- /dev/null
+++ b/src/views/wms/basicDataManage/supplierManage/receivedCalendar/receivedCalendar.data.ts
@@ -0,0 +1,70 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ReceivedCalendarRules = reactive({
+ receivedNumber: [required],
+ calendarDate: [required],
+})
+
+export const ReceivedCalendar = useCrudSchemas(reactive([
+ {
+ label: '受入号',
+ field: 'receivedNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '日期',
+ field: 'calendarDate',
+ 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: 'shift',
+ 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: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/wms/basicDataManage/supplierManage/supplierDeliDetails/index.vue b/src/views/wms/basicDataManage/supplierManage/supplierDeliDetails/index.vue
new file mode 100644
index 000000000..2b503e561
--- /dev/null
+++ b/src/views/wms/basicDataManage/supplierManage/supplierDeliDetails/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/basicDataManage/supplierManage/supplierDeliDetails/supplierDeliDetails.data.ts b/src/views/wms/basicDataManage/supplierManage/supplierDeliDetails/supplierDeliDetails.data.ts
new file mode 100644
index 000000000..e98f8e3bd
--- /dev/null
+++ b/src/views/wms/basicDataManage/supplierManage/supplierDeliDetails/supplierDeliDetails.data.ts
@@ -0,0 +1,113 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const SupplierDeliDetailsRules = reactive({
+ supplierCode: [required],
+ shiftDeliDate: [required],
+ shift: [required],
+ receivedNumber: [required],
+ deli: [required],
+})
+
+export const SupplierDeliDetails = useCrudSchemas(reactive([
+ {
+ label: '供应商编码',
+ field: 'supplierCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '供应商名称',
+ field: 'supplierName',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '日期',
+ field: 'shiftDeliDate',
+ 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: 'shift',
+ sort: 'custom',
+ isSearch: true,
+ },
+ // {
+ // label: '受入号',
+ // field: 'receivedNumber',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '便次数',
+ field: 'deli',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0,
+ componentProps: {
+ precision: 0,
+ min:0
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ isForm: false,
+ formatter: dateFormatter,
+ detail: {
+ dateFormat : 'YYYY-MM-DD HH:mm:ss'
+ },
+ table: {
+ width: 180
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ style: {width:'100%'},
+ type: 'datetime',
+ dateFormat: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'x',
+ }
+ }
+ },
+ {
+ label: '创建者',
+ field: 'creator',
+ isForm: false,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/wms/basicDataManage/supplierManage/supplierShiftDeli/index.vue b/src/views/wms/basicDataManage/supplierManage/supplierShiftDeli/index.vue
new file mode 100644
index 000000000..519fdbd0a
--- /dev/null
+++ b/src/views/wms/basicDataManage/supplierManage/supplierShiftDeli/index.vue
@@ -0,0 +1,247 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/basicDataManage/supplierManage/supplierShiftDeli/supplierShiftDeli.data.ts b/src/views/wms/basicDataManage/supplierManage/supplierShiftDeli/supplierShiftDeli.data.ts
new file mode 100644
index 000000000..6e32ba765
--- /dev/null
+++ b/src/views/wms/basicDataManage/supplierManage/supplierShiftDeli/supplierShiftDeli.data.ts
@@ -0,0 +1,163 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import * as SupplierApi from '@/api/wms/supplier'
+import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data'
+import { dateFormatter, dateFormatterYM } from '@/utils/formatTime'
+
+// 表单校验
+export const SupplierShiftDeliRules = reactive({
+ supplierCode: [required],
+ shiftDeliDate: [required],
+ shift: [required],
+ deli: [required]
+})
+
+export const SupplierShiftDeli = useCrudSchemas(
+ reactive([
+ {
+ label: '供应商代码',
+ field: 'supplierCode',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 150,
+ fixed: 'left'
+ },
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ enterSearch: true,
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择供应商代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '供应商信息', // 查询弹窗标题
+ searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类
+ searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ],
+ verificationParams: [
+ {
+ key: 'code',
+ action: '==',
+ value: '',
+ isMainValue: false,
+ isSearch: true,
+ isFormModel: true
+ }
+ ] // 失去焦点校验参数
+ }
+ }
+ },
+ {
+ label: '供应商名称',
+ field: 'supplierName',
+ isForm: true,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ table: {
+ width: 180
+ }
+ },
+ {
+ label: '年月',
+ field: 'shiftDeliDate',
+ sort: 'custom',
+ formatter: dateFormatterYM,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM',
+ type: 'monthrange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ detail: {
+ dateFormat: 'YYYY-MM'
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'monthrange',
+ valueFormat: 'YYYY-MM'
+ }
+ }
+ },
+ {
+ label: '班次',
+ field: 'shift',
+ dictType: DICT_TYPE.SHIFT,
+ dictClass: 'string',
+ isTable: true,
+ isDetail: true,
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ isTableForm: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '便次数',
+ field: 'deli',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0,
+ componentProps: {
+ precision: 0,
+ min:0
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ isForm: false,
+ formatter: dateFormatter,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ },
+ table: {
+ width: 180
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ style: { width: '100%' },
+ type: 'datetime',
+ dateFormat: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '创建者',
+ field: 'creator',
+ isForm: false,
+ isTable: true,
+ table: {
+ width: 150
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/index.vue b/src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/index.vue
index a85520fe6..8d48510b6 100644
--- a/src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/index.vue
+++ b/src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/index.vue
@@ -101,7 +101,7 @@ import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
// 发货记录主
-defineOptions({ name: 'InducedProduct' })
+defineOptions({ name: 'InducedProduct1' })
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化