siontion 4 months ago
commit 09cf23465d

@ -70,10 +70,10 @@ export const getTaskDispatchDetailPage = async (params) => {
export const SaveSubmissionWorkOrderDetails = async (data: TaskDispatchVO) => {
return await request.post({ url: `/biz/task-dispatch/update-taskdispach-detail-batch`, data })
}
//==================== ②批量取消派工单明细 /biz/task-dispatch/cancel-taskdispach-detail-batch
//==================== ②批量取消派工单明细
export const CancellationWorkOrderDetails = async (data: TaskDispatchVO) => {
return await request.post({ url: `/biz/task-dispatch/update-taskdispach-detail-batch`, data })
return await request.post({ url: `/biz/task-dispatch/cancel-taskdispach-detail-batch`, data })
}
// 请求参数结构参照:{'dispatchIds':[派工单id1,派工单id2,...],'active':'1','dispatchStatus':2}

@ -1,5 +1,5 @@
<template>
<Dialog v-model="dialogVisible" :title="dialogTitle" style="width:1200px">
<Dialog v-model="dialogVisible" :title="dialogTitle" style="width: 1200px">
<!-- 表格类信息 -->
<el-card class="hl-card-info">
<!-- <template #header>
@ -12,77 +12,176 @@
</el-col>
<el-col>
<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-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 #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
<el-table-column label="工序编号" prop="procedureCode" width="120" />
<el-table-column label="是否需要报工" prop="isReport" width="120">
<template #default="scope">
{{getDictLabel(DICT_TYPE.BIZ_COMMON_IS_OR_NOT, scope.row.isReport)}}
{{ getDictLabel(DICT_TYPE.BIZ_COMMON_IS_OR_NOT, scope.row.isReport) }}
</template>
</el-table-column>
<el-table-column label="顺序号" align="center" prop="sort" width="140">
<template #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
<el-table-column label="负责人" align="center" prop="owner" min-width="240">
<template #header> <span class="hl-table_header">*</span>负责人</template>
<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)" /> -->
<el-input 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
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-form-item>
</template>
</el-table-column>
<el-table-column label="生产设备" min-width="180" align="center">
<template #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
<el-table-column label="预计开始日期" min-width="180">
<template #header> <span class="hl-table_header">*</span>预计开始日期</template>
<template #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
<el-table-column label="预计结束日期" min-width="180">
<template #header> <span class="hl-table_header">*</span>预计结束日期</template>
<template #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
<el-table-column label="预计工时" align="center" prop="workTime" width="180">
<template #header> <span class="hl-table_header">*</span>预计工时</template>
<template #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
<el-table-column label="派工数量" align="center" prop="amount" width="180">
<template #header> <span class="hl-table_header">*</span>派工数量</template>
<template #default="{ row, $index }">
<el-form-item :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
: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>
</template>
</el-table-column>
@ -94,13 +193,23 @@
<el-table-column label="工序要点" prop="summary" min-width="160">
<template #default="{ row, $index }">
<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>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" min-width="100">
<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>
</template>
@ -118,7 +227,6 @@
</template>
</Dialog>
<UserDialog ref="userDialogref" @success="handleuserClick" />
</template>
<script lang="ts" setup>
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getDictLabel } from '@/utils/dict'
@ -141,13 +249,13 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formData = ref({
dispatchIds:[],
active:undefined,
dispatchStatus:1,
taskDispatchDetails:[
dispatchIds: [],
active: undefined,
dispatchStatus: 1,
taskDispatchDetails: [
// {'procedureId':id,'sort':1,'owner':id,'deviceModel':id,'workTime':2.5,'startTime':'2024-06-12','endTime':'2024-06-12','amount':100,'summary':'','procedure_status':0,'status':1}
]
})
})
const subFormRef = ref() // Ref
const deptTree = ref() //
const subFormRules = reactive({
@ -159,13 +267,12 @@ const subFormRules = reactive({
endTime: [{ required: true, message: '预计结束日期不能为空', trigger: 'blur' }]
})
/** 打开弹窗 */
const open = async (id: []) => {
resetForm()
console.log(id);
formData.value.dispatchIds=id
console.log(id)
formData.value.dispatchIds = id
dialogVisible.value = true
dialogTitle.value = t('生产派工')
}
@ -175,10 +282,10 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
const emit = defineEmits(['success']) // success
const submitForm = async (operate) => {
formData.value.active = operate
if(operate=='SAVE'){
formData.value.dispatchStatus=1
}else if(operate=='SUBMIT'){
formData.value.dispatchStatus=2
if (operate == 'SAVE') {
formData.value.dispatchStatus = 1
} else if (operate == 'SUBMIT') {
formData.value.dispatchStatus = 2
}
//
await subFormRef.value.validate()
@ -200,10 +307,10 @@ const submitForm = async (operate) => {
/** 重置表单 */
const resetForm = () => {
formData.value = {
dispatchIds:[],
active:undefined,
dispatchStatus:1,
taskDispatchDetails:[]
dispatchIds: [],
active: undefined,
dispatchStatus: 1,
taskDispatchDetails: []
}
subFormRef.value?.resetFields()
}
@ -219,36 +326,31 @@ const onAddItem = () => {
amount: undefined,
summary: undefined,
status: 1,
procedureStatus: 0,
procedureStatus: 0
}
formData.value.taskDispatchDetails.push(row)
}
/** 删除子项操作 */
const onDeleteItem = async (index) => {
formData.value.taskDispatchDetails.splice(index, 1)
formData.value.taskDispatchDetails.splice(index, 1)
}
//
const handleClick = (index) => {
openuserDialog(index)
}
const userDialogref=ref()
const userDialogref = ref()
const openuserDialog = (index) => {
userDialogref.value.open(index)
}
const ownerIds =ref([])
const ownerNames =ref([])
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
const ownerIds = ref([])
const ownerNames = ref([])
const handleuserClick = (val, index) => {
// console.log(formData.value.taskDispatchDetails[index].owners);
// console.log(formData.value.taskDispatchDetails[index].ownerNames);
// reactive
formData.value.taskDispatchDetails[index].owners = val.map(item => item.id);
formData.value.taskDispatchDetails[index].ownerNames = val.map(item => item.nickname);
}

@ -147,10 +147,10 @@
<template #header> <span class="hl-table_header">*</span>负责人</template>
<template #default="{ row, $index }">
<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)" />
<!-- <el-input class="!w-265px" placeholder="负责人" v-model="row.ownerNames" readonly @click.prevent="handleClick($index)">
<!-- <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)">
<template #append><el-button :icon="Search" @click="openuserDialog($index)" /></template>
</el-input> -->
</el-input>
</el-form-item>
</template>
</el-table-column>
@ -470,12 +470,9 @@ const openuserDialog = (index) => {
const ownerIds =ref([])
const ownerNames =ref([])
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
// reactive
formData.value.taskDispatchDetails[index].owners = val.map(item => item.id);
formData.value.taskDispatchDetails[index].ownerNames = val.map(item => item.nickname);
// console.log(formData.value.taskDispatchDetails[index].owners);
// console.log(formData.value.taskDispatchDetails[index].ownerNames);

@ -94,14 +94,14 @@
/>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="margin-left: 20px;">
<el-button @click="handleQuery" type="primary">
<Icon icon="ep:search" class="mr-5px" /> 查询
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
<el-button @click="openDispatching"> </el-button>
<el-button @click="openDispatching" type="primary"> 生产派工 </el-button>
<el-button @click="outDispatching"> </el-button>
</el-form-item>
</el-form>
@ -137,7 +137,7 @@
prop="projectSubName"
min-width="240"
/>
<el-table-column label="规格型号" fixed align="center" prop="spec" min-width="160" />
<el-table-column label="规格型号" fixed align="center" prop="spec" min-width="140" />
<el-table-column label="数量" fixed align="center" prop="amount" min-width="90" />
<el-table-column label="单位" align="center" prop="unit" min-width="80">
<template #default="scope">
@ -346,14 +346,12 @@ const outDispatching = () => {
formData.value.dispatchIds.push(item.id)
})
const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO
console.log(data)
await TaskDispatchApi.CancellationWorkOrderDetails(data)
ElMessage({
type: 'success',
message: 'Delete completed'
})
getList()
})
.catch(() => {
// ElMessage({

@ -125,7 +125,6 @@ const multipleTable: any = ref<InstanceType<typeof ElTable>>()
const multipleSelection: any = ref([])
const handleSelectionChange = (val: []) => {
multipleSelection.value = val
}
@ -145,10 +144,10 @@ const clickRow = (row: any) => {
const emit = defineEmits(['success']) // success
const submitForm = () => {
// if (!multipleSelection.value || multipleSelection.value.length <= 0) {
// message.warning(t('common.selectText'))
// return
// }
if (!multipleSelection.value || multipleSelection.value.length <= 0) {
message.warning(t('common.selectText'))
return
}
dialogVisible.value = false
//
// console.log(dialogTypeValue.value)
@ -163,6 +162,7 @@ const userInit = ref()
const faindex =ref()
/** 打开弹窗 */
const open = async (index) => {
multipleSelection.value=[]
faindex.value=index
dialogVisible.value = true
queryParams.userNickName = undefined

Loading…
Cancel
Save