From 493a27022ad30291934db825bab591c7efdcbc09 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 12 Aug 2026 16:35:45 +0800
Subject: [PATCH] feat: 保存的时候一个按钮置灰

---
 applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/FormDiaLog.vue |  114 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 88 insertions(+), 26 deletions(-)

diff --git a/applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/FormDiaLog.vue
index 0a5fa12..f196c3f 100644
--- a/applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/FormDiaLog.vue
@@ -5,9 +5,11 @@
 		:title="titleEnum[dialogMode]"
 		@closed="visible = false"
 		destroy-on-close
+		:close-on-click-modal="false"
+		width="800px"
 	>
 		<div class="detail-container" v-if="dialogReadonly">
-			<el-row>
+			<el-row class="detail-row-view">
 				<el-col :span="12">
 					<div class="label">案例名称</div>
 					<div class="val">{{ formData.caseName }}</div>
@@ -46,7 +48,7 @@
 			:model="formData"
 			:rules="rules"
 			:disabled="dialogReadonly"
-			label-width="100px"
+			:label-width="pxToRem(112)"
 		>
 			<el-row>
 				<el-col :span="12">
@@ -82,7 +84,7 @@
 				<el-col :span="24">
 					<el-form-item label="案例描述" prop="caseDesc">
 						<el-input
-							class="gd-input"
+							class="gd-input-text"
 							v-model="formData.caseDesc"
 							type="textarea"
 							:rows="4"
@@ -94,17 +96,32 @@
 			</el-row>
 		</el-form>
 		<template #footer>
-			<el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
-			<el-button
-				class="save-btn"
-				color="#4C34FF"
-				v-if="!dialogReadonly"
-				:loading="submitting"
-				:disabled="submitting"
-				@click="handleSubmit"
-			>
-				保存
-			</el-button>
+			<template v-if="!dialogReadonly">
+				<el-button color="#F2F3F5" :loading="submitting"
+					:disabled="submitting" @click="preservation">保存</el-button>
+				<el-button
+					class=""
+					color="#4C34FF"
+
+					:loading="submitting"
+					:disabled="submitting"
+					@click="handleSubmit"
+				>
+					提交
+				</el-button>
+			</template>
+			<template v-if="dialogReadonly && innovationDetailsStatus ==='0'">
+				<el-button color="#F2F3F5" @click="handleReject">不通过</el-button>
+				<el-button
+					class=""
+					color="#4C34FF"
+					:loading="submitting"
+					:disabled="submitting"
+					@click="handleApprove"
+				>
+					通过
+				</el-button>
+			</template>
 		</template>
 	</el-dialog>
 </template>
@@ -117,6 +134,7 @@
 	gdApplicationInnovationDetailApi,
 	gdApplicationInnovationSubmitApi,
 } from '@/views/orderView/orderDataManage/appInnovation/appInnovationApi'
+import { pxToRem } from '@/utils/rem'
 
 // 初始化表单数据
 const initForm = () => ({
@@ -129,10 +147,7 @@
 	caseDesc: '',
 	innovationStatus: '',
 })
-
-// 从父组件注入字典数据
-const appInnovationStatusOptions = inject('appInnovationStatusOptions')
-
+const innovationDetailsStatus = inject('innovationDetailsStatus')
 const emit = defineEmits(['success'])
 const formRef = ref(null) // 表单实例
 const formData = ref(initForm()) // 表单数据
@@ -143,23 +158,67 @@
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
 
 const rules = {
-	caseName: fieldRules(true),
-	belongDomain: fieldRules(true),
-	applicationScenarioDesc: fieldRules(true),
-	matterName: fieldRules(true),
-	resourceName: fieldRules(true),
-	resourceCode: fieldRules(true),
-	caseDesc: fieldRules(true),
+	caseName: fieldRules(true,50),
+	belongDomain: fieldRules(true,50),
+	applicationScenarioDesc: fieldRules(true,50),
+	matterName: fieldRules(true,50),
+	resourceName: fieldRules(true,50),
+	resourceCode: fieldRules(true,50),
+	caseDesc: fieldRules(true,200),
 }
-
+// 保存
+async function preservation(){
+		const isValid = await formRef.value?.validate().catch(() => false)
+	if (!isValid) return
+	submitting.value = true
+	try {
+		formData.value.innovationStatus = '3'
+		await gdApplicationInnovationSubmitApi(formData.value)
+		ElMessage.success('新增成功')
+		visible.value = false
+		emit('success')
+	} finally {
+		submitting.value = false
+	}
+	
+}
 // 提交新增/编辑
 async function handleSubmit() {
 	const isValid = await formRef.value?.validate().catch(() => false)
 	if (!isValid) return
 	submitting.value = true
 	try {
+		formData.value.innovationStatus = '0'
 		await gdApplicationInnovationSubmitApi(formData.value)
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
+		visible.value = false
+		emit('success')
+	} finally {
+		submitting.value = false
+	}
+}
+
+// 处理通过
+async function handleApprove() {
+	submitting.value = true
+	try {
+		formData.value.innovationStatus = '1'
+		await gdApplicationInnovationSubmitApi(formData.value)
+		ElMessage.success('审批通过成功')
+		visible.value = false
+		emit('success')
+	} finally {
+		submitting.value = false
+	}
+}
+
+// 处理不通过
+async function handleReject() {
+	submitting.value = true
+	try {
+		formData.value.innovationStatus = '2'
+		await gdApplicationInnovationSubmitApi(formData.value)
+		ElMessage.success('审批不通过成功')
 		visible.value = false
 		emit('success')
 	} finally {
@@ -185,3 +244,6 @@
 
 defineExpose({ open })
 </script>
+<style scoped lang="scss">
+
+</style>

--
Gitblit v1.9.3