🎨 style(mes): 统一代码格式,优化可读性

pull/871/MERGE
YunaiV 2026-03-30 23:23:23 +08:00
parent 920799534a
commit 76f47a476b
134 changed files with 791 additions and 756 deletions

View File

@ -35,6 +35,9 @@ export const CalTeamMemberApi = {
// 查询多个班组的成员列表
getTeamMemberListByTeamIds: async (teamIds: number[]) => {
return await request.get({ url: `/mes/cal/team-member/list-by-team`, params: { teamIds: teamIds.join(',') } })
return await request.get({
url: `/mes/cal/team-member/list-by-team`,
params: { teamIds: teamIds.join(',') }
})
}
}

View File

@ -15,7 +15,9 @@ export interface MdWorkstationMachineVO {
export const MdWorkstationMachineApi = {
// 查询设备资源列表
getWorkstationMachineList: async (workstationId: number) => {
return await request.get({ url: `/mes/md-workstation-machine/list-by-workstation?workstationId=` + workstationId })
return await request.get({
url: `/mes/md-workstation-machine/list-by-workstation?workstationId=` + workstationId
})
},
// 新增设备资源

View File

@ -14,7 +14,9 @@ export interface MdWorkstationToolVO {
export const MdWorkstationToolApi = {
// 查询工装夹具资源列表
getWorkstationToolList: async (workstationId: number) => {
return await request.get({ url: `/mes/md-workstation-tool/list-by-workstation?workstationId=` + workstationId })
return await request.get({
url: `/mes/md-workstation-tool/list-by-workstation?workstationId=` + workstationId
})
},
// 新增工装夹具资源

View File

@ -14,7 +14,9 @@ export interface MdWorkstationWorkerVO {
export const MdWorkstationWorkerApi = {
// 查询人力资源列表
getWorkstationWorkerList: async (workstationId: number) => {
return await request.get({ url: `/mes/md-workstation-worker/list-by-workstation?workstationId=` + workstationId })
return await request.get({
url: `/mes/md-workstation-worker/list-by-workstation?workstationId=` + workstationId
})
},
// 新增人力资源

View File

@ -17,7 +17,9 @@ export interface ProProcessContentVO {
export const ProProcessContentApi = {
// 查询工序内容列表(按工序编号)
getProcessContentListByProcessId: async (processId: number) => {
return await request.get({ url: `/mes/pro/process-content/list-by-process?processId=` + processId })
return await request.get({
url: `/mes/pro/process-content/list-by-process?processId=` + processId
})
},
// 查询工序内容详情

View File

@ -29,7 +29,9 @@ export const ProRouteProcessApi = {
// 按产品查询工序列表(自动查找关联的工艺路线)
getRouteProcessListByProduct: async (productId: number) => {
return await request.get({ url: `/mes/pro/route-process/list-by-product?productId=` + productId })
return await request.get({
url: `/mes/pro/route-process/list-by-product?productId=` + productId
})
},
// 查询工艺路线工序详情

View File

@ -19,7 +19,11 @@ export interface ProRouteProductBomVO {
// MES 工艺路线产品 BOM API
export const ProRouteProductBomApi = {
// 查询工艺路线产品 BOM 列表
getRouteProductBomList: async (params: { routeId: number; processId?: number; productId?: number }) => {
getRouteProductBomList: async (params: {
routeId: number
processId?: number
productId?: number
}) => {
return await request.get({ url: `/mes/pro/route-product-bom/list`, params })
},

View File

@ -44,6 +44,8 @@ export const ProWorkOrderBomApi = {
// 获取工单物料需求列表
getWorkOrderBomItemListByWorkOrderId: async (workOrderId: number) => {
return await request.get({ url: `/mes/pro/work-order-bom/item-list-by-work-order-id?workOrderId=` + workOrderId })
return await request.get({
url: `/mes/pro/work-order-bom/item-list-by-work-order-id?workOrderId=` + workOrderId
})
}
}

View File

@ -36,7 +36,10 @@ export const QcIndicatorResultApi = {
// 查询检验结果明细(含检测项模板):编辑传 id新增不传
getDetail: async (qcId: number, qcType: number, id?: number) => {
return await request.get({ url: `/mes/qc/indicator-result/get-detail`, params: { id, qcId, qcType } })
return await request.get({
url: `/mes/qc/indicator-result/get-detail`,
params: { id, qcId, qcType }
})
},
// 新增检验结果

View File

@ -26,7 +26,10 @@ export interface WmItemReceiptDetailVO {
export const WmItemReceiptDetailApi = {
// 查询采购入库明细列表(按行编号)
getItemReceiptDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/item-receipt-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/item-receipt-detail/list-by-line',
params: { lineId }
})
},
// 查询采购入库明细详情

View File

@ -27,7 +27,9 @@ export const WmMiscReceiptLineApi = {
// 查询杂项入库单行列表
getMiscReceiptLineListByReceiptId: async (receiptId: number) => {
return await request.get({ url: '/mes/wm/misc-receipt-line/list-by-receipt-id?receiptId=' + receiptId })
return await request.get({
url: '/mes/wm/misc-receipt-line/list-by-receipt-id?receiptId=' + receiptId
})
},
// 新增杂项入库单行

View File

@ -28,7 +28,10 @@ export interface WmOutsourceIssueDetailVO {
export const WmOutsourceIssueDetailApi = {
// 查询外协发料单明细列表(按行编号)
getOutsourceIssueDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/outsource-issue-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/outsource-issue-detail/list-by-line',
params: { lineId }
})
},
// 查询外协发料单明细详情

View File

@ -20,7 +20,10 @@ export interface WmOutsourceReceiptDetailVO {
export const WmOutsourceReceiptDetailApi = {
// 查询委外收货明细列表(按行编号)
getOutsourceReceiptDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/outsource-receipt-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/outsource-receipt-detail/list-by-line',
params: { lineId }
})
},
// 查询委外收货明细详情

View File

@ -62,7 +62,10 @@ export const WmPackageApi = {
// 添加子箱
addChildPackage: async (parentId: number, childId: number) => {
return await request.put({ url: '/mes/wm/package/add-child-package', params: { parentId, childId } })
return await request.put({
url: '/mes/wm/package/add-child-package',
params: { parentId, childId }
})
},
// 移除子箱

View File

@ -23,7 +23,10 @@ export interface WmProductIssueDetailVO {
export const WmProductIssueDetailApi = {
// 查询领料出库明细列表(按行编号)
getProductIssueDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/product-issue-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/product-issue-detail/list-by-line',
params: { lineId }
})
},
// 查询领料出库明细详情

View File

@ -28,7 +28,10 @@ export const WmProductReceiptDetailApi = {
// 根据行项目ID查询产品入库单明细列表
getProductReceiptDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/product-receipt-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/product-receipt-detail/list-by-line',
params: { lineId }
})
},
// 查询产品入库单明细详情

View File

@ -24,7 +24,10 @@ export interface WmProductSalesDetailVO {
export const WmProductSalesDetailApi = {
// 查询销售出库明细列表(按行编号)
getProductSalesDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/product-sales-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/product-sales-detail/list-by-line',
params: { lineId }
})
},
// 查询销售出库明细详情

View File

@ -23,7 +23,10 @@ export interface WmReturnIssueDetailVO {
export const WmReturnIssueDetailApi = {
// 查询生产退料明细列表(按行编号)
getReturnIssueDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/return-issue-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/return-issue-detail/list-by-line',
params: { lineId }
})
},
// 查询生产退料明细详情

View File

@ -22,7 +22,10 @@ export interface WmReturnSalesDetailVO {
export const WmReturnSalesDetailApi = {
// 查询销售退货明细列表(按行编号)
getReturnSalesDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/return-sales-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/return-sales-detail/list-by-line',
params: { lineId }
})
},
// 查询销售退货明细详情

View File

@ -23,7 +23,10 @@ export interface WmReturnVendorDetailVO {
export const WmReturnVendorDetailApi = {
// 查询供应商退货明细列表(按行编号)
getReturnVendorDetailListByLineId: async (lineId: number) => {
return await request.get({ url: '/mes/wm/return-vendor-detail/list-by-line', params: { lineId } })
return await request.get({
url: '/mes/wm/return-vendor-detail/list-by-line',
params: { lineId }
})
},
// 查询供应商退货明细详情

View File

@ -16,7 +16,9 @@ export interface StockTakingPlanVO {
export const StockTakingPlanApi = {
updateStockTakingPlanStatus: async (id: number, status: number) => {
return await request.put({ url: '/mes/wm/stocktaking-plan/update-status?id=' + id + '&status=' + status })
return await request.put({
url: '/mes/wm/stocktaking-plan/update-status?id=' + id + '&status=' + status
})
},
getStockTakingPlanPage: async (params: any) => {

View File

@ -19,7 +19,6 @@ export const StockTakingPlanParamApi = {
return await request.get({ url: '/mes/wm/stocktaking-plan-param/page', params })
},
createStockTakingPlanParam: async (data: StockTakingPlanParamVO) => {
return await request.post({ url: '/mes/wm/stocktaking-plan-param/create', data })
},

View File

@ -30,7 +30,10 @@ export const StockTakingTaskLineApi = {
},
getStockTakingTaskLineSimpleList: async (taskId: number) => {
return await request.get({ url: '/mes/wm/stocktaking-task-line/simple-list', params: { taskId } })
return await request.get({
url: '/mes/wm/stocktaking-task-line/simple-list',
params: { taskId }
})
},
getStockTakingTaskLine: async (id: number) => {

View File

@ -49,6 +49,5 @@ export const WmTransferDetailApi = {
// 删除调拨明细
deleteTransferDetail: async (id: number) => {
return await request.delete({ url: '/mes/wm/transfer-detail/delete?id=' + id })
},
}
}

View File

@ -49,6 +49,5 @@ export const WmTransferLineApi = {
// 删除转移单行
deleteTransferLine: async (id: number) => {
return await request.delete({ url: '/mes/wm/transfer-line/delete?id=' + id })
},
}
}

View File

@ -52,5 +52,5 @@ export const WmWarehouseAreaApi = {
// 删除库位
deleteWarehouseArea: async (id: number) => {
return await request.delete({ url: '/mes/wm/warehouse-area/delete?id=' + id })
},
}
}

View File

@ -43,5 +43,5 @@ export const WmWarehouseApi = {
// 删除仓库
deleteWarehouse: async (id: number) => {
return await request.delete({ url: '/mes/wm/warehouse/delete?id=' + id })
},
}
}

View File

@ -23,7 +23,10 @@ export const WmWarehouseLocationApi = {
// 查询库区精简列表
getWarehouseLocationSimpleList: async (warehouseId?: number) => {
return await request.get({ url: '/mes/wm/warehouse-location/simple-list', params: { warehouseId } })
return await request.get({
url: '/mes/wm/warehouse-location/simple-list',
params: { warehouseId }
})
},
// 查询库区详情
@ -47,10 +50,14 @@ export const WmWarehouseLocationApi = {
},
// 批量设置库区下所有库位的混放规则
updateAreaByLocationId: async (locationId: number, allowItemMixing?: boolean, allowBatchMixing?: boolean) => {
updateAreaByLocationId: async (
locationId: number,
allowItemMixing?: boolean,
allowBatchMixing?: boolean
) => {
return await request.put({
url: '/mes/wm/warehouse-location/update-by-location-id',
params: { locationId, allowItemMixing, allowBatchMixing }
})
},
}
}

View File

@ -29,12 +29,7 @@
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
@ -44,12 +39,8 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery">
<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="handleQuery"> <Icon icon="ep:search" class="mr-5px" /> 搜索 </el-button>
<el-button @click="resetQuery"> <Icon icon="ep:refresh" class="mr-5px" /> 重置 </el-button>
<el-button
type="primary"
plain

View File

@ -1,6 +1,8 @@
<!-- 排班日历 - 配色图例说明 -->
<template>
<div class="flex items-center flex-wrap gap-x-16px gap-y-4px text-12px text-#606266 px-2px py-6px">
<div
class="flex items-center flex-wrap gap-x-16px gap-y-4px text-12px text-#606266 px-2px py-6px"
>
<span class="text-#909399 shrink-0">配色说明</span>
<span class="flex items-center gap-4px">
<span class="legend-dot bg-#95d475"></span>
@ -20,7 +22,9 @@
= 周末
</span>
<span class="flex items-center gap-4px">
<el-tag size="small" effect="dark" type="success" class="!text-11px !h-18px !px-4px"></el-tag>
<el-tag size="small" effect="dark" type="success" class="!text-11px !h-18px !px-4px"
></el-tag
>
= 节假日不显示排班
</span>
</div>

View File

@ -12,9 +12,7 @@
<el-form-item label="计划编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入计划编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>
@ -74,7 +72,10 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8" v-if="formData.shiftType && formData.shiftType !== MesCalShiftTypeEnum.SINGLE">
<el-col
:span="8"
v-if="formData.shiftType && formData.shiftType !== MesCalShiftTypeEnum.SINGLE"
>
<el-form-item label="倒班方式" prop="shiftMethod">
<el-select v-model="formData.shiftMethod" placeholder="请选择倒班方式" class="!w-1/1">
<el-option
@ -139,7 +140,11 @@
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { CalPlanApi, CalPlanVO } from '@/api/mes/cal/plan'
import { generateRandomStr } from '@/utils'
import { MesCalPlanStatusEnum, MesCalShiftTypeEnum, MesCalShiftMethodEnum } from '@/views/mes/utils/constants'
import {
MesCalPlanStatusEnum,
MesCalShiftTypeEnum,
MesCalShiftMethodEnum
} from '@/views/mes/utils/constants'
import CalShiftList from './CalShiftList.vue'
import CalPlanTeamList from './CalPlanTeamList.vue'

View File

@ -20,7 +20,13 @@
<!-- 表单弹窗添加/修改 -->
<Dialog :title="dialogTitle" v-model="dialogVisible" width="500px">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px" v-loading="formLoading">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="80px"
v-loading="formLoading"
>
<el-form-item label="班组" prop="teamId">
<el-select v-model="formData.teamId" placeholder="请选择班组" class="!w-1/1">
<el-option

View File

@ -28,12 +28,7 @@
v-loading="formLoading"
>
<el-form-item label="用户" prop="userId">
<el-select
v-model="formData.userId"
placeholder="请选择用户"
filterable
class="!w-1/1"
>
<el-select v-model="formData.userId" placeholder="请选择用户" filterable class="!w-1/1">
<el-option
v-for="user in userList"
:key="user.id"

View File

@ -12,9 +12,7 @@
<el-form-item label="方案编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入方案编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -51,7 +51,11 @@
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="异常描述" prop="checkResult" v-if="formData.checkStatus === MesDvCheckResultEnum.ABNORMAL">
<el-form-item
label="异常描述"
prop="checkResult"
v-if="formData.checkStatus === MesDvCheckResultEnum.ABNORMAL"
>
<el-input v-model="formData.checkResult" type="textarea" placeholder="请输入异常描述" />
</el-form-item>
<el-form-item label="备注" prop="remark">

View File

@ -13,9 +13,7 @@
<el-form-item label="设备编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入设备编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -51,7 +51,12 @@
</el-select>
</el-form-item>
<el-form-item label="设备状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_DV_MACHINERY_STATUS)"
:key="dict.value"
@ -61,8 +66,12 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><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="handleQuery"
><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
>
<el-button @click="resetQuery"
><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button
>
<el-button
type="primary"
plain

View File

@ -175,5 +175,4 @@ watch(
},
{ immediate: true }
)
</script>

View File

@ -30,7 +30,12 @@
<DvMachinerySelect v-model="queryParams.machineryId" class="!w-240px" />
</el-form-item>
<el-form-item label="维修结果" prop="result">
<el-select v-model="queryParams.result" placeholder="请选择维修结果" clearable class="!w-240px">
<el-select
v-model="queryParams.result"
placeholder="请选择维修结果"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_DV_REPAIR_RESULT)"
:key="dict.value"

View File

@ -27,7 +27,12 @@
/>
</el-form-item>
<el-form-item label="项目类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择项目类型" clearable class="!w-240px">
<el-select
v-model="queryParams.type"
placeholder="请选择项目类型"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_DV_SUBJECT_TYPE)"
:key="dict.value"

View File

@ -13,9 +13,7 @@
<el-form-item label="客户编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入客户编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -45,7 +45,12 @@
/>
</el-form-item>
<el-form-item label="客户类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择客户类型" clearable class="!w-240px">
<el-select
v-model="queryParams.type"
placeholder="请选择客户类型"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_CLIENT_TYPE)"
:key="dict.value"
@ -75,12 +80,7 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="warning"
plain
@click="handleImport"
v-hasPermi="['mes:md-client:import']"
>
<el-button type="warning" plain @click="handleImport" v-hasPermi="['mes:md-client:import']">
<Icon icon="ep:upload" class="mr-5px" /> 导入
</el-button>
<el-button

View File

@ -14,9 +14,7 @@
<el-form-item label="物料编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入物料编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -13,9 +13,7 @@
<el-form-item label="供应商编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入供应商编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -13,9 +13,7 @@
<el-form-item label="工作站编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入工作站编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -27,10 +27,20 @@
/>
</el-form-item>
<el-form-item label="所在车间" prop="workshopId">
<MdWorkshopSelect v-model="queryParams.workshopId" placeholder="请选择车间" clearable class="!w-240px" />
<MdWorkshopSelect
v-model="queryParams.workshopId"
placeholder="请选择车间"
clearable
class="!w-240px"
/>
</el-form-item>
<el-form-item label="所属工序" prop="processId">
<ProProcessSelect v-model="queryParams.processId" placeholder="请选择工序" clearable class="!w-240px" />
<ProProcessSelect
v-model="queryParams.processId"
placeholder="请选择工序"
clearable
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">

View File

@ -23,12 +23,23 @@
<el-row>
<el-col :span="12">
<el-form-item label="面积" prop="area">
<el-input-number v-model="formData.area" :precision="2" :min="0" controls-position="right" class="!w-1/1" />
<el-input-number
v-model="formData.area"
:precision="2"
:min="0"
controls-position="right"
class="!w-1/1"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="负责人" prop="chargeUserId">
<el-select v-model="formData.chargeUserId" placeholder="请选择负责人" clearable class="!w-1/1">
<el-select
v-model="formData.chargeUserId"
placeholder="请选择负责人"
clearable
class="!w-1/1"
>
<el-option
v-for="user in userList"
:key="user.id"
@ -63,7 +74,9 @@
</el-row>
</el-form>
<template #footer>
<el-button v-if="!isDetail" @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button v-if="!isDetail" @click="submitForm" type="primary" :disabled="formLoading"
> </el-button
>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>

View File

@ -60,11 +60,7 @@
</el-table-column>
<el-table-column label="备注" align="center" width="150">
<template #default="scope">
<el-input
v-if="scope.row.editing"
v-model="scope.row.remark"
placeholder="请输入备注"
/>
<el-input v-if="scope.row.editing" v-model="scope.row.remark" placeholder="请输入备注" />
<span v-else>{{ scope.row.remark || '-' }}</span>
</template>
</el-table-column>

View File

@ -10,12 +10,7 @@
class="!w-1/1"
@change="handleChange"
>
<el-option
v-for="item in filteredList"
:key="item.id"
:label="item.reason"
:value="item.id"
>
<el-option v-for="item in filteredList" :key="item.id" :label="item.reason" :value="item.id">
<div class="flex items-center gap-8px">
<span>{{ item.reason }}</span>
<dict-tag :type="DICT_TYPE.MES_PRO_ANDON_LEVEL" :value="item.level" />
@ -64,9 +59,7 @@ const handleFilter = (query: string) => {
return
}
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) => item.reason?.toLowerCase().includes(keyword)
)
filteredList.value = allList.value.filter((item) => item.reason?.toLowerCase().includes(keyword))
}
/** 选中变化 */

View File

@ -13,9 +13,7 @@
<el-form-item label="流转卡编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入流转卡编码" :disabled="isDetail">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -170,7 +170,12 @@
删除
</el-button>
</template>
<template v-if="scope.row.status === MesProFeedbackStatusEnum.APPROVING && scope.row.approveUserId === currentUserId">
<template
v-if="
scope.row.status === MesProFeedbackStatusEnum.APPROVING &&
scope.row.approveUserId === currentUserId
"
>
<el-button
link
type="primary"

View File

@ -13,9 +13,7 @@
<el-form-item label="工序编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入工序编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -60,8 +60,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -28,12 +28,7 @@
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
@ -43,12 +38,8 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"
><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="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain

View File

@ -13,9 +13,7 @@
<el-form-item label="编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入编码">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -10,8 +10,20 @@
<!-- 列表 -->
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" align="center" prop="sort" width="70" fixed="left" />
<el-table-column label="工序编码" align="center" prop="processCode" width="120" fixed="left" />
<el-table-column label="工序名称" align="center" prop="processName" width="120" fixed="left" />
<el-table-column
label="工序编码"
align="center"
prop="processCode"
width="120"
fixed="left"
/>
<el-table-column
label="工序名称"
align="center"
prop="processName"
width="120"
fixed="left"
/>
<el-table-column label="下一道工序" align="center" prop="nextProcessName" width="120" />
<el-table-column label="与下一道工序关系" align="center" prop="linkType" width="150">
<template #default="scope">
@ -40,7 +52,10 @@
</el-table-column>
<el-table-column label="颜色" align="center" prop="colorCode" width="100">
<template #default="scope">
<div v-if="scope.row.colorCode" style="display: flex; align-items: center; justify-content: center; gap: 4px">
<div
v-if="scope.row.colorCode"
style="display: flex; align-items: center; justify-content: center; gap: 4px"
>
<div
:style="{
backgroundColor: scope.row.colorCode,

View File

@ -182,5 +182,4 @@ watch(
},
{ immediate: true }
)
</script>

