miaofuhao 1 неделя назад
Родитель
Сommit
9d43fbe343

+ 55 - 0
apps/web-ele/src/api/exam/question/category.ts

1
+import { requestClient } from '#/api/request';
2
+
3
+enum Api {
4
+  base = '/examQuestionCategory/category',
5
+  deptList = '/system/dept/list',
6
+  tree = '/examQuestionCategory/category/list',
7
+}
8
+
9
+export interface QuestionCategory {
10
+  children: QuestionCategory[];
11
+  id: number;
12
+  name: string;
13
+  parentId: number;
14
+  icon: string;
15
+  description: string;
16
+  sortOrder: number;
17
+  delFlag: string;
18
+}
19
+
20
+/**
21
+ * 获取试题分类树形图
22
+ */
23
+async function questionCategoryTree() {
24
+  return requestClient.get<QuestionCategory[]>(Api.tree);
25
+}
26
+
27
+async function questionCategoryOne(id: number) {
28
+  return requestClient.get<QuestionCategory>(`${Api.base}/${id}`);
29
+}
30
+// 新增试题分类
31
+function addQuestionCategory(category: QuestionCategory) {
32
+  return requestClient.post(Api.base, category, {
33
+    successMessageMode: 'message',
34
+  });
35
+}
36
+// 修改试题分类
37
+function updateQuestionCategory(category: QuestionCategory) {
38
+  return requestClient.put(Api.base, category, {
39
+    successMessageMode: 'message',
40
+  });
41
+}
42
+// 删除试题分类
43
+function deleteQuestionCategory(categoryId: number) {
44
+  return requestClient.delete(`${Api.base}/${categoryId}`, {
45
+    successMessageMode: 'message',
46
+  });
47
+}
48
+
49
+export {
50
+  addQuestionCategory,
51
+  deleteQuestionCategory,
52
+  questionCategoryOne,
53
+  questionCategoryTree,
54
+  updateQuestionCategory,
55
+};

+ 0 - 0
apps/web-ele/src/views/examManage/questionBank/config-data.tsx


+ 45 - 0
apps/web-ele/src/views/examManage/questionBank/cpn/chapter/config-data.tsx

1
+import type { FormSchemaGetter } from '#/adapter/form';
2
+
3
+import { questionCategoryTree } from '#/api/exam/question/category';
4
+
5
+export const drawerFormSchema: FormSchemaGetter = () => [
6
+  {
7
+    component: 'Input',
8
+    dependencies: {
9
+      show: () => false,
10
+      triggerFields: [''],
11
+    },
12
+    fieldName: 'id',
13
+  },
14
+  {
15
+    component: 'ApiTreeSelect',
16
+    componentProps: {
17
+      api: async () => {
18
+        const data: any = await questionCategoryTree();
19
+        return data?.rows;
20
+      },
21
+      labelField: 'name',
22
+      valueField: 'id',
23
+      childrenField: 'children',
24
+      checkStrictly: true,
25
+    },
26
+    dependencies: {
27
+      if(values: any) {
28
+        return values.parentId !== 0 || !values.isUpdate;
29
+      },
30
+      triggerFields: ['parentId'],
31
+    },
32
+    fieldName: 'parentId',
33
+    label: '上级分类',
34
+    rules: 'selectRequired',
35
+  },
36
+  {
37
+    component: 'Input',
38
+    fieldName: 'name',
39
+    componentProps: {
40
+      maxlength: 30,
41
+    },
42
+    label: '分类名称',
43
+    rules: 'required',
44
+  },
45
+];

+ 88 - 0
apps/web-ele/src/views/examManage/questionBank/cpn/chapter/drawer.vue

