Commit a3f57a44242758e1517adf7b75fe227eeee118ff

Authored by YunaiV
1 parent c9d1100e

bpm:增加流程表单的保存窗口

yudao-ui-admin-vue3/src/router/modules/remaining.ts
... ... @@ -187,6 +187,18 @@ const remainingRouter: AppRouteRecordRaw[] = [
187 187 },
188 188 children: [
189 189 {
  190 + path: '/manager/form/edit',
  191 + component: () => import('@/views/bpm/form/formEditor.vue'),
  192 + name: 'bpmFormEditor',
  193 + meta: {
  194 + noCache: true,
  195 + hidden: true,
  196 + canTo: true,
  197 + title: '流程表单',
  198 + activeMenu: 'bpm/manager/form/formEditor'
  199 + }
  200 + },
  201 + {
190 202 path: '/manager/definition',
191 203 component: () => import('@/views/bpm/definition/index.vue'),
192 204 name: 'BpmProcessDefinitionList',
... ...
yudao-ui-admin-vue3/src/views/bpm/form/formEditor.vue 0 → 100644
  1 +<template>
  2 + <ContentWrap>
  3 + <!-- 表单设计器 -->
  4 + <fc-designer ref="designer" height="780px">
  5 + <template #handle>
  6 + <XButton type="primary" :title="t('action.save')" @click="handleSave" />
  7 + </template>
  8 + </fc-designer>
  9 + <!-- 表单保存的弹窗 -->
  10 + <XModal v-model="dialogVisible" title="保存表单">
  11 + <el-form :model="formValues" :rules="formRules" label-width="80px">
  12 + <el-form-item label="表单名" prop="name">
  13 + <el-input v-model="formValues.name" placeholder="请输入表单名" />
  14 + </el-form-item>
  15 + <el-form-item label="开启状态" prop="status">
  16 + <el-radio-group v-model="formValues.status">
  17 + <el-radio
  18 + v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
  19 + :key="dict.value"
  20 + :label="dict.value"
  21 + >
  22 + {{ dict.label }}
  23 + </el-radio>
  24 + </el-radio-group>
  25 + </el-form-item>
  26 + <el-form-item label="备注" prop="remark">
  27 + <el-input v-model="formValues.remark" type="textarea" placeholder="请输入备注" />
  28 + </el-form-item>
  29 + </el-form>
  30 + <!-- 操作按钮 -->
  31 + <template #footer>
  32 + <!-- 按钮:保存 -->
  33 + <XButton
  34 + type="primary"
  35 + :title="t('action.save')"
  36 + :loading="dialogLoading"
  37 + @click="submitForm"
  38 + />
  39 + <!-- 按钮:关闭 -->
  40 + <XButton :title="t('dialog.close')" @click="dialogVisible = false" />
  41 + </template>
  42 + </XModal>
  43 + </ContentWrap>
  44 +</template>
  45 +<script setup lang="ts" name="BpmFormEditor">
  46 +import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
  47 +import { CommonStatusEnum } from '@/utils/constants'
  48 +import { reactive } from 'vue'
  49 +
  50 +const { t } = useI18n() // 国际化
  51 +// const message = useMessage() // 消息
  52 +
  53 +const designer = ref() // 表单设计器
  54 +
  55 +const dialogVisible = ref(false)
  56 +const dialogLoading = ref(false)
  57 +const formRules = reactive({
  58 + name: [{ required: true, message: '表单名不能为空', trigger: 'blur' }],
  59 + status: [{ required: true, message: '开启状态不能为空', trigger: 'blur' }]
  60 +})
  61 +const formValues = reactive({
  62 + name: '',
  63 + status: CommonStatusEnum.ENABLE,
  64 + remark: ''
  65 +})
  66 +
  67 +// 处理保存按钮
  68 +const handleSave = () => {
  69 + dialogVisible.value = true
  70 +}
  71 +
  72 +// 提交保存表单
  73 +const submitForm = async () => {
  74 + console.log('保存')
  75 +}
  76 +
  77 +// formValue.value = designer.value.getOption()
  78 +// formValue.value = designer.value.getRule()
  79 +</script>
... ...
yudao-ui-admin-vue3/src/views/bpm/form/index.vue
... ... @@ -91,13 +91,8 @@ const [registerTable, { deleteData }] = useXTable({
91 91  
92 92 // 新增操作
93 93 const handleCreate = () => {
94   - console.log('新增')
95   - if (true) {
96   - message.success('动态表单开发中,预计 2 月底完成')
97   - return
98   - }
99 94 router.push({
100   - path: '/manager/form/edit'
  95 + name: 'bpmFormEditor'
101 96 })
102 97 }
103 98  
... ...