xy 1 year ago
parent f95779ae92
commit 94b824cffd

@ -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
})
}

@ -0,0 +1,139 @@
<template>
<el-select
v-model="myValue"
:size="size"
clearable
:popper-append-to-body="popperAppendToBody"
:style="{ width: width }"
value-key="id"
collapse-tags
filterable
placeholder="请选择人员"
:multiple="multiple"
:loading="loading"
@change="e => $emit('input',e)"
>
<el-option
v-for="(item) in list"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</template>
<script>
let listData = []
import { userListNoAuth as index } from '@/api/common'
export default {
props: {
popperAppendToBody: {
type: Boolean,
default: true
},
width: String,
multiple: Boolean,
size: String,
value: {
type: [String, Number, Array],
default: '',
required: true
}
},
data() {
return {
total: 0,
loading: false,
myValue: '',
list: [],
// select: {
// rows: 20,
// page: 1,
// keyword: ""
// },
select: {
rows: 9999,
page: 1
}
}
},
computed: {},
watch: {
value: {
handler: function(newVal) {
this.myValue = newVal
},
immediate: true
}
},
mounted() {
this.getList()
// this.initLoadMore();
},
beforeDestroy() {
// this.$el?.querySelector(".el-scrollbar__wrap")?.removeEventListener("scroll",this.loadListener)
},
methods: {
remoteMethod(query) {
if (query !== '') {
this.select.keyword = query
this.select.page = 1
this.list = []
this.getList()
} else {
this.list = []
this.select.page = 1
this.getList()
}
},
async getList() {
if (listData instanceof Array && listData.length > 0) {
this.list = listData
} else {
this.loading = true
try {
const res = await index(this.select)
listData = res.data
this.list = res.data
this.total = res.total
this.loading = false
} catch (err) {
this.loading = false
}
}
},
// async getList () {
// if ((this.list.length >= this.total) && this.list.length !== 0) return;
//
// this.loading = true;
// try {
// const res = await index(this.select);
// this.list = this.list.concat(res.data);
// this.total = res.total;
// console.log(this.list)
//
// this.loading = false;
// } catch (err) {
// this.loading = false;
// }
// },
initLoadMore() {
this.$nextTick(() => {
this.$el.querySelector('.el-scrollbar__wrap').addEventListener('scroll', this.loadListener)
})
},
loadListener(e) {
const sign = 0
const scrollDistance = e.scrollHeight - e.scrollTop - e.clientHeight
if (scrollDistance <= sign) {
this.getList()
}
}
}
}
</script>
<style scoped lang="scss">
</style>

@ -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')

