Browse Source

feat: [试验管理] 选择审核人

lkf
memorylkf 3 months ago
parent
commit
dc6ffcfbac
2 changed files with 127 additions and 2 deletions
  1. +11
    -2
      src/api/system/user.js
  2. +116
    -0
      src/views/business/comps/select/SelectStudyUser.vue

+ 11
- 2
src/api/system/user.js View File

@ -145,9 +145,18 @@ export function checkStatus(query) {
}
// 查询部门+用户列表
export function deptUserList() {
export function deptUserList(query) {
return request({
url: '/system/user/deptUserList',
method: 'get'
method: 'get',
params: query
})
}
// 查询试验下用户列表
export function studyUser(query) {
return request({
url: '/system/user/studyUser',
method: 'get',
params: query
})
}

+ 116
- 0
src/views/business/comps/select/SelectStudyUser.vue View File

@ -0,0 +1,116 @@
<template>
<el-select style="width:100%" v-model="selected" :placeholder="$t('form.placeholderSelect')" clearable :disabled="readonly" :multiple="multiple" @change="handleChange" filterable>
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<script>
import { studyUser } from "@/api/system/user";
export default {
name: "SelectStudyUser",
components: {},
props: {
value: {
type: [Number, String , Array],
default: '',
},
readonly: {
type: Boolean,
default: false
},
multiple: {
type: Boolean,
default: false
},
placeholder:{
type:String,
default:''
},
query: {
type: Object,
default:()=>{
return {
studyId:'',
studySubject:'',
permit:''
}
}
},
},
watch: {
value: {
immediate: true,
handler(v) {
if(!this.multiple){
this.selected = v ? (v+'') : ''
}else{
if(v){
//,
let arr = v.split(',')
let s = []
_.forEach(arr,a=>{
s.push(a)
})
this.selected = s
}else{
this.selected = []
}
}
}
},
// query:{
// handler(v) {
// this.getList()
// }
// }
},
data() {
return {
selected: '',
list: []
};
},
mounted() {
this.getList()
},
methods: {
getList() {
this.list = []
studyUser(this.query).then(response => {
this.list = response.data || []
})
},
handleChange(val) {
//,
this.$emit('input', this.multiple ? (val && val.length>0 ? val.join(','): ''):(val || ''))
if(this.multiple){
debugger
let arr = []
if(val && val.length>0){
for(let i=0;i<val.length;i++){
for(let j=0;j<this.list.length;j++){
if(val[i]===this.list[j].id){
arr.push(this.list[j])
break
}
}
}
}
this.$emit('change',arr)
}else{
let obj = {}
if(val){
for(let j=0;j<this.list.length;j++){
if(val===this.list[j].id){
obj = this.list[j]
break
}
}
}
this.$emit('change', obj)
}
},
}
};
</script>

Loading…
Cancel
Save