feat(mes): 添加工具精简列表接口及条码自动生成逻辑

新增工具精简列表接口,支持获取工具的简化信息。同时,在创建工具、客户、设备等时,自动生成对应的条码,提升条码管理的效率。
pull/871/MERGE
YunaiV 2026-03-07 14:47:57 +08:00
parent 21821c92d9
commit b386c17933
3 changed files with 71 additions and 8 deletions

View File

@ -48,5 +48,10 @@ export const TmToolApi = {
// 导出工具台账 Excel
exportTool: async (params: any) => {
return await request.download({ url: `/mes/tm/tool/export-excel`, params })
},
// 查询工具台账精简列表
getToolSimpleList: async () => {
return await request.get({ url: `/mes/tm/tool/simple-list` })
}
}

View File

@ -365,6 +365,8 @@ export const BARCODE_FORMAT_MAP: Record<BarcodeFormatEnum, string> = {
/** MES 条码业务类型枚举(对应后端 BarcodeBizTypeEnum */
export enum BarcodeBizTypeEnum {
// WM 仓库模块 [100, 200)
WAREHOUSE = 102,
LOCATION = 103,
AREA = 104,
PACKAGE = 105,
STOCK = 106,
@ -375,10 +377,13 @@ export enum BarcodeBizTypeEnum {
TRANSORDER = 302,
// DV 设备模块 [400, 500)
MACHINERY = 400,
// TM 工具模块 [500, 600)
TOOL = 500,
// MD 主数据模块 [600, 700)
ITEM = 600,
VENDOR = 601,
WORKSTATION = 602,
WORKSHOP = 603,
USER = 604
USER = 604,
CLIENT = 605
}

View File

@ -27,7 +27,35 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="formData.bizType === BarcodeBizTypeEnum.AREA" label="库区" prop="bizId">
<el-form-item
v-if="formData.bizType === BarcodeBizTypeEnum.WAREHOUSE"
label="仓库"
prop="bizId"
>
<WmWarehouseSelect v-model="formData.bizId" @change="handleBizSelect" class="!w-1/1" />
</el-form-item>
<el-form-item
v-else-if="formData.bizType === BarcodeBizTypeEnum.LOCATION"
label="库区"
prop="bizId"
>
<div class="space-y-2">
<WmWarehouseSelect
v-model="locationWarehouseId"
@change="handleLocationWarehouseChange"
class="!w-1/1"
placeholder="请选择仓库"
/>
<WmWarehouseLocationSelect
v-model="formData.bizId"
:warehouse-id="locationWarehouseId"
@change="handleBizSelect"
class="!w-1/1"
placeholder="请选择库区"
/>
</div>
</el-form-item>
<el-form-item v-else-if="formData.bizType === BarcodeBizTypeEnum.AREA" label="库位" prop="bizId">
<div class="space-y-2">
<WmWarehouseSelect
v-model="areaWarehouseId"
@ -101,7 +129,21 @@
>
<UserSelect v-model="formData.bizId" @change="handleBizSelect" class="!w-1/1" />
</el-form-item>
<!-- TODO @芋艿以下业务类型暂无对应的 Select 组件PACKAGE(装箱单)STOCK(库存)BATCH(批次)PROCARD(流转卡)TRANSORDER(流转单)TOOL(工装) -->
<el-form-item
v-else-if="formData.bizType === BarcodeBizTypeEnum.CLIENT"
label="客户"
prop="bizId"
>
<MdClientSelect v-model="formData.bizId" @change="handleBizSelect" class="!w-1/1" />
</el-form-item>
<el-form-item
v-else-if="formData.bizType === BarcodeBizTypeEnum.TOOL"
label="工具"
prop="bizId"
>
<TmToolSelect v-model="formData.bizId" @change="handleBizSelect" class="!w-1/1" />
</el-form-item>
<!-- TODO @芋艿以下业务类型暂无对应的 Select 组件PACKAGE(装箱单)STOCK(库存)BATCH(批次)PROCARD(流转卡)TRANSORDER(流转单) -->
<el-form-item v-else-if="formData.bizType" label="暂未接入" prop="bizId">
<el-input-number
v-model="formData.bizId"
@ -160,6 +202,8 @@ import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue'
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
import MdWorkshopSelect from '@/views/mes/md/workstation/components/MdWorkshopSelect.vue'
import MdClientSelect from '@/views/mes/md/client/components/MdClientSelect.vue'
import TmToolSelect from '@/views/mes/tm/tool/components/TmToolSelect.vue'
import UserSelect from '@/views/system/user/components/UserSelect.vue'
defineOptions({ name: 'BarcodeForm' })
@ -190,8 +234,9 @@ const formRules = reactive({
})
const formRef = ref()
const areaWarehouseId = ref<number>() //
const areaLocationId = ref<number>() //
const locationWarehouseId = ref<number>() //
const areaWarehouseId = ref<number>() //
const areaLocationId = ref<number>() //
/** 业务 Select 选中回调:自动填充 bizId、bizCode、bizName */
const handleBizSelect = (item: any) => {
@ -206,7 +251,14 @@ const handleBizSelect = (item: any) => {
formData.value.bizName = item.name || item.nickname
}
/** 库区仓库选择回调:清空库位和库区 */
/** 库区仓库选择回调:清空库区 */
const handleLocationWarehouseChange = () => {
formData.value.bizId = undefined
formData.value.bizCode = undefined
formData.value.bizName = undefined
}
/** 库位仓库选择回调:清空库区和库位 */
const handleAreaWarehouseChange = () => {
areaLocationId.value = undefined
formData.value.bizId = undefined
@ -214,7 +266,7 @@ const handleAreaWarehouseChange = () => {
formData.value.bizName = undefined
}
/** 库区库位选择回调:清空库区 */
/** 库位库区选择回调:清空库位 */
const handleAreaLocationChange = () => {
formData.value.bizId = undefined
formData.value.bizCode = undefined
@ -228,7 +280,8 @@ watch(
formData.value.bizId = undefined
formData.value.bizCode = undefined
formData.value.bizName = undefined
//
//
locationWarehouseId.value = undefined
areaWarehouseId.value = undefined
areaLocationId.value = undefined
}