协管副科长

main
xy 2 years ago
parent 207b036e40
commit 7b39decac5

@ -1,25 +1,29 @@
<template> <template>
<el-select :size="size" <el-select
clearable v-model="myValue"
:popper-append-to-body="popperAppendToBody" :size="size"
:style="{ width: width }" clearable
value-key="id" :popper-append-to-body="popperAppendToBody"
filterable :style="{ width: width }"
:multiple="multiple" value-key="id"
:loading="loading" collapse-tags
v-model="myValue" filterable
@change="e => $emit('input',e)"> :multiple="multiple"
<el-option v-for="(item, index) in list" :loading="loading"
:key="item.id" @change="e => $emit('input',e)"
:label="item.name" >
:value="item.id"> <el-option
</el-option> v-for="(item) in list"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</template> </template>
<script> <script>
let listData = []; let listData = []
import { index } from "@/api/user" import { index } from '@/api/user'
export default { export default {
props: { props: {
popperAppendToBody: { popperAppendToBody: {
@ -30,8 +34,8 @@ export default {
multiple: Boolean, multiple: Boolean,
size: String, size: String,
value: { value: {
type: [String,Number], type: [String, Number],
default: "", default: '',
required: true required: true
} }
}, },
@ -39,7 +43,7 @@ export default {
return { return {
total: 0, total: 0,
loading: false, loading: false,
myValue: "", myValue: '',
list: [], list: [],
// select: { // select: {
// rows: 20, // rows: 20,
@ -48,13 +52,29 @@ export default {
// }, // },
select: { select: {
rows: 9999, rows: 9999,
page: 1, 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: { methods: {
remoteMethod (query) { remoteMethod(query) {
if (query !== "") { if (query !== '') {
this.select.keyword = query this.select.keyword = query
this.select.page = 1 this.select.page = 1
this.list = [] this.list = []
@ -65,20 +85,20 @@ export default {
this.getList() this.getList()
} }
}, },
async getList () { async getList() {
if (listData instanceof Array && listData.length > 0) { if (listData instanceof Array && listData.length > 0) {
this.list = listData; this.list = listData
} else { } else {
this.loading = true; this.loading = true
try { try {
const res = await index(this.select); const res = await index(this.select)
listData = res.data; listData = res.data
this.list = res.data; this.list = res.data
this.total = res.total; this.total = res.total
this.loading = false; this.loading = false
} catch (err) { } catch (err) {
this.loading = false; this.loading = false
} }
} }
}, },
@ -100,32 +120,16 @@ export default {
initLoadMore() { initLoadMore() {
this.$nextTick(() => { this.$nextTick(() => {
this.$el.querySelector(".el-scrollbar__wrap").addEventListener("scroll",this.loadListener) this.$el.querySelector('.el-scrollbar__wrap').addEventListener('scroll', this.loadListener)
}) })
}, },
loadListener(e) { loadListener(e) {
let sign = 0 const sign = 0
const scrollDistance = e.scrollHeight - e.scrollTop - e.clientHeight const scrollDistance = e.scrollHeight - e.scrollTop - e.clientHeight
if (scrollDistance <= sign) { if (scrollDistance <= sign) {
this.getList() this.getList()
} }
} }
},
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)
} }
} }
</script> </script>

@ -33,6 +33,12 @@
<el-form-item label="分管领导" prop="leader_id"> <el-form-item label="分管领导" prop="leader_id">
<user-picker v-model="form.leader_id" width="100%" /> <user-picker v-model="form.leader_id" width="100%" />
</el-form-item> </el-form-item>
<el-form-item label="协管" prop="assistant_id">
<user-picker v-model="form.assistant_id" width="100%" />
</el-form-item>
<el-form-item label="副科长" prop="deputy_manager_id">
<user-picker v-model="form.deputy_manager_id" multiple width="100%" />
</el-form-item>
<el-form-item label="排序" prop="sortnumber"> <el-form-item label="排序" prop="sortnumber">
<el-input-number v-model="form.sortnumber" controls-position="right" :precision="0" /> <el-input-number v-model="form.sortnumber" controls-position="right" :precision="0" />
</el-form-item> </el-form-item>
@ -71,6 +77,8 @@ export default {
pid: 0, pid: 0,
manager_id: '', manager_id: '',
leader_id: '', leader_id: '',
assistant_id: '',
deputy_manager_id: '',
sortnumber: 0 sortnumber: 0
}, },
rules: { rules: {

@ -24,12 +24,25 @@
<vxe-column field="name" width="160" title="部门名称" :edit-render="{ name: 'input', attrs: { type: 'text'} }" /> <vxe-column field="name" width="160" title="部门名称" :edit-render="{ name: 'input', attrs: { type: 'text'} }" />
<vxe-column field="manager.name" width="180" title="科室负责人" :edit-render="{}"> <vxe-column field="manager.name" width="180" title="科室负责人" :edit-render="{}">
<template #edit="{ row }"> <template #edit="{ row }">
<UserPicker v-model="row.manager_id" size="small" /> <user-picker v-model="row.manager_id" size="small" />
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="leader.name" width="180" title="分管领导" :edit-render="{}"> <vxe-column field="leader.name" width="180" title="分管领导" :edit-render="{}">
<template #edit="{ row }"> <template #edit="{ row }">
<UserPicker v-model="row.leader_id" size="small" /> <user-picker v-model="row.leader_id" size="small" />
</template>
</vxe-column>
<vxe-column field="assistant.name" width="180" title="协管" :edit-render="{}">
<template #edit="{ row }">
<user-picker v-model="row.assistant_id" size="small" />
</template>
</vxe-column>
<vxe-column field="deputy_manager" width="180" title="副科长" :edit-render="{}">
<template #default="{ row }">
<span v-if="row.deputy_manager && row.deputy_manager instanceof Array">{{ row.deputy_manager.map(i => i.name).toString() }}</span>
</template>
<template #edit="{ row }">
<user-picker v-model="row.deputy_manager_id" multiple size="small" />
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="sortnumber" width="80" title="排序" align="center" :edit-render="{ name: 'input', attrs: { type: 'number' } }" /> <vxe-column field="sortnumber" width="80" title="排序" align="center" :edit-render="{ name: 'input', attrs: { type: 'number' } }" />
@ -82,6 +95,8 @@ export default {
name: '', name: '',
manager_id: '', manager_id: '',
leader_id: '', leader_id: '',
deputy_manager_id: '',
assistant_id: '',
sortnumber: 0 sortnumber: 0
} }
} }

Loading…
Cancel
Save