diff --git a/src/views/bpm/form/editor/index.vue b/src/views/bpm/form/editor/index.vue index 12945e0f7daab07cba0dd96bed7bff8c403ba1be..4165fcc478e24a0746c76dded9d76f2c05af923c 100644 --- a/src/views/bpm/form/editor/index.vue +++ b/src/views/bpm/form/editor/index.vue @@ -50,11 +50,13 @@ import FcDesigner from '@form-create/designer' import { encodeConf, encodeFields, setConfAndFields } from '@/utils/formCreate' import { useTagsViewStore } from '@/store/modules/tagsView' import { useFormCreateDesigner } from '@/components/FormCreate' +import { useRoute } from 'vue-router' defineOptions({ name: 'BpmFormEditor' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息 +const route = useRoute() // 路由 const { push, currentRoute } = useRouter() // 路由 const { query } = useRoute() // 路由信息 const { delView } = useTagsViewStore() // 视图操作 @@ -150,6 +152,14 @@ onMounted(async () => { const data = await FormApi.getForm(id) formData.value = data setConfAndFields(designer, data.conf, data.fields) + + if (route.query.type !== 'copy') { + return + } + // 场景三: 复制表单 + const { id: foo, ...copied } = data + formData.value = copied + formData.value.name += '_copy' }) diff --git a/src/views/bpm/form/index.vue b/src/views/bpm/form/index.vue index 46edd8f9079f2d70cbdeb06fb0b44c0362621e62..57b44a36b1503518e9a36224c58251bfbb890bdd 100644 --- a/src/views/bpm/form/index.vue +++ b/src/views/bpm/form/index.vue @@ -59,7 +59,15 @@ v-hasPermi="['bpm:form:update']" link type="primary" - @click="openForm(scope.row.id)" + @click="openForm('copy', scope.row.id)" + > + 复制 + + 编辑 @@ -139,16 +147,17 @@ const resetQuery = () => { } /** 添加/修改操作 */ -const openForm = (id?: number) => { - const toRouter: { name: string; query?: { id: number } } = { - name: 'BpmFormEditor' +const openForm = (type: string, id?: number) => { + const toRouter: { name: string; query: { type: string; id?: number } } = { + name: 'BpmFormEditor', + query: { + type + } } console.log(typeof id) // 表单新建的时候id传的是event需要排除 if (typeof id === 'number' || typeof id === 'string') { - toRouter.query = { - id - } + toRouter.query.id = id } push(toRouter) }