View File

@ -63,8 +63,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.code?.toLowerCase().includes(keyword) ||
item.name?.toLowerCase().includes(keyword)
item.code?.toLowerCase().includes(keyword) || item.name?.toLowerCase().includes(keyword)
)
}

View File

@ -13,9 +13,7 @@
<el-form-item label="工单编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入工单编码" :disabled="isDetail">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>
@ -74,10 +72,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="产品" prop="productId">
<MdItemSelect
v-model="formData.productId"
:disabled="isDetail"
/>
<MdItemSelect v-model="formData.productId" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.code?.toLowerCase().includes(keyword) ||
item.name?.toLowerCase().includes(keyword)
item.code?.toLowerCase().includes(keyword) || item.name?.toLowerCase().includes(keyword)
)
}

View File

@ -48,7 +48,11 @@
</el-table-column>
<el-table-column label="备注" align="center" min-width="150">
<template #default="scope">
<el-input v-if="scope.row.editing" v-model="scope.row.remark" placeholder="请输入备注" />
<el-input
v-if="scope.row.editing"
v-model="scope.row.remark"
placeholder="请输入备注"
/>
<span v-else>{{ scope.row.remark || '-' }}</span>
</template>
</el-table-column>

View File

@ -13,9 +13,7 @@
<el-form-item label="样品编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入样品编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -15,9 +15,7 @@
<el-form-item label="检验单编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入检验单编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -15,9 +15,7 @@
<el-form-item label="检验单编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入检验单编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -15,9 +15,7 @@
<el-form-item label="检验单编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入检验单编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>
@ -233,7 +231,9 @@
</template>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading" v-if="!isDetail"> </el-button>
<el-button @click="submitForm" type="primary" :disabled="formLoading" v-if="!isDetail">
</el-button>
<el-button
@click="handleFinish"
type="success"

