diff --git a/src/api/mes/pro/workorder/index.ts b/src/api/mes/pro/workorder/index.ts
index f56f22922..7d3242202 100644
--- a/src/api/mes/pro/workorder/index.ts
+++ b/src/api/mes/pro/workorder/index.ts
@@ -19,12 +19,14 @@ export interface ProWorkOrderVO {
quantityChanged: number // 调整数量
quantityScheduled: number // 已排产数量
clientId: number // 客户编号
+ clientCode: string // 客户编码
clientName: string // 客户名称
vendorId: number // 供应商编号
vendorName: string // 供应商名称
batchCode: string // 批次号
requestDate: Date // 需求日期
parentId: number // 父工单编号
+ parentCode: string // 父工单编码
finishDate: Date // 完成时间
cancelDate: Date // 取消时间
status: number // 工单状态
diff --git a/src/views/mes/pro/workorder/WorkOrderBomForm.vue b/src/views/mes/pro/workorder/WorkOrderBomForm.vue
new file mode 100644
index 000000000..348c78842
--- /dev/null
+++ b/src/views/mes/pro/workorder/WorkOrderBomForm.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
diff --git a/src/views/mes/pro/workorder/WorkOrderBomList.vue b/src/views/mes/pro/workorder/WorkOrderBomList.vue
new file mode 100644
index 000000000..731e3af03
--- /dev/null
+++ b/src/views/mes/pro/workorder/WorkOrderBomList.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+ 添加物料
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/mes/pro/workorder/WorkorderBom.vue b/src/views/mes/pro/workorder/WorkorderBom.vue
deleted file mode 100644
index 9871d8053..000000000
--- a/src/views/mes/pro/workorder/WorkorderBom.vue
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
-
-
- 添加物料
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mes/pro/workorder/WorkorderForm.vue b/src/views/mes/pro/workorder/WorkorderForm.vue
index 74b12831b..30b9953e9 100644
--- a/src/views/mes/pro/workorder/WorkorderForm.vue
+++ b/src/views/mes/pro/workorder/WorkorderForm.vue
@@ -10,9 +10,14 @@
>
-
-
+
+
+
+ 生成
+
+
+
@@ -23,10 +28,10 @@
-
+
@@ -39,8 +44,7 @@
-
-
+
-
-
+
-
-
+
-
-
+
-
+
确 定
@@ -163,10 +170,15 @@
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { ProWorkOrderApi, ProWorkOrderVO } from '@/api/mes/pro/workorder'
import { MdItemVO } from '@/api/mes/md/item'
+import { generateRandomStr } from '@/utils'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import MdClientSelect from '@/views/mes/md/client/components/MdClientSelect.vue'
import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue'
-import WorkOrderBom from './WorkOrderBom.vue'
+import WorkOrderBomList from './WorkOrderBomList.vue'
+import {
+ MesProWorkOrderSourceTypeEnum,
+ MesProWorkOrderTypeEnum
+} from '@/views/mes/utils/constants'
defineOptions({ name: 'WorkOrderForm' })
@@ -199,9 +211,9 @@ const formRules = reactive({
code: [{ required: true, message: '工单编码不能为空', trigger: 'blur' }],
name: [{ required: true, message: '工单名称不能为空', trigger: 'blur' }],
type: [{ required: true, message: '工单类型不能为空', trigger: 'change' }],
- orderSourceType: [{ required: true, message: '来源类型不能为空', trigger: 'change' }],
+ orderSourceType: [{ required: true, message: '工单来源不能为空', trigger: 'change' }],
productId: [{ required: true, message: '产品不能为空', trigger: 'change' }],
- quantity: [{ required: true, message: '生产数量不能为空', trigger: 'blur' }],
+ quantity: [{ required: true, message: '工单数量不能为空', trigger: 'blur' }],
requestDate: [{ required: true, message: '需求日期不能为空', trigger: 'change' }]
})
const formRef = ref() // 表单 Ref
@@ -209,6 +221,11 @@ const formRef = ref() // 表单 Ref
/** 是否为详情模式 */
const isDetail = computed(() => formType.value === 'detail')
+/** 生成工单编码 */
+const generateCode = () => {
+ formData.value.code = 'MO' + generateRandomStr(10)
+}
+
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
@@ -235,6 +252,26 @@ const handleProductChange = (product: MdItemVO) => {
}
}
+/** 工单来源变更:非客户订单时清空来源单据编号 */
+watch(
+ () => formData.value.orderSourceType,
+ (val) => {
+ if (val !== MesProWorkOrderSourceTypeEnum.ORDER) {
+ formData.value.orderSourceCode = undefined
+ }
+ }
+)
+
+/** 工单类型变更:非代工/采购时清空供应商 */
+watch(
+ () => formData.value.type,
+ (val) => {
+ if (val !== MesProWorkOrderTypeEnum.OUTSOURCE && val !== MesProWorkOrderTypeEnum.PURCHASE) {
+ formData.value.vendorId = undefined
+ }
+ }
+)
+
/** 提交表单 */
const emit = defineEmits(['success'])
const submitForm = async () => {
diff --git a/src/views/mes/pro/workorder/index.vue b/src/views/mes/pro/workorder/index.vue
index 5171715b9..3105245dd 100644
--- a/src/views/mes/pro/workorder/index.vue
+++ b/src/views/mes/pro/workorder/index.vue
@@ -2,8 +2,6 @@
-
-
+
+
+
+
+
+
-
-
+
@@ -115,13 +118,21 @@
+
+
+
+ {{ scope.row.parentCode }}
+
+ -
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
@@ -161,7 +171,7 @@
/>
-
+
{
for (const item of Object.values(MesItemOrProductEnum)) {