1
1
<template >
2
2
<div class =" flex items-center h-50px" >
3
+ <!-- 头部:分类名 -->
3
4
<div class =" flex items-center" >
4
5
<el-tooltip content =" 拖动排序" v-if =" isCategorySorting" >
5
6
<Icon
11
12
<h3 class =" ml-20px mr-8px text-18px" >{{ categoryInfo.name }}</h3 >
12
13
<div class =" color-gray-600 text-16px" > ({{ categoryInfo.modelList?.length || 0 }}) </div >
13
14
</div >
15
+ <!-- 头部:操作 -->
14
16
<div class =" flex-1 flex" v-if =" !isCategorySorting" >
15
17
<div
16
18
v-if =" categoryInfo.modelList.length > 0"
62
64
</div >
63
65
</div >
64
66
</div >
67
+ <!-- 模型列表 -->
65
68
<el-collapse-transition >
66
69
<div v-show =" isExpand" >
67
70
<el-table
70
73
:header-cell-style =" { backgroundColor: isDark ? '' : '#edeff0', paddingLeft: '10px' }"
71
74
:cell-style =" { paddingLeft: '10px' }"
72
75
:row-style =" { height: '68px' }"
73
- :data =" tableData "
76
+ :data =" modelList "
74
77
row-key =" id"
75
78
>
76
79
<el-table-column label =" 流程名" prop =" name" min-width =" 150" >
110
113
<el-table-column label =" 表单信息" prop =" formType" min-width =" 200" >
111
114
<template #default =" scope " >
112
115
<el-button
113
- v-if =" scope.row.formType === 10 "
116
+ v-if =" scope.row.formType === BpmModelFormType.NORMAL "
114
117
type =" primary"
115
118
link
116
119
@click =" handleFormDetail(scope.row)"
117
120
>
118
121
<span >{{ scope.row.formName }}</span >
119
122
</el-button >
120
123
<el-button
121
- v-else-if =" scope.row.formType === 20 "
124
+ v-else-if =" scope.row.formType === BpmModelFormType.CUSTOM "
122
125
type =" primary"
123
126
link
124
127
@click =" handleFormDetail(scope.row)"
@@ -246,7 +249,7 @@ import { formatDate } from '@/utils/formatTime'
246
249
import * as ModelApi from ' @/api/bpm/model'
247
250
import * as FormApi from ' @/api/bpm/form'
248
251
import { setConfAndFields2 } from ' @/utils/formCreate'
249
- import { BpmModelType } from ' @/utils/constants'
252
+ import { BpmModelFormType , BpmModelType } from ' @/utils/constants'
250
253
import { checkPermi } from ' @/utils/permission'
251
254
import { useUserStoreWithOut } from ' @/store/modules/user'
252
255
import { useAppStore } from ' @/store/modules/app'
@@ -255,20 +258,19 @@ import { cloneDeep } from 'lodash-es'
255
258
defineOptions ({ name: ' BpmModel' })
256
259
257
260
const props = defineProps ({
258
- // 分类后的数据
259
- categoryInfo: propTypes .object .def ([]),
260
- isCategorySorting: propTypes .bool .def (false )
261
+ categoryInfo: propTypes .object .def ([]), // 分类后的数据
262
+ isCategorySorting: propTypes .bool .def (false ) // 是否分类在排序
261
263
})
262
264
const emit = defineEmits ([' success' ])
263
- const appStore = useAppStore ()
264
265
const message = useMessage () // 消息弹窗
265
- const isDark = computed (() => appStore .getIsDark )
266
266
const { t } = useI18n () // 国际化
267
267
const { push } = useRouter () // 路由
268
268
const userStore = useUserStoreWithOut () // 用户信息缓存
269
+ const isDark = computed (() => useAppStore ().getIsDark ) // 是否黑暗模式
270
+
269
271
const isModelSorting = ref (false ) // 是否正处于排序状态
270
- const tableData: any = ref ([]) // 模型列表
271
272
const originalData: any = ref ([]) // 原始数据
273
+ const modelList: any = ref ([]) // 模型列表
272
274
const isExpand = ref (false ) // 是否处于展开状态
273
275
274
276
/** '更多'操作按钮 */
@@ -414,7 +416,7 @@ const handleModelSort = () => {
414
416
/** 处理模型的排序提交 */
415
417
const handleModelSortSubmit = async () => {
416
418
// 保存排序
417
- const ids = tableData .value .map ((item : any ) => item .id )
419
+ const ids = modelList .value .map ((item : any ) => item .id )
418
420
await ModelApi .updateModelSortBatch (ids )
419
421
// 刷新列表
420
422
isModelSorting .value = false
@@ -425,12 +427,12 @@ const handleModelSortSubmit = async () => {
425
427
/** 处理模型的排序取消 */
426
428
const handleModelSortCancel = () => {
427
429
// 恢复初始数据
428
- tableData .value = cloneDeep (originalData .value )
430
+ modelList .value = cloneDeep (originalData .value )
429
431
isModelSorting .value = false
430
432
}
431
433
434
+ /** 创建拖拽实例 */
432
435
const tableRef = ref ()
433
- // 创建拖拽实例
434
436
const initSort = () => {
435
437
const table = document .querySelector (` .${props .categoryInfo .name } .el-table__body-wrapper tbody ` )
436
438
Sortable .create (table , {
@@ -441,19 +443,19 @@ const initSort = () => {
441
443
// 结束拖动事件
442
444
onEnd : ({ newDraggableIndex , oldDraggableIndex }) => {
443
445
if (oldDraggableIndex !== newDraggableIndex ) {
444
- tableData .value .splice (
446
+ modelList .value .splice (
445
447
newDraggableIndex ,
446
448
0 ,
447
- tableData .value .splice (oldDraggableIndex , 1 )[0 ]
449
+ modelList .value .splice (oldDraggableIndex , 1 )[0 ]
448
450
)
449
451
}
450
452
}
451
453
})
452
454
}
453
455
454
- // 更新表格数据
455
- const updateTableData = () => {
456
- tableData .value = cloneDeep (props .categoryInfo .modelList )
456
+ /** 更新 modelList 模型列表 */
457
+ const updateModeList = () => {
458
+ modelList .value = cloneDeep (props .categoryInfo .modelList )
457
459
if (props .categoryInfo .modelList .length > 0 ) {
458
460
isExpand .value = true
459
461
}
@@ -497,7 +499,7 @@ const openModelForm = (type: string, id?: number) => {
497
499
modelFormRef .value .open (type , id )
498
500
}
499
501
500
- watch (() => props .categoryInfo .modelList , updateTableData , { immediate: true })
502
+ watch (() => props .categoryInfo .modelList , updateModeList , { immediate: true })
501
503
watch (
502
504
() => props .isCategorySorting ,
503
505
(val ) => {
0 commit comments