View File

@ -15,9 +15,7 @@
<el-form-item label="检验单编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入检验单编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -27,8 +27,7 @@
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_QC_SOURCE_DOC_TYPE).filter(
(dict) =>
v-for="dict in getIntDictOptions(DICT_TYPE.MES_QC_SOURCE_DOC_TYPE).filter((dict) =>
[MesQcSourceDocTypeEnum.RETURN_ISSUE, MesQcSourceDocTypeEnum.RETURN_SALES].includes(
dict.value
)

View File

@ -14,9 +14,7 @@
<el-form-item label="方案编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入方案编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -12,11 +12,13 @@
<el-row>
<el-col :span="12">
<el-form-item label="工具编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入工具编码" :disabled="formType !== 'create'">
<el-input
v-model="formData.code"
placeholder="请输入工具编码"
:disabled="formType !== 'create'"
>
<template v-if="formType === 'create'" #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>
@ -62,7 +64,12 @@
</el-col>
<el-col :span="8">
<el-form-item label="可用数量" prop="availableQuantity">
<el-input-number v-model="formData.availableQuantity" :min="0" disabled class="!w-1/1" />
<el-input-number
v-model="formData.availableQuantity"
:min="0"
disabled
class="!w-1/1"
/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -128,7 +135,9 @@
</el-form>
<!-- TODO @AI条码相关先忽略后续加 -->
<template #footer>
<el-button v-if="!isDetail" @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button v-if="!isDetail" @click="submitForm" type="primary" :disabled="formLoading"
> </el-button
>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
@ -139,7 +148,11 @@ import { TmToolApi, TmToolVO } from '@/api/mes/tm/tool'
import { TmToolTypeVO } from '@/api/mes/tm/tool/type'
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import TmToolTypeSelect from '@/views/mes/tm/tool/components/TmToolTypeSelect.vue'
import { MesToolStatusEnum, MesMaintenTypeEnum, MesAutoCodeRuleCode } from '@/views/mes/utils/constants'
import {
MesToolStatusEnum,
MesMaintenTypeEnum,
MesAutoCodeRuleCode
} from '@/views/mes/utils/constants'
defineOptions({ name: 'ToolForm' })

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -62,8 +62,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.name?.toLowerCase().includes(keyword) ||
item.code?.toLowerCase().includes(keyword)
item.name?.toLowerCase().includes(keyword) || item.code?.toLowerCase().includes(keyword)
)
}