1
+<script setup lang="ts">
2
+import type { Department } from '#/api/system/dept/model';
3
+
4
+import { defineEmits, ref } from 'vue';
5
+
6
+import { useVbenDrawer } from '@vben/common-ui';
7
+
8
+import { useVbenForm } from '#/adapter/form';
9
+import {
10
+  addQuestionCategory,
11
+  questionCategoryOne,
12
+  updateQuestionCategory,
13
+} from '#/api/exam/question/category';
14
+
15
+import { drawerFormSchema } from './config-data';
16
+
17
+const emit = defineEmits<{ reload: [] }>();
18
+
19
+const [Form, formApi] = useVbenForm({
20
+  // 不显示提交和重置按钮
21
+  showDefaultActions: false,
22
+  // 垂直布局,label和input在不同行,值为vertical
23
+  // 水平布局,label和input在同一行
24
+  layout: 'horizontal',
25
+  schema: drawerFormSchema(),
26
+});
27
+const isUpdateRef = ref<boolean>(false);
28
+const [Drawer, drawerApi] = useVbenDrawer({
29
+  async onOpenChange(isOpen) {
30
+    if (!isOpen) {
31
+      return;
32
+    }
33
+    try {
34
+      drawerApi.drawerLoading(true);
35
+      let { id, isUpdate, parentId } = drawerApi.getData();
36
+      isUpdateRef.value = isUpdate;
37
+      if (isUpdate) {
38
+        const deptData = await questionCategoryOne(id);
39
+        await formApi.setValues({ ...deptData, isUpdate });
40
+      } else {
41
+        // 如果父节点是0的话说明是根节点,将本节点id复制给根节点用于侧拉显示根节点。
42
+        if (parentId === 0) {
43
+          parentId = id;
44
+        }
45
+        await formApi.setValues({ parentId, isUpdate });
46
+      }
47
+    } catch (error) {
48
+      console.error(error);
49
+    } finally {
50
+      drawerApi.drawerLoading(false);
51
+    }
52
+  },
53
+  onClosed() {
54
+    formApi.resetForm();
55
+  },
56
+  async onConfirm() {
57
+    const { valid } = await formApi.validate();
58
+    if (!valid) {
59
+      return;
60
+    }
61
+    try {
62
+      this.confirmLoading = true;
63
+      const data = await formApi.getValues<Department>();
64
+      // 动态判断调用新增还是修改
65
+      isUpdateRef.value
66
+        ? await updateQuestionCategory(data)
67
+        : await addQuestionCategory(data);
68
+      emit('reload');
69
+      drawerApi.close();
70
+    } catch (error) {
71
+      console.error(error);
72
+    } finally {
73
+      this.confirmLoading = false;
74
+    }
75
+  },
76
+});
77
+</script>
78
+
79
+<template>
80
+  <Drawer :title="isUpdateRef ? '编辑' : '新增'">
81
+    <Form />
82
+  </Drawer>
83
+</template>
84
+<style scoped lang="scss">
85
+:deep(.el-input-number) {
86
+  width: 100%;
87
+}
88
+</style>

+ 83 - 95
apps/web-ele/src/views/examManage/questionBank/index.vue

1
 <script lang="ts" setup>
1
 <script lang="ts" setup>
2
 import type { VbenFormProps } from '@vben/common-ui';
2
 import type { VbenFormProps } from '@vben/common-ui';
3
+
3
 import type { VxeGridProps } from '#/adapter/vxe-table';
4
 import type { VxeGridProps } from '#/adapter/vxe-table';
4
 
5
 
5
-import { ref, onMounted } from 'vue';
6
+import { onMounted, ref } from 'vue';
6
 import { useRoute, useRouter } from 'vue-router';
7
 import { useRoute, useRouter } from 'vue-router';
7
-import { Page } from '@vben/common-ui';
8
-import { useVbenVxeGrid } from '#/adapter/vxe-table';
8
+
9
+import { Page, useVbenDrawer } from '@vben/common-ui';
9
 
10
 
10
 import {
11
 import {
11
-  Plus,
12
-  Edit,
13
-  Delete,
14
   DArrowLeft,
12
   DArrowLeft,
13
+  Delete,
14
+  Edit,
15
   Expand,
15
   Expand,
16
+  Plus,
16
 } from '@element-plus/icons-vue';
17
 } from '@element-plus/icons-vue';
17
 import {
18
 import {
18
-  ElTree,
19
   ElButton,
19
   ElButton,
20
   ElIcon,
20
   ElIcon,
21
   ElMessage,
21
   ElMessage,
22
-  ElSpace,
23
   ElMessageBox,
22
   ElMessageBox,
23
+  ElSpace,
24
+  ElTree,
24
 } from 'element-plus';
25
 } from 'element-plus';
25
 
26
 
