|
|
@ -12,14 +12,38 @@
|
|
|
|
</el-col>
|
|
|
|
</el-col>
|
|
|
|
<el-col>
|
|
|
|
<el-col>
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
<el-form ref="subFormRef" :model="formData.taskDispatchDetails" :rules="subFormRules" v-loading="subFormLoading" label-width="0">
|
|
|
|
<el-form
|
|
|
|
|
|
|
|
ref="subFormRef"
|
|
|
|
|
|
|
|
:model="formData.taskDispatchDetails"
|
|
|
|
|
|
|
|
:rules="subFormRules"
|
|
|
|
|
|
|
|
v-loading="subFormLoading"
|
|
|
|
|
|
|
|
label-width="0"
|
|
|
|
|
|
|
|
>
|
|
|
|
<el-table :data="formData.taskDispatchDetails" class="hl-table">
|
|
|
|
<el-table :data="formData.taskDispatchDetails" class="hl-table">
|
|
|
|
<el-table-column fixed label="序号" align="center" type="index" width="80" />
|
|
|
|
<el-table-column fixed label="序号" align="center" type="index" width="80" />
|
|
|
|
<el-table-column fixed label="工序名称" align="center" prop="procedureId" width="140">
|
|
|
|
<el-table-column
|
|
|
|
|
|
|
|
fixed
|
|
|
|
|
|
|
|
label="工序名称"
|
|
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
|
|
prop="procedureId"
|
|
|
|
|
|
|
|
width="140"
|
|
|
|
|
|
|
|
>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>工序名称</template>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>工序名称</template>
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.procedureId`" :rules="subFormRules.procedureId" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<ProcedureSelect :disabled="detailDisabled || row.procedureStatus != 0" v-model="row.procedureId" @update:newValue="(val) => { handleSelectedProcedure(row, val);}" />
|
|
|
|
:prop="`${$index}.procedureId`"
|
|
|
|
|
|
|
|
:rules="subFormRules.procedureId"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<ProcedureSelect
|
|
|
|
|
|
|
|
:disabled="detailDisabled || row.procedureStatus != 0"
|
|
|
|
|
|
|
|
v-model="row.procedureId"
|
|
|
|
|
|
|
|
@update:newValue="
|
|
|
|
|
|
|
|
(val) => {
|
|
|
|
|
|
|
|
handleSelectedProcedure(row, val)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
@ -31,58 +55,133 @@
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="顺序号" align="center" prop="sort" width="140">
|
|
|
|
<el-table-column label="顺序号" align="center" prop="sort" width="140">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.sort`" :rules="subFormRules.sort" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<el-input-number min="0" :precision="0" class="!w-240px" :disabled="detailDisabled || row.procedureStatus != 0" v-model="row.sort" placeholder="顺序号" />
|
|
|
|
:prop="`${$index}.sort`"
|
|
|
|
|
|
|
|
:rules="subFormRules.sort"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-input-number
|
|
|
|
|
|
|
|
min="0"
|
|
|
|
|
|
|
|
:precision="0"
|
|
|
|
|
|
|
|
class="!w-240px"
|
|
|
|
|
|
|
|
:disabled="detailDisabled || row.procedureStatus != 0"
|
|
|
|
|
|
|
|
v-model="row.sort"
|
|
|
|
|
|
|
|
placeholder="顺序号"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="负责人" align="center" prop="owner" min-width="240">
|
|
|
|
<el-table-column label="负责人" align="center" prop="owner" min-width="240">
|
|
|
|
<template #header> <span class="hl-table_header">*</span>负责人</template>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>负责人</template>
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.owner`" :rules="subFormRules.owners" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
|
|
|
|
:prop="`${$index}.owner`"
|
|
|
|
|
|
|
|
:rules="subFormRules.owners"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
<!-- <UserSelect v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0" @update:newValue="handleSelectedUser($index,$event)" /> -->
|
|
|
|
<!-- <UserSelect v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0" @update:newValue="handleSelectedUser($index,$event)" /> -->
|
|
|
|
<el-input class="!w-265px" placeholder="负责人" v-model="row.ownerNames" readonly @click.prevent="handleClick($index)">
|
|
|
|
<el-input
|
|
|
|
<template #append><el-button :icon="Search" @click="openuserDialog($index)" /></template>
|
|
|
|
class="!w-265px"
|
|
|
|
|
|
|
|
placeholder="负责人"
|
|
|
|
|
|
|
|
v-model="row.ownerNames"
|
|
|
|
|
|
|
|
readonly
|
|
|
|
|
|
|
|
@click.prevent="handleClick($index)"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<template #append
|
|
|
|
|
|
|
|
><el-button :icon="Search" @click="openuserDialog($index)"
|
|
|
|
|
|
|
|
/></template>
|
|
|
|
</el-input>
|
|
|
|
</el-input>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="生产设备" min-width="180" align="center">
|
|
|
|
<el-table-column label="生产设备" min-width="180" align="center">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.deviceModel`" :rules="subFormRules.deviceModel" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<EquipmentSelect v-model="row.deviceModel" @update:newValue="handleSelectedequip($index, $event)" :anotherProp="formData.workshopId" :disabled="detailDisabled || row.procedureStatus != 0" />
|
|
|
|
:prop="`${$index}.deviceModel`"
|
|
|
|
|
|
|
|
:rules="subFormRules.deviceModel"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<EquipmentSelect
|
|
|
|
|
|
|
|
v-model="row.deviceModel"
|
|
|
|
|
|
|
|
@update:newValue="handleSelectedequip($index, $event)"
|
|
|
|
|
|
|
|
:anotherProp="formData.workshopId"
|
|
|
|
|
|
|
|
:disabled="detailDisabled || row.procedureStatus != 0"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="预计开始日期" min-width="180">
|
|
|
|
<el-table-column label="预计开始日期" min-width="180">
|
|
|
|
<template #header> <span class="hl-table_header">*</span>预计开始日期</template>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>预计开始日期</template>
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<el-date-picker :disabled="detailDisabled" v-model="row.startTime" type="date" value-format="x" placeholder="选择预计开始日期" />
|
|
|
|
:prop="`${$index}.startTime`"
|
|
|
|
|
|
|
|
:rules="subFormRules.startTime"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
|
|
|
v-model="row.startTime"
|
|
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
|
|
value-format="x"
|
|
|
|
|
|
|
|
placeholder="选择预计开始日期"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="预计结束日期" min-width="180">
|
|
|
|
<el-table-column label="预计结束日期" min-width="180">
|
|
|
|
<template #header> <span class="hl-table_header">*</span>预计结束日期</template>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>预计结束日期</template>
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<el-date-picker :disabled="detailDisabled" v-model="row.endTime" type="date" value-format="x" placeholder="选择预计结束日期" />
|
|
|
|
:prop="`${$index}.endTime`"
|
|
|
|
|
|
|
|
:rules="subFormRules.endTime"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
|
|
|
v-model="row.endTime"
|
|
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
|
|
value-format="x"
|
|
|
|
|
|
|
|
placeholder="选择预计结束日期"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="预计工时" align="center" prop="workTime" width="180">
|
|
|
|
<el-table-column label="预计工时" align="center" prop="workTime" width="180">
|
|
|
|
<template #header> <span class="hl-table_header">*</span>预计工时</template>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>预计工时</template>
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<el-input-number min="0" :precision="2" class="!w-240px" :disabled="detailDisabled" v-model="row.workTime" placeholder="请输入预计工时" />
|
|
|
|
:prop="`${$index}.workTime`"
|
|
|
|
|
|
|
|
:rules="subFormRules.workTime"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-input-number
|
|
|
|
|
|
|
|
min="0"
|
|
|
|
|
|
|
|
:precision="2"
|
|
|
|
|
|
|
|
class="!w-240px"
|
|
|
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
|
|
|
v-model="row.workTime"
|
|
|
|
|
|
|
|
placeholder="请输入预计工时"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="派工数量" align="center" prop="amount" width="180">
|
|
|
|
<el-table-column label="派工数量" align="center" prop="amount" width="180">
|
|
|
|
<template #header> <span class="hl-table_header">*</span>派工数量</template>
|
|
|
|
<template #header> <span class="hl-table_header">*</span>派工数量</template>
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
|
|
|
<el-form-item
|
|
|
|
<el-input-number min="0" :max="formData.amount" :precision="0" class="!w-240px" :disabled="detailDisabled" v-model="row.amount" placeholder="请输入派工数量" />
|
|
|
|
:prop="`${$index}.amount`"
|
|
|
|
|
|
|
|
:rules="subFormRules.amount"
|
|
|
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-input-number
|
|
|
|
|
|
|
|
min="0"
|
|
|
|
|
|
|
|
:max="formData.amount"
|
|
|
|
|
|
|
|
:precision="0"
|
|
|
|
|
|
|
|
class="!w-240px"
|
|
|
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
|
|
|
v-model="row.amount"
|
|
|
|
|
|
|
|
placeholder="请输入派工数量"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
@ -94,13 +193,23 @@
|
|
|
|
<el-table-column label="工序要点" prop="summary" min-width="160">
|
|
|
|
<el-table-column label="工序要点" prop="summary" min-width="160">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
|
|
|
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
|
|
|
<el-input :disabled="detailDisabled || row.procedureStatus != 0" v-model="row.summary" placeholder="请输入工序要点" />
|
|
|
|
<el-input
|
|
|
|
|
|
|
|
:disabled="detailDisabled || row.procedureStatus != 0"
|
|
|
|
|
|
|
|
v-model="row.summary"
|
|
|
|
|
|
|
|
placeholder="请输入工序要点"
|
|
|
|
|
|
|
|
/>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column fixed="right" label="操作" align="center" min-width="100">
|
|
|
|
<el-table-column fixed="right" label="操作" align="center" min-width="100">
|
|
|
|
<template #default="scope">
|
|
|
|
<template #default="scope">
|
|
|
|
<el-button v-if="'detail' != active && scope.row.procedureStatus == 0" link type="danger" size="small" @click.prevent="onDeleteItem(scope.$index)">
|
|
|
|
<el-button
|
|
|
|
|
|
|
|
v-if="'detail' != active && scope.row.procedureStatus == 0"
|
|
|
|
|
|
|
|
link
|
|
|
|
|
|
|
|
type="danger"
|
|
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
|
|
@click.prevent="onDeleteItem(scope.$index)"
|
|
|
|
|
|
|
|
>
|
|
|
|
删除
|
|
|
|
删除
|
|
|
|
</el-button>
|
|
|
|
</el-button>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
@ -118,7 +227,6 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</Dialog>
|
|
|
|
</Dialog>
|
|
|
|
<UserDialog ref="userDialogref" @success="handleuserClick" />
|
|
|
|
<UserDialog ref="userDialogref" @success="handleuserClick" />
|
|
|
|
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
|
|
<script lang="ts" setup>
|
|
|
|
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getDictLabel } from '@/utils/dict'
|
|
|
|
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getDictLabel } from '@/utils/dict'
|
|
|
@ -159,12 +267,11 @@ const subFormRules = reactive({
|
|
|
|
endTime: [{ required: true, message: '预计结束日期不能为空', trigger: 'blur' }]
|
|
|
|
endTime: [{ required: true, message: '预计结束日期不能为空', trigger: 'blur' }]
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 打开弹窗 */
|
|
|
|
/** 打开弹窗 */
|
|
|
|
const open = async (id: []) => {
|
|
|
|
const open = async (id: []) => {
|
|
|
|
resetForm()
|
|
|
|
resetForm()
|
|
|
|
|
|
|
|
|
|
|
|
console.log(id);
|
|
|
|
console.log(id)
|
|
|
|
formData.value.dispatchIds = id
|
|
|
|
formData.value.dispatchIds = id
|
|
|
|
dialogVisible.value = true
|
|
|
|
dialogVisible.value = true
|
|
|
|
dialogTitle.value = t('生产派工')
|
|
|
|
dialogTitle.value = t('生产派工')
|
|
|
@ -219,7 +326,7 @@ const onAddItem = () => {
|
|
|
|
amount: undefined,
|
|
|
|
amount: undefined,
|
|
|
|
summary: undefined,
|
|
|
|
summary: undefined,
|
|
|
|
status: 1,
|
|
|
|
status: 1,
|
|
|
|
procedureStatus: 0,
|
|
|
|
procedureStatus: 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
formData.value.taskDispatchDetails.push(row)
|
|
|
|
formData.value.taskDispatchDetails.push(row)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -240,15 +347,10 @@ const openuserDialog = (index) => {
|
|
|
|
const ownerIds = ref([])
|
|
|
|
const ownerIds = ref([])
|
|
|
|
const ownerNames = ref([])
|
|
|
|
const ownerNames = ref([])
|
|
|
|
const handleuserClick = (val, index) => {
|
|
|
|
const handleuserClick = (val, index) => {
|
|
|
|
val?.filter(item=>{
|
|
|
|
|
|
|
|
ownerIds.value.push(item.id)
|
|
|
|
|
|
|
|
ownerNames.value.push(item.nickname)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
formData.value.taskDispatchDetails[index].owners=ownerIds?.value
|
|
|
|
|
|
|
|
formData.value.taskDispatchDetails[index].ownerNames=ownerNames?.value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// console.log(formData.value.taskDispatchDetails[index].owners);
|
|
|
|
// 确保逻辑正确无误,例如避免直接修改reactive引用的原始数组
|
|
|
|
// console.log(formData.value.taskDispatchDetails[index].ownerNames);
|
|
|
|
formData.value.taskDispatchDetails[index].owners = val.map(item => item.id);
|
|
|
|
|
|
|
|
formData.value.taskDispatchDetails[index].ownerNames = val.map(item => item.nickname);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|