View File

@ -28,7 +28,12 @@
/>
</el-form-item>
<el-form-item label="工具类型" prop="toolTypeId">
<TmToolTypeSelect v-model="queryParams.toolTypeId" placeholder="请选择工具类型" clearable class="!w-240px" />
<TmToolTypeSelect
v-model="queryParams.toolTypeId"
placeholder="请选择工具类型"
clearable
class="!w-240px"
/>
</el-form-item>
<el-form-item label="品牌" prop="brand">
<el-input

View File

@ -120,10 +120,7 @@ import { WmArrivalNoticeApi, WmArrivalNoticeVO } from '@/api/mes/wm/arrivalnotic
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue'
import ArrivalNoticeLineList from './ArrivalNoticeLineList.vue'
import {
MesAutoCodeRuleCode,
MesWmArrivalNoticeStatusEnum
} from '@/views/mes/utils/constants'
import { MesAutoCodeRuleCode, MesWmArrivalNoticeStatusEnum } from '@/views/mes/utils/constants'
defineOptions({ name: 'ArrivalNoticeForm' })
const emit = defineEmits(['success'])

View File

@ -45,11 +45,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="物料" prop="itemId">
<MdItemSelect
v-model="formData.itemId"
placeholder="请选择物料"
class="!w-1/1"
/>
<MdItemSelect v-model="formData.itemId" placeholder="请选择物料" class="!w-1/1" />
</el-form-item>
</el-col>
<el-col :span="8">

