refactor(mes-ui): 修正工作站模块中文标签命名 & 拆分 API 文件
- 表单标签/占位符/校验提示:工位 → 工作站 - API 注释:工位设备 → 设备资源、工位工具 → 工装夹具资源、工位人员 → 人力资源 - 拆分 workstation API 到 machine/tool/worker/workshop 子目录pull/871/MERGE
parent
59bd23b3e0
commit
95c478d739
|
|
@ -13,7 +13,7 @@ export interface MdItemBatchConfigVO {
|
||||||
purchaseOrderCodeFlag: boolean // 批次属性-采购订单编号
|
purchaseOrderCodeFlag: boolean // 批次属性-采购订单编号
|
||||||
workorderFlag: boolean // 批次属性-生产工单
|
workorderFlag: boolean // 批次属性-生产工单
|
||||||
taskFlag: boolean // 批次属性-生产任务
|
taskFlag: boolean // 批次属性-生产任务
|
||||||
workstationFlag: boolean // 批次属性-工位
|
workstationFlag: boolean // 批次属性-工作站
|
||||||
toolFlag: boolean // 批次属性-工具
|
toolFlag: boolean // 批次属性-工具
|
||||||
moldFlag: boolean // 批次属性-模具
|
moldFlag: boolean // 批次属性-模具
|
||||||
lotNumberFlag: boolean // 批次属性-生产批号
|
lotNumberFlag: boolean // 批次属性-生产批号
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
import request from '@/config/axios'
|
import request from '@/config/axios'
|
||||||
|
|
||||||
// TODO @AI:【遵守我说的!】是不是每个 VO 独立文件;例如说 tool/ 、worker/、machine/ 等等
|
// DONE @AI:【遵守我说的!】是不是每个 VO 独立文件;例如说 tool/ 、worker/、machine/ 等等
|
||||||
|
|
||||||
// MES 工位 VO
|
// MES 工作站 VO
|
||||||
export interface MdWorkstationVO {
|
export interface MdWorkstationVO {
|
||||||
id: number // 工位编号
|
id: number // 工作站编号
|
||||||
code: string // 工位编码
|
code: string // 工作站编码
|
||||||
name: string // 工位名称
|
name: string // 工作站名称
|
||||||
address: string // 工位地点
|
address: string // 工作站地点
|
||||||
workshopId: number // 所在车间 ID
|
workshopId: number // 所在车间 ID
|
||||||
workshopName: string // 所在车间名称
|
workshopName: string // 所在车间名称
|
||||||
processId: number // 工序 ID
|
processId: number // 工序 ID
|
||||||
|
|
@ -22,135 +22,40 @@ export interface MdWorkstationVO {
|
||||||
attribute4: number
|
attribute4: number
|
||||||
}
|
}
|
||||||
|
|
||||||
// MES 工位设备 VO
|
// MES 工作站 API
|
||||||
export interface MdWorkstationMachineVO {
|
|
||||||
id: number
|
|
||||||
workstationId: number // 工位 ID
|
|
||||||
machineryId: number // 设备 ID
|
|
||||||
machineryName: string // 设备名称
|
|
||||||
machineryCode: string // 设备编码
|
|
||||||
quantity: number // 数量
|
|
||||||
remark: string // 备注
|
|
||||||
}
|
|
||||||
|
|
||||||
// MES 工位工具 VO
|
|
||||||
export interface MdWorkstationToolVO {
|
|
||||||
id: number
|
|
||||||
workstationId: number // 工位 ID
|
|
||||||
toolTypeId: number // 工具类型 ID
|
|
||||||
toolTypeName: string // 工具类型名称
|
|
||||||
quantity: number // 数量
|
|
||||||
remark: string // 备注
|
|
||||||
}
|
|
||||||
|
|
||||||
// MES 工位人员 VO
|
|
||||||
export interface MdWorkstationWorkerVO {
|
|
||||||
id: number
|
|
||||||
workstationId: number // 工位 ID
|
|
||||||
postId: number // 岗位 ID
|
|
||||||
postName: string // 岗位名称
|
|
||||||
quantity: number // 数量
|
|
||||||
remark: string // 备注
|
|
||||||
}
|
|
||||||
|
|
||||||
// MES 工位 API
|
|
||||||
export const MdWorkstationApi = {
|
export const MdWorkstationApi = {
|
||||||
// 查询工位分页
|
// 查询工作站分页
|
||||||
getWorkstationPage: async (params: any) => {
|
getWorkstationPage: async (params: any) => {
|
||||||
return await request.get({ url: `/mes/md-workstation/page`, params })
|
return await request.get({ url: `/mes/md-workstation/page`, params })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 查询工位精简列表
|
// 查询工作站精简列表
|
||||||
getWorkstationSimpleList: async () => {
|
getWorkstationSimpleList: async () => {
|
||||||
return await request.get({ url: `/mes/md-workstation/simple-list` })
|
return await request.get({ url: `/mes/md-workstation/simple-list` })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 查询工位详情
|
// 查询工作站详情
|
||||||
getWorkstation: async (id: number) => {
|
getWorkstation: async (id: number) => {
|
||||||
return await request.get({ url: `/mes/md-workstation/get?id=` + id })
|
return await request.get({ url: `/mes/md-workstation/get?id=` + id })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 新增工位
|
// 新增工作站
|
||||||
createWorkstation: async (data: MdWorkstationVO) => {
|
createWorkstation: async (data: MdWorkstationVO) => {
|
||||||
return await request.post({ url: `/mes/md-workstation/create`, data })
|
return await request.post({ url: `/mes/md-workstation/create`, data })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 修改工位
|
// 修改工作站
|
||||||
updateWorkstation: async (data: MdWorkstationVO) => {
|
updateWorkstation: async (data: MdWorkstationVO) => {
|
||||||
return await request.put({ url: `/mes/md-workstation/update`, data })
|
return await request.put({ url: `/mes/md-workstation/update`, data })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 删除工位
|
// 删除工作站
|
||||||
deleteWorkstation: async (id: number) => {
|
deleteWorkstation: async (id: number) => {
|
||||||
return await request.delete({ url: `/mes/md-workstation/delete?id=` + id })
|
return await request.delete({ url: `/mes/md-workstation/delete?id=` + id })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 导出工位 Excel
|
// 导出工作站 Excel
|
||||||
exportWorkstation: async (params: any) => {
|
exportWorkstation: async (params: any) => {
|
||||||
return await request.download({ url: `/mes/md-workstation/export-excel`, params })
|
return await request.download({ url: `/mes/md-workstation/export-excel`, params })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MES 工位设备 API
|
|
||||||
export const MdWorkstationMachineApi = {
|
|
||||||
// 查询工位设备列表
|
|
||||||
getWorkstationMachineList: async (workstationId: number) => {
|
|
||||||
return await request.get({ url: `/mes/md-workstation-machine/list-by-workstation?workstationId=` + workstationId })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 新增工位设备
|
|
||||||
createWorkstationMachine: async (data: MdWorkstationMachineVO) => {
|
|
||||||
return await request.post({ url: `/mes/md-workstation-machine/create`, data })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除工位设备
|
|
||||||
deleteWorkstationMachine: async (id: number) => {
|
|
||||||
return await request.delete({ url: `/mes/md-workstation-machine/delete?id=` + id })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MES 工位工具 API
|
|
||||||
export const MdWorkstationToolApi = {
|
|
||||||
// 查询工位工具列表
|
|
||||||
getWorkstationToolList: async (workstationId: number) => {
|
|
||||||
return await request.get({ url: `/mes/md-workstation-tool/list-by-workstation?workstationId=` + workstationId })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 新增工位工具
|
|
||||||
createWorkstationTool: async (data: MdWorkstationToolVO) => {
|
|
||||||
return await request.post({ url: `/mes/md-workstation-tool/create`, data })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 修改工位工具
|
|
||||||
updateWorkstationTool: async (data: MdWorkstationToolVO) => {
|
|
||||||
return await request.put({ url: `/mes/md-workstation-tool/update`, data })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除工位工具
|
|
||||||
deleteWorkstationTool: async (id: number) => {
|
|
||||||
return await request.delete({ url: `/mes/md-workstation-tool/delete?id=` + id })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MES 工位人员 API
|
|
||||||
export const MdWorkstationWorkerApi = {
|
|
||||||
// 查询工位人员列表
|
|
||||||
getWorkstationWorkerList: async (workstationId: number) => {
|
|
||||||
return await request.get({ url: `/mes/md-workstation-worker/list-by-workstation?workstationId=` + workstationId })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 新增工位人员
|
|
||||||
createWorkstationWorker: async (data: MdWorkstationWorkerVO) => {
|
|
||||||
return await request.post({ url: `/mes/md-workstation-worker/create`, data })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 修改工位人员
|
|
||||||
updateWorkstationWorker: async (data: MdWorkstationWorkerVO) => {
|
|
||||||
return await request.put({ url: `/mes/md-workstation-worker/update`, data })
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除工位人员
|
|
||||||
deleteWorkstationWorker: async (id: number) => {
|
|
||||||
return await request.delete({ url: `/mes/md-workstation-worker/delete?id=` + id })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
import request from '@/config/axios'
|
||||||
|
|
||||||
|
// MES 设备资源 VO
|
||||||
|
export interface MdWorkstationMachineVO {
|
||||||
|
id: number
|
||||||
|
workstationId: number // 工作站 ID
|
||||||
|
machineryId: number // 设备 ID
|
||||||
|
machineryName: string // 设备名称
|
||||||
|
machineryCode: string // 设备编码
|
||||||
|
quantity: number // 数量
|
||||||
|
remark: string // 备注
|
||||||
|
}
|
||||||
|
|
||||||
|
// MES 设备资源 API
|
||||||
|
export const MdWorkstationMachineApi = {
|
||||||
|
// 查询设备资源列表
|
||||||
|
getWorkstationMachineList: async (workstationId: number) => {
|
||||||
|
return await request.get({ url: `/mes/md-workstation-machine/list-by-workstation?workstationId=` + workstationId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增设备资源
|
||||||
|
createWorkstationMachine: async (data: MdWorkstationMachineVO) => {
|
||||||
|
return await request.post({ url: `/mes/md-workstation-machine/create`, data })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除设备资源
|
||||||
|
deleteWorkstationMachine: async (id: number) => {
|
||||||
|
return await request.delete({ url: `/mes/md-workstation-machine/delete?id=` + id })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
import request from '@/config/axios'
|
||||||
|
|
||||||
|
// MES 工装夹具资源 VO
|
||||||
|
export interface MdWorkstationToolVO {
|
||||||
|
id: number
|
||||||
|
workstationId: number // 工作站 ID
|
||||||
|
toolTypeId: number // 工具类型 ID
|
||||||
|
toolTypeName: string // 工具类型名称
|
||||||
|
quantity: number // 数量
|
||||||
|
remark: string // 备注
|
||||||
|
}
|
||||||
|
|
||||||
|
// MES 工装夹具资源 API
|
||||||
|
export const MdWorkstationToolApi = {
|
||||||
|
// 查询工装夹具资源列表
|
||||||
|
getWorkstationToolList: async (workstationId: number) => {
|
||||||
|
return await request.get({ url: `/mes/md-workstation-tool/list-by-workstation?workstationId=` + workstationId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增工装夹具资源
|
||||||
|
createWorkstationTool: async (data: MdWorkstationToolVO) => {
|
||||||
|
return await request.post({ url: `/mes/md-workstation-tool/create`, data })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 修改工装夹具资源
|
||||||
|
updateWorkstationTool: async (data: MdWorkstationToolVO) => {
|
||||||
|
return await request.put({ url: `/mes/md-workstation-tool/update`, data })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除工装夹具资源
|
||||||
|
deleteWorkstationTool: async (id: number) => {
|
||||||
|
return await request.delete({ url: `/mes/md-workstation-tool/delete?id=` + id })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
import request from '@/config/axios'
|
||||||
|
|
||||||
|
// MES 人力资源 VO
|
||||||
|
export interface MdWorkstationWorkerVO {
|
||||||
|
id: number
|
||||||
|
workstationId: number // 工作站 ID
|
||||||
|
postId: number // 岗位 ID
|
||||||
|
postName: string // 岗位名称
|
||||||
|
quantity: number // 数量
|
||||||
|
remark: string // 备注
|
||||||
|
}
|
||||||
|
|
||||||
|
// MES 人力资源 API
|
||||||
|
export const MdWorkstationWorkerApi = {
|
||||||
|
// 查询人力资源列表
|
||||||
|
getWorkstationWorkerList: async (workstationId: number) => {
|
||||||
|
return await request.get({ url: `/mes/md-workstation-worker/list-by-workstation?workstationId=` + workstationId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增人力资源
|
||||||
|
createWorkstationWorker: async (data: MdWorkstationWorkerVO) => {
|
||||||
|
return await request.post({ url: `/mes/md-workstation-worker/create`, data })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 修改人力资源
|
||||||
|
updateWorkstationWorker: async (data: MdWorkstationWorkerVO) => {
|
||||||
|
return await request.put({ url: `/mes/md-workstation-worker/update`, data })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除人力资源
|
||||||
|
deleteWorkstationWorker: async (id: number) => {
|
||||||
|
return await request.delete({ url: `/mes/md-workstation-worker/delete?id=` + id })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
<el-checkbox v-model="formData.salesOrderCodeFlag">销售订单编号</el-checkbox>
|
<el-checkbox v-model="formData.salesOrderCodeFlag">销售订单编号</el-checkbox>
|
||||||
<el-checkbox v-model="formData.workorderFlag">生产工单</el-checkbox>
|
<el-checkbox v-model="formData.workorderFlag">生产工单</el-checkbox>
|
||||||
<el-checkbox v-model="formData.taskFlag">生产任务</el-checkbox>
|
<el-checkbox v-model="formData.taskFlag">生产任务</el-checkbox>
|
||||||
<el-checkbox v-model="formData.workstationFlag">工位</el-checkbox>
|
<el-checkbox v-model="formData.workstationFlag">工作站</el-checkbox>
|
||||||
<el-checkbox v-model="formData.toolFlag">工具</el-checkbox>
|
<el-checkbox v-model="formData.toolFlag">工具</el-checkbox>
|
||||||
<el-checkbox v-model="formData.moldFlag">模具</el-checkbox>
|
<el-checkbox v-model="formData.moldFlag">模具</el-checkbox>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,6 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
// TODO @AI:方法注释,字段注释,记得写下
|
|
||||||
import { MdProductBomApi, MdProductBomVO } from '@/api/mes/md/item/productBom'
|
import { MdProductBomApi, MdProductBomVO } from '@/api/mes/md/item/productBom'
|
||||||
import { MdItemApi } from '@/api/mes/md/item'
|
import { MdItemApi } from '@/api/mes/md/item'
|
||||||
import { getItemOrProductLabel } from '@/views/mes/utils/constants'
|
import { getItemOrProductLabel } from '@/views/mes/utils/constants'
|
||||||
|
|
@ -97,14 +96,14 @@ import { getItemOrProductLabel } from '@/views/mes/utils/constants'
|
||||||
defineOptions({ name: 'MdProductBomForm' })
|
defineOptions({ name: 'MdProductBomForm' })
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
itemId: number
|
itemId: number // 物料产品编号
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const loading = ref(false)
|
const loading = ref(false) // 列表的加载中
|
||||||
const list = ref<MdProductBomVO[]>([])
|
const list = ref<MdProductBomVO[]>([]) // BOM 列表
|
||||||
|
|
||||||
/** 加载列表 */
|
/** 加载 BOM 列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
|
|
@ -115,9 +114,10 @@ const getList = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 物料搜索 ====================
|
// ==================== 物料搜索 ====================
|
||||||
const itemSearchLoading = ref(false)
|
const itemSearchLoading = ref(false) // 物料搜索加载中
|
||||||
const itemOptions = ref<any[]>([])
|
const itemOptions = ref<any[]>([]) // 物料搜索选项
|
||||||
|
|
||||||
|
/** 远程搜索物料 */
|
||||||
const searchItems = async (query: string) => {
|
const searchItems = async (query: string) => {
|
||||||
if (!query) {
|
if (!query) {
|
||||||
itemOptions.value = []
|
itemOptions.value = []
|
||||||
|
|
@ -133,8 +133,9 @@ const searchItems = async (query: string) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 添加 BOM ====================
|
// ==================== 添加 BOM ====================
|
||||||
const addDialogVisible = ref(false)
|
const addDialogVisible = ref(false) // 添加弹窗是否可见
|
||||||
const addFormRef = ref()
|
const addFormRef = ref() // 添加表单 Ref
|
||||||
|
/** 添加表单数据 */
|
||||||
const addFormData = ref({
|
const addFormData = ref({
|
||||||
itemId: undefined as number | undefined,
|
itemId: undefined as number | undefined,
|
||||||
bomItemId: undefined as number | undefined,
|
bomItemId: undefined as number | undefined,
|
||||||
|
|
@ -146,6 +147,7 @@ const addFormRules = reactive({
|
||||||
quantity: [{ required: true, message: '用量比例不能为空', trigger: 'blur' }]
|
quantity: [{ required: true, message: '用量比例不能为空', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/** 打开添加弹窗 */
|
||||||
const openAddForm = () => {
|
const openAddForm = () => {
|
||||||
addDialogVisible.value = true
|
addDialogVisible.value = true
|
||||||
addFormData.value = {
|
addFormData.value = {
|
||||||
|
|
@ -158,6 +160,7 @@ const openAddForm = () => {
|
||||||
addFormRef.value?.resetFields()
|
addFormRef.value?.resetFields()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 提交添加表单 */
|
||||||
const submitAddForm = async () => {
|
const submitAddForm = async () => {
|
||||||
await addFormRef.value.validate()
|
await addFormRef.value.validate()
|
||||||
await MdProductBomApi.createProductBom(addFormData.value as unknown as MdProductBomVO)
|
await MdProductBomApi.createProductBom(addFormData.value as unknown as MdProductBomVO)
|
||||||
|
|
@ -167,8 +170,9 @@ const submitAddForm = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 编辑 BOM ====================
|
// ==================== 编辑 BOM ====================
|
||||||
const editDialogVisible = ref(false)
|
const editDialogVisible = ref(false) // 编辑弹窗是否可见
|
||||||
const editFormRef = ref()
|
const editFormRef = ref() // 编辑表单 Ref
|
||||||
|
/** 编辑表单数据 */
|
||||||
const editFormData = ref({
|
const editFormData = ref({
|
||||||
id: undefined as number | undefined,
|
id: undefined as number | undefined,
|
||||||
itemId: undefined as number | undefined,
|
itemId: undefined as number | undefined,
|
||||||
|
|
@ -180,6 +184,7 @@ const editFormRules = reactive({
|
||||||
quantity: [{ required: true, message: '用量比例不能为空', trigger: 'blur' }]
|
quantity: [{ required: true, message: '用量比例不能为空', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/** 打开编辑弹窗 */
|
||||||
const openEditForm = (row: MdProductBomVO) => {
|
const openEditForm = (row: MdProductBomVO) => {
|
||||||
editDialogVisible.value = true
|
editDialogVisible.value = true
|
||||||
editFormData.value = {
|
editFormData.value = {
|
||||||
|
|
@ -192,6 +197,7 @@ const openEditForm = (row: MdProductBomVO) => {
|
||||||
editFormRef.value?.resetFields()
|
editFormRef.value?.resetFields()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 提交编辑表单 */
|
||||||
const submitEditForm = async () => {
|
const submitEditForm = async () => {
|
||||||
await editFormRef.value.validate()
|
await editFormRef.value.validate()
|
||||||
await MdProductBomApi.updateProductBom(editFormData.value as unknown as MdProductBomVO)
|
await MdProductBomApi.updateProductBom(editFormData.value as unknown as MdProductBomVO)
|
||||||
|
|
@ -201,6 +207,8 @@ const submitEditForm = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 删除 ====================
|
// ==================== 删除 ====================
|
||||||
|
|
||||||
|
/** 删除 BOM */
|
||||||
const handleDelete = async (id: number) => {
|
const handleDelete = async (id: number) => {
|
||||||
try {
|
try {
|
||||||
await message.delConfirm()
|
await message.delConfirm()
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="工位编码" prop="code">
|
<el-form-item label="工作站编码" prop="code">
|
||||||
<el-input v-model="formData.code" placeholder="请输入工位编码">
|
<el-input v-model="formData.code" placeholder="请输入工作站编码">
|
||||||
<template #append>
|
<template #append>
|
||||||
<el-button @click="generateCode" :disabled="formType === 'update'">
|
<el-button @click="generateCode" :disabled="formType === 'update'">
|
||||||
生成
|
生成
|
||||||
|
|
@ -20,8 +20,8 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="工位名称" prop="name">
|
<el-form-item label="工作站名称" prop="name">
|
||||||
<el-input v-model="formData.name" placeholder="请输入工位名称" />
|
<el-input v-model="formData.name" placeholder="请输入工作站名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
|
@ -39,10 +39,11 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="工位地点" prop="address">
|
<el-form-item label="工作站地点" prop="address">
|
||||||
<el-input v-model="formData.address" placeholder="请输入工位地点" />
|
<el-input v-model="formData.address" placeholder="请输入工作站地点" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<!-- TODO @AI:所属工序 -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-radio-group v-model="formData.status">
|
<el-radio-group v-model="formData.status">
|
||||||
|
|
@ -70,12 +71,10 @@
|
||||||
<el-tab-pane label="设备资源" name="machine">
|
<el-tab-pane label="设备资源" name="machine">
|
||||||
<WorkstationMachinePanel :workstation-id="formData.id!" />
|
<WorkstationMachinePanel :workstation-id="formData.id!" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- TODO @AI:工装夹具 -->
|
<el-tab-pane label="工装夹具" name="tool">
|
||||||
<el-tab-pane label="工具资源" name="tool">
|
|
||||||
<WorkstationToolPanel :workstation-id="formData.id!" />
|
<WorkstationToolPanel :workstation-id="formData.id!" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- TODO @AI:人力资源 -->
|
<el-tab-pane label="人力资源" name="worker">
|
||||||
<el-tab-pane label="人员资源" name="worker">
|
|
||||||
<WorkstationWorkerPanel :workstation-id="formData.id!" />
|
<WorkstationWorkerPanel :workstation-id="formData.id!" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
@ -95,6 +94,9 @@ import WorkstationMachinePanel from './components/WorkstationMachinePanel.vue'
|
||||||
import WorkstationToolPanel from './components/WorkstationToolPanel.vue'
|
import WorkstationToolPanel from './components/WorkstationToolPanel.vue'
|
||||||
import WorkstationWorkerPanel from './components/WorkstationWorkerPanel.vue'
|
import WorkstationWorkerPanel from './components/WorkstationWorkerPanel.vue'
|
||||||
|
|
||||||
|
// TODO @AI:方法注释;
|
||||||
|
// TODO @AI:字段注释;
|
||||||
|
|
||||||
defineOptions({ name: 'WorkstationForm' })
|
defineOptions({ name: 'WorkstationForm' })
|
||||||
|
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
|
|
@ -120,14 +122,14 @@ const formData = ref({
|
||||||
remark: undefined
|
remark: undefined
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
code: [{ required: true, message: '工位编码不能为空', trigger: 'blur' }],
|
code: [{ required: true, message: '工作站编码不能为空', trigger: 'blur' }],
|
||||||
name: [{ required: true, message: '工位名称不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '工作站名称不能为空', trigger: 'blur' }],
|
||||||
workshopId: [{ required: true, message: '所在车间不能为空', trigger: 'change' }],
|
workshopId: [{ required: true, message: '所在车间不能为空', trigger: 'change' }],
|
||||||
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
|
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
|
|
||||||
/** 生成工位编码 */
|
/** 生成工作站编码 */
|
||||||
const generateCode = () => {
|
const generateCode = () => {
|
||||||
formData.value.code = 'WS' + generateRandomStr(12)
|
formData.value.code = 'WS' + generateRandomStr(12)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { MdWorkstationMachineApi, MdWorkstationMachineVO } from '@/api/mes/md/workstation'
|
import { MdWorkstationMachineApi, MdWorkstationMachineVO } from '@/api/mes/md/workstation/machine'
|
||||||
|
|
||||||
|
// TODO @AI:字段注释;
|
||||||
|
// TODO @AI:方法注释;
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
workstationId: number
|
workstationId: number
|
||||||
|
|
@ -59,6 +62,7 @@ const getList = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 添加弹窗 */
|
/** 添加弹窗 */
|
||||||
|
// TODO @AI:使用 form,不要 add 前缀;
|
||||||
const addDialogVisible = ref(false)
|
const addDialogVisible = ref(false)
|
||||||
const addFormRef = ref()
|
const addFormRef = ref()
|
||||||
const addFormData = ref({
|
const addFormData = ref({
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,20 @@
|
||||||
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
|
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
|
||||||
<el-form-item label="工具类型" prop="toolTypeId">
|
<el-form-item label="工具类型" prop="toolTypeId">
|
||||||
<!-- TODO @芋艿:对接工具类型下拉列表,等 TM 工具模块完成后对接 -->
|
<!-- TODO @芋艿:对接工具类型下拉列表,等 TM 工具模块完成后对接 -->
|
||||||
<el-input-number v-model="formData.toolTypeId" placeholder="请输入工具类型编号" class="!w-1/1" :disabled="isEdit" />
|
<el-input-number
|
||||||
|
v-model="formData.toolTypeId"
|
||||||
|
placeholder="请输入工具类型编号"
|
||||||
|
class="!w-1/1"
|
||||||
|
:disabled="isEdit"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数量" prop="quantity">
|
<el-form-item label="数量" prop="quantity">
|
||||||
<el-input-number v-model="formData.quantity" :min="1" controls-position="right" class="!w-1/1" />
|
<el-input-number
|
||||||
|
v-model="formData.quantity"
|
||||||
|
:min="1"
|
||||||
|
controls-position="right"
|
||||||
|
class="!w-1/1"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
|
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
|
||||||
|
|
@ -39,7 +49,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { MdWorkstationToolApi, MdWorkstationToolVO } from '@/api/mes/md/workstation'
|
import { MdWorkstationToolApi, MdWorkstationToolVO } from '@/api/mes/md/workstation/tool'
|
||||||
|
|
||||||
|
// TODO @AI:字段注释;
|
||||||
|
// TODO @AI:方法注释;
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
workstationId: number
|
workstationId: number
|
||||||
|
|
@ -62,7 +75,7 @@ const getList = async () => {
|
||||||
/** 弹窗 */
|
/** 弹窗 */
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const dialogTitle = ref('')
|
const dialogTitle = ref('')
|
||||||
const isEdit = ref(false)
|
const isEdit = ref(false) // TODO @AI:参考别的模块,formType?
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
id: undefined as number | undefined,
|
id: undefined as number | undefined,
|
||||||
|
|
@ -100,10 +113,14 @@ const openEditForm = (row: MdWorkstationToolVO) => {
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
await formRef.value.validate()
|
await formRef.value.validate()
|
||||||
if (isEdit.value) {
|
if (isEdit.value) {
|
||||||
await MdWorkstationToolApi.updateWorkstationTool(formData.value as unknown as MdWorkstationToolVO)
|
await MdWorkstationToolApi.updateWorkstationTool(
|
||||||
|
formData.value as unknown as MdWorkstationToolVO
|
||||||
|
)
|
||||||
message.success('编辑成功')
|
message.success('编辑成功')
|
||||||
} else {
|
} else {
|
||||||
await MdWorkstationToolApi.createWorkstationTool(formData.value as unknown as MdWorkstationToolVO)
|
await MdWorkstationToolApi.createWorkstationTool(
|
||||||
|
formData.value as unknown as MdWorkstationToolVO
|
||||||
|
)
|
||||||
message.success('添加成功')
|
message.success('添加成功')
|
||||||
}
|
}
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,12 @@
|
||||||
<Dialog :title="dialogTitle" v-model="dialogVisible" width="500px">
|
<Dialog :title="dialogTitle" v-model="dialogVisible" width="500px">
|
||||||
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
|
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
|
||||||
<el-form-item label="岗位" prop="postId">
|
<el-form-item label="岗位" prop="postId">
|
||||||
<el-select v-model="formData.postId" placeholder="请选择岗位" class="!w-1/1" :disabled="isEdit">
|
<el-select
|
||||||
|
v-model="formData.postId"
|
||||||
|
placeholder="请选择岗位"
|
||||||
|
class="!w-1/1"
|
||||||
|
:disabled="isEdit"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="post in postList"
|
v-for="post in postList"
|
||||||
:key="post.id"
|
:key="post.id"
|
||||||
|
|
@ -30,7 +35,12 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数量" prop="quantity">
|
<el-form-item label="数量" prop="quantity">
|
||||||
<el-input-number v-model="formData.quantity" :min="1" controls-position="right" class="!w-1/1" />
|
<el-input-number
|
||||||
|
v-model="formData.quantity"
|
||||||
|
:min="1"
|
||||||
|
controls-position="right"
|
||||||
|
class="!w-1/1"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
|
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
|
||||||
|
|
@ -45,9 +55,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { MdWorkstationWorkerApi, MdWorkstationWorkerVO } from '@/api/mes/md/workstation'
|
import { MdWorkstationWorkerApi, MdWorkstationWorkerVO } from '@/api/mes/md/workstation/worker'
|
||||||
import * as PostApi from '@/api/system/post'
|
import * as PostApi from '@/api/system/post'
|
||||||
|
|
||||||
|
// TODO @AI:字段注释;
|
||||||
|
// TODO @AI:方法注释;
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
workstationId: number
|
workstationId: number
|
||||||
}>()
|
}>()
|
||||||
|
|
@ -70,7 +83,7 @@ const getList = async () => {
|
||||||
/** 弹窗 */
|
/** 弹窗 */
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const dialogTitle = ref('')
|
const dialogTitle = ref('')
|
||||||
const isEdit = ref(false)
|
const isEdit = ref(false) // TODO @AI:参考别的模块,formType?
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
id: undefined as number | undefined,
|
id: undefined as number | undefined,
|
||||||
|
|
@ -112,10 +125,14 @@ const openEditForm = async (row: MdWorkstationWorkerVO) => {
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
await formRef.value.validate()
|
await formRef.value.validate()
|
||||||
if (isEdit.value) {
|
if (isEdit.value) {
|
||||||
await MdWorkstationWorkerApi.updateWorkstationWorker(formData.value as unknown as MdWorkstationWorkerVO)
|
await MdWorkstationWorkerApi.updateWorkstationWorker(
|
||||||
|
formData.value as unknown as MdWorkstationWorkerVO
|
||||||
|
)
|
||||||
message.success('编辑成功')
|
message.success('编辑成功')
|
||||||
} else {
|
} else {
|
||||||
await MdWorkstationWorkerApi.createWorkstationWorker(formData.value as unknown as MdWorkstationWorkerVO)
|
await MdWorkstationWorkerApi.createWorkstationWorker(
|
||||||
|
formData.value as unknown as MdWorkstationWorkerVO
|
||||||
|
)
|
||||||
message.success('添加成功')
|
message.success('添加成功')
|
||||||
}
|
}
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
|
|
|
||||||
|
|
@ -6,28 +6,33 @@
|
||||||
:model="queryParams"
|
:model="queryParams"
|
||||||
ref="queryFormRef"
|
ref="queryFormRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
label-width="68px"
|
label-width="85px"
|
||||||
>
|
>
|
||||||
<el-form-item label="工位编码" prop="code">
|
<el-form-item label="工作站编码" prop="code">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.code"
|
v-model="queryParams.code"
|
||||||
placeholder="请输入工位编码"
|
placeholder="请输入工作站编码"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工位名称" prop="name">
|
<el-form-item label="工作站名称" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.name"
|
v-model="queryParams.name"
|
||||||
placeholder="请输入工位名称"
|
placeholder="请输入工作站名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所在车间" prop="workshopId">
|
<el-form-item label="所在车间" prop="workshopId">
|
||||||
<el-select v-model="queryParams.workshopId" placeholder="请选择车间" clearable class="!w-240px">
|
<el-select
|
||||||
|
v-model="queryParams.workshopId"
|
||||||
|
placeholder="请选择车间"
|
||||||
|
clearable
|
||||||
|
class="!w-240px"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="workshop in workshopList"
|
v-for="workshop in workshopList"
|
||||||
:key="workshop.id"
|
:key="workshop.id"
|
||||||
|
|
@ -72,13 +77,15 @@
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
|
<!-- @AI:宽度的设置有问题,参考下别的模块;已对齐列宽 -->
|
||||||
|
<!-- @AI:我指的是,你这么写,宽度占不满屏幕 -->
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||||
<!-- TODO @AI:应该是“应该是工作站”;然后字段在对齐下; -->
|
<el-table-column label="工作站编码" align="center" prop="code" width="120" />
|
||||||
<el-table-column label="工位编码" align="center" prop="code" />
|
<el-table-column label="工作站名称" align="center" prop="name" width="150" />
|
||||||
<el-table-column label="工位名称" align="center" prop="name" width="150" />
|
<el-table-column label="工作站地点" align="center" prop="address" width="150" />
|
||||||
<el-table-column label="工位地点" align="center" prop="address" />
|
<el-table-column label="所在车间" align="center" prop="workshopName" width="120" />
|
||||||
<el-table-column label="所在车间" align="center" prop="workshopName" />
|
<!-- TODO @AI:所属工序 -->
|
||||||
<el-table-column label="状态" align="center" prop="status">
|
<el-table-column label="状态" align="center" prop="status" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
|
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -92,6 +99,7 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column label="操作" align="center" width="150">
|
<el-table-column label="操作" align="center" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
<!-- TODO @芋艿:【标签打印】 -->
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
|
|
@ -198,7 +206,7 @@ const handleExport = async () => {
|
||||||
await message.exportConfirm()
|
await message.exportConfirm()
|
||||||
exportLoading.value = true
|
exportLoading.value = true
|
||||||
const data = await MdWorkstationApi.exportWorkstation(queryParams)
|
const data = await MdWorkstationApi.exportWorkstation(queryParams)
|
||||||
download.excel(data, '工位.xls')
|
download.excel(data, '工作站.xls')
|
||||||
} catch {
|
} catch {
|
||||||
} finally {
|
} finally {
|
||||||
exportLoading.value = false
|
exportLoading.value = false
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue