84
84
<el-table-column :show-overflow-tooltip =" true" label =" 权限标识" prop =" permission" />
85
85
<el-table-column :show-overflow-tooltip =" true" label =" 组件路径" prop =" component" />
86
86
<el-table-column :show-overflow-tooltip =" true" label =" 组件名称" prop =" componentName" />
87
- <el-table-column label =" 状态" prop =" status" width =" 80 " >
87
+ <el-table-column label =" 状态" prop =" status" width =" 160 " >
88
88
<template #default =" scope " >
89
89
<dict-tag :type =" DICT_TYPE.COMMON_STATUS" :value =" scope.row.status" />
90
+ <el-switch
91
+ class =" ml-4px"
92
+ v-model =" scope.row.status"
93
+ v-hasPermi =" ['system:menu:update']"
94
+ :active-value =" CommonStatusEnum.ENABLE"
95
+ :inactive-value =" CommonStatusEnum.DISABLE"
96
+ :loading =" menuStatusUpdating[scope.row.id]"
97
+ @change =" (val) => onMenuStatusChanged(scope.row, val as number)"
98
+ />
90
99
</template >
91
100
</el-table-column >
92
101
<el-table-column align =" center" label =" 操作" >
127
136
import { DICT_TYPE , getIntDictOptions } from ' @/utils/dict'
128
137
import { handleTree } from ' @/utils/tree'
129
138
import * as MenuApi from ' @/api/system/menu'
139
+ import { MenuVO } from ' @/api/system/menu'
130
140
import MenuForm from ' ./MenuForm.vue'
131
141
import { CACHE_KEY , useCache } from ' @/hooks/web/useCache'
142
+ import { CommonStatusEnum } from ' @/utils/constants'
132
143
133
144
defineOptions ({ name: ' SystemMenu' })
134
145
@@ -137,6 +148,7 @@ const { t } = useI18n() // 国际化
137
148
const message = useMessage () // 消息弹窗
138
149
139
150
const loading = ref (true ) // 列表的加载中
151
+ const menuStatusUpdating = ref ({}) // 列表的加载中
140
152
const list = ref <any >([]) // 列表的数据
141
153
const queryParams = reactive ({
142
154
name: undefined ,
@@ -208,6 +220,13 @@ const handleDelete = async (id: number) => {
208
220
} catch {}
209
221
}
210
222
223
+ const onMenuStatusChanged = async (menu : MenuVO , val : number ) => {
224
+ menuStatusUpdating .value [menu .id ] = true
225
+ menu .status = val
226
+ await MenuApi .updateMenu (menu )
227
+ menuStatusUpdating .value [menu .id ] = false
228
+ }
229
+
211
230
/** 初始化 **/
212
231
onMounted (() => {
213
232
getList ()
0 commit comments