From aeddfad8c8928991b9336fae075c06c5f55c2f88 Mon Sep 17 00:00:00 2001 From: haoliang <821644@qq.com> Date: Wed, 29 Apr 2026 23:20:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91=E5=B7=A5?= =?UTF-8?q?=E4=BA=BA=E6=97=B6=E5=B7=B2=E7=BB=91=E5=AE=9A=E6=9C=BA=E5=BA=8A?= =?UTF-8?q?=E6=9C=AA=E5=9B=9E=E5=A1=AB=EF=BC=9A=E6=94=B9=E7=94=A8/worker/{?= =?UTF-8?q?id}/machines=E6=8E=A5=E5=8F=A3=E8=8E=B7=E5=8F=96machineId?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/worker/WorkerListPage.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/worker/WorkerListPage.vue b/frontend/src/views/worker/WorkerListPage.vue index 989eca3..173943f 100644 --- a/frontend/src/views/worker/WorkerListPage.vue +++ b/frontend/src/views/worker/WorkerListPage.vue @@ -111,7 +111,17 @@ function resetQuery(){query.isEnabled=undefined;query.keyword='';loadData()} function goDetail(id:number){router.push((isMock.value?'/mock/worker/':'/worker/')+id)} async function loadData(){loading.value=true;try{const ps=pagination.value.pageSize;const cp=pagination.value.currentPage;const r: ApiResponse<{ items: Worker[]; total?: number }> = await request.get('/admin/worker',{params:{...query,page:cp,pageSize:ps}});tableData.value=r.data?.items||[];pagination.value.total= r.data?.total ?? (r.data?.items?.length ?? 0)}finally{loading.value=false}} function handleAdd(){editingId.value=null;Object.assign(form,{code:'',name:'',machineIds:[]});dialogVisible.value=true} -function handleEdit(row: Worker){editingId.value=row.id;Object.assign(form,{code:row.code,name:row.name,machineIds:row.machines?.map(m=>m.id)||[]});dialogVisible.value=true} +async function handleEdit(row: Worker){ + editingId.value=row.id + // 先打开弹窗(基础信息) + Object.assign(form,{code:row.code,name:row.name,machineIds:[]}) + dialogVisible.value=true + // 异步加载已绑定机床ID + try{ + const r: ApiResponse<{ items: Array<{machineId:number}> }> = await request.get(`/admin/worker/${row.id}/machines`) + form.machineIds = (r.data?.items ?? []).map(m => m.machineId) + }catch{/* 获取失败时保持为空 */} +} async function handleSubmit(){submitting.value=true;try{const ok = await (workerForm.value?.validate ? new Promise((resolve)=>workerForm.value!.validate((valid:boolean)=>resolve(valid))) : Promise.resolve(true)); if(!ok){return} await request[editingId.value?'put':'post'](editingId.value?`/admin/worker/${editingId.value}`:'/admin/worker',{...form});ElMessage.success('保存成功');dialogVisible.value=false;loadData()}finally{submitting.value=false}} async function handleDelete(row:any){await ElMessageBox.confirm('确定删除【'+row.name+'】?此操作不可恢复。','提示',{type:'warning'});await request.delete(`/admin/worker/${row.id}`);ElMessage.success('已删除');loadData()} async function batchStatus(isEnabled:number){await ElMessageBox.confirm('确定对选中的'+selectedRows.value.length+'项操作?','提示',{type:'warning'});for(const id of selectedRows.value.map((r:any)=>r.id)){await request.put(`/admin/worker/${id}/toggle`,{isEnabled})};ElMessage.success('操作成功');loadData()}