View File

@ -10,7 +10,12 @@
class="!w-1/1"
@change="handleChange"
>
<el-option v-for="item in filteredList" :key="item.id" :label="`${item.itemCode} - ${item.itemName}`" :value="item.id">
<el-option
v-for="item in filteredList"
:key="item.id"
:label="`${item.itemCode} - ${item.itemName}`"
:value="item.id"
>
<div class="flex items-center gap-8px">
<span>{{ item.itemCode }}</span>
<span class="text-gray-500">{{ item.itemName }}</span>

View File

@ -63,8 +63,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = allList.value.filter(
(item) =>
item.code?.toLowerCase().includes(keyword) ||
item.vendorName?.toLowerCase().includes(keyword)
item.code?.toLowerCase().includes(keyword) || item.vendorName?.toLowerCase().includes(keyword)
)
}

View File

@ -1,11 +1,6 @@
<template>
<Dialog title="批次详情" v-model="dialogVisible" width="980px">
<el-form
:model="formData"
label-width="120px"
v-loading="formLoading"
disabled
>
<el-form :model="formData" label-width="120px" v-loading="formLoading" disabled>
<el-row>
<el-col :span="8">
<el-form-item label="批次编号">
@ -43,17 +38,29 @@
<el-row>
<el-col :span="8">
<el-form-item label="生产日期">
<el-input :model-value="formData.produceDate ? formatDate(formData.produceDate, 'YYYY-MM-DD') : ''" />
<el-input
:model-value="
formData.produceDate ? formatDate(formData.produceDate, 'YYYY-MM-DD') : ''
"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="有效期">
<el-input :model-value="formData.expireDate ? formatDate(formData.expireDate, 'YYYY-MM-DD') : ''" />
<el-input
:model-value="
formData.expireDate ? formatDate(formData.expireDate, 'YYYY-MM-DD') : ''
"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库日期">
<el-input :model-value="formData.receiptDate ? formatDate(formData.receiptDate, 'YYYY-MM-DD') : ''" />
<el-input
:model-value="
formData.receiptDate ? formatDate(formData.receiptDate, 'YYYY-MM-DD') : ''
"
/>
</el-form-item>
</el-col>
</el-row>

View File

@ -6,13 +6,7 @@
<el-table-column label="库区名称" align="center" prop="locationName" min-width="100" />
<el-table-column label="库位名称" align="center" prop="areaName" min-width="100" />
<el-table-column label="数量" align="center" prop="quantity" width="100" />
<el-table-column
v-if="isStock"
label="操作"
align="center"
width="120"
fixed="right"
>
<el-table-column v-if="isStock" label="操作" align="center" width="120" fixed="right">
<template #default="scope">
<el-button link type="primary" @click="emit('edit-detail', scope.row.id)">
编辑

View File

@ -17,7 +17,10 @@
:value="item.id"
>
<div class="flex items-center gap-8px">
<span>{{ item.warehouseName }} / {{ item.locationName || '-' }} / {{ item.areaName || '-' }}</span>
<span
>{{ item.warehouseName }} / {{ item.locationName || '-' }} /
{{ item.areaName || '-' }}</span
>
<el-tag size="small" type="info" class="ml-4px">
{{ item.batchCode || '无批次' }} | {{ item.quantity }}
</el-tag>
@ -82,16 +85,21 @@ const handleChange = (val: number | undefined) => {
/** 加载库存列表 */
const loadData = async () => {
const list: WmMaterialStockVO[] = await WmMaterialStockApi.getMaterialStockSimpleList(props.itemId)
const list: WmMaterialStockVO[] = await WmMaterialStockApi.getMaterialStockSimpleList(
props.itemId
)
//
allList.value = list.filter((item) => !item.frozen && item.quantity > 0)
filteredList.value = allList.value
}
/** 监听 itemId 变化重新加载 */
watch(() => props.itemId, () => {
watch(
() => props.itemId,
() => {
loadData()
})
}
)
onMounted(() => {
loadData()

View File

@ -17,9 +17,7 @@
:disabled="isHeaderReadonly"
>
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -4,13 +4,7 @@
<el-button v-if="isUpdate" type="primary" plain @click="openForm('create')" class="mb-10px">
<Icon icon="ep:plus" class="mr-5px" /> 添加物料
</el-button>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
border
>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" border>
<el-table-column label="物料编码" align="center" prop="itemCode" min-width="120" />
<el-table-column label="物料名称" align="center" prop="itemName" min-width="140" />
<el-table-column label="规格型号" align="center" prop="specification" min-width="120" />
@ -20,20 +14,12 @@
<el-table-column label="仓库" align="center" prop="warehouseName" min-width="100" />
<el-table-column label="库区" align="center" prop="locationName" min-width="100" />
<el-table-column label="库位" align="center" prop="areaName" min-width="100" />
<el-table-column
v-if="isUpdate"
label="操作"
align="center"
width="160"
fixed="right"
>
<el-table-column v-if="isUpdate" label="操作" align="center" width="160" fixed="right">
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row.id)">
编辑
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)">
删除
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)"> </el-button>
</template>
</el-table-column>
</el-table>
@ -51,11 +37,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="物料" prop="itemId">
<MdItemSelect
v-model="formData.itemId"
placeholder="请选择物料"
class="!w-1/1"
/>
<MdItemSelect v-model="formData.itemId" placeholder="请选择物料" class="!w-1/1" />
</el-form-item>
</el-col>
<el-col :span="8">

