diff --git a/src/api/wms/purchaseClaimRequestDetail/index.js b/src/api/wms/purchaseClaimRequestDetail/index.js
new file mode 100644
index 000000000..2f57b1133
--- /dev/null
+++ b/src/api/wms/purchaseClaimRequestDetail/index.js
@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+
+// 创建采购索赔子
+export function createPurchaseClaimRequestDetail(data) {
+ return request({
+ url: '/request/purchase-claim-request-detail/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新采购索赔子
+export function updatePurchaseClaimRequestDetail(data) {
+ return request({
+ url: '/request/purchase-claim-request-detail/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除采购索赔子
+export function deletePurchaseClaimRequestDetail(id) {
+ return request({
+ url: '/request/purchase-claim-request-detail/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得采购索赔子
+export function getPurchaseClaimRequestDetail(id) {
+ return request({
+ url: '/request/purchase-claim-request-detail/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得采购索赔子分页
+export function getPurchaseClaimRequestDetailPage(query) {
+ return request({
+ url: '/request/purchase-claim-request-detail/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出采购索赔子 Excel
+export function exportPurchaseClaimRequestDetailExcel(query) {
+ return request({
+ url: '/request/purchase-claim-request-detail/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/api/wms/purchaseClaimRequestMain/index.ts b/src/api/wms/purchaseClaimRequestMain/index.ts
new file mode 100644
index 000000000..4e8df1b59
--- /dev/null
+++ b/src/api/wms/purchaseClaimRequestMain/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface PurchaseClaimRequestMainVO {
+ id: number
+ number: string
+ supplierCode: string
+ claimTime: Date
+ status: string
+ supplierinvoiceNumber: string
+ remark: string
+ available: string
+ siteId: string
+ concurrencyStamp: string
+}
+
+// 查询采购索赔主列表
+export const getPurchaseClaimRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchaseClaim-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseClaim-request-main/page`, params })
+ }
+}
+
+// 查询采购索赔主详情
+export const getPurchaseClaimRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchaseClaim-request-main/get?id=` + id })
+}
+
+// 新增采购索赔主
+export const createPurchaseClaimRequestMain = async (data: PurchaseClaimRequestMainVO) => {
+ return await request.post({ url: `/wms/purchaseClaim-request-main/create`, data })
+}
+
+// 修改采购索赔主
+export const updatePurchaseClaimRequestMain = async (data: PurchaseClaimRequestMainVO) => {
+ return await request.put({ url: `/wms/purchaseClaim-request-main/update`, data })
+}
+
+// 删除采购索赔主
+export const deletePurchaseClaimRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchaseClaim-request-main/delete?id=` + id })
+}
+
+// 导出采购索赔主 Excel
+export const exportPurchaseClaimRequestMain = async (params) => {
+ return await request.download({ url: `/wms/purchaseClaim-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchaseClaim-request-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/views/wms/supplierManage/purchaseClaim/purchaseClaimRequest/index.vue b/src/views/wms/supplierManage/purchaseClaim/purchaseClaimRequest/index.vue
new file mode 100644
index 000000000..ee6472517
--- /dev/null
+++ b/src/views/wms/supplierManage/purchaseClaim/purchaseClaimRequest/index.vue
@@ -0,0 +1,336 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/supplierManage/purchaseClaim/purchaseClaimRequest/purchaseClaimRequestMain.data.ts b/src/views/wms/supplierManage/purchaseClaim/purchaseClaimRequest/purchaseClaimRequestMain.data.ts
new file mode 100644
index 000000000..66e1effc6
--- /dev/null
+++ b/src/views/wms/supplierManage/purchaseClaim/purchaseClaimRequest/purchaseClaimRequestMain.data.ts
@@ -0,0 +1,332 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { TableColumn } from '@/types/table'
+
+import { dateFormatter } from '@/utils/formatTime'
+import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
+
+const { t } = useI18n() // 国际化
+
+// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值
+const queryParams = {
+ pageSize:10,
+ pageNo:1,
+ code:'PurchaseClaimRequest'
+}
+ const data = await getRequestsettingApi.getRequestsettingPage(queryParams)
+ const requestsettingData =data?.list[0]||{}
+
+ // 获取当前操作人的部门
+import { useUserStore } from '@/store/modules/user'
+const userStore = useUserStore()
+const userDept = userStore.userSelfInfo.dept
+ // id 转str 否则form回显匹配不到
+ userDept.id = userDept.id.toString()
+const userDeptArray:any = [userDept]
+
+/**
+ * @returns {Array} 采购索赔申请主表
+ */
+export const PurchaseClaimRequestMain = useCrudSchemas(([
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '供应商代码',
+ field: 'supplierCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '索赔时间',
+ field: 'claimTime',
+ 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'
+ }
+ },
+ },
+ //0:新增1:已关闭2:审批中3:审批驳回4:审批通过5:开票中6:已完成
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '供应商发票申请单号',
+ field: 'supplierinvoiceNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ formatter: dateFormatter,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ },
+ sort: 'custom',
+ table: {
+ width: 180
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ style: {width:'100%'},
+ type: 'datetime',
+ dateFormat: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'x',
+ }
+ },
+ isForm: false,
+ 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')]
+ },
+ },
+ },
+ {
+ label: '创建者',
+ field: 'creator',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ isForm: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 300,
+ fixed: 'right'
+ },
+ }
+]))
+
+//表单校验
+export const PurchaseClaimRequestMainRules = reactive({
+ // requestNumber: [
+ // { required: true, message: '请选择申请单号', trigger: 'change' }
+ // ],
+ departmentCode: [
+ { required: true, message: '请输入部门', trigger: 'blur' }
+ ],
+ autoCommit: [
+ { required: true, message: '请选择是否自动提交', trigger: 'change' }
+ ],
+ autoAgree: [
+ { required: true, message: '请选择是否自动通过', trigger: 'change' }
+ ],
+ autoExecute: [
+ { required: true, message: '请选择是否自动执行', trigger: 'change' }
+ ],
+ directCreateRecord: [
+ { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' }
+ ],
+ // businessType: [
+ // { required: true, message: '请输入业务类型', trigger: 'blur' }
+ // ],
+})
+
+/**
+ * @returns {Array} 采购索赔申请子表
+ */
+export const PurchaseClaimRequestDetail = useCrudSchemas(reactive([
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ table: {
+ width: 180
+ },
+ isTableForm: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '物料代码',
+ field: 'itemCode',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ },
+ {
+ label: '物料名称',
+ field: 'itemName',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '计量单位',
+ field: 'uom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string',
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '索赔数量',
+ field: 'claimQty',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 1,
+ precision: 6
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 1,
+ precision: 6
+ }
+ },
+ {
+ label: '索赔金额',
+ field: 'claimAmount',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 1,
+ precision: 6
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 1,
+ precision: 6
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ formatter: dateFormatter,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ },
+ sort: 'custom',
+ table: {
+ width: 180
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ style: {width:'100%'},
+ type: 'datetime',
+ dateFormat: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'x',
+ }
+ },
+ isTableForm: false,
+ isForm: false
+ },
+ {
+ label: '创建者',
+ field: 'creator',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ isTableForm: false,
+ isForm: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false ,
+ isTable:false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm:false,
+ }
+]))
+
+//表单校验
+export const PurchaseClaimRequestDetailRules = reactive({
+ countDetailNumber: [
+ { required: true, message: '请输入盘点明细号', trigger: 'blur' }
+ ],
+ packingNumber: [
+ { required: true, message: '请选择包装号', trigger: 'change' }
+ ],
+ batch: [
+ { required: true, message: '请输入批次', trigger: 'blur' }
+ ],
+ locationCode: [
+ { required: true, message: '请选择库位代码', trigger: 'change' }
+ ],
+ inventoryStatus: [
+ { required: true, message: '请选择库存状态', trigger: 'change' }
+ ],
+ inventoryQty: [
+ { required: true, message: '请输入库存数量', trigger: 'blur' }
+ ],
+ countQty: [
+ { required: true, message: '请输入盘点数量', trigger: 'blur' }
+ ],
+ adjustQty: [
+ { required: true, message: '请输入调整数量', trigger: 'blur' }
+ ],
+ // number: [
+ // { required: true, message: '请输入单据号', trigger: 'blur' }
+ // ],
+ itemCode: [
+ { required: true, message: '请选择物料代码', trigger: 'change' }
+ ],
+})