Skip to content

Commit 6771347

Browse files
committed
feat(scrm): wecom sync pull department and users
1 parent 7e5a29a commit 6771347

File tree

32 files changed

+153
-98
lines changed

32 files changed

+153
-98
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export const UriWeCom = '/scrm/wechat/wecom';
22
export const UriWeComUser = '/scrm/wechat/wecom/organization/users';
3+
export const UriWeComDepartment = '/scrm/wechat/wecom/organization/departments';
34
export const UriWeComApp = '/scrm/wechat/wecom/app';

src/api/scrm/customer/index.ts renamed to src/api/scrm/wecom/customer/index.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,6 @@ export function wechatGroup(request: any) {
123123
);
124124
}
125125

126-
export function pullSyncWeComDepartmentsAndUsers(request: any) {
127-
return axios.get<GetCustomersReply>(
128-
`${PrefixUriAdmin + UriWeComUser}/sync`,
129-
request,
130-
);
131-
}
132126
/**
133127
* customer
134128
* @description 群聊信息发送

src/api/scrm/department/index.ts renamed to src/api/scrm/wecom/department/index.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* @LastEditTime: 2023-08-24 00:40:33
77
*/
88
import axios from 'axios';
9+
import { PrefixUriAdmin } from '@/api';
10+
import { UriWeComDepartment } from '@/api/scrm/wecom/base';
911