View File

@ -13,9 +13,7 @@
<el-form-item label="发料单编号" prop="code" required>
<el-input v-model="formData.code" placeholder="请输入发料单编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -143,9 +143,11 @@
type="danger"
@click="handleCancel(scope.row.id)"
v-hasPermi="['mes:wm-outsource-issue:update']"
v-if="scope.row.status === MesWmOutsourceIssueStatusEnum.PREPARE ||
v-if="
scope.row.status === MesWmOutsourceIssueStatusEnum.PREPARE ||
scope.row.status === MesWmOutsourceIssueStatusEnum.APPROVING ||
scope.row.status === MesWmOutsourceIssueStatusEnum.APPROVED"
scope.row.status === MesWmOutsourceIssueStatusEnum.APPROVED
"
>
取消
</el-button>

View File

@ -47,7 +47,10 @@
</template>
<script setup lang="ts">
import { WmOutsourceReceiptDetailApi, WmOutsourceReceiptDetailVO } from '@/api/mes/wm/outsourcereceipt/detail'
import {
WmOutsourceReceiptDetailApi,
WmOutsourceReceiptDetailVO
} from '@/api/mes/wm/outsourcereceipt/detail'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import WmWarehouseSelect from '@/views/mes/wm/warehouse/components/WmWarehouseSelect.vue'
import WmWarehouseLocationSelect from '@/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue'

View File

