feat(mes-dv): MachineryForm 改为 3 列布局并添加编码生成按钮

- 第一行改为 3 列:设备编码(含生成按钮)、设备名称、品牌
- 编码生成按钮使用 generateRandomStr,编辑模式下禁用
- 调整规格型号到第三行,整体布局更紧凑

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pull/871/MERGE
YunaiV 2026-02-17 10:19:35 +08:00
parent 969eac21df
commit f0fe6e3f01
1 changed files with 20 additions and 10 deletions

View File

@ -11,19 +11,28 @@
label-width="120px"
v-loading="formLoading"
>
<!-- TODO @AI1 3 -->
<el-row>
<el-col :span="12">
<!-- TODO @AI生成操作 -->
<el-col :span="8">
<el-form-item label="设备编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入设备编码" />
<el-input v-model="formData.code" placeholder="请输入设备编码">
<template #append>
<el-button @click="generateCode" :disabled="formType === 'update'">
生成
</el-button>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="设备名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入设备名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="品牌" prop="brand">
<el-input v-model="formData.brand" placeholder="请输入品牌" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
@ -65,11 +74,6 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="品牌" prop="brand">
<el-input v-model="formData.brand" placeholder="请输入品牌" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="规格型号" prop="spec">
<el-input v-model="formData.spec" placeholder="请输入规格型号" />
@ -98,6 +102,7 @@ import { DvMachineryTypeApi } from '@/api/mes/dv/machinery/type'
import { MdWorkshopApi, MdWorkshopVO } from '@/api/mes/md/workstation/workshop'
import { defaultProps, handleTree } from '@/utils/tree'
import { MesDvMachineryStatusEnum } from '@/views/mes/utils/constants'
import { generateRandomStr } from '@/utils'
defineOptions({ name: 'MachineryForm' })
@ -130,6 +135,11 @@ const formRef = ref() // 表单 Ref
const machineryTypeTree = ref<any[]>([]) //
const workshopList = ref<MdWorkshopVO[]>([]) //
/** 生成设备编码 */
const generateCode = () => {
formData.value.code = 'M' + generateRandomStr(12)
}
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true