|
|
@@ -1,12 +1,13 @@
|
|
|
<template>
|
|
|
<div class="content-box">
|
|
|
<div class="left">
|
|
|
- <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
|
|
|
- <span :class="taskTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="mPage.tabHandler(1)">任务日志</span>
|
|
|
- <span :class="businessTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="mPage.tabHandler(2)">业务日志</span>
|
|
|
+ <span :class="taskTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="tabHandler(1)">任务日志</span>
|
|
|
+ <span :class="businessTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="tabHandler(2)">业务日志</span>
|
|
|
+ <span :class="debugTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="tabHandler(3)">调试日志</span>
|
|
|
</div>
|
|
|
- <div v-show="taskTabVisible">
|
|
|
- <div class="scroll">
|
|
|
+ <!-- 任务日志 -->
|
|
|
+ <div v-show="taskTabVisible" style="height: 100%;">
|
|
|
+ <div class="scroll" style="height: 100%;">
|
|
|
<div class="middle">
|
|
|
<div class="filter">
|
|
|
<div class="condition">
|
|
|
@@ -55,13 +56,13 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="footer" v-loading="mPage.loading">
|
|
|
- <el-table :row-class-name="mPage.tableRowClassName" :data="mPage.tableData"
|
|
|
- height="600" border style="width: 100%" :header-cell-style="{
|
|
|
+ <el-table :row-class-name="mPage.tableRowClassName" :data="mPage.tableData" height="600" border
|
|
|
+ style="width: 100%" :header-cell-style="{
|
|
|
background: 'rgba(240, 243, 247, 1)',
|
|
|
height: '50px',
|
|
|
}">
|
|
|
<!-- <el-table-column align="center" type="selection" width="55" /> -->
|
|
|
- <el-table-column width="55" align="center " prop="xuhao_ds" label="序号" />
|
|
|
+ <el-table-column width="68" align="center " prop="xuhao" label="序号" />
|
|
|
<el-table-column align="center" prop="tkLogTaskName" label="任务名称" />
|
|
|
<!-- <el-table-column align="center" prop="department" label="业务部门" /> -->
|
|
|
<el-table-column align="center" prop="tkLogDsSourceName" label="来源库" />
|
|
|
@@ -95,7 +96,8 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 分页组件 -->
|
|
|
- <div class="pageSize">
|
|
|
+ <div class="pageSize" style="display: flex;">
|
|
|
+ <span></span>
|
|
|
<el-pagination background :current-page="mPage.currentPage" :page-size="mPage.pageSize"
|
|
|
layout="total, prev, pager, next, jumper, slot" :total="mPage.tableTotal"
|
|
|
@update:current-page="mPage.handleCurrentChange" />
|
|
|
@@ -113,47 +115,31 @@
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-show="businessTabVisible">
|
|
|
- <div class="scroll">
|
|
|
+ <!-- 业务日志 -->
|
|
|
+ <div v-show="businessTabVisible" style="height: 100%;">
|
|
|
+ <div class="scroll" style="height: 100%;">
|
|
|
<div class="middle">
|
|
|
<div class="filter">
|
|
|
<div class="condition">
|
|
|
- <el-select v-model="bPage.selectTaskValue" clearable class="sel" placeholder="操作名称">
|
|
|
- <el-option v-for="item in bPage.selectTaskOptions" :key="item.value" :label="item.label"
|
|
|
- :value="item.value" />
|
|
|
+ <el-select v-model="bPage.actionNameValue" filterable clearable style="width: 280px;" class="sel"
|
|
|
+ placeholder="操作名称">
|
|
|
+ <el-option v-for="item in bPage.actionName" :key="item.value" :label="item.label" :value="item.label" />
|
|
|
</el-select>
|
|
|
- <el-select v-model="bPage.tkLogAutoManualValue" clearable style="width: 120px;" class="sel"
|
|
|
- placeholder="执行标识">
|
|
|
- <el-option label="自动执行" value="0" />
|
|
|
- <el-option label="手动执行" value="1" />
|
|
|
+ <el-select v-model="bPage.actionPeopleValue" filterable clearable style="width: 120px;" class="sel"
|
|
|
+ placeholder="操作人">
|
|
|
+ <el-option v-for="item in bPage.actionPeople" :key="item.value" :label="item.label" :value="item.label" />
|
|
|
</el-select>
|
|
|
- <el-select v-model="bPage.tkLogExeStatusValue" class="sel" style="width: 130px;" clearable
|
|
|
- placeholder="执行状态">
|
|
|
- <el-option label="执行中" value="1" />
|
|
|
- <el-option label="执行成功" value="2" />
|
|
|
- <el-option label="部分数据异常" value="3" />
|
|
|
- <el-option label="执行中断" value="4" />
|
|
|
- <el-option label="执行跳过" value="5" />
|
|
|
- <el-option label="执行失败" value="6" />
|
|
|
+ <el-select v-model="bPage.actionModuleValue" filterable class="sel" style="width: 350px;" clearable
|
|
|
+ placeholder="操作模块">
|
|
|
+ <el-option v-for="item in bPage.actionModule" :key="item.value" :label="item.label" :value="item.label" />
|
|
|
</el-select>
|
|
|
- <el-select v-model="bPage.selectDsSourceValue" class="sel" clearable placeholder="来源数据源">
|
|
|
- <el-option v-for="item in bPage.selectDsSourceOptions" :key="item.value" :label="item.label"
|
|
|
- :value="item.value" />
|
|
|
- </el-select>
|
|
|
- <el-select v-model="bPage.selectDsDestinationValue" class="sel" clearable placeholder="目的数据源">
|
|
|
- <el-option v-for="item in bPage.selectDsDestinationOptions" :key="item.value" :label="item.label"
|
|
|
- :value="item.value" />
|
|
|
- </el-select>
|
|
|
- <el-select v-model="bPage.tkLogCostTimeValue" class="sel" style="width: 130px;" clearable
|
|
|
- placeholder="耗时过滤">
|
|
|
- <el-option label="1分钟内" value="1" />
|
|
|
- <el-option label="1-5分钟" value="2" />
|
|
|
- <el-option label="5-10分钟" value="3" />
|
|
|
- <el-option label="10-30分钟" value="4" />
|
|
|
- <el-option label="30分钟以上" value="5" />
|
|
|
+ <el-select v-model="bPage.actionBusinessValue" filterable class="sel" style="width: 280px;" clearable
|
|
|
+ placeholder="业务名称">
|
|
|
+ <el-option v-for="item in bPage.actionBusiness" :key="item.value" :label="item.label"
|
|
|
+ :value="item.label" />
|
|
|
</el-select>
|
|
|
- <el-date-picker v-model="bPage.searchDateTimeVale" type="datetimerange" start-placeholder="开始时间"
|
|
|
- end-placeholder="结束时间" :shortcuts="bPage.shortcuts" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ <el-date-picker v-model="bPage.searchDateTimeVale" type="datetimerange" start-placeholder="操作开始时间"
|
|
|
+ end-placeholder="操作结束时间" :shortcuts="bPage.shortcuts" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
style="width: 360px; margin-right: 10px;" />
|
|
|
<el-button color="rgba(0, 97, 255, 1)" type="primary" class="search" @click="bPage.searchBtn"><el-icon>
|
|
|
<Search />
|
|
|
@@ -163,25 +149,26 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="footer" v-loading="bPage.loading">
|
|
|
- <el-table :row-class-name="bPage.tableRowClassName" :data="bPage.tableData"
|
|
|
- height="600" border style="width: 100%" :header-cell-style="{
|
|
|
+ <el-table :row-class-name="bPage.tableRowClassName" :data="bPage.tableData" height="600" border
|
|
|
+ style="width: 100%" :header-cell-style="{
|
|
|
background: 'rgba(240, 243, 247, 1)',
|
|
|
height: '50px',
|
|
|
}">
|
|
|
- <el-table-column width="55" align="center " prop="xuhao_ds" label="序号" />
|
|
|
- <el-table-column align="center" prop="logActionName" label="操作名称" width="200" />
|
|
|
+ <el-table-column width="68" align="center " prop="xuhao" label="序号" />
|
|
|
+ <el-table-column align="center" prop="logActionName" label="操作名称" width="230" />
|
|
|
<el-table-column align="center" prop="logActionPeople" label="操作人" width="100" />
|
|
|
<el-table-column align="center" prop="logActionModule" label="操作模块" />
|
|
|
- <el-table-column align="center" prop="logActionBusiness" label="业务名称" width="200" />
|
|
|
- <el-table-column align="center" prop="logActionHost" label="操作主机ip" width="100" />
|
|
|
- <el-table-column align="center" prop="logActionRemote" label="操作人ip" width="100" />
|
|
|
+ <el-table-column align="center" prop="logActionBusiness" label="业务名称" />
|
|
|
+ <el-table-column align="center" prop="logActionHost" label="操作主机ip" width="120" />
|
|
|
+ <el-table-column align="center" prop="logActionRemote" label="操作人ip" width="120" />
|
|
|
<el-table-column align="center" prop="logActionClass" label="操作类型" width="120" />
|
|
|
<el-table-column align="center" prop="logActionCreateTime" label="操作时间" width="160" />
|
|
|
</el-table>
|
|
|
</div>
|
|
|
|
|
|
<!-- 分页组件 -->
|
|
|
- <div class="pageSize">
|
|
|
+ <div class="pageSize" style="display: flex;">
|
|
|
+ <span></span>
|
|
|
<el-pagination background :current-page="bPage.currentPage" :page-size="bPage.pageSize"
|
|
|
layout="total, prev, pager, next, jumper, slot" :total="bPage.tableTotal"
|
|
|
@update:current-page="bPage.handleCurrentChange" />
|
|
|
@@ -199,6 +186,62 @@
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!-- 调试日志 -->
|
|
|
+ <div v-show="debugTabVisible" style="height: 100%;">
|
|
|
+ <div class="scroll" style="height: 100%;">
|
|
|
+ <div class="middle">
|
|
|
+ <div class="filter">
|
|
|
+ <div class="condition">
|
|
|
+ <el-select v-model="debugPage.taskIdValue" filterable clearable style="width: 280px;" class="sel"
|
|
|
+ placeholder="任务名称">
|
|
|
+ <el-option v-for="item in debugPage.taskId" :key="item.value" :label="item.label"
|
|
|
+ :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ <el-date-picker v-model="debugPage.searchDateTimeVale" type="datetimerange" start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间" :shortcuts="debugPage.shortcuts" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="width: 360px; margin-right: 10px;" />
|
|
|
+ <el-button color="rgba(0, 97, 255, 1)" type="primary" class="search" @click="debugPage.searchBtn"><el-icon>
|
|
|
+ <Search />
|
|
|
+ </el-icon>
|
|
|
+ <span>查询</span></el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="footer" v-loading="debugPage.loading">
|
|
|
+ <el-table :row-class-name="debugPage.tableRowClassName" :data="debugPage.tableData" height="600" border
|
|
|
+ style="width: 100%" :header-cell-style="{
|
|
|
+ background: 'rgba(240, 243, 247, 1)',
|
|
|
+ height: '50px',
|
|
|
+ }">
|
|
|
+ <el-table-column width="68" align="center " prop="xuhao" label="序号" />
|
|
|
+ <el-table-column align="center" prop="etaskName" label="任务名称" width="150" />
|
|
|
+ <el-table-column prop="emsg" label="信息" header-align="center" />
|
|
|
+ <el-table-column align="center" prop="enum" label="次数" width="88" />
|
|
|
+ <el-table-column align="center" prop="eDateTime" label="发生时间" width="150" />
|
|
|
+ <el-table-column align="center" prop="eCreateTime" label="创建时间" width="150" />
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 分页组件 -->
|
|
|
+ <div class="pageSize" style="display: flex;">
|
|
|
+ <span></span>
|
|
|
+ <el-pagination background :current-page="debugPage.currentPage" :page-size="debugPage.pageSize"
|
|
|
+ layout="total, prev, pager, next, jumper, slot" :total="debugPage.tableTotal"
|
|
|
+ @update:current-page="debugPage.handleCurrentChange" />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 查看按钮 -->
|
|
|
+ <el-dialog class="editDialog" v-model="debugPage.viewVisible" :close-on-click-modal="false"
|
|
|
+ :close-on-press-escape="false" title="日志详情" :show-close="false" align-center width="600">
|
|
|
+ <div>
|
|
|
+ {{ debugPage.content }}
|
|
|
+ </div>
|
|
|
+ <div class="options">
|
|
|
+ <el-button @click="debugPage.viewVisible = false">关闭</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -224,24 +267,57 @@ const api = ref("");
|
|
|
// const router = useRouter();
|
|
|
const taskTabVisible = ref(false); // 任务面板
|
|
|
const businessTabVisible = ref(true); // 业务面板
|
|
|
+const debugTabVisible = ref(false); // 业务面板
|
|
|
+
|
|
|
+const tabHandler = (v) => {
|
|
|
+ if (v == 1) {
|
|
|
+ taskTabVisible.value = true
|
|
|
+ businessTabVisible.value = false
|
|
|
+ debugTabVisible.value = false
|
|
|
+ } else if (v == 2) {
|
|
|
+ taskTabVisible.value = false
|
|
|
+ businessTabVisible.value = true
|
|
|
+ debugTabVisible.value = false
|
|
|
+ } else {
|
|
|
+ taskTabVisible.value = false
|
|
|
+ businessTabVisible.value = false
|
|
|
+ debugTabVisible.value = true
|
|
|
+ }
|
|
|
+};
|
|
|
|
|
|
-const bPage = reactive({
|
|
|
- loading: ref(false),
|
|
|
- viewVisible: ref(false),
|
|
|
- tkLogAutoManualValue: ref(""), // 执行标识: 0自动/1手动
|
|
|
- // 执行状态: 1:执行中;2:执行成功;3:部分数据异常;4:执行中断;5:执行跳过;6:执行失败
|
|
|
- tkLogExeStatusValue: ref(""),
|
|
|
- tkLogDsSourceId: ref(""), // 源库id
|
|
|
- tkLogDsDestinationId: ref(""), // 目标库id
|
|
|
- tkLogCostTimeValue: ref(""), // 耗时
|
|
|
- searchDateTimeVale: ref(""), // 查询时间
|
|
|
+const debugPage = reactive({
|
|
|
+ loading: ref(false), // 加载状态
|
|
|
+ taskIdValue: ref(""), // 任务id值
|
|
|
shortcuts: ref([
|
|
|
{
|
|
|
+ text: '今天',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime())
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '昨天',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ end.setTime(start.getTime())
|
|
|
+ end.setHours(23, 59, 59, 999)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
text: '最近一周',
|
|
|
value: () => {
|
|
|
const end = new Date()
|
|
|
const start = new Date()
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
return [start, end]
|
|
|
},
|
|
|
},
|
|
|
@@ -251,6 +327,7 @@ const bPage = reactive({
|
|
|
const end = new Date()
|
|
|
const start = new Date()
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
return [start, end]
|
|
|
},
|
|
|
},
|
|
|
@@ -260,43 +337,69 @@ const bPage = reactive({
|
|
|
const end = new Date()
|
|
|
const start = new Date()
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
return [start, end]
|
|
|
},
|
|
|
},
|
|
|
]),
|
|
|
- selectDsSourceValue: ref(""), // 源库下拉框
|
|
|
- selectDsDestinationValue: ref(""), // 目标库下拉框
|
|
|
- selectDsSourceOptions: reactive([]),
|
|
|
- selectDsDestinationOptions: reactive([]),
|
|
|
- selectTaskValue: ref(""), // 当前任务id
|
|
|
- selectTaskOptions: reactive([]), // 任务下拉框
|
|
|
- content: ref(""),
|
|
|
// 表格数据
|
|
|
tableData: reactive([]),
|
|
|
+ taskId: reactive([]), // 任务id列表对象
|
|
|
+ startTime: reactive([]), // 开始时间
|
|
|
currentPage: ref(1), // 当前页
|
|
|
pageSize: ref(10), // 每页显示条数
|
|
|
tableTotal: ref(0), // 当前总数
|
|
|
+ // 获取任务列表
|
|
|
+ getTaskList: async () => {
|
|
|
+ let data = {
|
|
|
+ currentPage: 1,
|
|
|
+ pageCount: 300,
|
|
|
+ managerId: sessionStorage.getItem("token"),
|
|
|
+ };
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartDataTask/queryPageSmartDataTask",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ params: data,
|
|
|
+ });
|
|
|
+ // console.log(res, "业务日志");
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ debugPage.taskId = reactive([]);
|
|
|
+ res.data.data.list.forEach(element => {
|
|
|
+ let item = {
|
|
|
+ value: element.tkId,
|
|
|
+ label: element.tkName,
|
|
|
+ }
|
|
|
+ debugPage.taskId.push(item);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
// 获取列表
|
|
|
getList: async () => {
|
|
|
- bPage.loading = true;
|
|
|
+ debugPage.loading = true;
|
|
|
let data = {
|
|
|
- currentPage: bPage.currentPage,
|
|
|
- pageCount: bPage.pageSize,
|
|
|
- eTaskId: bPage.selectTaskValue,
|
|
|
- tkLogAutoManual: bPage.tkLogAutoManualValue,
|
|
|
- tkLogCostTime: bPage.tkLogCostTimeValue,
|
|
|
- tkLogDsSourceId: bPage.selectDsSourceValue,
|
|
|
- tkLogDsDestinationId: bPage.selectDsDestinationValue,
|
|
|
- tkLogExeStatus: bPage.tkLogExeStatusValue,
|
|
|
+ currentPage: debugPage.currentPage,
|
|
|
+ pageCount: debugPage.pageSize,
|
|
|
+ eTaskId: debugPage.taskIdValue,
|
|
|
managerId: sessionStorage.getItem("token"),
|
|
|
};
|
|
|
- if (bPage.searchDateTimeVale != null) {
|
|
|
- data.startTime = bPage.searchDateTimeVale[0]
|
|
|
- data.endTime = bPage.searchDateTimeVale[1]
|
|
|
+ if (debugPage.searchDateTimeVale != null) {
|
|
|
+ data.startTime = debugPage.searchDateTimeVale[0]
|
|
|
+ data.endTime = debugPage.searchDateTimeVale[1]
|
|
|
}
|
|
|
let res = await axios({
|
|
|
method: "get",
|
|
|
- url: api.value + "/wanzai/api/smartDataSourceLog/queryPageSmartDataSourceLog",
|
|
|
+ url: api.value + "/wanzai/api/smartDataTask/queryPageSmartDataTaskDebug",
|
|
|
headers: {
|
|
|
// token: sessionStorage.getItem("token"),
|
|
|
// user_head: sessionStorage.getItem("userhead"),
|
|
|
@@ -305,17 +408,17 @@ const bPage = reactive({
|
|
|
});
|
|
|
// console.log(res, "业务日志");
|
|
|
if (res.data.code == 200) {
|
|
|
- bPage.loading = false;
|
|
|
- bPage.tableData = reactive([]);
|
|
|
- bPage.tableTotal = res.data.data.totalCount || 0;
|
|
|
+ debugPage.loading = false;
|
|
|
+ debugPage.tableData = reactive([]);
|
|
|
+ debugPage.tableTotal = res.data.data.total || 0;
|
|
|
let i = 1;
|
|
|
res.data.data.list.forEach(element => {
|
|
|
- element.xuhao_ds = (bPage.currentPage - 1) * bPage.pageSize + i
|
|
|
- bPage.tableData.push(element);
|
|
|
+ element.xuhao = (debugPage.currentPage - 1) * debugPage.pageSize + i
|
|
|
+ debugPage.tableData.push(element);
|
|
|
i++;
|
|
|
});
|
|
|
} else {
|
|
|
- bPage.loading = false;
|
|
|
+ debugPage.loading = false;
|
|
|
ElMessage({
|
|
|
type: "error",
|
|
|
showClose: true,
|
|
|
@@ -324,29 +427,120 @@ const bPage = reactive({
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- // 获取任务
|
|
|
- getTask: async () => {
|
|
|
- let data = {
|
|
|
- currentPage: 1,
|
|
|
- pageCount: 100,
|
|
|
- managerId: sessionStorage.getItem("token"),
|
|
|
- };
|
|
|
+ // 表格斑马纹颜色修改
|
|
|
+ tableRowClassName: ({ row, rowIndex }) => {
|
|
|
+ if (rowIndex % 2 === 0) {
|
|
|
+ return "even";
|
|
|
+ } else if (rowIndex % 2 !== 0) {
|
|
|
+ return "odd";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ },
|
|
|
+ // 分页
|
|
|
+ handleCurrentChange: (value) => {
|
|
|
+ // console.log(value);
|
|
|
+ debugPage.currentPage = value;
|
|
|
+ debugPage.getList();
|
|
|
+ },
|
|
|
+ // 搜索功能
|
|
|
+ searchBtn: lodash.debounce(async () => {
|
|
|
+ debugPage.getList();
|
|
|
+ }, 300),
|
|
|
+});
|
|
|
+
|
|
|
+const bPage = reactive({
|
|
|
+ loading: ref(false), // 加载状态
|
|
|
+ actionNameValue: ref(""), // 操作名称
|
|
|
+ actionPeopleValue: ref(""), // 操作人
|
|
|
+ actionModuleValue: ref(""), // 操作模块
|
|
|
+ actionBusinessValue: ref(""), // 操作业务
|
|
|
+ searchDateTimeVale: ref(""), // 查询时间
|
|
|
+ shortcuts: ref([
|
|
|
+ {
|
|
|
+ text: '今天',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime())
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '昨天',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ end.setTime(start.getTime())
|
|
|
+ end.setHours(23, 59, 59, 999)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '最近一周',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '最近一个月',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '最近三个月',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ]),
|
|
|
+ selectTaskOptions: reactive([]), // 操作名称
|
|
|
+ // 表格数据
|
|
|
+ tableData: reactive([]),
|
|
|
+ actionName: reactive([]), // 操作名称
|
|
|
+ actionPeople: reactive([]), // 操作人
|
|
|
+ actionModule: reactive([]), // 操作模块
|
|
|
+ actionBusiness: reactive([]), // 操作业务
|
|
|
+ startTime: reactive([]), // 开始时间
|
|
|
+ currentPage: ref(1), // 当前页
|
|
|
+ pageSize: ref(10), // 每页显示条数
|
|
|
+ tableTotal: ref(0), // 当前总数
|
|
|
+ // 获取操作名称
|
|
|
+ getActionName: async () => {
|
|
|
let res = await axios({
|
|
|
method: "get",
|
|
|
- url: api.value + "/wanzai/api/smartDataTask/queryPageSmartDataTask",
|
|
|
+ url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionName",
|
|
|
headers: {
|
|
|
// token: sessionStorage.getItem("token"),
|
|
|
// user_head: sessionStorage.getItem("userhead"),
|
|
|
},
|
|
|
- params: data,
|
|
|
});
|
|
|
+ // console.log(res, "操作名称");
|
|
|
if (res.data.code == 200) {
|
|
|
- bPage.selectTaskOptions = reactive([]);
|
|
|
- res.data.data.list.forEach((element) => {
|
|
|
- bPage.selectTaskOptions.push({
|
|
|
- value: element.tkId,
|
|
|
- label: element.tkName,
|
|
|
- });
|
|
|
+ bPage.actionName = reactive([]);
|
|
|
+ let i = 1;
|
|
|
+ res.data.data.list.forEach(element => {
|
|
|
+ let item = {
|
|
|
+ value: i,
|
|
|
+ label: element,
|
|
|
+ };
|
|
|
+ bPage.actionName.push(item);
|
|
|
+ i++;
|
|
|
});
|
|
|
} else {
|
|
|
ElMessage({
|
|
|
@@ -357,34 +551,27 @@ const bPage = reactive({
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- // 获取数据源
|
|
|
- getDs: async () => {
|
|
|
- let data = {
|
|
|
- currentPage: 1,
|
|
|
- pageCount: 100,
|
|
|
- managerId: sessionStorage.getItem("token"),
|
|
|
- };
|
|
|
+ // 获取操作人
|
|
|
+ getActionPeople: async () => {
|
|
|
let res = await axios({
|
|
|
method: "get",
|
|
|
- url: api.value + "/wanzai/api/smartDataClass/queryPageSmartDataSource",
|
|
|
+ url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionPeople",
|
|
|
headers: {
|
|
|
// token: sessionStorage.getItem("token"),
|
|
|
// user_head: sessionStorage.getItem("userhead"),
|
|
|
},
|
|
|
- params: data,
|
|
|
});
|
|
|
+ // console.log(res, "操作名称");
|
|
|
if (res.data.code == 200) {
|
|
|
- bPage.selectDsSourceOptions = reactive([]);
|
|
|
- bPage.selectDsDestinationOptions = reactive([]);
|
|
|
- res.data.data.list.forEach((element) => {
|
|
|
- bPage.selectDsSourceOptions.push({
|
|
|
- value: element.dsId,
|
|
|
- label: element.dsName,
|
|
|
- });
|
|
|
- bPage.selectDsDestinationOptions.push({
|
|
|
- value: element.dsId,
|
|
|
- label: element.dsName,
|
|
|
- });
|
|
|
+ bPage.actionPeople = reactive([]);
|
|
|
+ let i = 1;
|
|
|
+ res.data.data.list.forEach(element => {
|
|
|
+ let item = {
|
|
|
+ value: i,
|
|
|
+ label: element,
|
|
|
+ };
|
|
|
+ bPage.actionPeople.push(item);
|
|
|
+ i++;
|
|
|
});
|
|
|
} else {
|
|
|
ElMessage({
|
|
|
@@ -395,19 +582,113 @@ const bPage = reactive({
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- tabHandler: (v) => {
|
|
|
- if (v == 1) {
|
|
|
- taskTabVisible.value = true
|
|
|
- businessTabVisible.value = false
|
|
|
+ // 获取操作模块
|
|
|
+ getActionModule: async () => {
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionModule",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ });
|
|
|
+ // console.log(res, "操作名称");
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ bPage.actionModule = reactive([]);
|
|
|
+ let i = 1;
|
|
|
+ res.data.data.list.forEach(element => {
|
|
|
+ let item = {
|
|
|
+ value: i,
|
|
|
+ label: element,
|
|
|
+ };
|
|
|
+ bPage.actionModule.push(item);
|
|
|
+ i++;
|
|
|
+ });
|
|
|
} else {
|
|
|
- taskTabVisible.value = false
|
|
|
- businessTabVisible.value = true
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
- //查看按钮
|
|
|
- editClick: async (row) => {
|
|
|
- bPage.viewVisible = true;
|
|
|
- bPage.content = row.tkLogErrException;
|
|
|
+ // 获取操作业务
|
|
|
+ getActionBusiness: async () => {
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionBusiness",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ });
|
|
|
+ // console.log(res, "操作名称");
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ bPage.actionBusiness = reactive([]);
|
|
|
+ let i = 1;
|
|
|
+ res.data.data.list.forEach(element => {
|
|
|
+ let item = {
|
|
|
+ value: i,
|
|
|
+ label: element,
|
|
|
+ };
|
|
|
+ bPage.actionBusiness.push(item);
|
|
|
+ i++;
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取列表
|
|
|
+ getList: async () => {
|
|
|
+ bPage.loading = true;
|
|
|
+ let data = {
|
|
|
+ currentPage: bPage.currentPage,
|
|
|
+ pageCount: bPage.pageSize,
|
|
|
+ logActionName: bPage.actionNameValue,
|
|
|
+ logActionPeople: bPage.actionPeopleValue,
|
|
|
+ logActionModule: bPage.actionModuleValue,
|
|
|
+ logActionBusiness: bPage.actionBusinessValue,
|
|
|
+ managerId: sessionStorage.getItem("token"),
|
|
|
+ };
|
|
|
+ if (bPage.searchDateTimeVale != null) {
|
|
|
+ data.startTime = bPage.searchDateTimeVale[0]
|
|
|
+ data.endTime = bPage.searchDateTimeVale[1]
|
|
|
+ }
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartDataSourceLog/queryPageSmartDataSourceLog",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ params: data,
|
|
|
+ });
|
|
|
+ // console.log(res, "业务日志");
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ bPage.loading = false;
|
|
|
+ bPage.tableData = reactive([]);
|
|
|
+ bPage.tableTotal = res.data.data.totalCount || 0;
|
|
|
+ let i = 1;
|
|
|
+ res.data.data.list.forEach(element => {
|
|
|
+ element.xuhao = (bPage.currentPage - 1) * bPage.pageSize + i
|
|
|
+ bPage.tableData.push(element);
|
|
|
+ i++;
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ bPage.loading = false;
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
// 表格斑马纹颜色修改
|
|
|
tableRowClassName: ({ row, rowIndex }) => {
|
|
|
@@ -442,11 +723,34 @@ const mPage = reactive({
|
|
|
searchDateTimeVale: ref(""), // 查询时间
|
|
|
shortcuts: ref([
|
|
|
{
|
|
|
+ text: '今天',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime())
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '昨天',
|
|
|
+ value: () => {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
+ end.setTime(start.getTime())
|
|
|
+ end.setHours(23, 59, 59, 999)
|
|
|
+ return [start, end]
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
text: '最近一周',
|
|
|
value: () => {
|
|
|
const end = new Date()
|
|
|
const start = new Date()
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
return [start, end]
|
|
|
},
|
|
|
},
|
|
|
@@ -456,6 +760,7 @@ const mPage = reactive({
|
|
|
const end = new Date()
|
|
|
const start = new Date()
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
return [start, end]
|
|
|
},
|
|
|
},
|
|
|
@@ -465,6 +770,7 @@ const mPage = reactive({
|
|
|
const end = new Date()
|
|
|
const start = new Date()
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
|
+ start.setHours(0, 0, 0, 0)
|
|
|
return [start, end]
|
|
|
},
|
|
|
},
|
|
|
@@ -515,7 +821,7 @@ const mPage = reactive({
|
|
|
mPage.tableTotal = res.data.data.total || 0;
|
|
|
let i = 1;
|
|
|
res.data.data.list.forEach(element => {
|
|
|
- element.xuhao_ds = (mPage.currentPage - 1) * mPage.pageSize + i
|
|
|
+ element.xuhao = (mPage.currentPage - 1) * mPage.pageSize + i
|
|
|
mPage.tableData.push(element);
|
|
|
i++;
|
|
|
});
|
|
|
@@ -600,15 +906,6 @@ const mPage = reactive({
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- tabHandler: (v) => {
|
|
|
- if (v == 1) {
|
|
|
- taskTabVisible.value = true
|
|
|
- businessTabVisible.value = false
|
|
|
- } else {
|
|
|
- taskTabVisible.value = false
|
|
|
- businessTabVisible.value = true
|
|
|
- }
|
|
|
- },
|
|
|
//查看按钮
|
|
|
editClick: async (row) => {
|
|
|
mPage.viewVisible = true;
|
|
|
@@ -695,9 +992,15 @@ onBeforeMount(async () => {
|
|
|
mPage.getList();
|
|
|
mPage.getTask();
|
|
|
mPage.getDs();
|
|
|
+
|
|
|
bPage.getList();
|
|
|
- bPage.getTask();
|
|
|
- bPage.getDs();
|
|
|
+ bPage.getActionName();
|
|
|
+ bPage.getActionPeople();
|
|
|
+ bPage.getActionModule();
|
|
|
+ bPage.getActionBusiness();
|
|
|
+
|
|
|
+ debugPage.getList();
|
|
|
+ debugPage.getTaskList();
|
|
|
});
|
|
|
// 卸载后
|
|
|
onUnmounted(() => {
|
|
|
@@ -722,7 +1025,8 @@ onUnmounted(() => {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
height: 60px;
|
|
|
- margin: 0 30px;
|
|
|
+ //margin: 0 30px;
|
|
|
+ padding: 10px 30px 0 30px;
|
|
|
border-bottom: 1px solid #ccc;
|
|
|
color: rgb(0, 0, 0);
|
|
|
font-size: 18px;
|
|
|
@@ -730,8 +1034,10 @@ onUnmounted(() => {
|
|
|
|
|
|
span {
|
|
|
display: block;
|
|
|
- height: 60px;
|
|
|
- line-height: 60px;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ padding: 5px 10px;
|
|
|
+ margin: 0 1px 0px 1px;
|
|
|
}
|
|
|
|
|
|
.is_active {
|
|
|
@@ -740,20 +1046,16 @@ onUnmounted(() => {
|
|
|
}
|
|
|
|
|
|
.cameratxt {
|
|
|
- display: inline-block;
|
|
|
- margin: 5px;
|
|
|
- padding: 0 10px;
|
|
|
background-color: rgb(6, 88, 240);
|
|
|
color: #ffffff;
|
|
|
cursor: pointer;
|
|
|
+ border-radius: 5px 5px 0 0;
|
|
|
}
|
|
|
|
|
|
.cameratxt-grey {
|
|
|
- display: inline-block;
|
|
|
- margin: 5px;
|
|
|
- padding: 0 10px;
|
|
|
background-color: #eee;
|
|
|
cursor: pointer;
|
|
|
+ border-radius: 5px 5px 0 0;
|
|
|
}
|
|
|
|
|
|
.cameratxt:hover,
|