feat(mes): 添加工单状态过滤功能

pull/871/MERGE
YunaiV 2026-04-07 20:03:57 +08:00
parent 06b00efcbe
commit 0d13f32654
13 changed files with 117 additions and 19 deletions

View File

@ -25,6 +25,7 @@
<ProWorkOrderSelect
v-if="formType === 'create'"
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
placeholder="请选择工单(可选)"
/>
<el-input v-else :model-value="formData.workOrderCode || '-'" disabled />
@ -119,7 +120,7 @@ import { ProAndonConfigVO } from '@/api/mes/pro/andon/config'
import { DICT_TYPE } from '@/utils/dict'
import { useUserStoreWithOut } from '@/store/modules/user'
import { formatDate } from '@/utils/formatTime'
import { MesProAndonStatusEnum } from '@/views/mes/utils/constants'
import { MesProAndonStatusEnum, MesProWorkOrderStatusEnum } from '@/views/mes/utils/constants'
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import ProProcessSelect from '@/views/mes/pro/process/components/ProProcessSelect.vue'

View File

@ -25,7 +25,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
/>
</el-form-item>
</el-col>
</el-row>
@ -100,7 +104,11 @@ import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import CardProcessList from './CardProcessList.vue'
import { MesProCardStatusEnum, MesAutoCodeRuleCode } from '@/views/mes/utils/constants'
import {
MesProCardStatusEnum,
MesProWorkOrderStatusEnum,
MesAutoCodeRuleCode
} from '@/views/mes/utils/constants'
defineOptions({ name: 'CardForm' })
const emit = defineEmits(['success'])

View File

@ -48,6 +48,7 @@
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
placeholder="请选择工单"
@change="handleWorkOrderChange"
@ -294,7 +295,11 @@ import UserSelectV2 from '@/views/system/user/components/UserSelectV2.vue'
import ItemConsumeList from './ItemConsumeList.vue'
import ProductProduceList from './ProductProduceList.vue'
import { useUserStore } from '@/store/modules/user'
import { MesAutoCodeRuleCode, MesProFeedbackStatusEnum } from '@/views/mes/utils/constants'
import {
MesAutoCodeRuleCode,
MesProFeedbackStatusEnum,
MesProWorkOrderStatusEnum
} from '@/views/mes/utils/constants'
defineOptions({ name: 'FeedbackForm' })
const emit = defineEmits(['success'])

View File

