From c13c622eac5551c6f099f148feb5256711ca34de Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期二, 11 七月 2023 21:03:01 +0800 Subject: [PATCH] !25 部分优化以及新增功能 Merge pull request !25 from ahaos/tspr --- src/views/monitor/operlog/index.vue | 214 ++++++++++++++++++++++++++-------------------------- 1 files changed, 107 insertions(+), 107 deletions(-) diff --git a/src/views/monitor/operlog/index.vue b/src/views/monitor/operlog/index.vue index 086a1aa..70a2bd7 100644 --- a/src/views/monitor/operlog/index.vue +++ b/src/views/monitor/operlog/index.vue @@ -1,44 +1,46 @@ <template> <div class="p-2"> <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> - <div class="search" v-show="showSearch"> - <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px"> - <el-form-item label="绯荤粺妯″潡" prop="title"> - <el-input v-model="queryParams.title" placeholder="璇疯緭鍏ョ郴缁熸ā鍧�" clearable style="width: 240px;" @keyup.enter="handleQuery" /> - </el-form-item> - <el-form-item label="鎿嶄綔浜哄憳" prop="operName"> - <el-input v-model="queryParams.operName" placeholder="璇疯緭鍏ユ搷浣滀汉鍛�" clearable style="width: 240px;" @keyup.enter="handleQuery" /> - </el-form-item> - <el-form-item label="绫诲瀷" prop="businessType"> - <el-select v-model="queryParams.businessType" placeholder="鎿嶄綔绫诲瀷" clearable style="width: 240px"> - <el-option v-for="dict in sys_oper_type" :key="dict.value" :label="dict.label" :value="dict.value" /> - </el-select> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-select v-model="queryParams.status" placeholder="鎿嶄綔鐘舵��" clearable style="width: 240px"> - <el-option v-for="dict in sys_common_status" :key="dict.value" :label="dict.label" :value="dict.value" /> - </el-select> - </el-form-item> - <el-form-item label="鎿嶄綔鏃堕棿" style="width: 308px"> - <el-date-picker - v-model="dateRange" - value-format="YYYY-MM-DD HH:mm:ss" - type="daterange" - range-separator="-" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" - ></el-date-picker> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> - <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> + <div class="mb-[10px]"> + <el-card shadow="hover"> + <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px"> + <el-form-item label="绯荤粺妯″潡" prop="title"> + <el-input v-model="queryParams.title" placeholder="璇疯緭鍏ョ郴缁熸ā鍧�" clearable style="width: 240px;" @keyup.enter="handleQuery" /> + </el-form-item> + <el-form-item label="鎿嶄綔浜哄憳" prop="operName"> + <el-input v-model="queryParams.operName" placeholder="璇疯緭鍏ユ搷浣滀汉鍛�" clearable style="width: 240px;" @keyup.enter="handleQuery" /> + </el-form-item> + <el-form-item label="绫诲瀷" prop="businessType"> + <el-select v-model="queryParams.businessType" placeholder="鎿嶄綔绫诲瀷" clearable style="width: 240px"> + <el-option v-for="dict in sys_oper_type" :key="dict.value" :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select v-model="queryParams.status" placeholder="鎿嶄綔鐘舵��" clearable style="width: 240px"> + <el-option v-for="dict in sys_common_status" :key="dict.value" :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="鎿嶄綔鏃堕棿" style="width: 308px"> + <el-date-picker + v-model="dateRange" + value-format="YYYY-MM-DD HH:mm:ss" + type="daterange" + range-separator="-" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" + ></el-date-picker> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> + <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + </el-card> </div> </transition> - <el-card shadow="never"> + <el-card shadow="hover"> <template #header> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> @@ -132,7 +134,7 @@ <el-form-item label="鎿嶄綔鏂规硶锛�">{{ form.method }}</el-form-item> </el-col> <el-col :span="24"> - <el-form-item label="璇锋眰鍙傛暟锛�">{{form.operParam}}</el-form-item> + <el-form-item label="璇锋眰鍙傛暟锛�">{{ form.operParam }}</el-form-item> </el-col> <el-col :span="24"> <el-form-item label="杩斿洖鍙傛暟锛�">{{ form.jsonResult }}</el-form-item> @@ -165,12 +167,10 @@ <script setup name="Operlog" lang="ts"> import { list, delOperlog, cleanOperlog } from '@/api/monitor/operlog'; -import { ComponentInternalInstance } from 'vue'; import { OperLogForm, OperLogQuery, OperLogVO } from '@/api/monitor/operlog/types'; -import { DateModelType } from 'element-plus'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; -const { sys_oper_type, sys_common_status } = toRefs<any>(proxy?.useDict("sys_oper_type","sys_common_status")); +const { sys_oper_type, sys_common_status } = toRefs<any>(proxy?.useDict("sys_oper_type", "sys_common_status")); const operlogList = ref<OperLogVO[]>([]); const loading = ref(true); @@ -181,116 +181,116 @@ const dateRange = ref<[DateModelType, DateModelType]>(['', '']); const defaultSort = ref<any>({ prop: "operTime", order: "descending" }); -const operLogTableRef = ref(ElTable); -const queryFormRef = ref(ElForm); +const operLogTableRef = ref<ElTableInstance>(); +const queryFormRef = ref<ElFormInstance>(); const dialog = reactive<DialogOption>({ - visible: false, - title: '' + visible: false, + title: '' }); const data = reactive<PageData<OperLogForm, OperLogQuery>>({ - form: { - operId: undefined, - tenantId: undefined, - title: '', - businessType: 0, - businessTypes: undefined, - method: '', - requestMethod: '', - operatorType: 0, - operName: '', - deptName: '', - operUrl: '', - operIp: '', - operLocation: '', - operParam: '', - jsonResult: '', - status: 0, - errorMsg: '', - operTime: '', - costTime: 0 - }, - queryParams: { - pageNum: 1, - pageSize: 10, - title: '', - operName: '', - businessType: '', - status: '', - orderByColumn: defaultSort.value.prop, - isAsc: defaultSort.value.order - }, - rules: {} + form: { + operId: undefined, + tenantId: undefined, + title: '', + businessType: 0, + businessTypes: undefined, + method: '', + requestMethod: '', + operatorType: 0, + operName: '', + deptName: '', + operUrl: '', + operIp: '', + operLocation: '', + operParam: '', + jsonResult: '', + status: 0, + errorMsg: '', + operTime: '', + costTime: 0 + }, + queryParams: { + pageNum: 1, + pageSize: 10, + title: '', + operName: '', + businessType: '', + status: '', + orderByColumn: defaultSort.value.prop, + isAsc: defaultSort.value.order + }, + rules: {} }); const { queryParams, form } = toRefs(data); /** 鏌ヨ鐧诲綍鏃ュ織 */ const getList = async () => { - loading.value = true; - const res = await list(proxy?.addDateRange(queryParams.value, dateRange.value)); - operlogList.value = res.rows; - total.value = res.total; - loading.value = false; + loading.value = true; + const res = await list(proxy?.addDateRange(queryParams.value, dateRange.value)); + operlogList.value = res.rows; + total.value = res.total; + loading.value = false; } /** 鎿嶄綔鏃ュ織绫诲瀷瀛楀吀缈昏瘧 */ const typeFormat = (row: OperLogForm) => { - return proxy?.selectDictLabel(sys_oper_type.value, row.businessType); + return proxy?.selectDictLabel(sys_oper_type.value, row.businessType); } /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { - queryParams.value.pageNum = 1; - getList(); + queryParams.value.pageNum = 1; + getList(); } /** 閲嶇疆鎸夐挳鎿嶄綔 */ const resetQuery = () => { - dateRange.value = ['', '']; - queryFormRef.value.resetFields(); - queryParams.value.pageNum = 1; - operLogTableRef.value.sort(defaultSort.value.prop, defaultSort.value.order); + dateRange.value = ['', '']; + queryFormRef.value?.resetFields(); + queryParams.value.pageNum = 1; + operLogTableRef.value?.sort(defaultSort.value.prop, defaultSort.value.order); } /** 澶氶�夋閫変腑鏁版嵁 */ const handleSelectionChange = (selection: OperLogVO[]) => { - ids.value = selection.map(item => item.operId); - multiple.value = !selection.length; + ids.value = selection.map(item => item.operId); + multiple.value = !selection.length; } /** 鎺掑簭瑙﹀彂浜嬩欢 */ const handleSortChange = (column: any) => { - queryParams.value.orderByColumn = column.prop; - queryParams.value.isAsc = column.order; - getList(); + queryParams.value.orderByColumn = column.prop; + queryParams.value.isAsc = column.order; + getList(); } /** 璇︾粏鎸夐挳鎿嶄綔 */ const handleView = (row: OperLogVO) => { - dialog.visible = true; - form.value = row; + dialog.visible = true; + form.value = row; } /** 鍒犻櫎鎸夐挳鎿嶄綔 */ const handleDelete = async (row?: OperLogVO) => { - const operIds = row?.operId || ids.value; - await proxy?.$modal.confirm('鏄惁纭鍒犻櫎鏃ュ織缂栧彿涓�"' + operIds + '"鐨勬暟鎹」?'); - await delOperlog(operIds); - getList(); - proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + const operIds = row?.operId || ids.value; + await proxy?.$modal.confirm('鏄惁纭鍒犻櫎鏃ュ織缂栧彿涓�"' + operIds + '"鐨勬暟鎹」?'); + await delOperlog(operIds); + await getList(); + proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛"); } /** 娓呯┖鎸夐挳鎿嶄綔 */ const handleClean = async () => { - await proxy?.$modal.confirm("鏄惁纭娓呯┖鎵�鏈夋搷浣滄棩蹇楁暟鎹」?"); - await cleanOperlog(); - getList(); - proxy?.$modal.msgSuccess("娓呯┖鎴愬姛"); + await proxy?.$modal.confirm("鏄惁纭娓呯┖鎵�鏈夋搷浣滄棩蹇楁暟鎹」?"); + await cleanOperlog(); + await getList(); + proxy?.$modal.msgSuccess("娓呯┖鎴愬姛"); } /** 瀵煎嚭鎸夐挳鎿嶄綔 */ const handleExport = () => { - proxy?.download("monitor/operlog/export", { - ...queryParams.value, - }, `config_${new Date().getTime()}.xlsx`); + proxy?.download("monitor/operlog/export", { + ...queryParams.value, + }, `config_${new Date().getTime()}.xlsx`); } onMounted(() => { - getList(); + getList(); }) </script> -- Gitblit v1.9.3