27
+import { useVbenVxeGrid } from '#/adapter/vxe-table';
28
+import {
29
+  deleteQuestionCategory,
30
+  questionCategoryTree,
31
+} from '#/api/exam/question/category';
32
+
33
+import ChapterDrawer from './cpn/chapter/drawer.vue';
34
+
26
 // 路由实例
35
 // 路由实例
27
 const router = useRouter();
36
 const router = useRouter();
28
 const route = useRoute();
37
 const route = useRoute();
32
 const isCollapse = ref(false);
41
 const isCollapse = ref(false);
33
 
42
 
34
 // 章节数据
43
 // 章节数据
35
-const chapterData = ref([
36
-  {
37
-    id: 1,
38
-    label: '第一章 基础知识',
39
-    children: [
40
-      { id: 2, label: '1.1 概述', saved: true },
41
-      { id: 3, label: '1.2 基本概念', saved: false },
42
-      { id: 4, label: '1.3 核心原理', saved: true },
43
-    ],
44
-  },
45
-  {
46
-    id: 5,
47
-    label: '第二章 进阶知识',
48
-    children: [
49
-      { id: 6, label: '2.1 高级特性', saved: true },
50
-      { id: 7, label: '2.2 最佳实践', saved: true },
51
-    ],
52
-  },
53
-  {
54
-    id: 8,
55
-    label: '第三章 案例分析',
56
-    children: [
57
-      { id: 9, label: '3.1 案例一', saved: false },
58
-      { id: 10, label: '3.2 案例二', saved: true },
59
-    ],
60
-  },
61
-]);
44
+const chapterData = ref([]);
62
 
45
 
63
 // 选中的章节
46
 // 选中的章节
64
-const selectedChapter = ref({
65
-  id: '1',
66
-  label: '第一章 基础知识',
67
-});
47
+const selectedChapter = ref({});
68
 
48
 
69
 // 模拟试题数据
49
 // 模拟试题数据
70
 const mockQuestionData = ref([
50
 const mockQuestionData = ref([
223
       query: async ({ page }, formValues = {}) => {
203
       query: async ({ page }, formValues = {}) => {
224
         // 模拟API请求
204
         // 模拟API请求
225
         console.log('查询参数:', formValues, page);
205
         console.log('查询参数:', formValues, page);
226
-        
206
+
227
         // 模拟搜索过滤
207
         // 模拟搜索过滤
228
         let filteredData = [...mockQuestionData.value];
208
         let filteredData = [...mockQuestionData.value];
229
-        
209
+
230
         if (formValues.content) {
210
         if (formValues.content) {
231
-          filteredData = filteredData.filter(item => 
232
-            item.content.includes(formValues.content)
211
+          filteredData = filteredData.filter((item) =>
212
+            item.content.includes(formValues.content),
233
           );
213
           );
234
         }
214
         }
235
-        
215
+
236
         if (formValues.reminder) {
216
         if (formValues.reminder) {
237
-          filteredData = filteredData.filter(item => 
238
-            item.reminder === formValues.reminder
217
+          filteredData = filteredData.filter(
218
+            (item) => item.reminder === formValues.reminder,
239
           );
219
           );
240
         }
220
         }
241
-        
221
+
242
         if (formValues.difficulty) {
222
         if (formValues.difficulty) {
243
-          filteredData = filteredData.filter(item => 
244
-            item.difficulty === formValues.difficulty
223
+          filteredData = filteredData.filter(
224
+            (item) => item.difficulty === formValues.difficulty,
245
           );
225
           );
246
         }
226
         }
247
-        
227
+
248
         // 模拟分页
228
         // 模拟分页
249
         const start = (page.currentPage - 1) * page.pageSize;
229
         const start = (page.currentPage - 1) * page.pageSize;
250
         const end = start + page.pageSize;
230
         const end = start + page.pageSize;
251
         const paginatedData = filteredData.slice(start, end);
231
         const paginatedData = filteredData.slice(start, end);
252
         console.log('分页数据:', paginatedData);
232
         console.log('分页数据:', paginatedData);
253
-        
233
+
254
         // 确保返回格式正确,使用 items 作为数据键
234
         // 确保返回格式正确,使用 items 作为数据键
255
-        return { 
256
-          items: paginatedData, 
257
-          total: filteredData.length 
235
+        return {
236
+          items: paginatedData,
237
+          total: filteredData.length,
258
         };
238
         };
259
       },
239
       },
260
     },
240
     },
286
 };
266
 };
