From 5f1ba629ab0f553209fc5620f672045d6b0cefaf Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Wed, 4 Feb 2026 15:10:50 +0800
Subject: [PATCH] sc
---
src/api/account/index.js | 42 +++
src/components/tree-select-item.vue | 167 ++++++++++++
src/components/tree-select.vue | 327 ++++++++++++++++++++++++
src/pages.json | 6 +
src/pages/account/accountForm.vue | 341 +++++++++++++++++++++++++
src/pages/account/manage.vue | 285 ++++++++++-----------
src/pages/distribution/profit-rule.vue | 97 +++++--
src/pages/work/index.vue | 4 +-
src/store/modules/user.js | 3 +
9 files changed, 1103 insertions(+), 169 deletions(-)
create mode 100644 src/api/account/index.js
create mode 100644 src/components/tree-select-item.vue
create mode 100644 src/components/tree-select.vue
create mode 100644 src/pages/account/accountForm.vue
diff --git a/src/api/account/index.js b/src/api/account/index.js
new file mode 100644
index 0000000..3238f7b
--- /dev/null
+++ b/src/api/account/index.js
@@ -0,0 +1,42 @@
+import request from '@/utils/request';
+
+// 添加增删改查接口
+export const addAccount = async data => {
+ return request({
+ url: '/applet/xunjia/account/create',
+ method: 'post',
+ data
+ });
+};
+
+export const deleteAccount = async id => {
+ return request({
+ url: '/applet/xunjia/account/delete',
+ method: 'delete',
+ params: { id }
+ });
+};
+
+export const updateAccount = async data => {
+ return request({
+ url: '/applet/xunjia/account/update',
+ method: 'put',
+ data
+ });
+};
+
+export const getAccountPage = async params => {
+ return request({
+ url: '/applet/xunjia/account/page',
+ method: 'get',
+ params
+ });
+};
+
+export const getAccountInfo = async id => {
+ return request({
+ url: '/applet/xunjia/account/get',
+ method: 'get',
+ params: { id }
+ });
+};
diff --git a/src/components/tree-select-item.vue b/src/components/tree-select-item.vue
new file mode 100644
index 0000000..2d7ced3
--- /dev/null
+++ b/src/components/tree-select-item.vue
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/tree-select.vue b/src/components/tree-select.vue
new file mode 100644
index 0000000..dd6a09a
--- /dev/null
+++ b/src/components/tree-select.vue
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages.json b/src/pages.json
index 7e05e64..e6aff70 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -102,6 +102,12 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "pages/account/accountForm",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/student/list",
"style": {
diff --git a/src/pages/account/accountForm.vue b/src/pages/account/accountForm.vue
new file mode 100644
index 0000000..63958b9
--- /dev/null
+++ b/src/pages/account/accountForm.vue
@@ -0,0 +1,341 @@
+
+
+
+
+
+
+
+
+
+ 基本信息
+
+
+ 姓名
+
+
+
+
+
+
+ 手机号
+
+
+
+
+
+
+
+
+ 菜单权限
+
+
+
+
+
+ 数据权限
+
+
+
+
+
+ {{ scope.label }}
+ {{ scope.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/account/manage.vue b/src/pages/account/manage.vue
index 4649087..745586a 100644
--- a/src/pages/account/manage.vue
+++ b/src/pages/account/manage.vue
@@ -7,7 +7,7 @@
@@ -15,25 +15,23 @@
- 账号状态
+ 姓名
-
- {{ statusOptions[statusIndex] }}
-
+
- 搜索
+ 手机号
@@ -49,11 +47,11 @@
class="account-item"
>
- {{ account.name }}
+ {{ account.nickname }}
- {{ account.phone }}
- {{ account.role }}
- {{ account.statusText }}
+ {{ account.mobile }}
+ {{ account.isDistributor ? '分销员' : '' }}
+ {{ ['启用', '禁用'][account.status] }}
@@ -61,11 +59,10 @@
编辑
- {{ account.status === 'active' ? '冻结' : '启用' }}
+ 删除
@@ -76,52 +73,57 @@
👥
暂无账号数据
+
+
+
\ No newline at end of file
diff --git a/src/pages/work/index.vue b/src/pages/work/index.vue
index 1d94795..3af67bc 100644
--- a/src/pages/work/index.vue
+++ b/src/pages/work/index.vue
@@ -52,7 +52,7 @@
-
+
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 1596318..4de4ef3 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -18,6 +18,7 @@ export const useUserStore = defineStore('user', () => {
const avatar = ref(storage.get(constant.avatar));
const roles = ref(storage.get(constant.roles));
const permissions = ref(storage.get(constant.permissions));
+ const userMenus = ref([]);
const SET_TOKEN = val => {
token.value = val;
@@ -77,6 +78,7 @@ export const useUserStore = defineStore('user', () => {
const userid = isEmpty(user) || isEmpty(user.id) ? '' : user.id;
const username = isEmpty(user) || isEmpty(user.nickname) ? '' : user.nickname;
const role = isEmpty(user) || isEmpty(user.currentRole) ? '' : user.currentRole;
+ userMenus.value = res.data.menus || [];
if (res.data.roles && res.data.roles.length > 0) {
SET_ROLES(res.data.roles);
SET_PERMISSIONS(res.data.permissions);
@@ -121,6 +123,7 @@ export const useUserStore = defineStore('user', () => {
currentRole,
avatar,
roles,
+ userMenus,
permissions,
SET_AVATAR,
login: loginAction,