diff --git a/src/api/mes/pro/card/index.ts b/src/api/mes/pro/card/index.ts
new file mode 100644
index 000000000..11e41c34f
--- /dev/null
+++ b/src/api/mes/pro/card/index.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+// MES 生产流转卡 VO
+export interface ProCardVO {
+ id: number // 编号
+ code: string // 流转卡编码
+ workOrderId: number // 生产工单编号
+ workOrderCode: string // 工单编码
+ workOrderName: string // 工单名称
+ batchCode: string // 批次号
+ itemId: number // 产品物料编号
+ itemCode: string // 产品编码
+ itemName: string // 产品名称
+ specification: string // 规格型号
+ unitMeasureId: number // 单位编号
+ unitMeasureName: string // 单位名称
+ barcodeUrl: string // 条码地址
+ transferedQuantity: number // 流转数量
+ status: number // 状态
+ remark: string // 备注
+}
+
+// MES 生产流转卡 API
+export const ProCardApi = {
+ // 查询生产流转卡分页
+ getCardPage: async (params: any) => {
+ return await request.get({ url: `/mes/pro/card/page`, params })
+ },
+
+ // 查询生产流转卡详情
+ getCard: async (id: number) => {
+ return await request.get({ url: `/mes/pro/card/get?id=` + id })
+ },
+
+ // 新增生产流转卡
+ createCard: async (data: ProCardVO) => {
+ return await request.post({ url: `/mes/pro/card/create`, data })
+ },
+
+ // 修改生产流转卡
+ updateCard: async (data: ProCardVO) => {
+ return await request.put({ url: `/mes/pro/card/update`, data })
+ },
+
+ // 删除生产流转卡
+ deleteCard: async (id: number) => {
+ return await request.delete({ url: `/mes/pro/card/delete?id=` + id })
+ },
+
+ // 导出生产流转卡 Excel
+ exportCard: async (params: any) => {
+ return await request.download({ url: `/mes/pro/card/export-excel`, params })
+ }
+}
diff --git a/src/api/mes/pro/card/process/index.ts b/src/api/mes/pro/card/process/index.ts
new file mode 100644
index 000000000..5f0578e12
--- /dev/null
+++ b/src/api/mes/pro/card/process/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+// MES 流转卡工序记录 VO
+export interface ProCardProcessVO {
+ id: number // 编号
+ cardId: number // 流转卡编号
+ sort: number // 序号
+ processId: number // 工序编号
+ processCode: string // 工序编码
+ processName: string // 工序名称
+ inputTime: Date // 进入工序时间
+ outputTime: Date // 出工序时间
+ inputQuantity: number // 投入数量
+ outputQuantity: number // 产出数量
+ unqualifiedQuantity: number // 不合格品数量
+ workstationId: number // 工位编号
+ workstationCode: string // 工位编码
+ workstationName: string // 工位名称
+ userId: number // 操作人编号
+ nickname: string // 操作人名称
+ ipqcId: number // 过程检验单编号
+ remark: string // 备注
+}
+
+// MES 流转卡工序记录 API
+export const ProCardProcessApi = {
+ // 查询流转卡工序记录分页
+ getCardProcessPage: async (params: any) => {
+ return await request.get({ url: `/mes/pro/card-process/page`, params })
+ },
+
+ // 查询流转卡工序记录详情
+ getCardProcess: async (id: number) => {
+ return await request.get({ url: `/mes/pro/card-process/get?id=` + id })
+ },
+
+ // 新增流转卡工序记录
+ createCardProcess: async (data: ProCardProcessVO) => {
+ return await request.post({ url: `/mes/pro/card-process/create`, data })
+ },
+
+ // 修改流转卡工序记录
+ updateCardProcess: async (data: ProCardProcessVO) => {
+ return await request.put({ url: `/mes/pro/card-process/update`, data })
+ },
+
+ // 删除流转卡工序记录
+ deleteCardProcess: async (id: number) => {
+ return await request.delete({ url: `/mes/pro/card-process/delete?id=` + id })
+ }
+}
diff --git a/src/views/mes/pro/card/CardForm.vue b/src/views/mes/pro/card/CardForm.vue
new file mode 100644
index 000000000..e39887e32
--- /dev/null
+++ b/src/views/mes/pro/card/CardForm.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
+
diff --git a/src/views/mes/pro/card/index.vue b/src/views/mes/pro/card/index.vue
new file mode 100644
index 000000000..770ba4e32
--- /dev/null
+++ b/src/views/mes/pro/card/index.vue
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+