@ -40,7 +40,12 @@
</el-tooltip>
</div>
<!-- 弹窗必须放在 div 外部否则弹窗内的点击事件会冒泡到 div 触发 handleClick -->
<ProWorkOrderSelectDialog ref="dialogRef" :multiple="false" @selected="handleSelected" />
<ProWorkOrderSelectDialog
ref="dialogRef"
:multiple="false"
:status="status"
@selected="handleSelected"
/>
</template>
<script setup lang="ts">
@ -60,6 +65,7 @@ const props = withDefaults(
disabled?: boolean //
clearable?: boolean //
placeholder?: string //
status?: number // Dialog
}>(),
{
disabled: false,

View File

@ -35,7 +35,26 @@
<MdItemSelect v-model="queryParams.productId" placeholder="请选择产品" class="!w-240px" />
</el-form-item>
<el-form-item label="客户">
<MdClientSelect v-model="queryParams.clientId" placeholder="请选择客户" class="!w-240px" />
<MdClientSelect
v-model="queryParams.clientId"
placeholder="请选择客户"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="工单状态">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRO_WORK_ORDER_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
@ -80,7 +99,10 @@
<el-table-column label="工单名称" align="center" prop="name" min-width="200" />
<el-table-column label="工单来源" align="center" prop="orderSourceType" width="100">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_PRO_WORK_ORDER_SOURCE_TYPE" :value="scope.row.orderSourceType" />
<dict-tag
:type="DICT_TYPE.MES_PRO_WORK_ORDER_SOURCE_TYPE"
:value="scope.row.orderSourceType"
/>
</template>
</el-table-column>
<el-table-column label="订单编号" align="center" prop="orderSourceCode" width="140" />
@ -91,6 +113,11 @@
<el-table-column label="工单数量" align="center" prop="quantity" width="100" />
<el-table-column label="客户编码" align="center" prop="clientCode" width="120" />
<el-table-column label="客户名称" align="center" prop="clientName" min-width="120" />
<el-table-column label="工单状态" align="center" prop="status" width="100">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_PRO_WORK_ORDER_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column
label="需求日期"
align="center"
@ -125,6 +152,7 @@ defineOptions({ name: 'ProWorkOrderSelectDialog' })
const props = withDefaults(
defineProps<{
multiple?: boolean // true checkboxfalse radio
status?: number //
}>(),
{
multiple: true
@ -187,7 +215,8 @@ const queryParams = reactive({
code: undefined as string | undefined, //
name: undefined as string | undefined, //
productId: undefined as number | undefined, //
clientId: undefined as number | undefined //
clientId: undefined as number | undefined, //
status: undefined as number | undefined //
})
/** 查询工单列表 */
@ -240,6 +269,7 @@ const resetQuery = () => {
queryParams.name = undefined
queryParams.productId = undefined
queryParams.clientId = undefined
queryParams.status = props.status
handleQuery()
}
@ -271,6 +301,7 @@ const open = async (selectedIds?: number[]) => {
queryParams.name = undefined
queryParams.productId = undefined
queryParams.clientId = undefined
queryParams.status = props.status
queryParams.pageNo = 1
//
selectedRows.value = []

View File

@ -65,6 +65,7 @@
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
placeholder="请选择生产工单"
class="!w-1/1"
:disabled="isFromPendingTask"
@ -296,7 +297,12 @@ import ProTaskSelect from '@/views/mes/pro/task/components/ProTaskSelect.vue'
import UserSelectV2 from '@/views/system/user/components/UserSelectV2.vue'
import IpqcLineList from './IpqcLineList.vue'
import QcIndicatorResultList from '@/views/mes/qc/indicatorresult/components/QcIndicatorResultList.vue'
import { MesQcTypeEnum, MesQcStatusEnum, MesAutoCodeRuleCode } from '@/views/mes/utils/constants'
import {
MesQcTypeEnum,
MesQcStatusEnum,
MesAutoCodeRuleCode,
MesProWorkOrderStatusEnum
} from '@/views/mes/utils/constants'
defineOptions({ name: 'IpqcForm' })

View File

@ -78,7 +78,12 @@
label="工单"
prop="bizId"
>
<ProWorkOrderSelect v-model="formData.bizId" @change="handleBizSelect" class="!w-1//1" />
<ProWorkOrderSelect
v-model="formData.bizId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
@change="handleBizSelect"
class="!w-1//1"
/>
</el-form-item>
<el-form-item
v-else-if="formData.bizType === BarcodeBizTypeEnum.MACHINERY"
@ -209,7 +214,7 @@
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import { CommonStatusEnum } from '@/utils/constants'
import { WmBarcodeApi, type WmBarcodeVO } from '@/api/mes/wm/barcode'
import { BarcodeBizTypeEnum } from '@/views/mes/utils/constants'
import { BarcodeBizTypeEnum, MesProWorkOrderStatusEnum } from '@/views/mes/utils/constants'
import WmWarehouseSelect from '@/views/mes/wm/warehouse/components/WmWarehouseSelect.vue'
import WmWarehouseAreaSelect from '@/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue'
import WmWarehouseLocationSelect from '@/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue'

View File

@ -50,6 +50,7 @@
<ProWorkOrderSelect
v-model="formData.workOrderId"
:type="MesProWorkOrderTypeEnum.OUTSOURCE"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
@change="handleWorkOrderChange"
/>
@ -109,7 +110,12 @@ import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import OutsourceIssueLineList from './OutsourceIssueLineList.vue'
import { ProWorkOrderVO } from '@/api/mes/pro/workorder'
import { MesAutoCodeRuleCode, MesWmOutsourceIssueStatusEnum, MesProWorkOrderTypeEnum } from '@/views/mes/utils/constants'
import {
MesAutoCodeRuleCode,
MesProWorkOrderStatusEnum,
MesWmOutsourceIssueStatusEnum,
MesProWorkOrderTypeEnum
} from '@/views/mes/utils/constants'
defineOptions({ name: 'OutsourceIssueForm' })
const emit = defineEmits(['success'])

View File

@ -36,6 +36,7 @@
<ProWorkOrderSelect
v-model="formData.workOrderId"
:type="MesProWorkOrderTypeEnum.OUTSOURCE"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
@change="handleWorkOrderChange"
/>
@ -111,6 +112,7 @@ import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrde
import OutsourceReceiptLineList from './OutsourceReceiptLineList.vue'
import {
MesProWorkOrderTypeEnum,
MesProWorkOrderStatusEnum,
MesWmOutsourceReceiptStatusEnum
} from '@/views/mes/utils/constants'

View File

@ -47,7 +47,10 @@
<el-row>
<el-col :span="8">
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect v-model="formData.workOrderId" />
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -100,6 +103,7 @@
import { dateFormatter2 } from '@/utils/formatTime'
import { WmPackageLineApi, WmPackageLineVO } from '@/api/mes/wm/packages/line'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import { MesProWorkOrderStatusEnum } from '@/views/mes/utils/constants'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
defineOptions({ name: 'PackageLineList' })

View File

@ -45,7 +45,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -96,7 +100,11 @@
<script setup lang="ts">
import { WmProductIssueApi, WmProductIssueVO } from '@/api/mes/wm/productissue'
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import { MesAutoCodeRuleCode, MesWmProductIssueStatusEnum } from '@/views/mes/utils/constants'
import {
MesAutoCodeRuleCode,
MesProWorkOrderStatusEnum,
MesWmProductIssueStatusEnum
} from '@/views/mes/utils/constants'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
import ProductIssueLineList from './ProductIssueLineList.vue'

View File

@ -47,7 +47,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
/>
</el-form-item>
</el-col>
</el-row>
@ -97,7 +101,11 @@ import { WmProductReceiptApi, WmProductReceiptVO } from '@/api/mes/wm/productrec
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import ProductReceiptLineList from './ProductReceiptLineList.vue'
import { MesAutoCodeRuleCode, MesWmProductReceiptStatusEnum } from '@/views/mes/utils/constants'
import {
MesAutoCodeRuleCode,
MesProWorkOrderStatusEnum,
MesWmProductReceiptStatusEnum
} from '@/views/mes/utils/constants'
defineOptions({ name: 'ProductReceiptForm' })
const emit = defineEmits(['success'])

View File

@ -49,7 +49,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
<ProWorkOrderSelect
v-model="formData.workOrderId"
:status="MesProWorkOrderStatusEnum.CONFIRMED"
:disabled="isHeaderReadonly"
/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -113,7 +117,11 @@
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import { WmReturnIssueApi, WmReturnIssueVO } from '@/api/mes/wm/returnissue'
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import { MesAutoCodeRuleCode, MesWmReturnIssueStatusEnum } from '@/views/mes/utils/constants'
import {
MesAutoCodeRuleCode,
MesProWorkOrderStatusEnum,
MesWmReturnIssueStatusEnum
} from '@/views/mes/utils/constants'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
import ReturnIssueLineList from './ReturnIssueLineList.vue'