41 lines
1.5 KiB
Vue
41 lines
1.5 KiB
Vue
|
|
<template>
|
||
|
|
<el-dialog v-model="dialogVisible" :title="dialogTitle" width="500px" :close-on-click-modal="false">
|
||
|
|
<el-form :model="saveForm" label-position="top">
|
||
|
|
<el-form-item label="工作流名称" required>
|
||
|
|
<el-input v-model="saveForm.flowName" placeholder="请输入工作流名称" maxlength="50" show-word-limit />
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="工作流描述">
|
||
|
|
<el-input v-model="saveForm.description" type="textarea" :rows="4" placeholder="请输入工作流描述(选填)" maxlength="200" show-word-limit />
|
||
|
|
</el-form-item>
|
||
|
|
</el-form>
|
||
|
|
<template #footer>
|
||
|
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||
|
|
<el-button type="primary" :loading="saving" @click="emit('confirm')">{{ confirmText }}</el-button>
|
||
|
|
</template>
|
||
|
|
</el-dialog>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<script setup lang="ts">
|
||
|
|
import { computed } from 'vue';
|
||
|
|
|
||
|
|
const props = defineProps<{
|
||
|
|
modelValue: boolean;
|
||
|
|
saveForm: { flowName: string; description: string };
|
||
|
|
currentEditingWorkflowId: string | null;
|
||
|
|
saving: boolean;
|
||
|
|
}>();
|
||
|
|
|
||
|
|
const emit = defineEmits<{
|
||
|
|
(e: 'update:modelValue', value: boolean): void;
|
||
|
|
(e: 'confirm'): void;
|
||
|
|
}>();
|
||
|
|
|
||
|
|
const dialogVisible = computed({
|
||
|
|
get: () => props.modelValue,
|
||
|
|
set: (value: boolean) => emit('update:modelValue', value),
|
||
|
|
});
|
||
|
|
|
||
|
|
const dialogTitle = computed(() => (props.currentEditingWorkflowId ? '编辑工作流' : '保存工作流'));
|
||
|
|
const confirmText = computed(() => (props.currentEditingWorkflowId ? '确定更新' : '确定保存'));
|
||
|
|
</script>
|