diff --git a/src/api/login.js b/src/api/login.js
index 39572ae..ae7c0d8 100644
--- a/src/api/login.js
+++ b/src/api/login.js
@@ -27,4 +27,12 @@ export function infoApi () {
url: "/admin/index/info",
method: "get",
});
+}
+
+// 登录日志
+export function getLoginLogApi (data) {
+ return request({
+ url: `/admin/user/login/log/${data.page}/${data.limit}`,
+ method: "get",
+ });
}
\ No newline at end of file
diff --git a/src/layout/m-aside.vue b/src/layout/m-aside.vue
index 1f0b993..de088ea 100644
--- a/src/layout/m-aside.vue
+++ b/src/layout/m-aside.vue
@@ -28,7 +28,7 @@
import { createFromIconfontCN } from "@ant-design/icons-vue";
// import { menuApi } from "../api/menu";
import { h, reactive, onMounted, ref, watch } from "vue";
-import { TagsOutlined, HomeOutlined, ShoppingOutlined,MessageOutlined,FileProtectOutlined, UserOutlined,UsergroupAddOutlined, ApartmentOutlined, TeamOutlined, ContainerOutlined, AccountBookOutlined, BarChartOutlined, MailOutlined, SettingOutlined, AuditOutlined, SketchOutlined, MenuUnfoldOutlined, MenuFoldOutlined, SolutionOutlined } from "@ant-design/icons-vue";
+import { TagsOutlined, HomeOutlined, ShoppingOutlined,MessageOutlined,FileProtectOutlined, VideoCameraOutlined,UserOutlined,UsergroupAddOutlined, ApartmentOutlined, TeamOutlined, ContainerOutlined, AccountBookOutlined, BarChartOutlined, MailOutlined, SettingOutlined, AuditOutlined, SketchOutlined, MenuUnfoldOutlined, MenuFoldOutlined, SolutionOutlined } from "@ant-design/icons-vue";
import { useStore } from "../stores/counter.ts";
import { useRouter, useRoute } from "vue-router";
import { mockMenuList } from "../utils/mock.js";
@@ -122,6 +122,9 @@ onMounted(() => {
case "message":
items.push(getItem(item.title, item.id, item.component, () => h(MessageOutlined)));
break;
+ case "record":
+ items.push(getItem(item.title, item.id, item.component, () => h(VideoCameraOutlined)));
+ break;
case "ServiceMarket":
items.push(getItem(item.title, item.id, item.component, () => h(SketchOutlined)));
break;
diff --git a/src/router/index.js b/src/router/index.js
index d7d7071..cf131ae 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -55,6 +55,13 @@ const router = createRouter({
title: '消息通知',
},
component: () => import("../views/message/index.vue")
+ },{
+ path: "/merchantManagement/record",
+ name: "record",
+ meta: {
+ title: '访问记录',
+ },
+ component: () => import("../views/homePage/record.vue")
}
].concat(noticeData)
},
diff --git a/src/utils/mock.js b/src/utils/mock.js
index daae7dc..fae4066 100644
--- a/src/utils/mock.js
+++ b/src/utils/mock.js
@@ -109,6 +109,33 @@ export let mockMenuList = {
"importTag": 0,
"exportTag": 0,
"childrenList": []
+ },
+ {
+ "id": 5,
+ "creator": "",
+ "updator": "",
+ "createTime": "",
+ "updateTime": "",
+ "deleted": 0,
+ "title": "访问记录",
+ "menuName": "record",
+ "parentName": "",
+ "path": "record",
+ "component": "/merchantManagement/record.vue",
+ "visible": 0,
+ "perms": "",
+ "icon": "icon-houtaishouye",
+ "remark": "",
+ "parentId": "",
+ "tagNames": "queryTag,addTag,updateTag,deleteTag",
+ "idx": 10,
+ "queryTag": 0,
+ "addTag": 0,
+ "deleteTag": 0,
+ "updateTag": 0,
+ "importTag": 0,
+ "exportTag": 0,
+ "childrenList": []
}
],
diff --git a/src/views/homePage/personData.vue b/src/views/homePage/personData.vue
index 272d106..82e646a 100644
--- a/src/views/homePage/personData.vue
+++ b/src/views/homePage/personData.vue
@@ -480,7 +480,7 @@ const columns = ref([
width: "240px",
ellipsis: true,
customRender: (record) => {
- return record.record.percent+"%";
+ return record.record.percent ? record.record.percent+"%" : '-';
},
},
diff --git a/src/views/homePage/record.vue b/src/views/homePage/record.vue
new file mode 100644
index 0000000..25c4c08
--- /dev/null
+++ b/src/views/homePage/record.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+