Commit 0a81c04d by wanglizhen

加密日志

parent 7cbec34d
......@@ -40,7 +40,7 @@ export function checkEnc(data) {
}
/**
* 脱敏策略日志 - 到处下载
* 脱敏策略日志 - 导出下载
* @param {*} data
* @returns
*/
......
import request from '@/utils/request'
/**
* 加密日志 - 查询列表数据
* @param {*} data
* @returns
*/
export function query(data) {
return request({
url: '/aop/encryptlog/query',
method: 'post',
data: data
})
}
/**
* 加密日志 - 校验数据
* @param {*} data
* @returns
*/
export function checkEnc(data) {
return request({
url: '/aop/encryptlog/checkEnc',
method: 'post',
data: data
})
}
/**
* 加密日志 - 导出下载
* @param {*} data
* @returns
*/
export function getEncryptionLogExcel(data) {
return request({
url: '/aop/encryptlog/getEncryptionLogExcel',
method: 'post',
data: data,
responseType: 'blob'
})
}
\ No newline at end of file
......@@ -43,8 +43,7 @@ const getList = async () => {
// 导出
const download = async () => {
try {
const { page, ...newObj } = queryParams.value
const response = await getdesensitizationStrategyLog(newObj)
const response = await getdesensitizationStrategyLog(queryParams.value)
const blob = new Blob([response], { type: 'application/vnd.ms-excel,charset=utf-8' });
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
......
<script setup lang="ts" name="QueryForm">
import { ref, computed, onMounted } from "vue";
import type { FormInstance } from "element-plus";
import PageWrapperSearch from "@/components/Search/PageWrapperSearch.vue";
import timeRangeOptions from "@/constants/timeRangeOptions.js";
import { queryUser } from "@/api/itemLogSet/desensitizationItemLog.js";
const emit = defineEmits(["update:modelValue", "query", "reset"]);
const props = defineProps<{
modelValue: any;
}>();
const queryForm = computed({
get() {
return props.modelValue;
},
set(val: any) {
console.log("query computed", val);
emit("update:modelValue", val);
},
});
const userOptions = ref([]);
// 搜索
function onSearch() {
emit("query");
}
// 重置
function onReset(formRef: FormInstance) {
emit("reset", formRef);
}
const getQueryUser = async () => {
const { data } = await queryUser();
userOptions.value = data.userlist.map((user) => ({
id: user.id,
user: user.realname,
}));
};
onMounted(() => {
getQueryUser();
});
</script>
<template>
<page-wrapper-search :model="queryForm" @search="onSearch" @reset="onReset" label-width='100'>
<el-form-item label="用户" prop="user">
<el-select v-model="queryForm.user" placeholder="请选择" clearable>
<el-option v-for="item in userOptions" :key="item.id" :label="item.user" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="时间" prop="range">
<el-select v-model="queryForm.range" placeholder="请选择时间">
<el-option v-for="item in timeRangeOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</page-wrapper-search>
</template>
<script setup name="Index">
import { onMounted, ref, reactive } from 'vue'
import { ElMessage } from "element-plus";
import { changeRoute } from '@/utils/switchRoute'
import QueryForm from './QueryForm.vue'
import { query, checkEnc, getEncryptionLogExcel } from "@/api/itemLogSet/projectEncryptedLog.js";
const queryParams = ref({
page: 1,
rows: 10,
projectId: sessionStorage.getItem('projectId'),
range: "3",
user: "",
module: "",
})
const logList = ref([])
const total = ref(0)
const loading = ref(false)
// 筛选查询
const onQuery = () => {
getList()
}
// 查询组件事件重置
const onReset = (formQuery) => {
formQuery.resetFields()
getList()
}
// 获取列表数据
const getList = async () => {
try {
loading.value = true
const { data } = await query(queryParams.value)
logList.value = data.list
total.value = data.total
loading.value = false
} catch (error) {
loading.value = false
}
}
// 导出
const download = async () => {
try {
const response = await getEncryptionLogExcel(queryParams.value)
const blob = new Blob([response], { type: 'application/vnd.ms-excel,charset=utf-8' });
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = '加密日志'
link.click()
URL.revokeObjectURL(link.href)
ElMessage.success('导出成功')
} catch (error) {
}
}
// 数据校验
const dataValidation = async () => {
try {
const { flag } = await checkEnc(queryParams.value)
if (flag) {
ElMessage.success('校验成功!')
} else {
ElMessage.error('校验失败!')
}
} catch (error) {
}
}
// 返回主页面
const pageProjectManage = () => {
changeRoute()
}
onMounted(() => {
getList()
})
</script>
<template>
<div class="app-container scroller">
<PageTitle :back="true" @back="pageProjectManage">
<template #title>
返回项目管理
</template>
<template #buttons>
<el-button type="primary" icon="Download" @click="download">导出</el-button>
<el-button type="primary" @click="dataValidation">数据完成性校验</el-button>
</template>
</PageTitle>
<div class="app-container__body">
<query-form ref="QueryFormRef" v-model="queryParams" @query="onQuery" @reset="onReset" />
<el-table v-loading="loading" :data="logList" border style="width: 100%">
<el-table-column prop="operptionUser" label="用户" align="center" width="200" />
<el-table-column prop="code" label="操作代码" align="center" width="180" />
<el-table-column prop="operModule" label="操作模块" align="center" width="200" />
<el-table-column prop="operptionMassage" label="操作信息" align="center" show-overflow-tooltip />
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.page" v-model:limit="queryParams.rows"
@pagination="getList" />
</div>
</div>
</template>
\ No newline at end of file
++ "b/src/views/itemLogSet/ProjectEncryptedLog/\345\212\240\345\257\206\346\227\245\345\277\227.md"
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论