From 8ecfe9cbd082b50944758286cf2317a7fcce30c3 Mon Sep 17 00:00:00 2001 From: lejianwen <84855512@qq.com> Date: Tue, 17 Dec 2024 21:41:12 +0800 Subject: [PATCH] Split my and admin --- src/api/address_book.js | 7 -- src/api/my.js | 39 -------- src/api/my/address_book.js | 48 ++++++++++ src/api/my/address_book_collection.js | 33 +++++++ src/api/my/address_book_collection_rule.js | 40 +++++++++ src/api/my/peer.js | 8 ++ src/api/my/share_record.js | 24 +++++ src/api/my/tag.js | 33 +++++++ src/components/icons/platform.vue | 1 + src/views/address_book/collection.js | 17 ++-- src/views/address_book/collection.vue | 2 +- src/views/address_book/index.js | 96 ++++++++++---------- src/views/address_book/index.vue | 32 +++---- src/views/address_book/rule.js | 18 ++-- src/views/address_book/rule.vue | 4 +- src/views/my/address_book/collection.vue | 2 +- src/views/my/address_book/index.vue | 39 +++++--- src/views/my/peer/index.vue | 41 +++++---- src/views/my/share_record/index.vue | 90 +++---------------- src/views/my/tag/index.vue | 19 ++-- src/views/peer/index.vue | 35 ++++---- src/views/share_record/index.js | 100 +++++++++++++++++++++ src/views/share_record/index.vue | 87 +++--------------- src/views/tag/index.js | 73 +++++++++------ src/views/tag/index.vue | 21 +++-- 25 files changed, 529 insertions(+), 380 deletions(-) delete mode 100644 src/api/my.js create mode 100644 src/api/my/address_book.js create mode 100644 src/api/my/address_book_collection.js create mode 100644 src/api/my/address_book_collection_rule.js create mode 100644 src/api/my/peer.js create mode 100644 src/api/my/share_record.js create mode 100644 src/api/my/tag.js create mode 100644 src/views/share_record/index.js diff --git a/src/api/address_book.js b/src/api/address_book.js index 26f3716..9342dea 100644 --- a/src/api/address_book.js +++ b/src/api/address_book.js @@ -61,10 +61,3 @@ export function batchCreateFromPeers (data) { }) } -export function batchUpdateTags (data) { - return request({ - url: '/address_book/batchUpdateTags', - method: 'post', - data, - }) -} diff --git a/src/api/my.js b/src/api/my.js deleted file mode 100644 index d4b0fee..0000000 --- a/src/api/my.js +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/utils/request' - -export function share_record_list (params) { - return request({ - url: '/my/share_record/list', - params, - }) -} - -export function share_record_remove (data) { - return request({ - url: '/my/share_record/delete', - method: 'post', - data, - }) -} - -export function share_record_batchDelete (data) { - return request({ - url: '/my/share_record/batchDelete', - method: 'post', - data, - }) -} - -export function peer_list (params) { - return request({ - url: '/my/peer/list', - params, - }) -} - -export function address_book_batchCreateFromPeers (data) { - return request({ - url: '/my/address_book/batchCreateFromPeers', - method: 'post', - data, - }) -} diff --git a/src/api/my/address_book.js b/src/api/my/address_book.js new file mode 100644 index 0000000..38cc6f8 --- /dev/null +++ b/src/api/my/address_book.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +export function list (params) { + return request({ + url: '/my/address_book/list', + params, + }) +} + +export function batchCreateFromPeers (data) { + return request({ + url: '/my/address_book/batchCreateFromPeers', + method: 'post', + data, + }) +} + +export function batchUpdateTags (data) { + return request({ + url: '/my/address_book/batchUpdateTags', + method: 'post', + data, + }) +} + +export function create (data) { + return request({ + url: '/my/address_book/create', + method: 'post', + data, + }) +} + +export function update (data) { + return request({ + url: '/my/address_book/update', + method: 'post', + data, + }) +} + +export function remove (data) { + return request({ + url: '/my/address_book/delete', + method: 'post', + data, + }) +} diff --git a/src/api/my/address_book_collection.js b/src/api/my/address_book_collection.js new file mode 100644 index 0000000..7ccbda3 --- /dev/null +++ b/src/api/my/address_book_collection.js @@ -0,0 +1,33 @@ +import request from '@/utils/request' + +export function list (params) { + return request({ + url: '/my/address_book_collection/list', + params, + }) +} + +export function create (data) { + return request({ + url: '/my/address_book_collection/create', + method: 'post', + data, + }) +} + +export function update (data) { + return request({ + url: '/my/address_book_collection/update', + method: 'post', + data, + }) +} + +export function remove (data) { + return request({ + url: '/my/address_book_collection/delete', + method: 'post', + data, + }) +} + diff --git a/src/api/my/address_book_collection_rule.js b/src/api/my/address_book_collection_rule.js new file mode 100644 index 0000000..0acd684 --- /dev/null +++ b/src/api/my/address_book_collection_rule.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +export function list (params) { + return request({ + url: '/my/address_book_collection_rule/list', + params, + }) +} + +export function create (data) { + return request({ + url: '/my/address_book_collection_rule/create', + method: 'post', + data, + }) +} + +export function update (data) { + return request({ + url: '/my/address_book_collection_rule/update', + method: 'post', + data, + }) +} + +export function remove (data) { + return request({ + url: '/my/address_book_collection_rule/delete', + method: 'post', + data, + }) +} + +export function batchCreate (data) { + return request({ + url: '/my/address_book_collection_rule/batchCreate', + method: 'post', + data, + }) +} diff --git a/src/api/my/peer.js b/src/api/my/peer.js new file mode 100644 index 0000000..6dd8b7e --- /dev/null +++ b/src/api/my/peer.js @@ -0,0 +1,8 @@ +import request from '@/utils/request' + +export function list (params) { + return request({ + url: '/my/peer/list', + params, + }) +} diff --git a/src/api/my/share_record.js b/src/api/my/share_record.js new file mode 100644 index 0000000..028dd10 --- /dev/null +++ b/src/api/my/share_record.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' + +export function list (params) { + return request({ + url: '/my/share_record/list', + params, + }) +} + +export function remove (data) { + return request({ + url: '/my/share_record/delete', + method: 'post', + data, + }) +} + +export function batchDelete (data) { + return request({ + url: '/my/share_record/batchDelete', + method: 'post', + data, + }) +} diff --git a/src/api/my/tag.js b/src/api/my/tag.js new file mode 100644 index 0000000..31991e5 --- /dev/null +++ b/src/api/my/tag.js @@ -0,0 +1,33 @@ +import request from '@/utils/request' + +export function list (params) { + return request({ + url: '/my/tag/list', + params, + }) +} + +export function create (data) { + return request({ + url: '/my/tag/create', + method: 'post', + data, + }) +} + +export function update (data) { + return request({ + url: '/my/tag/update', + method: 'post', + data, + }) +} + +export function remove (data) { + return request({ + url: '/my/tag/delete', + method: 'post', + data, + }) +} + diff --git a/src/components/icons/platform.vue b/src/components/icons/platform.vue index 969da74..fffdc2f 100644 --- a/src/components/icons/platform.vue +++ b/src/components/icons/platform.vue @@ -17,6 +17,7 @@ name: { type: String, required: true, + default: '', values: ['windows', 'android', 'mac', 'linux'], }, color: { diff --git a/src/views/address_book/collection.js b/src/views/address_book/collection.js index 62aee3e..58fb80d 100644 --- a/src/views/address_book/collection.js +++ b/src/views/address_book/collection.js @@ -1,23 +1,28 @@ import { reactive, ref } from 'vue' -import { create, list, remove, update } from '@/api/address_book_collection' +import { list as admin_list, create as admin_create, update as admin_update, remove as admin_remove } from '@/api/address_book_collection' +import { list as my_list, create as my_create, update as my_update, remove as my_remove } from '@/api/my/address_book_collection' import { ElMessage, ElMessageBox } from 'element-plus' import { T } from '@/utils/i18n' -export function useRepositories (is_my) { +const apis = { + admin: { list: admin_list, remove: admin_remove, update: admin_update, create: admin_create }, + my: { list: my_list, remove: my_remove, create: my_create, update: my_update }, +} + +export function useRepositories (api_type = 'my') { const listRes = reactive({ list: [], total: 0, loading: false, }) const listQuery = reactive({ page: 1, page_size: 10, - is_my, name: null, user_id: null, }) const getList = async () => { listRes.loading = true - const res = await list(listQuery).catch(_ => false) + const res = await apis[api_type].list(listQuery).catch(_ => false) listRes.loading = false if (res) { listRes.list = res.data.list @@ -42,7 +47,7 @@ export function useRepositories (is_my) { return false } - const res = await remove({ id: row.id }).catch(_ => false) + const res = await apis[api_type].remove({ id: row.id }).catch(_ => false) if (res) { ElMessage.success(T('OperationSuccess')) getList() @@ -72,7 +77,7 @@ export function useRepositories (is_my) { } const submit = async () => { - const api = formData.id ? update : create + const api = formData.id ? apis[api_type].update : apis[api_type].create const res = await api(formData).catch(_ => false) if (res) { ElMessage.success(T('OperationSuccess')) diff --git a/src/views/address_book/collection.vue b/src/views/address_book/collection.vue index 5869d60..10b583c 100644 --- a/src/views/address_book/collection.vue +++ b/src/views/address_book/collection.vue @@ -96,7 +96,7 @@ toEdit, toAdd, submit, - } = useRepositories() + } = useRepositories('admin') listQuery.is_my = 0 diff --git a/src/views/address_book/index.js b/src/views/address_book/index.js index 3e5889f..0cafb3d 100644 --- a/src/views/address_book/index.js +++ b/src/views/address_book/index.js @@ -1,28 +1,24 @@ import { reactive, ref } from 'vue' -import { batchUpdateTags, create, list, remove, update } from '@/api/address_book' +import { create as admin_create, list as admin_list, remove as admin_remove, update as admin_update } from '@/api/address_book' +import { batchUpdateTags, list as my_list, create as my_create, update as my_update, remove as my_remove } from '@/api/my/address_book' import { ElMessage, ElMessageBox } from 'element-plus' import { T } from '@/utils/i18n' import { useRepositories as useCollectionRepositories } from '@/views/address_book/collection' import { useRepositories as useTagRepositories } from '@/views/tag/index' -import { loadAllUsers } from '@/global' import { simpleData } from '@/api/peer' -export function useRepositories (is_my = 0) { - - const { allUsers, getAllUsers } = loadAllUsers() +const apis = { + admin: { list: admin_list, remove: admin_remove, update: admin_update, create: admin_create }, + my: { list: my_list, remove: my_remove, create: my_create, update: my_update }, +} +export function useRepositories (api_type = 'my') { const { listRes: collectionListRes, listQuery: collectionListQuery, getList: getCollectionList, - } = useCollectionRepositories(is_my) + } = useCollectionRepositories(api_type) collectionListQuery.page_size = 9999 - const { - listRes: tagListRes, - listQuery: tagListQuery, - getList: getTagList, - } = useTagRepositories(is_my) - tagListQuery.page_size = 9999 const listRes = reactive({ list: [], total: 0, loading: false, @@ -30,7 +26,6 @@ export function useRepositories (is_my = 0) { const listQuery = reactive({ page: 1, page_size: 10, - is_my, id: null, user_id: null, username: null, @@ -40,7 +35,7 @@ export function useRepositories (is_my = 0) { const getList = async () => { listRes.loading = true - const res = await list(listQuery).catch(_ => false) + const res = await apis[api_type].list(listQuery).catch(_ => false) listRes.loading = false if (res) { const ids = res.data.list.map(item => item.id) @@ -78,13 +73,14 @@ export function useRepositories (is_my = 0) { return false } - const res = await remove({ row_id: row.row_id }).catch(_ => false) + const res = await apis[api_type].remove({ row_id: row.row_id }).catch(_ => false) if (res) { ElMessage.success(T('OperationSuccess')) getList() } } + //创建或者修改 const platformList = [ { label: 'Windows', value: 'Windows', icon: 'windows' }, { label: 'Linux', value: 'Linux', icon: 'linux' }, @@ -112,6 +108,18 @@ export function useRepositories (is_my = 0) { 'username': '', collection_id: null, }) + const { + listRes: collectionListResForUpdate, + listQuery: collectionListQueryForUpdate, + getList: getCollectionListForUpdate, + } = useCollectionRepositories(api_type) + collectionListQueryForUpdate.page_size = 9999 + const { + listRes: tagListRes, + listQuery: tagListQuery, + getList: getTagList, + } = useTagRepositories(api_type) + tagListQuery.page_size = 9999 const toEdit = (row) => { formVisible.value = true @@ -119,9 +127,9 @@ export function useRepositories (is_my = 0) { Object.keys(formData).forEach(key => { formData[key] = row[key] }) - collectionListQuery.user_id = row.user_id - getCollectionList() + collectionListQueryForUpdate.user_id = row.user_id tagListQuery.collection_id = row.collection_id + getCollectionListForUpdate() getTagList() } @@ -147,7 +155,7 @@ export function useRepositories (is_my = 0) { } const submit = async () => { - const api = formData.row_id ? update : create + const api = formData.row_id ? apis[api_type].update : apis[api_type].create const res = await api(formData).catch(_ => false) if (res) { ElMessage.success(T('OperationSuccess')) @@ -155,16 +163,6 @@ export function useRepositories (is_my = 0) { getList() } } - const shareToWebClientVisible = ref(false) - const shareToWebClientForm = reactive({ - id: '', - hash: '', - }) - const toShowShare = (row) => { - shareToWebClientForm.id = row.id - shareToWebClientForm.hash = row.hash - shareToWebClientVisible.value = true - } const changeQueryUser = async (val) => { tagListRes.list = [] @@ -176,18 +174,18 @@ export function useRepositories (is_my = 0) { getCollectionList() } } - const changeUser = async (val) => { + const changeUserForUpdate = async (val) => { tagListRes.list = [] formData.tags = [] formData.collection_id = 0 if (!val) { - collectionListRes.list = [] + collectionListResForUpdate.list = [] } else { - collectionListQuery.user_id = val - getCollectionList() + collectionListQueryForUpdate.user_id = val + getCollectionListForUpdate() } } - const changeCollection = async (val) => { + const changeCollectionForUpdate = async (val) => { tagListRes.list = [] formData.tags = [] tagListQuery.user_id = formData.user_id @@ -217,42 +215,38 @@ export function useRepositories (is_my = 0) { listQuery, getList, handlerQuery, - del, + collectionListQuery, + getCollectionList, + collectionListRes, + changeQueryUser, + platformList, + + del, + formVisible, formData, toEdit, toAdd, submit, - shareToWebClientVisible, - shareToWebClientForm, - toShowShare, - - collectionListQuery, - getCollectionList, - collectionListRes, - + getCollectionListForUpdate, + collectionListResForUpdate, + changeUserForUpdate, + changeCollectionForUpdate, tagListQuery, getTagList, tagListRes, - allUsers, - getAllUsers, - - changeQueryUser, - changeUser, - changeCollection, - fromPeer, } } -export function useBatchUpdateTagsRepositories (is_my = 0) { +export function useBatchUpdateTagsRepositories () { const { listRes: tagListRes, listQuery: tagListQuery, getList: getTagList, - } = useTagRepositories(is_my) + } = useTagRepositories('my') tagListQuery.page_size = 9999 const visible = ref(false) diff --git a/src/views/address_book/index.vue b/src/views/address_book/index.vue index 1498246..82a85b2 100644 --- a/src/views/address_book/index.vue +++ b/src/views/address_book/index.vue @@ -89,7 +89,7 @@ - + - + - + @@ -162,7 +162,6 @@ --> - {{ T('Cancel') }} {{ T('Submit') }} @@ -179,9 +178,9 @@ diff --git a/src/views/my/tag/index.vue b/src/views/my/tag/index.vue index 3b8dc50..39c57e3 100644 --- a/src/views/my/tag/index.vue +++ b/src/views/my/tag/index.vue @@ -58,7 +58,7 @@ - + @@ -86,7 +86,6 @@ import { onMounted, watch, onActivated } from 'vue' import { useRepositories } from '@/views/tag' import { T } from '@/utils/i18n' - import { useRepositories as useCollectionRepositories } from '@/views/address_book/collection' const { listRes, @@ -101,9 +100,13 @@ submit, activeChange, currentColor, - } = useRepositories() - listQuery.is_my = 1 + collectionListRes, + getCollectionList, + + collectionListResForUpdate, + getCollectionListForUpdate, + } = useRepositories('my') onMounted(getList) onActivated(getList) @@ -112,14 +115,8 @@ watch(() => listQuery.page_size, handlerQuery) - const { - listRes: collectionListRes, - listQuery: collectionListQuery, - getList: getCollectionList, - } = useCollectionRepositories() - collectionListQuery.is_my = 1 - collectionListQuery.page_size = 999 onMounted(getCollectionList) + onMounted(getCollectionListForUpdate) diff --git a/src/views/peer/index.vue b/src/views/peer/index.vue index eff4a83..39d4b2f 100644 --- a/src/views/peer/index.vue +++ b/src/views/peer/index.vue @@ -163,7 +163,7 @@ - + - + - +