1012
/**
1113
* Department
@@ -89,7 +91,7 @@ export function deleteDepartment(request: DeleteDepartmentRequest) {
8991
);
9092
}
9193

92-
export interface Department {
94+
export interface WeComDepartment {
9395
id: number;
9496
depName: string;
9597
leader: DepartmentLeader;
@@ -99,15 +101,16 @@ export interface Department {
99101
}
100102

101103
export interface GetDepartmentRequest {
102-
id: number;
104+
departmentId: number;
103105
}
104106

105107
export interface GetDepartmentReply {
106-
department: Department;
108+
department: WeComDepartment;
107109
}
108110

109111
export function getDepartment(request: GetDepartmentRequest) {
110-
return axios.get<GetDepartmentReply>(
111-
`/api/v1/admin/department/departments/${request.id}`,
112+
return axios.post<GetDepartmentReply>(
113+
`${PrefixUriAdmin + UriWeComDepartment}/tree`,
114+
request,
112115
);
113116
}
File renamed without changes.

src/api/scrm/user/index.ts renamed to src/api/scrm/wecom/user/index.ts

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import axios from 'axios';
2+
import { PrefixUriAdmin } from '@/api';
3+
import { UriWeComUser } from '@/api/scrm/wecom/base';
4+
import { GetCustomersReply } from '@/api/scrm/wecom/customer';
25

36
/**
47
* User
@@ -10,7 +13,7 @@ export interface UserDepartment {
1013
depName: string;
1114
}
1215

13-
export interface User {
16+
export interface WeComUser {
1417
id: number;
1518
account: string;
1619
name: string;
@@ -33,12 +36,14 @@ export interface GetUserRequest {
3336
id: string;
3437
}
3538

36-
export type GetUserReply = User;
39+
export type GetUserReply = WeComUser;
3740
export function getUser(request: GetUserRequest) {
38-
return axios.get<GetUserReply>(`/api/v1/admin/user/users/${request.id}`);
41+
return axios.get<GetUserReply>(
42+
`${PrefixUriAdmin + UriWeComUser}/${request.id}`,
43+
);
3944
}
4045

41-
export interface ListUsersRequest {
46+
export interface listUsersPageRequest {
4247
id?: any;
4348
name?: string;
4449
email?: string;
@@ -53,17 +58,31 @@ export interface ListUsersRequest {
5358
likeName?: string;
5459
}
5560

56-
export interface ListUsersReply {
57-
list: User[];
61+
export interface listUsersPageReply {
62+
list: WeComUser[];
5863
pageIndex: number;
5964
pageSize: number;
6065
total: number;
6166
children?: any[];
6267
}
6368

64-
export function listUsers(request: ListUsersRequest) {
65-
return axios.post<ListUsersReply>(
66-
'/api/v1/admin/scrm/wechat/wecom/organization/users/page',
69+
export function listUsersPage(request: listUsersPageRequest) {
70+
return axios.post<listUsersPageReply>(
71+
`${PrefixUriAdmin + UriWeComUser}/page`,
72+
request,
73+
);
74+
}
75+
76+
export interface listUsersRequest {
77+
departmentId: number;
78+
}
79+
export interface listUsersReply {
80+
list: WeComUser[];
81+
}
82+
83+
export function listUsers(request: listUsersRequest) {
84+
return axios.post<listUsersReply>(
85+
`${PrefixUriAdmin + UriWeComUser}/`,
6786
request,
6887
);
6988
}
@@ -79,7 +98,14 @@ export interface SyncUsersReply {
7998

8099
export function syncUsers(request: SyncUsersRequest) {
81100
return axios.post<SyncUsersReply>(
82-
'/api/v1/admin/user/users/actions/sync',
101+
`${PrefixUriAdmin + UriWeComUser}/actions/sync`,
102+
request,
103+
);
104+
}
105+
106+
export function pullSyncWeComDepartmentsAndUsers(request: any) {
107+
return axios.get<GetCustomersReply>(
108+
`${PrefixUriAdmin + UriWeComUser}/sync`,
83109
request,
84110
);
85111
}

src/api/user.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function getUser(request: GetUserRequest) {
4141
return axios.get<GetUserReply>(`/api/v1/admin/user/users/${request.id}`);
4242
}
4343

44-
export interface ListUsersRequest extends Pagination {
44+
export interface listUsersPageRequest extends Pagination {
4545
ids?: number[];
4646
likeName?: string;
4747
likeEmail?: string;
@@ -52,12 +52,12 @@ export interface ListUsersRequest extends Pagination {
5252
isEnable?: any;
5353
}
5454

55-
export interface ListUsersReply extends Pagination {
55+
export interface listUsersPageReply extends Pagination {
5656
list: User[];
5757
}
5858

59-
export function listUsers(request: ListUsersRequest) {
60-
return axios.get<ListUsersReply>('/api/v1/admin/user/users', {
59+
export function listUsersPage(request: listUsersPageRequest) {
60+
return axios.get<listUsersPageReply>('/api/v1/admin/user/users', {
6161
params: request,
6262
});
6363
}

src/store/modules/scrm/wecom/user.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { defineStore } from 'pinia';
2+
import { getDepartment, WeComDepartment } from '@/api/scrm/wecom/department';
3+
import { Message } from '@arco-design/web-vue';
24

3-
type DepartmentTree = any;
45
type TagTree = any;
56
type UserList = any;
67

78
export type ViewType = 'department' | 'tag';
89

910
interface UserState {
10-
departmentTree: DepartmentTree | null;
11+
departmentTree: WeComDepartment | null;
1112
tagTree: TagTree | null;
1213
userList: UserList | null;
1314
selectedDepartment: number | null;
@@ -25,7 +26,7 @@ const useWeComUserStore = defineStore('weComUser', {
2526
selectedViewType: 'department',
2627
}),
2728
actions: {
28-
setDepartmentTree(tree: DepartmentTree) {
29+
setDepartmentTree(tree: WeComDepartment) {
2930
this.departmentTree = tree;
3031
},
3132
setTagTree(tree: TagTree) {
@@ -44,6 +45,17 @@ const useWeComUserStore = defineStore('weComUser', {
4445
// console.log('setSelectedViewType', type);
4546
this.selectedViewType = type;
4647
},
48+
async loadDepartmentTree(departmentId: number) {
49+
const res = await getDepartment({ departmentId });
50+
if (res.data) {
51+
this.departmentTree = res.data.department;
52+
} else {
53+
Message.error('获取部门信息失败');
54+
}
55+
},
56+
async loadCurrentUserByDepartmentId(departmentId: number) {
57+
const res = await getDepartment({ departmentId });
58+
},
4759
},
4860
});
4961

src/views/admin/user/components/search-user-table.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,9 @@
144144
import EditUser from '@/views/admin/user/components/edit-user.vue';
145145
import {
146146
deleteUser,
147-
listUsers,
148-
ListUsersReply,
149-
ListUsersRequest,
147+
listUsersPage,
148+
listUsersPageReply,
149+
listUsersPageRequest,
150150
updateUser,
151151
} from '@/api/user';
152152
@@ -181,7 +181,7 @@
181181
roleCodes: [] as string[],
182182
isEnable: undefined as undefined | boolean,
183183
depIds: [],
184-
} as ListUsersRequest);
184+
} as listUsersPageRequest);
185185
186186
const state = reactive({
187187
tableLoading: false,
@@ -193,7 +193,7 @@
193193
},
194194
});
195195
196-
const pageData = ref({} as ListUsersReply);
196+
const pageData = ref({} as listUsersPageReply);
197197
198198
function fetchOption() {
199199
getUserQueryOptions().then((res) => {
@@ -210,7 +210,7 @@
210210
return;
211211
}
212212
state.tableLoading = true;
213-
listUsers(queryForm)
213+
listUsersPage(queryForm)
214214
.then((res) => {
215215
pageData.value = res.data;
216216
})

src/views/scrm/official-account/media/index.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
@on-delete="onDeleteMedia"
1414
@page-change="pageChange"
1515
@page-size-change="pageSizeChange"
16-
@onChangeTab="onChangeTab"
17-
@onPreview="onPreview"
16+
@on-change-tab="onChangeTab"
17+
@on-preview="onPreview"
1818
@on-upload-success="onUploadSuccess"
1919
/>
2020
</div>
@@ -29,7 +29,7 @@
2929
GetMediaByVideo,
3030
GetMediaOtherList,
3131
UriOAMedia,
32-
} from '@/api/wechat/official-account/media';
32+
} from '@/api/scrm/official-account/media';
3333
import { PrefixUriAdmin } from '@/api';
3434
import { getToken } from '@/utils/auth';
3535

src/views/scrm/official-account/menu/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
getOAMenuTree,
1616
GetOAMenuTreeReply,
1717
syncOAMenu,
18-
} from '@/api/wechat/official-account/menu';
18+
} from '@/api/scrm/official-account/menu';
1919
import { Message } from '@arco-design/web-vue';
2020
2121
const submitMenuData = async (menuData: any) => {

src/views/scrm/wecom/app/components/send-message.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@
8383
wechatMessageArticles,
8484
GetMessageArticlesRequest,
8585
Articles,
86-
} from '@/api/scrm/customer';
87-
import { listUsers } from '@/api/scrm/user';
86+
} from '@/api/scrm/wecom/customer';
87+
import { listUsersPage } from '@/api/scrm/wecom/user';
8888
8989
const prop = defineProps({
9090
agentid: {
@@ -192,7 +192,7 @@
192192
},
193193
);
194194
async function fetchUsers() {
195-
const res = await listUsers({});
195+
const res = await listUsersPage({});
196196
try {
197197
usersList.list = res.data?.list;
198198
} catch (err) {

src/views/scrm/wecom/app/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070

7171
<script lang="ts" setup>
7272
import { onMounted, reactive, ref } from 'vue';
73-
import { wechatAppList } from '@/api/scrm/customer';
73+
import { wechatAppList } from '@/api/scrm/wecom/customer';
7474
import SendMessage from '@/views/scrm/wecom/app/components/send-message.vue';
7575
7676
const state = reactive({

src/views/scrm/wecom/customer-domain/customer/components/add-tag.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
customerTag,
5555
CustomerTagList,
5656
getGroupTagList,
57-
} from '@/api/scrm/tag';
57+
} from '@/api/scrm/wecom/tag';
5858
5959
const prop = defineProps({
6060
usersList: {

src/views/scrm/wecom/customer-domain/customer/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@
200200

201201
<script lang="ts" setup>
202202
import { onMounted, reactive, ref, toRaw } from 'vue';
203-
import { corpOption } from '@/api/scrm/tag';
204-
import { getCustomers, GetCustomersRequest } from '@/api/scrm/customer';
203+
import { corpOption } from '@/api/scrm/wecom/tag';
204+
import { getCustomers, GetCustomersRequest } from '@/api/scrm/wecom/customer';
205205
206206
const state = reactive({
207207
loading: false,

src/views/scrm/wecom/customer-domain/tag/components/add-tag.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@
3434
<script lang="ts" setup>
3535
import { onMounted, reactive, ref } from 'vue';
3636
import { FieldRule, Message } from '@arco-design/web-vue';
37-
import { addTag, AddTagRequest, groupOption, TagList } from '@/api/scrm/tag';
37+
import {
38+
addTag,
39+
AddTagRequest,
40+
groupOption,
41+
TagList,
42+
} from '@/api/scrm/wecom/tag';
3843
3944
const emits = defineEmits(['submitSuccess', 'submitFailed', 'update:id']);
4045
const formRef = ref();

src/views/scrm/wecom/customer-domain/tag/components/edit-tag.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
<script lang="ts" setup>
5959
import { watch, reactive, ref, PropType } from 'vue';
6060
import { FieldRule, Message } from '@arco-design/web-vue';
61-
import { editTag, EditTagRequest } from '@/api/scrm/tag';
61+
import { editTag, EditTagRequest } from '@/api/scrm/wecom/tag';
6262
6363
const prop = defineProps({
6464
usersList: {

src/views/scrm/wecom/customer-domain/tag/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@
191191
GetTagRequest,
192192
wechatTagSync,
193193
corpOption,
194-
} from '@/api/scrm/tag';
194+
} from '@/api/scrm/wecom/tag';
195195
import EditTag from './components/edit-tag.vue';
196196
import AddTag from './components/add-tag.vue';
197197

src/views/scrm/wecom/customer-group/group/components/send-message.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@
8282
wechatMessageTemplate,
8383
GetWechatGroupArticlesRequest,
8484
GetMessageTemplateRequest,
85-
} from '@/api/scrm/customer';
86-
import { listUsers } from '@/api/scrm/user';
85+
} from '@/api/scrm/wecom/customer';
86+
import { listUsersPage } from '@/api/scrm/wecom/user';
8787
8888
const emits = defineEmits(['submitSuccess', 'submitFailed', 'update:id']);
8989
@@ -161,7 +161,7 @@
161161
return true;
162162
};
163163
async function fetchUsers() {
164-
const res = await listUsers({});
164+
const res = await listUsersPage({});
165165
try {
166166
usersList.list = res.data?.list;
167167
} catch (err) {

src/views/scrm/wecom/customer-group/group/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@
127127
import {
128128
getCustomersGroups,
129129
GetCustomersGroupsRequest,
130-
pullSyncWeComDepartmentsAndUsers,
131-
} from '@/api/scrm/customer';
130+
} from '@/api/scrm/wecom/customer';
131+
import { pullSyncWeComDepartmentsAndUsers } from '@/api/scrm/wecom/user';
132132
133133
const sender = ref('');
134134
const chatIds = ref([] as string[]);

0 commit comments

Comments
 (0)