style:修改任务单排产-新增计划及生产计划详情字段

pull/1/head
黄伟杰 1 month ago
parent 3ac5ee7183
commit a0c5768efa

@ -88,7 +88,7 @@
<!-- />--> <!-- />-->
<!-- </el-select>--> <!-- </el-select>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="设备" prop="feedingPipeline"> <el-form-item label="设备" prop="deviceId">
<el-input <el-input
:model-value="deviceDisplayText" :model-value="deviceDisplayText"
placeholder="点击选择设备" placeholder="点击选择设备"
@ -214,18 +214,20 @@ const formData = ref({
remark: undefined, remark: undefined,
groupType: undefined, groupType: undefined,
isEnable: undefined, isEnable: undefined,
feedingPipeline: undefined, deviceId: undefined,
feedingPipelineName: undefined, deviceName: undefined,
workerId: undefined, workerId: undefined,
isPreProduction: undefined, isPreProduction: undefined,
isCode: undefined, isCode: undefined,
latestStartTime: undefined, latestStartTime: undefined,
finishDate: undefined finishDate: undefined,
deliveryDate: undefined
}) })
const deliveryDateText = computed(() => { const deliveryDateText = computed(() => {
if (!formData.value.finishDate) return '' const sourceValue = formData.value.finishDate || formData.value.deliveryDate
const value = dayjs(formData.value.finishDate) if (!sourceValue) return ''
if (!value.isValid()) return String(formData.value.finishDate) const value = dayjs(sourceValue)
if (!value.isValid()) return String(sourceValue)
return value.format('YYYY-MM-DD') return value.format('YYYY-MM-DD')
}) })
const deviceDisplayText = computed(() => { const deviceDisplayText = computed(() => {
@ -234,7 +236,7 @@ const deviceDisplayText = computed(() => {
.map((item: any) => item.deviceName || item.name || item.code || `ID:${item.id}`) .map((item: any) => item.deviceName || item.name || item.code || `ID:${item.id}`)
.join('、') .join('、')
} }
if (formData.value.feedingPipelineName) return String(formData.value.feedingPipelineName) if (formData.value.deviceName) return String(formData.value.deviceName)
return '' return ''
}) })
const deviceColumns = [ const deviceColumns = [
@ -317,7 +319,7 @@ const formRules = reactive({
{ required: true, message: t('ProductionPlan.Plan.validatorPlanEndRequired'), trigger: 'blur' }, { required: true, message: t('ProductionPlan.Plan.validatorPlanEndRequired'), trigger: 'blur' },
{ validator: validatePlanEndTime, trigger: 'change' } { validator: validatePlanEndTime, trigger: 'change' }
], ],
feedingPipeline: [{ required: true, message: '请选择设备', trigger: 'change' }], deviceId: [{ required: true, message: '请选择设备', trigger: 'change' }],
isPreProduction: [{ required: true, message: t('ProductionPlan.Plan.validatorPreProductionRequired'), trigger: 'blur' }], isPreProduction: [{ required: true, message: t('ProductionPlan.Plan.validatorPreProductionRequired'), trigger: 'blur' }],
latestStartTime: [ latestStartTime: [
{ required: true, message: '请选择最晚开工时间', trigger: 'blur' }, { required: true, message: '请选择最晚开工时间', trigger: 'blur' },
@ -338,11 +340,11 @@ const fetchDeviceLedgerPage = (params: Record<string, any>) => {
const openDeviceSelectDialog = () => { const openDeviceSelectDialog = () => {
const rows = selectedDeviceRows.value.length const rows = selectedDeviceRows.value.length
? selectedDeviceRows.value.map((item: any) => ({ ...item, id: Number(item.id) })) ? selectedDeviceRows.value.map((item: any) => ({ ...item, id: Number(item.id) }))
: formData.value.feedingPipeline : formData.value.deviceId
? [ ? [
{ {
id: Number(formData.value.feedingPipeline), id: Number(formData.value.deviceId),
deviceName: formData.value.feedingPipelineName deviceName: formData.value.deviceName
} }
] ]
: [] : []
@ -354,8 +356,8 @@ const handleDeviceSelectConfirm = (payload: { ids: (number | string)[]; rows: an
if (!row) return if (!row) return
const deviceId = Number(row.id) const deviceId = Number(row.id)
if (!Number.isFinite(deviceId)) return if (!Number.isFinite(deviceId)) return
formData.value.feedingPipeline = deviceId formData.value.deviceId = deviceId
formData.value.feedingPipelineName = row.deviceName || row.name || row.code || `设备ID:${deviceId}` formData.value.deviceName = row.deviceName || row.name || row.code || `设备ID:${deviceId}`
selectedDeviceRows.value = [row] selectedDeviceRows.value = [row]
} }
@ -366,11 +368,13 @@ const syncFinishDateByTaskDetail = () => {
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (type: string, id?: number, const open = async (type: string, id?: number,
taskId?: number, productId?: number, number?: number, taskDetailId?:string) => { taskId?: number, productId?: number, number?: number, taskDetailId?:string,
taskDeliveryDate?: string | number) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
resetForm() resetForm()
formData.value.deliveryDate = taskDeliveryDate || undefined
if(taskId) { if(taskId) {
formData.value.taskId = taskId formData.value.taskId = taskId
taskDetailList.value =await TaskApi.getTaskDetailListByTaskId(formData.value.taskId) taskDetailList.value =await TaskApi.getTaskDetailListByTaskId(formData.value.taskId)
@ -378,7 +382,8 @@ const open = async (type: string, id?: number,
const taskDetails = taskDetailList.value.filter(item => item.id === taskDetailId) const taskDetails = taskDetailList.value.filter(item => item.id === taskDetailId)
if(taskDetails && taskDetails.length > 0 && taskDetails[0].id) { if(taskDetails && taskDetails.length > 0 && taskDetails[0].id) {
formData.value.taskDetailId = taskDetails[0].id formData.value.taskDetailId = taskDetails[0].id
formData.value.finishDate = (taskDetails[0] as any).finishDate || (taskDetails[0] as any).deliveryDate || undefined formData.value.finishDate = (taskDetails[0] as any).finishDate || undefined
formData.value.deliveryDate = (taskDetails[0] as any).deliveryDate || taskDeliveryDate || undefined
} }
} }
} }
@ -393,11 +398,11 @@ const open = async (type: string, id?: number,
formLoading.value = true formLoading.value = true
try { try {
formData.value = await PlanApi.getPlan(id) formData.value = await PlanApi.getPlan(id)
if (formData.value.feedingPipeline) { if (formData.value.deviceId) {
selectedDeviceRows.value = [ selectedDeviceRows.value = [
{ {
id: Number(formData.value.feedingPipeline), id: Number(formData.value.deviceId),
deviceName: formData.value.feedingPipelineName deviceName: formData.value.deviceName
} as DeviceLedgerVO } as DeviceLedgerVO
] ]
} }
@ -452,12 +457,13 @@ const resetForm = () => {
remark: undefined, remark: undefined,
groupType: undefined, groupType: undefined,
isEnable: undefined, isEnable: undefined,
feedingPipeline: undefined, deviceId: undefined,
feedingPipelineName: undefined, deviceName: undefined,
isPreProduction: 0, isPreProduction: 0,
isCode: true, isCode: true,
latestStartTime: undefined, latestStartTime: undefined,
finishDate: undefined finishDate: undefined,
deliveryDate: undefined
} }
selectedDeviceRows.value = [] selectedDeviceRows.value = []
formRef.value?.resetFields() formRef.value?.resetFields()

@ -7,11 +7,24 @@
label-width="100px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> >
<el-form-item :label="t('ProductionPlan.Plan.dialogTaskLabel')" prop="taskId"> <el-form-item :label="t('ProductionPlan.Plan.dialogTaskLabel')" prop="taskCode">
<el-input disabled v-model="formData.taskId" :placeholder="t('ProductionPlan.Plan.dialogTaskPlaceholder')" /> <el-input disabled v-model="formData.taskCode" :placeholder="t('ProductionPlan.Plan.dialogTaskPlaceholder')" />
</el-form-item> </el-form-item>
<el-form-item :label="t('ProductionPlan.Plan.dialogTaskDetailLabel')" prop="taskDetailId"> <el-form-item :label="t('ProductionPlan.Plan.dialogTaskDetailLabel')" prop="taskDetailId">
<el-input disabled v-model="formData.taskDetailId" :placeholder="t('ProductionPlan.Plan.dialogTaskDetailPlaceholder')" /> <el-select
disabled
v-model="formData.taskDetailId"
clearable
filterable
:placeholder="t('ProductionPlan.Plan.dialogTaskDetailPlaceholder')"
>
<el-option
v-for="item in taskDetailList"
:key="item.id"
:label="item.productName + '-未计划:' + (item.number - item.planNumber)"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item prop="code"> <el-form-item prop="code">
<template #label> <template #label>
@ -95,6 +108,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { PlanApi } from '@/api/mes/plan' import { PlanApi } from '@/api/mes/plan'
import { TaskApi, TaskDetailVO } from '@/api/mes/task'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict"; import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
@ -108,12 +122,14 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formRules = reactive({}) const formRules = reactive({})
const taskDetailList = ref<TaskDetailVO[]>([])
const formData = ref({ const formData = ref({
id: undefined, id: undefined,
code: undefined, code: undefined,
productId: undefined, productId: undefined,
taskDetailId: undefined,
taskId: undefined, taskId: undefined,
taskDetailId: undefined,
taskCode: undefined,
planNumber: undefined, planNumber: undefined,
reyaNumber: undefined, reyaNumber: undefined,
finishNumber: undefined, finishNumber: undefined,
@ -127,6 +143,7 @@ const formData = ref({
groupType: undefined, groupType: undefined,
isEnable: undefined, isEnable: undefined,
feedingPipeline: undefined, feedingPipeline: undefined,
deviceName: undefined,
feedingPipelineName: undefined, feedingPipelineName: undefined,
workerId: undefined, workerId: undefined,
isPreProduction: undefined, isPreProduction: undefined,
@ -143,10 +160,7 @@ const deliveryDateText = computed(() => {
return value.format('YYYY-MM-DD') return value.format('YYYY-MM-DD')
}) })
const deviceDisplayText = computed(() => { const deviceDisplayText = computed(() => {
if (formData.value.feedingPipelineName) return String(formData.value.feedingPipelineName) if (formData.value.deviceName) return String(formData.value.deviceName)
if (formData.value.feedingPipeline !== undefined && formData.value.feedingPipeline !== null) {
return `设备ID:${formData.value.feedingPipeline}`
}
return '' return ''
}) })
@ -158,6 +172,9 @@ const open = async (id?: number) => {
dialogTitle.value = t('ProductionPlan.Plan.detailDialogTitle') dialogTitle.value = t('ProductionPlan.Plan.detailDialogTitle')
resetForm() resetForm()
formData.value = await PlanApi.getPlan(id) formData.value = await PlanApi.getPlan(id)
if (formData.value.taskId) {
taskDetailList.value = await TaskApi.getTaskDetailListByTaskId(formData.value.taskId)
}
} }
defineExpose({ open }) // open defineExpose({ open }) // open
@ -168,8 +185,9 @@ const resetForm = () => {
id: undefined, id: undefined,
code: undefined, code: undefined,
productId: undefined, productId: undefined,
taskDetailId: undefined,
taskId: undefined, taskId: undefined,
taskDetailId: undefined,
taskCode: undefined,
planNumber: 0, planNumber: 0,
finishNumber: 0, finishNumber: 0,
status: undefined, status: undefined,
@ -182,6 +200,7 @@ const resetForm = () => {
groupType: undefined, groupType: undefined,
isEnable: undefined, isEnable: undefined,
feedingPipeline: undefined, feedingPipeline: undefined,
deviceName: undefined,
isPreProduction: 0, isPreProduction: 0,
feedingPipelineName: undefined, feedingPipelineName: undefined,
isCode: true, isCode: true,
@ -189,6 +208,7 @@ const resetForm = () => {
deliveryDate: undefined, deliveryDate: undefined,
finishDate: undefined finishDate: undefined
} }
taskDetailList.value = []
formRef.value?.resetFields() formRef.value?.resetFields()
} }

@ -64,6 +64,7 @@ const message = useMessage() // 消息弹窗
const { push } = useRouter() const { push } = useRouter()
const props = defineProps<{ const props = defineProps<{
taskId?: number // task ID taskId?: number // task ID
taskDeliveryDate?: string | number
}>() }>()
const emit = defineEmits(['success']) const emit = defineEmits(['success'])
const loading = ref(false) // const loading = ref(false) //
@ -112,7 +113,7 @@ const addPlanForm = (taskId: number, productId: number, number?: number, taskDet
message.error(t('ProductionPlan.TaskSummary.detailSelectTaskTip')) message.error(t('ProductionPlan.TaskSummary.detailSelectTaskTip'))
return return
} }
formRef.value.open('create', undefined, taskId, productId, number,taskDetailIds) formRef.value.open('create', undefined, taskId, productId, number, taskDetailIds, props.taskDeliveryDate)
} }
const handlePlanSuccess = () => { const handlePlanSuccess = () => {
getList() getList()

@ -113,7 +113,7 @@ link type="info" @click="openItemNeed(scope.row.code, scope.row.id)"
<ContentWrap> <ContentWrap>
<el-tabs model-value="taskDetail"> <el-tabs model-value="taskDetail">
<el-tab-pane :label="t('ProductionPlan.TaskSummary.detailTabSummaryLabel')" name="taskDetail"> <el-tab-pane :label="t('ProductionPlan.TaskSummary.detailTabSummaryLabel')" name="taskDetail">
<TaskDetailList :task-id="currentRow.id" @success="getList" /> <TaskDetailList :task-id="currentRow.id" :task-delivery-date="currentRow.deliveryDate" @success="getList" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</ContentWrap> </ContentWrap>

Loading…
Cancel
Save