From 75242bbba28ae8902ddf86d33febb497d79e5fc3 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 03 八月 2026 10:45:27 +0800
Subject: [PATCH] 银川 1.首页修改 2.ai辅助功能
---
src/views/mes/pro/workorder/modules/form.vue | 67 ++++++++++++++++++++++++---------
1 files changed, 48 insertions(+), 19 deletions(-)
diff --git a/src/views/mes/pro/workorder/modules/form.vue b/src/views/mes/pro/workorder/modules/form.vue
index c998ef8..5da9d79 100644
--- a/src/views/mes/pro/workorder/modules/form.vue
+++ b/src/views/mes/pro/workorder/modules/form.vue
@@ -27,6 +27,10 @@
import { BarcodeDetail } from "#/views/wls/barcode/components";
import { useFormSchema } from "../data";
+ import PredictDelivery from "./ai/predict-delivery.vue";
+ import PredictDuration from "./ai/predict-duration.vue";
+ import PredictMaterial from "./ai/predict-material.vue";
+ import PredictRisk from "./ai/predict-risk.vue";
import ItemList from "./item-list.vue";
import ProcessList from "./process-list.vue";
@@ -50,6 +54,12 @@
() =>
formType.value === "update" &&
formData.value?.status === MesProWorkOrderStatusEnum.PREPARE
+ );
+ const canUseAi = computed(
+ () =>
+ formData.value?.id &&
+ (formData.value?.status === MesProWorkOrderStatusEnum.PREPARE ||
+ formData.value?.status === MesProWorkOrderStatusEnum.CONFIRMED)
);
const getTitle = computed(() => {
const isChild = !!formData.value?.parentId;
@@ -99,19 +109,17 @@
});
/** 閲嶆柊鎸傝浇 schema 骞舵寜琛ㄥ崟鎬佹帶鍒跺簳閮ㄦ寜閽� */
+ const mainActionText = computed(() => {
+ if (isConfirm.value) return '纭';
+ if (isFinish.value) return '瀹屾垚';
+ return '鎻愪氦';
+ });
+
+ const showMainBtn = computed(() => isEditable.value || isConfirm.value || isFinish.value);
+
function applySchema() {
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
- const showBtn = isEditable.value || isConfirm.value || isFinish.value;
- modalApi.setState({
- showConfirmButton: showBtn,
- confirmText: isConfirm.value || canConfirm.value
- ? '纭'
- : isFinish.value
- ? '瀹屾垚'
- : isCreateMode.value
- ? '鏂板'
- : '淇濆瓨',
- });
+ modalApi.setState({ showCancelButton: false, showConfirmButton: false });
}
/** 浠呬繚瀛橈紙涓嶆敼鍙樼姸鎬侊級 */
@@ -353,14 +361,35 @@
</Tabs>
</template>
<template #prepend-footer>
- <Button v-if="canConfirm"
- @click="handleSave">
- 淇濆瓨
- </Button>
- <Button v-if="formType === 'detail' && formData?.id"
- @click="handleBarcode">
- 鏌ョ湅鏉$爜
- </Button>
+ <div class="flex flex-auto flex-col gap-2">
+ <div v-if="canUseAi" class="flex items-center gap-2">
+ <PredictMaterial :work-order-id="formData!.id" />
+ <PredictDuration :work-order-id="formData!.id" />
+ <PredictRisk :work-order-id="formData!.id" />
+ <PredictDelivery :work-order-id="formData!.id" />
+ </div>
+ <div v-if="canUseAi && showMainBtn" class="border-t border-gray-200" />
+ <div class="flex items-center">
+ <Button v-if="showMainBtn"
+ type="primary"
+ @click="modalApi.onConfirm()">
+ {{ mainActionText }}
+ </Button>
+ </div>
+ </div>
+ </template>
+ <template #append-footer>
+ <div class="flex gap-2">
+ <Button v-if="canConfirm"
+ @click="handleSave">
+ 淇濆瓨淇敼
+ </Button>
+ <Button v-if="formType === 'detail' && formData?.id"
+ @click="handleBarcode">
+ 鏌ョ湅鏉$爜
+ </Button>
+ <Button @click="modalApi.close()">鍙栨秷</Button>
+ </div>
</template>
</Modal>
<BarcodeDetail ref="barcodeDetailRef" />
--
Gitblit v1.9.3