diff --git a/backend/src/api/passwordStore.js b/backend/src/api/passwordStore.js
index 4933d03..a1c8afc 100644
--- a/backend/src/api/passwordStore.js
+++ b/backend/src/api/passwordStore.js
@@ -6,3 +6,7 @@ export const getPasswordStoreDetail = (id) => request({ url: `${resource}/detail
export const createPasswordStore = (data) => request({ url: `${resource}/create`, method: 'post', data })
export const updatePasswordStore = (id, data) => request({ url: `${resource}/update/${id}`, method: 'post', data })
export const deletePasswordStore = (id) => request({ url: `${resource}/delete/${id}`, method: 'delete' })
+/** 导出全部记录(不受列表 200 条限制),返回 data.list */
+export const exportPasswordStore = () => request({ url: `${resource}/export`, method: 'get' })
+/** 批量导入:rows 为 Excel/CSV 解析后的行数据,返回 created/updated/failed/failures */
+export const importPasswordStore = (rows) => request({ url: `${resource}/import`, method: 'post', data: { rows } })
diff --git a/backend/src/api/wechatMp.js b/backend/src/api/wechatMp.js
index 32e91b6..d253d76 100644
--- a/backend/src/api/wechatMp.js
+++ b/backend/src/api/wechatMp.js
@@ -5,7 +5,7 @@ import request from "@/utils/request";
* 流程:生成二维码 → 微信扫码关注 → 公众号回复验证码 → 输入验证码完成绑定
*************************************************/
-/** 发起绑定:生成带参数二维码 */
+/** 发起绑定:返回绑定指引(未认证公众号无带参二维码,公众号内发送「验证码」取码) */
export function startWechatMpBind() {
return request({
url: "/backend/wechatMp/bind/start",
diff --git a/backend/src/router/index.js b/backend/src/router/index.js
index 67d6d8a..16c50b9 100644
--- a/backend/src/router/index.js
+++ b/backend/src/router/index.js
@@ -141,6 +141,13 @@ const staticRoutes = [
component: () => import("@/views/auth/callback.vue"),
meta: { requiresAuth: false }
},
+ // 微信公众号一次性链接登录页(公众号发「登录」/扫码确认 → 链接跳到这里兑换令牌)
+ {
+ path: "/mp-login",
+ name: "MpLogin",
+ component: () => import("@/views/auth/mpLogin.vue"),
+ meta: { requiresAuth: false }
+ },
{
path: "/home",
name: "Home",
@@ -310,8 +317,8 @@ async function gotoAuthorize() {
router.beforeEach(async (to, from, next) => {
const token = localStorage.getItem("token");
- // 认证中心回跳页:始终放行,由页面自身完成 code 换令牌
- if (to.path === "/auth/callback") {
+ // 认证中心回跳页 / 微信登录兑换页:始终放行,由页面自身完成令牌兑换
+ if (to.path === "/auth/callback" || to.path === "/mp-login") {
next();
return;
}
diff --git a/backend/src/views/auth/mpLogin.vue b/backend/src/views/auth/mpLogin.vue
new file mode 100644
index 0000000..0055edc
--- /dev/null
+++ b/backend/src/views/auth/mpLogin.vue
@@ -0,0 +1,216 @@
+
+ 选择要进入的企业 {{ chooseErr }} 微信登录失败 {{ error }} 正在通过微信登录,请稍候…
+ 支持 .xlsx / .xls / .csv。列顺序:平台名称、网址、账号、密码、注册信息、账号备注、备注。
+ 多行「平台名称 + 网址」相同会合并为一条记录的多个账号;重复检测:文件内「同平台同账号」、
+ 以及库内已存在的同名登录账号都会自动跳过(不计入新增/更新)。
+
+
+
+
+