Эх сурвалжийг харах

Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 into feature/bpm

YunaiV 5 сар өмнө
parent
commit
8ef39c76d6

+ 10 - 0
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'
 })
 </script>
 

+ 16 - 7
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)"
+          >
+            复制
+          </el-button>
+          <el-button
+            v-hasPermi="['bpm:form:update']"
+            link
+            type="primary"
+            @click="openForm('update', scope.row.id)"
           >
             编辑
           </el-button>
@@ -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)
 }