287
 
267
 
288
 // 添加章节
268
 // 添加章节
289
-const addChapter = (parentId = null) => {
290
-  ElMessage.info('添加章节功能待实现');
269
+const addChapter = (chapter: any) => {
270
+  chapterVbenDrawerApi.setData({ ...chapter, isUpdate: false }).open();
291
 };
271
 };
292
 
272
 
293
 // 编辑章节
273
 // 编辑章节
294
-const editChapter = (node) => {
295
-  ElMessage.info('编辑章节功能待实现');
274
+const editChapter = (chapter: any) => {
275
+  chapterVbenDrawerApi.setData({ ...chapter, isUpdate: true }).open();
296
 };
276
 };
297
 
277
 
298
 // 删除章节
278
 // 删除章节
299
-const deleteChapter = (node) => {
300
-  ElMessage.info('删除章节功能待实现');
279
+const deleteChapter = (chapter: any) => {
280
+  // ElMessage.info('删除章节功能待实现');
281
+  // 二次确认
282
+  ElMessageBox.confirm('确认删除该章节吗?', '提示', {
283
+    confirmButtonText: '确定',
284
+    cancelButtonText: '取消',
285
+    type: 'warning',
286
+  }).then(async () => {
287
+    await deleteQuestionCategory(chapter.id);
288
+    await getChapterTree();
289
+  });
301
 };
290
 };
302
 
291
 
303
 // 新增试题
292
 // 新增试题
324
 
313
 
325
 // 预览试题
314
 // 预览试题
326
 const previewQuestion = (row) => {
315
 const previewQuestion = (row) => {
327
-  // 跳转到预览页面,并传递试题ID 
316
+  // 跳转到预览页面,并传递试题ID
328
   router.push(`/examManage/questionBank/questionPreview?id=${row.id}`);
317
   router.push(`/examManage/questionBank/questionPreview?id=${row.id}`);
329
 };
318
 };
330
 
319
 
340
   if (ids.length <= 0) {
329
   if (ids.length <= 0) {
341
     return;
330
     return;
342
   }
331
   }
343
-  
332
+
344
   ElMessageBox.confirm(`确认删除选中的${ids.length}条数据吗?`, '提示', {
333
   ElMessageBox.confirm(`确认删除选中的${ids.length}条数据吗?`, '提示', {
345
     confirmButtonText: '确定',
334
     confirmButtonText: '确定',
346
     cancelButtonText: '取消',
335
     cancelButtonText: '取消',
352
   });
341
   });
353
 };
342
 };
354
 
343
 
344
+const [ChapterVbenDrawer, chapterVbenDrawerApi] = useVbenDrawer({
345
+  connectedComponent: ChapterDrawer,
346
+});
347
+
348
+const getChapterTree = async () => {
349
+  const { rows } = await questionCategoryTree();
350
+  chapterData.value = rows;
351
+};
352
+
355
 // 页面加载时获取数据
353
 // 页面加载时获取数据