@ -16,22 +16,10 @@
<el-date-picker v-model="form.date" style="width: 100%;" value-format="yyyy-MM-dd" />
</el-form-item>
<el-form-item label="值班人员" prop="user_id">
<el-select
v-model="form.user_id"
style="width: 100%;"
filterable
>
<el-option v-for="user in users" :key="user.id" :value="user.id" :label="user.name" />
</el-select>
<user-picker v-model="form.user_id" style="width: 100%;" />
</el-form-item>
<el-form-item label="带班领导" prop="leader_id">
<el-select
v-model="form.leader_id"
style="width: 100%;"
filterable
>
<el-option v-for="user in users" :key="user.id" :value="user.id" :label="user.name" />
</el-select>
<user-picker v-model="form.leader_id" style="width: 100%;" />
</el-form-item>
<el-form-item label="带班领导人员状态" prop="leader_status">
<el-select v-model="form.leader_status" style="width: 100%;">
@ -58,18 +46,18 @@
</template>
<script>
import UserPicker from "@/components/UserPicker/index.vue";
import { save } from '@/api/onDutySchedules'
export default {
components: {
UserPicker
},
props: {
isShow: {
type: Boolean,
default: false,
required: true
},
users: {
type: Array,
default: () => []
}
},
data() {
return {

@ -28,24 +28,12 @@
</vxe-column>
<vxe-column field="user.name" title="值班人员" min-width="160" :edit-render="{}">
<template #edit="{ row }">
<el-select
filterable
v-model="row.user_id"
style="width: 100%;"
>
<el-option v-for="user in users" :key="user.id" :value="user.id" :label="user.name" />
</el-select>
<user-picker v-model="row.user_id" />
</template>
</vxe-column>
<vxe-column field="leader.name" title="带班领导" min-width="160" :edit-render="{}">
<template #edit="{ row }">
<el-select
filterable
v-model="row.leader_id"
style="width: 100%;"
>
<el-option v-for="user in users" :key="user.id" :value="user.id" :label="user.name" />
</el-select>
<user-picker v-model="row.leader_id" />
</template>
</vxe-column>
<vxe-column field="status" title="值班人员状态" width="120" :edit-render="{}" :formatter="({ cellValue }) => cellValue ? '已完成值班' : '未值班'">
@ -97,22 +85,22 @@
}"
/>
</card-container>
<add-be-on-duty ref="AddBeOnDuty" :users="users" :is-show.sync="isShowAdd" @refresh="getList" />
<add-be-on-duty ref="AddBeOnDuty" :is-show.sync="isShowAdd" @refresh="getList" />
</div>
</template>
<script>
import { deepCopy } from '@/utils'
import { index, save, destroy } from '@/api/onDutySchedules'
import { index as userIndex } from '@/api/user'
import AddBeOnDuty from './components/AddBeOnDuty.vue'
import UserPicker from "@/components/UserPicker/index.vue";
export default {
components: {
AddBeOnDuty
AddBeOnDuty,
UserPicker
},
data() {
return {
users: [],
isShowAdd: false,
loading: false,
@ -156,7 +144,6 @@ export default {
}
},
created() {
this.getUsers()
this.getList()
},
methods: {
@ -174,17 +161,6 @@ export default {
}
},
async getUsers() {
try {
const res = await userIndex({
rows: 999
})
this.users = res.data
} catch (err) {
console.error(err)
}
},
async getList() {
this.loading = true
try {

@ -30,15 +30,12 @@
<el-input v-model="form.name" />
</el-form-item>
<el-form-item label="授权人员" prop="update_children_ids">
<el-select
style="width: 100%;"
<user-picker
multiple
popper-append-to-body
style="width: 100%;"
:value="form.update_children_ids ? form.update_children_ids.split(',').map(i => Number(i)) : []"
@input="e => form.update_children_ids = e.toString()"
>
<el-option v-for="user in users" :key="user.id" :value="user.id" :label="user.name" />
</el-select>
/>
</el-form-item>
<el-form-item label="排序" prop="myindex">
<el-input-number v-model="form.myindex" :controls="false" :precision="0" />
@ -53,9 +50,13 @@
</template>
<script>
import UserPicker from "@/components/UserPicker/index.vue";
import { menuSave } from '@/api/document'
import { PopupManager } from "element-ui/lib/utils/popup";
export default {
components: {
UserPicker
},
props: {
list: {
type: Array,
@ -65,10 +66,6 @@ export default {
type: Boolean,
default: false,
required: true
},
users: {
type: Array,
default: () => []
}
},
data() {

@ -23,16 +23,10 @@
<vxe-column tree-node field="name" width="170" title="名称" :edit-render="{ name: 'input', attrs: { type: 'text' } }" />
<vxe-column field="update_children" title="授权人员" min-width="160" :edit-render="{}">
<template #edit="{ row }">
<el-select
collapse-tags
style="width: 100%;"
multiple
filterable
:value="row.update_children_ids ? row.update_children_ids.split(',').map(i => Number(i)) : []"
@input="e => row.update_children_ids = e.toString()"
>
<el-option v-for="user in users" :key="user.id" :value="user.id" :label="user.name" />
</el-select>
<user-picker style="width: 100%;"
multiple
:value="row.update_children_ids ? row.update_children_ids.split(',').map(i => Number(i)) : []"
@input="e => row.update_children_ids = e.toString()"/>
</template>
</vxe-column>
<vxe-column field="myindex" width="180" title="排序" align="center" :edit-render="{ name: 'input', attrs: { type: 'number' } }" />
@ -51,22 +45,22 @@
</vxe-column>
</vxe-table>
</card-container>
<add-document-menu ref="AddDocumentMenu" :users="users" :list="tableData" :is-show.sync="isShowAdd" @refresh="getList" />
<add-document-menu ref="AddDocumentMenu" :list="tableData" :is-show.sync="isShowAdd" @refresh="getList" />
</div>
</template>
<script>
import { deepCopy } from '@/utils'
import { menuSave, menuIndex, menuDestroy } from '@/api/document'
import { index as userIndex } from '@/api/user'
import UserPicker from "@/components/UserPicker/index.vue";
import AddDocumentMenu from './components/AddDocumentMenu.vue'
export default {
components: {
UserPicker,
AddDocumentMenu
},
data() {
return {
users: [],
isShowAdd: false,
loading: false,
@ -100,7 +94,6 @@ export default {
}
},
created() {
this.getUsers()
this.getList()
},
methods: {
@ -118,17 +111,6 @@ export default {
}
},
async getUsers() {
try {
const res = await userIndex({
rows: 999
})
this.users = res.data
} catch (err) {
console.error(err)
}
},
async getList() {
this.loading = true
try {

@ -111,6 +111,7 @@
import { getToken } from "@/utils/auth";
import { save } from "@/api/meeting";
import { PopupManager } from "element-ui/lib/utils/popup";
import { userListNoAuth as index } from '@/api/common'
export default {
props: {
isShow: {
@ -121,14 +122,11 @@ export default {
rooms: {
type: Array,
default: () => [],
},
users: {
type: Array,
default: () => [],
}
},
data() {
return {
users: [],
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {
@ -155,6 +153,9 @@ export default {
}
}
},
created() {
this.getUsers()
},
methods: {
beforeUpload(file) {
const isLt10M = file.size / 1024 / 1024 < 10
@ -186,6 +187,17 @@ export default {
}
});
},
async getUsers () {
try {
const res = await index({
page: 1,
rows: 9999
})
this.users = res.data
} catch (err) {
}
}
},
};
</script>

@ -105,19 +105,7 @@
:edit-render="{}"
>
<template #edit="{ row }">
<el-select
filterable
multiple
style="width: 100%;"
v-model="row.user_ids"
>
<el-option
v-for="item in users"
:key="item.id"
:value="item.id"
:label="item.name"
></el-option>
</el-select>
<user-picker v-model="row.user_ids" multiple style="width: 100%;" />
</template>
</vxe-column>
<vxe-column field="operate" title="操作" min-width="220">
@ -177,7 +165,6 @@
<add-meeting
ref="AddMeeting"
:rooms="rooms"
:users="users"
:is-show.sync="isShowAdd"
@refresh="getList"
/>
@ -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;

@ -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) {
}
}
},
};
</script>

@ -57,7 +57,7 @@
}"
/>
</card-container>
<add-notice ref="AddNotice" :users="users" :is-show.sync="isShowAdd" @refresh="getList" />
<add-notice ref="AddNotice" :is-show.sync="isShowAdd" @refresh="getList" />
</div>
</template>
@ -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 {

Loading…
Cancel
Save