feat(c4): 异常处理台处理/关闭接线
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
44386e90ae
commit
07f528428c
@ -1,4 +1,5 @@
|
|||||||
import { http } from '@/api/http'
|
import { http } from '@/api/http'
|
||||||
|
import type { RecordAbnormal } from '@/api/abnormal'
|
||||||
import type { Elder } from '@/api/elder'
|
import type { Elder } from '@/api/elder'
|
||||||
import type { Order } from '@/api/order'
|
import type { Order } from '@/api/order'
|
||||||
import type { ChangePlanData, Plan } from '@/api/plan'
|
import type { ChangePlanData, Plan } from '@/api/plan'
|
||||||
@ -112,6 +113,13 @@ export interface BatchPassData {
|
|||||||
recordIds: string[]
|
recordIds: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 异常处理入参(处理结果 + 选填处理意见)。 */
|
||||||
|
export interface HandleAbnormalData {
|
||||||
|
/** handled(已处理)/ closed(已关闭)。 */
|
||||||
|
handleStatus: string
|
||||||
|
handleResult?: string
|
||||||
|
}
|
||||||
|
|
||||||
/** 异常联动改计划入参:复用 plan.change 字段 + abnormalId。 */
|
/** 异常联动改计划入参:复用 plan.change 字段 + abnormalId。 */
|
||||||
export interface ExceptionLinkData extends ChangePlanData {
|
export interface ExceptionLinkData extends ChangePlanData {
|
||||||
abnormalId: string
|
abnormalId: string
|
||||||
@ -151,3 +159,8 @@ export function exceptionLink(data: ExceptionLinkData): Promise<Plan> {
|
|||||||
export function correctQc(data: CorrectData): Promise<QcRecord> {
|
export function correctQc(data: CorrectData): Promise<QcRecord> {
|
||||||
return http.post<QcRecord>('/qc/correct', data)
|
return http.post<QcRecord>('/qc/correct', data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 异常处理/关闭(写 handle_status + 处理意见)。 */
|
||||||
|
export function handleAbnormal(id: string, data: HandleAbnormalData): Promise<RecordAbnormal> {
|
||||||
|
return http.post<RecordAbnormal>(`/qc/abnormal/${id}/handle`, data)
|
||||||
|
}
|
||||||
|
|||||||
@ -102,6 +102,7 @@
|
|||||||
:actions-width="120"
|
:actions-width="120"
|
||||||
>
|
>
|
||||||
<template #actions="{ row }">
|
<template #actions="{ row }">
|
||||||
|
<el-button v-permission="'abnormal:handle'" link type="warning" @click="openHandle(row)">处理</el-button>
|
||||||
<el-button v-permission="'qc:exception-link'" link type="primary" :disabled="row.linkPlanChange" @click="openLink(row)">
|
<el-button v-permission="'qc:exception-link'" link type="primary" :disabled="row.linkPlanChange" @click="openLink(row)">
|
||||||
{{ row.linkPlanChange ? '已联动' : '联动改计划' }}
|
{{ row.linkPlanChange ? '已联动' : '联动改计划' }}
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -229,6 +230,25 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 异常处理/关闭 -->
|
||||||
|
<el-dialog v-model="handleVisible" title="异常处理" width="480px">
|
||||||
|
<el-form :model="handleForm" label-width="90px">
|
||||||
|
<el-form-item label="处理结果" required>
|
||||||
|
<el-select v-model="handleForm.handleStatus" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option label="已处理" value="handled" />
|
||||||
|
<el-option label="已关闭" value="closed" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处理意见">
|
||||||
|
<el-input v-model="handleForm.handleResult" type="textarea" :rows="3" placeholder="选填" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="handleVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" :loading="handling" @click="confirmHandle">确认</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 异常联动改计划 -->
|
<!-- 异常联动改计划 -->
|
||||||
<el-dialog v-model="linkVisible" title="异常联动改计划" width="860px">
|
<el-dialog v-model="linkVisible" title="异常联动改计划" width="860px">
|
||||||
<el-alert v-if="linkAbnormal" class="mb-sm" type="info" :closable="false" :title="`关联老人:${elderName(linkAbnormal.elderId)} · 异常分类:${ABNORMAL_TYPE_LABEL_MAP[linkAbnormal.abnormalType] ?? linkAbnormal.abnormalType}`" />
|
<el-alert v-if="linkAbnormal" class="mb-sm" type="info" :closable="false" :title="`关联老人:${elderName(linkAbnormal.elderId)} · 异常分类:${ABNORMAL_TYPE_LABEL_MAP[linkAbnormal.abnormalType] ?? linkAbnormal.abnormalType}`" />
|
||||||
@ -399,6 +419,7 @@ import {
|
|||||||
batchPassQc,
|
batchPassQc,
|
||||||
exceptionLink,
|
exceptionLink,
|
||||||
getQcDetail,
|
getQcDetail,
|
||||||
|
handleAbnormal,
|
||||||
passQc,
|
passQc,
|
||||||
pendingList,
|
pendingList,
|
||||||
returnQc,
|
returnQc,
|
||||||
@ -727,6 +748,41 @@ function handleAbnormalReset(): void {
|
|||||||
else abnormalPage.value = 1
|
else abnormalPage.value = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---- 异常处理/关闭 ----
|
||||||
|
const handleVisible = ref(false)
|
||||||
|
const handling = ref(false)
|
||||||
|
const handleAbnormalId = ref('')
|
||||||
|
const handleForm = reactive({ handleStatus: '', handleResult: '' })
|
||||||
|
|
||||||
|
function openHandle(row: Record<string, any>): void {
|
||||||
|
handleAbnormalId.value = String(row.id)
|
||||||
|
handleForm.handleStatus = ''
|
||||||
|
handleForm.handleResult = ''
|
||||||
|
handleVisible.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
async function confirmHandle(): Promise<void> {
|
||||||
|
if (!handleForm.handleStatus) {
|
||||||
|
ElMessage.warning('请选择处理结果')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
handling.value = true
|
||||||
|
try {
|
||||||
|
await handleAbnormal(handleAbnormalId.value, {
|
||||||
|
handleStatus: handleForm.handleStatus,
|
||||||
|
handleResult: handleForm.handleResult.trim() || undefined,
|
||||||
|
})
|
||||||
|
ElMessage.success('已处理')
|
||||||
|
handleVisible.value = false
|
||||||
|
void fetchAbnormal()
|
||||||
|
void fetchPending()
|
||||||
|
} catch (e) {
|
||||||
|
if (e instanceof ApiError) ElMessage.error(e.message)
|
||||||
|
} finally {
|
||||||
|
handling.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---- 异常联动改计划 ----
|
// ---- 异常联动改计划 ----
|
||||||
interface LinkItemDraft {
|
interface LinkItemDraft {
|
||||||
svcId: string
|
svcId: string
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user