7070 />
7171 </div >
7272 <el-button @click =" exportLog" style =" margin-left : 10px "
73- >{{ $t('common.export') }}
73+ v-hasPermission ="
74+ new ComplexPermission([RoleConst.ADMIN],
75+ [PermissionConst.OPERATION_LOG_EXPORT],
76+ [EditionConst.IS_EE, EditionConst.IS_PE], 'OR')"
77+ >{{ $t('common.export') }}
78+ </el-button >
79+ <el-button @click =" dialogVisible = true"
80+ v-hasPermission ="
81+ new ComplexPermission([RoleConst.ADMIN],
82+ [PermissionConst.OPERATION_LOG_CLEAR_POLICY],
83+ [EditionConst.IS_EE, EditionConst.IS_PE], 'OR')" >
84+ {{ $t('views.chatLog.buttons.clearStrategy') }}
7485 </el-button >
7586 </div >
7687 </div >
96107 @click =" popoverVisible = !popoverVisible"
97108 >
98109 <el-icon >
99- <Filter />
110+ <Filter />
100111 </el-icon >
101112 </el-button >
102113 </template >
121132 </div >
122133 <div class =" text-right" >
123134 <el-button size =" small" @click =" filterChange('clear')"
124- >{{ $t('common.clear') }}
135+ >{{ $t('common.clear') }}
125136 </el-button >
126137 <el-button type =" primary" @click =" filterChange" size =" small"
127- >{{ $t('common.confirm') }}
138+ >{{ $t('common.confirm') }}
128139 </el-button >
129140 </div >
130141 </el-popover >
173184 @click =" workspaceVisible = !workspaceVisible"
174185 >
175186 <el-icon >
176- <Filter />
187+ <Filter />
177188 </el-icon >
178189 </el-button >
179190 </template >
198209 </div >
199210 <div class =" text-right" >
200211 <el-button size =" small" @click =" filterWorkspaceChange('clear')"
201- >{{ $t('common.clear') }}
212+ >{{ $t('common.clear') }}
202213 </el-button >
203214 <el-button type =" primary" @click =" filterWorkspaceChange" size =" small"
204- >{{ $t('common.confirm') }}
215+ >{{ $t('common.confirm') }}
205216 </el-button >
206217 </div >
207218 </el-popover >
215226 >
216227 <template #default =" { row } " >
217228 <span v-if =" row.status === 200" >{{
218- $t('views.operateLog.table.status.success')
219- }}</span >
229+ $t('views.operateLog.table.status.success')
230+ }}</span >
220231 <span v-else style =" color : red " >{{ $t('views.operateLog.table.status.fail') }}</span >
221232 </template >
222233 </el-table-column >
233244 <el-table-column :label =" $t('common.operation')" width =" 60" align =" left" fixed =" right" >
234245 <template #default =" { row } " >
235246 <span class =" mr-4" >
236- <el-tooltip effect =" dark" :content =" $t('views.operateLog.table.opt.label')" placement =" top" >
247+ <el-tooltip effect =" dark" :content =" $t('views.operateLog.table.opt.label')"
248+ placement =" top" >
237249 <el-button type =" primary" text @click.stop =" showDetails(row)" class =" text-button" >
238250 <AppIcon iconName =" app-operate-log" ></AppIcon >
239251 </el-button >
243255 </el-table-column >
244256 </app-table >
245257 </div >
246- <DetailDialog ref =" DetailDialogRef" />
258+ <DetailDialog ref =" DetailDialogRef" />
247259 </el-card >
248260 </div >
261+ <el-dialog
262+ :title =" $t('views.chatLog.buttons.clearStrategy')"
263+ v-model =" dialogVisible"
264+ width =" 25%"
265+ :close-on-click-modal =" false"
266+ :close-on-press-escape =" false"
267+ >
268+ <span >{{ $t('common.delete') }}</span >
269+ <el-input-number
270+ v-model =" days"
271+ controls-position =" right"
272+ :min =" 1"
273+ :max =" 100000"
274+ :value-on-clear =" 0"
275+ step-strictly
276+ style =" width : 110px ; margin-left : 8px ; margin-right : 8px "
277+ ></el-input-number >
278+ <span >{{ $t('views.chatLog.daysText') }}</span >
279+ <template #footer >
280+ <div class =" dialog-footer" style =" margin-top : 16px " >
281+ <el-button @click =" dialogVisible = false" >{{ $t('common.cancel') }}</el-button >
282+ <el-button type =" primary" @click =" saveCleanTime" >
283+ {{ $t('common.save') }}
284+ </el-button >
285+ </div >
286+ </template >
287+ </el-dialog >
249288</template >
289+
250290<script setup lang="ts">
251- import { ref , onMounted , reactive } from ' vue'
291+ import {ref , onMounted , reactive } from ' vue'
252292import operateLog from ' @/api/system/operate-log'
253293import DetailDialog from ' ./component/DetailDialog.vue'
254- import { t } from ' @/locales'
255- import { beforeDay , datetimeFormat , nowDate } from ' @/utils/time'
294+ import {t } from ' @/locales'
295+ import {beforeDay , datetimeFormat , nowDate } from ' @/utils/time'
256296import useStore from ' @/stores'
257297import WorkspaceApi from ' @/api/system/workspace.ts'
298+ import {hasPermission } from " @/utils/permission" ;
299+ import {EditionConst , PermissionConst , RoleConst } from " @/utils/permission/data.ts" ;
300+ import {ComplexPermission } from " @/utils/permission/type.ts" ;
301+ import {loadSharedApi } from " @/utils/dynamics-api/shared-api.ts" ;
302+ import {MsgSuccess } from " @/utils/message.ts" ;
258303
259- const { user } = useStore ()
304+ const {user} = useStore ()
260305const popoverVisible = ref (false )
261306const operateTypeArr = ref <any []>([])
262307const workspaceVisible = ref (false )
@@ -278,6 +323,8 @@ const daterange = ref({
278323 end_time: ' ' ,
279324})
280325const daterangeValue = ref (' ' )
326+ const dialogVisible = ref (false )
327+ const days = ref <number >(180 )
281328const dayOptions = [
282329 {
283330 value: 7 ,
@@ -411,7 +458,7 @@ function getMenuList() {
411458 arr
412459 .filter ((item , index , self ) => index === self .findIndex ((i ) => i [' menu' ] === item [' menu' ]))
413460 .forEach ((ele ) => {
414- operateOptions .value .push ({ label: ele .menu_label , value: ele .menu })
461+ operateOptions .value .push ({label: ele .menu_label , value: ele .menu })
415462 })
416463 })
417464}
@@ -430,8 +477,30 @@ async function getWorkspaceList() {
430477 }
431478}
432479
480+ function saveCleanTime() {
481+ const obj = {
482+ clean_time: days .value ,
483+ }
484+ operateLog .saveCleanTime (obj , loading ).then (() => {
485+ MsgSuccess (t (' common.saveSuccess' ))
486+ dialogVisible .value = false
487+ getCleanTime ()
488+ })
489+ .catch (() => {
490+ dialogVisible .value = false
491+ })
492+ }
493+
494+
495+ function getCleanTime() {
496+ operateLog .getCleanTime ().then ((res ) => {
497+ days .value = res .data
498+ })
499+ }
500+
433501onMounted (() => {
434502 getMenuList ()
503+ getCleanTime ()
435504 getWorkspaceList ()
436505 changeDayHandle (history_day .value )
437506})
0 commit comments