356
 onMounted(() => {
354
 onMounted(() => {
357
   // 默认选中第一个章节
355
   // 默认选中第一个章节
356
+
357
+  // 获取试题分类树形图
358
+  getChapterTree().then();
359
+
358
   if (chapterData.value.length > 0) {
360
   if (chapterData.value.length > 0) {
359
     handleChapterClick(chapterData.value[0]);
361
     handleChapterClick(chapterData.value[0]);
360
   }
362
   }
364
 <template>
366
 <template>
365
   <Page :auto-content-height="true">
367
   <Page :auto-content-height="true">
366
     <div class="knowledge-detail">
368
     <div class="knowledge-detail">
367
-
368
       <!-- 主体内容区 -->
369
       <!-- 主体内容区 -->
369
       <div class="main-content">
370
       <div class="main-content">
370
         <!-- 左侧目录 -->
371
         <!-- 左侧目录 -->
371
-        <div class="left-sidebar" :class="{ 'collapsed': isCollapse }">
372
+        <div class="left-sidebar" :class="{ collapsed: isCollapse }">
372
           <!-- 折叠按钮 -->
373
           <!-- 折叠按钮 -->
373
           <div class="collapse-btn" @click="isCollapse = true">
374
           <div class="collapse-btn" @click="isCollapse = true">
374
             <ElIcon><DArrowLeft /></ElIcon>
375
             <ElIcon><DArrowLeft /></ElIcon>
375
           </div>
376
           </div>
376
-          
377
+
377
           <div class="sidebar-content">
378
           <div class="sidebar-content">
378
             <!-- 章节树 -->
379
             <!-- 章节树 -->
379
             <div class="chapter-tree">
380
             <div class="chapter-tree">
380
               <ElTree
381
               <ElTree
381
                 :data="chapterData"
382
                 :data="chapterData"
382
                 node-key="id"
383
                 node-key="id"
384
+                :props="{ label: 'name' }"
383
                 default-expand-all
385
                 default-expand-all
384
                 :expand-on-click-node="false"
386
                 :expand-on-click-node="false"
385
                 @node-click="handleChapterClick"
387
                 @node-click="handleChapterClick"
392
                         type="text"
394
                         type="text"
393
                         size="small"
395
                         size="small"
394
                         circle
396
                         circle
395
-                        @click.stop="addQuestion"
396
-                        title="添加题目"
397
+                        @click.stop="addChapter"
398
+                        title="添加章节"
397
                       >
399
                       >
398
                         <ElIcon><Plus /></ElIcon>
400
                         <ElIcon><Plus /></ElIcon>
399
                       </ElButton>
401
                       </ElButton>
425
 
427
 
426
         <!-- 中间内容 -->
428
         <!-- 中间内容 -->
427
         <div class="center-content">
429
         <div class="center-content">
428
-          <ElIcon v-if="isCollapse" :size="20" class="collapse-control-btn" @click="isCollapse = false"><Expand /></ElIcon>
429
-          
430
+          <ElIcon
431
+            v-if="isCollapse"
432
+            :size="20"
433
+            class="collapse-control-btn"
434
+            @click="isCollapse = false"
435
+          >
436
+            <Expand />
437
+          </ElIcon>
438
+
430
           <!-- 题目列表区域 -->
439
           <!-- 题目列表区域 -->
431
           <div class="question-list">
440
           <div class="question-list">
432
             <!-- 试题列表 -->
441
             <!-- 试题列表 -->
442
                   >
451
                   >
443
                     批量删除
452
                     批量删除
444
                   </ElButton>
453
                   </ElButton>
445
-                  <ElButton
446
-                    type="primary"
447
-                    @click="addQuestion"
448
-                  >
454
+                  <ElButton type="primary" @click="addQuestion">
449
                     新增试题
455
                     新增试题
450
                   </ElButton>
456
                   </ElButton>
451
-                  <ElButton
452
-                    type="primary"
453
-                    @click="importQuestions"
454
-                  >
457
+                  <ElButton type="primary" @click="importQuestions">
455
                     导入
458
                     导入
456
                   </ElButton>
459
                   </ElButton>
457
-                  <ElButton
458
-                    type="primary"
459
-                    @click="exportQuestions"
460
-                  >
460
+                  <ElButton type="primary" @click="exportQuestions">
461
                     导出
461
                     导出
462
                   </ElButton>
462
                   </ElButton>
463
                 </ElSpace>
463
                 </ElSpace>
464
               </template>
464
               </template>
465
               <template #action="{ row }">
465
               <template #action="{ row }">
466
                 <div class="action-buttons">
466
                 <div class="action-buttons">
467
-                  <ElButton
468
-                    type="text"
469
-                    size="small"
470
-                    @click="editQuestion(row)"
471
-                  >
467
+                  <ElButton type="text" size="small" @click="editQuestion(row)">
472
                     <ElIcon><Edit /></ElIcon>
468
                     <ElIcon><Edit /></ElIcon>
473
                     编辑
469
                     编辑
474
                   </ElButton>
470
                   </ElButton>
495
         </div>
491
         </div>
496
       </div>
492
       </div>
497
     </div>
493
     </div>
494
+    <ChapterVbenDrawer @reload="getChapterTree" />
498
   </Page>
495
   </Page>
499
 </template>
496
 </template>
500
 
497
 
630
   gap: 8px;
627
   gap: 8px;
631
 }
628
 }
632
 </style>
629
 </style>
633
-
634
-
635
-
636
-
637
-
638
-
639
-
640
-
641
-

+ 4 - 6
apps/web-ele/src/views/workflow/register.ts

1
-import { defineAsyncComponent, markRaw } from 'vue';
2
-
3
 /**
1
 /**
4
  * 这里定义流程描述组件
2
  * 这里定义流程描述组件
5
  */
3
  */
6
 
4
 
7
-const LeaveDescription = defineAsyncComponent(
8
-  () => import('#/views/workflow/leave/leave-description.vue'),
9
-);
5
+// const LeaveDescription = defineAsyncComponent(
6
+//   () => import('#/views/workflow/leave/leave-description.vue'),
7
+// );
10
 
8
 
11
 /**
9
 /**
12
  * key为流程的路径(task.formPath) value为要显示的组件
10
  * key为流程的路径(task.formPath) value为要显示的组件
15
   /**
13
   /**
16
    * 请假申请 详情
14
    * 请假申请 详情
17
    */
15
    */
18
-  '/workflow/leaveEdit/index': markRaw(LeaveDescription),
16
+  '/workflow/leaveEdit/index': null,
19
 };
17
 };