@ -1,20 +1,21 @@
<!-- MES 外协收货明细列表展开行内嵌子组件 -->
<template>
<div class="pl-60px pr-20px py-10px">
<el-button v-if="isUpdate" type="primary" plain size="small" @click="emit('edit-detail', undefined)" class="mb-10px">
<el-button
v-if="isUpdate"
type="primary"
plain
size="small"
@click="emit('edit-detail', undefined)"
class="mb-10px"
>
<Icon icon="ep:plus" class="mr-5px" /> 添加明细
</el-button>
<el-table v-loading="loading" :data="list" border size="small">
<el-table-column label="批次号" align="center" prop="batchCode" min-width="120" />
<el-table-column label="库位名称" align="center" prop="locationName" min-width="100" />
<el-table-column label="数量" align="center" prop="quantity" width="100" />
<el-table-column
v-if="isUpdate"
label="操作"
align="center"
width="120"
fixed="right"
>
<el-table-column v-if="isUpdate" label="操作" align="center" width="120" fixed="right">
<template #default="scope">
<el-button link type="primary" @click="emit('edit-detail', scope.row.id)">
编辑
@ -27,7 +28,10 @@
</template>
<script setup lang="ts">
import { WmOutsourceReceiptDetailApi, WmOutsourceReceiptDetailVO } from '@/api/mes/wm/outsourcereceipt/detail'
import {
WmOutsourceReceiptDetailApi,
WmOutsourceReceiptDetailVO
} from '@/api/mes/wm/outsourcereceipt/detail'
defineOptions({ name: 'OutsourceReceiptDetailList' })
@ -52,7 +56,9 @@ const list = ref<WmOutsourceReceiptDetailVO[]>([])
const getList = async () => {
loading.value = true
try {
list.value = await WmOutsourceReceiptDetailApi.getOutsourceReceiptDetailListByLineId(props.lineId)
list.value = await WmOutsourceReceiptDetailApi.getOutsourceReceiptDetailListByLineId(
props.lineId
)
} finally {
loading.value = false
}

View File

@ -16,9 +16,7 @@
:disabled="isHeaderReadonly"
>
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>

View File

@ -13,9 +13,7 @@
<el-form-item label="装箱单编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入装箱单编号">
<template #append>
<el-button @click="generateCode">
生成
</el-button>
<el-button @click="generateCode"> </el-button>
</template>
</el-input>
</el-form-item>
@ -204,7 +202,9 @@ const formRef = ref()
/** 生成装箱单编号 */
const generateCode = async () => {
formData.value.code = await AutoCodeRecordApi.generateAutoCode(MesAutoCodeRuleCode.WM_PACKAGE_CODE)
formData.value.code = await AutoCodeRecordApi.generateAutoCode(
MesAutoCodeRuleCode.WM_PACKAGE_CODE
)
}
/** 打开弹窗 */

View File

@ -10,12 +10,7 @@
class="!w-1/1"
@change="handleChange"
>
<el-option
v-for="item in filteredList"
:key="item.id"
:label="item.code"
:value="item.id"
>
<el-option v-for="item in filteredList" :key="item.id" :label="item.code" :value="item.id">
<div class="flex items-center gap-8px">
<span>{{ item.code }}</span>
<el-tag v-if="item.clientName" size="small" type="info" class="ml-4px">
@ -77,8 +72,7 @@ const handleFilter = (query: string) => {
const keyword = query.toLowerCase()
filteredList.value = available.filter(
(item) =>
item.code?.toLowerCase().includes(keyword) ||
item.clientName?.toLowerCase().includes(keyword)
item.code?.toLowerCase().includes(keyword) || item.clientName?.toLowerCase().includes(keyword)
)
}

View File

@ -7,13 +7,7 @@
<el-table-column label="库区名称" align="center" prop="locationName" min-width="100" />
<el-table-column label="库位名称" align="center" prop="areaName" min-width="100" />
<el-table-column label="数量" align="center" prop="quantity" width="100" />
<el-table-column
v-if="isStock"
label="操作"
align="center"
width="120"
fixed="right"
>
<el-table-column v-if="isStock" label="操作" align="center" width="120" fixed="right">
<template #default="scope">
<el-button link type="primary" @click="emit('edit-detail', scope.row.id)">
编辑
@ -27,10 +21,7 @@
</template>
<script setup lang="ts">
import {
WmProductIssueDetailApi,
WmProductIssueDetailVO
} from '@/api/mes/wm/productissue/detail'
import { WmProductIssueDetailApi, WmProductIssueDetailVO } from '@/api/mes/wm/productissue/detail'
defineOptions({ name: 'ProductIssueDetailList' })

View File

@ -113,9 +113,7 @@ const isEditable = computed(() => ['create', 'update'].includes(formType.value))
const isStock = computed(() => formType.value === 'stock') //
const isFinish = computed(() => formType.value === 'finish') //
const isDetail = computed(() => ['detail', 'finish'].includes(formType.value)) //
const isHeaderReadonly = computed(() =>
['stock', 'detail', 'finish'].includes(formType.value)
) //
const isHeaderReadonly = computed(() => ['stock', 'detail', 'finish'].includes(formType.value)) //
const dialogTitle = computed(() => {
const titles = {
create: '新增领料出库单',

View File

@ -115,10 +115,7 @@
</template>
<script setup lang="ts">
import {
WmProductIssueLineApi,
WmProductIssueLineVO
} from '@/api/mes/wm/productissue/line'
import { WmProductIssueLineApi, WmProductIssueLineVO } from '@/api/mes/wm/productissue/line'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import ProductIssueDetailList from './ProductIssueDetailList.vue'
import ProductIssueDetailForm from './ProductIssueDetailForm.vue'

View File

@ -158,9 +158,10 @@
@click="handleCancel(scope.row.id)"
v-hasPermi="['mes:wm-product-issue:update']"
v-if="
[MesWmProductIssueStatusEnum.APPROVING, MesWmProductIssueStatusEnum.APPROVED].includes(
scope.row.status
)
[
MesWmProductIssueStatusEnum.APPROVING,
MesWmProductIssueStatusEnum.APPROVED
].includes(scope.row.status)
"
>
取消

View File

@ -41,7 +41,10 @@
</template>
<script setup lang="ts">
import { WmProductReceiptDetailApi, WmProductReceiptDetailVO } from '@/api/mes/wm/productreceipt/detail'
import {
WmProductReceiptDetailApi,
WmProductReceiptDetailVO
} from '@/api/mes/wm/productreceipt/detail'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import WmWarehouseSelect from '@/views/mes/wm/warehouse/components/WmWarehouseSelect.vue'
import WmWarehouseLocationSelect from '@/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue'

View File

@ -25,7 +25,10 @@
</template>
<script setup lang="ts">
import { WmProductReceiptDetailApi, WmProductReceiptDetailVO } from '@/api/mes/wm/productreceipt/detail'
import {
WmProductReceiptDetailApi,
WmProductReceiptDetailVO
} from '@/api/mes/wm/productreceipt/detail'
defineOptions({ name: 'ProductReceiptDetailList' })

View File

@ -47,10 +47,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="生产工单" prop="workOrderId">
<ProWorkOrderSelect
v-model="formData.workOrderId"
:disabled="isHeaderReadonly"
/>
<ProWorkOrderSelect v-model="formData.workOrderId" :disabled="isHeaderReadonly" />
</el-form-item>
</el-col>
</el-row>
@ -100,10 +97,7 @@ 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, MesWmProductReceiptStatusEnum } from '@/views/mes/utils/constants'
defineOptions({ name: 'ProductReceiptForm' })
const emit = defineEmits(['success'])

View File

@ -50,9 +50,7 @@
<el-button v-if="isStock" link type="success" @click="handleStock(scope.row.id)">
上架
</el-button>
<el-button link type="primary" @click="handleBarcode(scope.row)">
条码
</el-button>
<el-button link type="primary" @click="handleBarcode(scope.row)"> </el-button>
</template>
</el-table-column>
</el-table>
@ -249,7 +247,10 @@ const submitForm = async () => {
await formRef.value.validate()
formLoading.value = true
try {
const data = { ...formData.value, receiptId: props.receiptId } as unknown as WmProductReceiptLineVO
const data = {
...formData.value,
receiptId: props.receiptId
} as unknown as WmProductReceiptLineVO
if (lineFormType.value === 'create') {
await WmProductReceiptLineApi.createProductReceiptLine(data)
message.success(t('common.createSuccess'))

Some files were not shown because too many files have changed in this diff Show More