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