main
chenshuichuan 2 years ago
parent 620979b84b
commit 09c8a305b2

@ -21,6 +21,29 @@ export interface ItemRequisitionAndStockVO {
stockNumber: number // 编码
stockWorkshopNumber: number // 编码
}
// 生产任务单明细 VO
export interface TaskDetailVO {
id: number // ID
productId: number // 产品ID
productName: number // 产品ID
unitId: number // 单位ID
unitName: number // 单位ID
taskId: number // task ID
number: number // 数量
planNumber: number //已经计划的数量
packageSize: number // 打包要求(每包/个)
projectName: string // 项目名称
techRequirements: string // 技术要求
remark: string // 备注
isEnable: boolean // 是否启用
packageNumber: number // 打包数量
finishDate: Date // 工厂完成
boxingDate: Date // 装柜时间
arriveDate: Date // 到达时间
barCode: string // 条码
attachment: string // 附件
}
// 生产任务单 API
export const TaskApi = {
// 查询生产任务单分页

@ -121,7 +121,46 @@
<Editor v-model="formData.outgoingReport" height="150px" />
</el-form-item>
<!-- <el-form-item label="建议维保时间" prop="maintainTime">-->
<!-- <el-date-picker-->
<!-- v-model="formData.maintainTime"-->
<!-- type="date"-->
<!-- value-format="x"-->
<!-- placeholder="选择建议维保时间"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="建议维保类型(按使用时间,距离上次维保时间)" prop="maintainType">-->
<!-- <el-select v-model="formData.maintainType" placeholder="请选择建议维保类型(按使用时间,距离上次维保时间)">-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="建议维保时间单位" prop="maintainTimeUnit">-->
<!-- <el-input v-model="formData.maintainTimeUnit" placeholder="请输入建议维保时间单位" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="实际维保时间" prop="trueMaintainTime">-->
<!-- <el-date-picker-->
<!-- v-model="formData.trueMaintainTime"-->
<!-- type="date"-->
<!-- value-format="x"-->
<!-- placeholder="选择实际维保时间"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="实际维保时间单位" prop="trueMaintainTimeUnit">-->
<!-- <el-input v-model="formData.trueMaintainTimeUnit" placeholder="请输入实际维保时间单位" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="实际维保类型" prop="trueMaintainTimeType">-->
<!-- <el-select v-model="formData.trueMaintainTimeType" placeholder="请选择实际维保类型">-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="上次维保时间" prop="lastMaitainTime">-->
<!-- <el-date-picker-->
<!-- v-model="formData.lastMaitainTime"-->
<!-- type="date"-->
<!-- value-format="x"-->
<!-- placeholder="选择上次维保时间"-->
<!-- />-->
<!-- </el-form-item>-->
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
@ -180,6 +219,9 @@ const open = async (type: string, id?: number) => {
formLoading.value = true
try {
formData.value = await MachineComponentApi.getMachineComponent(id)
if(formData.value.outgoingReport===null || formData.value.outgoingReport===undefined){
formData.value.outgoingReport = ''
}
} finally {
formLoading.value = false
}

@ -17,7 +17,7 @@
clearable
filterable
placeholder="请选择"
class="!w-1/1"
@change="handleTaskChange"
>
<el-option
v-for="item in taskList"
@ -27,29 +27,52 @@
/>
</el-select>
</el-form-item>
<el-form-item label="产品" prop="productId">
<el-form-item label="明细项" prop="taskId">
<el-select
:disabled='editDisable'
v-model="formData.productId"
v-model="formData.taskDetailId"
clearable
filterable
placeholder="请选择产品"
class="!w-1/1"
placeholder="请选择"
@change="handleTaskDetailChange"
>
<el-option
v-for="item in productList"
v-for="item in taskDetailList"
:key="item.id"
:label="item.name"
:label="item.productName+'-未计划:'+(item.number-item.planNumber)"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="成型数量" prop="planNumber">
<el-input-number v-model="formData.planNumber" :min="0" class="!w-1/1"/>
</el-form-item>
<el-form-item label="热压数量" prop="reyaNumber">
<el-input-number v-model="formData.reyaNumber" :min="0" class="!w-1/1"/>
</el-form-item>
<!-- <el-form-item label="产品" prop="productId">-->
<!-- <el-select-->
<!-- :disabled='editDisable'-->
<!-- v-model="formData.productId"-->
<!-- clearable-->
<!-- filterable-->
<!-- placeholder="请选择产品"-->
<!-- class="!w-1/1"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in productList"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-row>
<el-col :span="12">
<el-form-item label="成型数量" prop="planNumber">
<el-input-number v-model="formData.planNumber" :min="0" class="!w-1/1"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="热压数量" prop="reyaNumber">
<el-input-number v-model="formData.reyaNumber" :min="0" class="!w-1/1"/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="计划开始" prop="planStartTime">
<el-date-picker
v-model="formData.planStartTime"
@ -66,8 +89,17 @@
placeholder="选择计划结束时间"
/>
</el-form-item>
<el-form-item label="班别" prop="groupType">
<el-radio-group v-model="formData.groupType">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_GROUP_TYPE)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
@ -82,14 +114,16 @@
import { PlanApi, PlanVO } from '@/api/mes/plan'
import * as UserApi from "@/api/system/user";
import {TaskApi, TaskVO} from "@/api/mes/task";
import {TaskApi, TaskDetailVO, TaskVO} from "@/api/mes/task";
import {ProductApi, ProductVO} from "@/api/erp/product/product";
import {getIntDictOptions,DICT_TYPE} from "@/utils/dict";
/** 生产计划 表单 */
defineOptions({ name: 'PlanForm' })
const userList = ref<UserApi.UserVO[]>([]) //
const productList = ref<ProductVO[]>([]) //
const taskList = ref<TaskVO[]>([]) //
const taskDetailList = ref<TaskDetailVO[]>([]) //
const { t } = useI18n() //
const message = useMessage() //
@ -116,10 +150,11 @@ const formData = ref({
endTime: undefined,
productionManagerId: undefined,
remark: undefined,
groupType: undefined,
isEnable: undefined
})
const formRules = reactive({
productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }],
taskDetailId: [{ required: true, message: '明细项不能为空', trigger: 'blur' }],
taskId: [{ required: true, message: '任务单不能为空', trigger: 'blur' }],
planNumber: [{ required: true, message: '成型数量不能为空', trigger: 'blur' }],
reyaNumber: [{ required: true, message: '热压数量不能为空', trigger: 'blur' }],
@ -134,6 +169,7 @@ const open = async (type: string, id?: number,
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
editDisable.value = false
resetForm()
if(taskId)
formData.value.taskId = taskId
@ -161,7 +197,7 @@ const open = async (type: string, id?: number,
//
userList.value = await UserApi.getSimpleUserList()
//
productList.value = await ProductApi.getMesProductSimpleList()
//productList.value = await ProductApi.getMesProductSimpleList()
//
taskList.value = await TaskApi.getPlanTaskList()
}
@ -208,8 +244,18 @@ const resetForm = () => {
endTime: undefined,
productionManagerId: undefined,
remark: undefined,
groupType: undefined,
isEnable: undefined
}
formRef.value?.resetFields()
}
/** 任务单变化 */
const handleTaskChange = async(e) => {
taskDetailList.value =await TaskApi.getTaskDetailListByTaskId(formData.value.taskId)
}
/** 明细变化 */
const handleTaskDetailChange = async(e) => {
console.log(e)
}
</script>

Loading…
Cancel
Save