From 94b824cffdf47bc318ee1d362f08a79a8ae255e9 Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Mon, 11 Nov 2024 17:25:39 +0800 Subject: [PATCH] 1 --- src/api/common.js | 19 +++ src/components/UserPicker/index.vue | 139 ++++++++++++++++++ src/permission.js | 12 +- src/views/BeOnDuty/components/AddBeOnDuty.vue | 24 +-- src/views/BeOnDuty/index.vue | 36 +---- .../components/AddDocumentMenu.vue | 17 +-- src/views/DocumentMenu/index.vue | 32 +--- src/views/meeting/components/AddMeeting.vue | 20 ++- src/views/meeting/index.vue | 30 +--- src/views/notice/components/AddNotice.vue | 19 ++- src/views/notice/index.vue | 16 +- 11 files changed, 229 insertions(+), 135 deletions(-) create mode 100644 src/api/common.js create mode 100644 src/components/UserPicker/index.vue diff --git a/src/api/common.js b/src/api/common.js new file mode 100644 index 0000000..1b49578 --- /dev/null +++ b/src/api/common.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +export function departmentListNoAuth(params) { + return request({ + url: '/api/backend/simple-department', + method: 'get', + params, + isLoading: false + }) +} + +export function userListNoAuth(params) { + return request({ + url: '/api/backend/simple-user', + method: 'get', + params, + isLoading: false + }) +} diff --git a/src/components/UserPicker/index.vue b/src/components/UserPicker/index.vue new file mode 100644 index 0000000..eeb6e8e --- /dev/null +++ b/src/components/UserPicker/index.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/permission.js b/src/permission.js index 7c0251b..b1fa5db 100644 --- a/src/permission.js +++ b/src/permission.js @@ -29,7 +29,11 @@ router.beforeEach(async(to, from, next) => { } else { if (store.state.permission.addRoutes && store.state.permission.addRoutes instanceof Array && store.state.permission.addRoutes.length > 0) { - next() + if (to.query.to && /^\/.*/.test(to.query.to)) { + next(to.query.to) + } else { + next() + } } else { try { // get user info @@ -40,7 +44,11 @@ router.beforeEach(async(to, from, next) => { // hack method to ensure that addRoutes is complete // set the replace: true, so the navigation will not leave a history record - next({ ...to, replace: true }) + if (to.query.to && /^\/.*/.test(to.query.to)) { + next({ ...to, replace: true, path: to.query.to }) + } else { + next({ ...to, replace: true }) + } } catch (error) { // remove token and go to login page to re-login await store.dispatch('user/resetToken') diff --git a/src/views/BeOnDuty/components/AddBeOnDuty.vue b/src/views/BeOnDuty/components/AddBeOnDuty.vue index 93c39f5..4fe3a6d 100644 --- a/src/views/BeOnDuty/components/AddBeOnDuty.vue +++ b/src/views/BeOnDuty/components/AddBeOnDuty.vue @@ -16,22 +16,10 @@ - - - + - - - + @@ -58,18 +46,18 @@ diff --git a/src/views/meeting/index.vue b/src/views/meeting/index.vue index 7187679..ffabbf6 100644 --- a/src/views/meeting/index.vue +++ b/src/views/meeting/index.vue @@ -105,19 +105,7 @@ :edit-render="{}" > @@ -177,7 +165,6 @@ @@ -188,18 +175,18 @@ import { deepCopy } from "@/utils"; import { destroy, index, save } from "@/api/meeting"; import { index as meetingRoomIndex } from "@/api/meetingRoom"; -import { index as userIndex } from "@/api/user"; import AddMeeting from "./components/AddMeeting.vue"; +import UserPicker from "@/components/UserPicker/index.vue"; export default { components: { AddMeeting, + UserPicker }, data() { return { isShowAdd: false, rooms: [], - users: [], loading: false, select: { @@ -236,7 +223,6 @@ export default { created() { this.getList(); this.getRooms(); - this.getUsers(); }, methods: { editRowEvent(row) { @@ -264,16 +250,6 @@ export default { } }, - async getUsers() { - try { - this.users = (await userIndex({ - page: 1, - rows: 9999, - })).data - } catch (err) { - console.error(err); - } - }, async getList() { this.loading = true; diff --git a/src/views/notice/components/AddNotice.vue b/src/views/notice/components/AddNotice.vue index 3f10a7f..1f3cc40 100644 --- a/src/views/notice/components/AddNotice.vue +++ b/src/views/notice/components/AddNotice.vue @@ -109,20 +109,18 @@ import { getToken } from "@/utils/auth"; import { save } from "@/api/notice"; import { PopupManager } from "element-ui/lib/utils/popup"; +import { userListNoAuth as index } from "@/api/common"; export default { props: { isShow: { type: Boolean, default: false, required: true, - }, - users: { - type: Array, - default: () => [], } }, data() { return { + users: [], zIndex: PopupManager.nextZIndex(), loading: false, form: { @@ -148,6 +146,9 @@ export default { } } }, + created() { + this.getUsers() + }, methods: { beforeUpload(file) { const isLt10M = file.size / 1024 / 1024 < 10 @@ -179,6 +180,16 @@ export default { } }); }, + async getUsers () { + try { + const res = await index({ + page: 1, + rows: 9999 + }) + this.users = res.data + } catch (err) { + } + } }, }; diff --git a/src/views/notice/index.vue b/src/views/notice/index.vue index 14f8306..84a1182 100644 --- a/src/views/notice/index.vue +++ b/src/views/notice/index.vue @@ -57,7 +57,7 @@ }" /> - + @@ -65,14 +65,12 @@ import { deepCopy } from '@/utils' import { index, save, destroy } from '@/api/notice' import AddNotice from './components/AddNotice.vue' -import { index as userIndex } from "@/api/user"; export default { components: { AddNotice }, data() { return { - users: [], isShowAdd: false, loading: false, @@ -107,7 +105,6 @@ export default { } }, created() { - this.getUsers() this.getList() }, methods: { @@ -125,17 +122,6 @@ export default { } }, - async getUsers() { - try { - this.users = (await userIndex({ - page: 1, - rows: 9999, - })).data - } catch (err) { - console.error(err); - } - }, - async getList() { this.loading = true try {