20
 
18
 
21
 export type FlowComponentsMapMapKey = keyof typeof flowComponentsMap;
19
 export type FlowComponentsMapMapKey = keyof typeof flowComponentsMap;

+ 15 - 0
apps/web-ele/src/views/workflow/task/allTaskWaiting.vue

8
 import { Page } from '@vben/common-ui';
8
 import { Page } from '@vben/common-ui';
9
 import { useTabs } from '@vben/hooks';
9
 import { useTabs } from '@vben/hooks';
10
 
10
 
11
+<<<<<<< HEAD
11
 import { Filter, Refresh } from '@element-plus/icons-vue';
12
 import { Filter, Refresh } from '@element-plus/icons-vue';
12
 import {
13
 import {
13
   ElButton,
14
   ElButton,
18
   ElPopover,
19
   ElPopover,
19
   ElTooltip,
20
   ElTooltip,
20
 } from 'element-plus';
21
 } from 'element-plus';
22
+=======
23
+// import {
24
+//   Empty,
25
+//   Form,
26
+//   FormItem,
27
+//   Input,
28
+//   InputSearch,
29
+//   Popover,
30
+//   Segmented,
31
+//   Spin,
32
+//   Tooltip,
33
+//   TreeSelect,
34
+// } from 'ant-design-vue';
35
+>>>>>>> 0a5e399be8a3dc56c82fd915b6765781a5d30748
21
 import { cloneDeep, debounce, uniqueId } from 'lodash-es';
36
 import { cloneDeep, debounce, uniqueId } from 'lodash-es';
22
 
37
 
23
 import { categoryTree } from '#/api/workflow/category';
38
 import { categoryTree } from '#/api/workflow/category';

+ 14 - 1
apps/web-ele/src/views/workflow/task/myDocument.vue

7
 import { Page } from '@vben/common-ui';
7
 import { Page } from '@vben/common-ui';
8
 import { useTabs } from '@vben/hooks';
8
 import { useTabs } from '@vben/hooks';
9
 
9
 
10
+<<<<<<< HEAD
10
 import { Filter, Refresh } from '@element-plus/icons-vue';
11
 import { Filter, Refresh } from '@element-plus/icons-vue';
11
 import {
12
 import {
12
   ElButton,
13
   ElButton,
18
   ElPopover,
19
   ElPopover,
19
   ElTooltip,
20
   ElTooltip,
20
 } from 'element-plus';
21
 } from 'element-plus';
22
+=======
23
+// import {
24
+//   ElButton,
25
+//   ElEmpty,
26
+//   ElForm,
27
+//   ElFormItem,
28
+//   ElInput,
29
+//   ElMessage,
30
+//   ElPopover,
31
+//   ElSpin,
32
+//   ElTooltip,
33
+// } from 'element-plus';
34
+>>>>>>> 0a5e399be8a3dc56c82fd915b6765781a5d30748
21
 import { cloneDeep, debounce } from 'lodash-es';
35
 import { cloneDeep, debounce } from 'lodash-es';
22
 
36
 
23
 import { pageByCurrent } from '#/api/workflow/instance';
37
 import { pageByCurrent } from '#/api/workflow/instance';
24
 
38
 
25
-import { ApprovalCard, ApprovalPanel } from '../components';
26
 import { bottomOffset } from './constant';
39
 import { bottomOffset } from './constant';
27
 
40
 
28
 const emptyImage = ElEmpty.PRESENTED_IMAGE_SIMPLE;
41
 const emptyImage = ElEmpty.PRESENTED_IMAGE_SIMPLE;

+ 14 - 0
apps/web-ele/src/views/workflow/task/taskCopyList.vue

6
 
6
 
7
 import { Page } from '@vben/common-ui';
7
 import { Page } from '@vben/common-ui';
8
 
8
 
9
+<<<<<<< HEAD
9
 import { ElEmpty, ElMessage } from 'element-plus';
10
 import { ElEmpty, ElMessage } from 'element-plus';
11
+=======
12
+// import {
13
+//   Empty,
14
+//   Form,
15
+//   FormItem,
16
+//   Input,
17
+//   InputSearch,
18
+//   Popover,
19
+//   Spin,
20
+//   Tooltip,
21
+//   TreeSelect,
22
+// } from 'ant-design-vue';
23
+>>>>>>> 0a5e399be8a3dc56c82fd915b6765781a5d30748
10
 import { cloneDeep, debounce } from 'lodash-es';
24
 import { cloneDeep, debounce } from 'lodash-es';
11
 
25
 
12
 import { pageByTaskCopy } from '#/api/workflow/task';
26
 import { pageByTaskCopy } from '#/api/workflow/task';

+ 14 - 0
apps/web-ele/src/views/workflow/task/taskFinish.vue

6
 
6
 
7
 import { Page } from '@vben/common-ui';
7
 import { Page } from '@vben/common-ui';
8
 
8
 
9
+<<<<<<< HEAD
9
 import { Filter, Refresh } from '@element-plus/icons-vue';
10
 import { Filter, Refresh } from '@element-plus/icons-vue';
10
 import {
11
 import {
11
   ElButton,
12
   ElButton,
17
   ElPopover,
18
   ElPopover,
18
   ElTooltip,
19
   ElTooltip,
19
 } from 'element-plus';
20
 } from 'element-plus';
21
+=======
22
+// import {
23
+//   Empty,
24
+//   Form,
25
+//   FormItem,
26
+//   Input,
27
+//   InputSearch,
28
+//   Popover,
29
+//   Spin,
30
+//   Tooltip,
31
+//   TreeSelect,
32
+// } from 'ant-design-vue';
33
+>>>>>>> 0a5e399be8a3dc56c82fd915b6765781a5d30748
20
 import { cloneDeep, debounce } from 'lodash-es';
34
 import { cloneDeep, debounce } from 'lodash-es';
21
 
35
 
22
 import { pageByTaskFinish } from '#/api/workflow/task';
36
 import { pageByTaskFinish } from '#/api/workflow/task';

+ 14 - 0
apps/web-ele/src/views/workflow/task/taskWaiting.vue

7
 import { Page } from '@vben/common-ui';
7
 import { Page } from '@vben/common-ui';
8
 import { useTabs } from '@vben/hooks';
8
 import { useTabs } from '@vben/hooks';
9
 
9
 
10
+<<<<<<< HEAD
10
 import { Filter, Refresh } from '@element-plus/icons-vue';
11
 import { Filter, Refresh } from '@element-plus/icons-vue';
11
 import {
12
 import {
12
   ElButton,
13
   ElButton,
18
   ElPopover,
19
   ElPopover,
19
   ElTooltip,
20
   ElTooltip,
20
 } from 'element-plus';
21
 } from 'element-plus';
22
+=======
23
+// import {
24
+//   Empty,
25
+//   Form,
26
+//   FormItem,
27
+//   Input,
28
+//   InputSearch,
29
+//   Popover,
30
+//   Spin,
31
+//   Tooltip,
32
+//   TreeSelect,
33
+// } from 'ant-design-vue';
34
+>>>>>>> 0a5e399be8a3dc56c82fd915b6765781a5d30748
21
 import { cloneDeep, debounce } from 'lodash-es';
35
 import { cloneDeep, debounce } from 'lodash-es';
22
 
36
 
23
 import { pageByTaskWait } from '#/api/workflow/task';
37
 import { pageByTaskWait } from '#/api/workflow/task';