提交 d5e8f871 编写于 作者: ShineKOT's avatar ShineKOT

部门人员选择器

上级 b88174be
<template>
<div class="app-department-personnel">
<i-select :multiple="multiple" :transfer="true" transfer-class-name="app-department-personnel-select" v-model="selectsLabel" :disabled="disabled" :clearable="true" @on-open-change="onClick" @on-change="change">
<i-option v-for="(item, index) in items" :key="index" :value="item.value" :label="item.label">
<i-option v-for="(item, index) in items" :key="index" :value="item.label" :label="item.label">
{{item.label}}
</i-option>
</i-select>
......@@ -128,10 +128,7 @@ export default class AppDepartmentPersonnel extends Vue {
* @type {*}
* @memberof AppDepartmentPersonnel
*/
public selects: any[] = [ {
value: 'New York',
label: 'New York'
} ];
public selects: any[] = [];
/**
* 选中项label集合
......@@ -139,7 +136,7 @@ export default class AppDepartmentPersonnel extends Vue {
* @type {*}
* @memberof AppDepartmentPersonnel
*/
public selectsLabel: any = ["New York"] ;
public selectsLabel: any[] = [] ;
/**
* 下拉数组
......@@ -147,30 +144,7 @@ export default class AppDepartmentPersonnel extends Vue {
* @type {*}
* @memberof AppDepartmentPersonnel
*/
public items: any[] = [{
value: 'New York',
label: 'New York'
},
{
value: 'London',
label: 'London'
},
{
value: 'Sydney',
label: 'Sydney'
},
{
value: 'Ottawa',
label: 'Ottawa'
},
{
value: 'Paris',
label: 'Paris'
},
{
value: 'Canberra',
label: 'Canberra'
}];
public items: any[] = [];
/**
* 过滤值
*
......@@ -192,10 +166,10 @@ export default class AppDepartmentPersonnel extends Vue {
}else if(context[this.filter]){
this.filtervalue = context[this.filter];
}else{
this.filtervalue = context.srfpdept;
this.filtervalue = context.srfsdept;
}
}else{
this.filtervalue = context.srfpdept;
this.filtervalue = context.srfsdept;
}
}
......@@ -331,15 +305,17 @@ export default class AppDepartmentPersonnel extends Vue {
* @memberof AppDepartmentPersonnel
*/
public openViewClose(result: any) {
this.selects = [];
this.selectsLabel = [];
if (result.datas && result.datas.length > 0) {
this.selects = result.datas;
if(this.selects.length > 0){
this.selects.forEach((select: any)=>{
this.selectsLabel.push(select.label)
})
}
this.selects = [];
this.selectsLabel = [];
this.selects = [...result.datas];
this.selects.forEach((select: any)=>{
let index = this.items.findIndex((item) => Object.is(item.label, select.label));
if(index < 0){
this.items.push(select);
}
this.selectsLabel.push(select.label);
});
}
this.setValue();
}
......
......@@ -177,10 +177,10 @@ export default class AppGroupPicker extends Vue {
public loadTree() {
let orgid = this.viewParam.filtervalue;
let tempTreeUrl: string = '';
if( this.viewParam.selectTyep == 'org'){
tempTreeUrl = this.treeurl.replace('${orgid}',orgid);
}else if(this.viewParam.selectTyep == 'dept'){
if(this.viewParam.selectType && Object.is(this.viewParam.selectType,"dept")){
tempTreeUrl = this.treeurl.replace('{deptId}',orgid);
}else{
tempTreeUrl = this.treeurl.replace('${orgid}',orgid);
}
let get = Http.getInstance().get(tempTreeUrl, true);
get.then((response: any) => {
......@@ -200,10 +200,10 @@ export default class AppGroupPicker extends Vue {
*/
public loadGroupData(key: string) {
let tempUrl: string = '';
if( Object.is(this.viewParam.selectType,"org")){
tempUrl = this.url.replace('${selected-orgid}',key);
}else if(Object.is(this.viewParam.selectType,"dept")){
if(this.viewParam.selectType && Object.is(this.viewParam.selectType,"dept")){
tempUrl = this.url.replace('{deptId}',key);
}else{
tempUrl = this.url.replace('${selected-orgid}',key);
}
let get = Http.getInstance().get(tempUrl, true);
get.then((response: any) => {
......
......@@ -218,7 +218,6 @@ export default class AppGroupSelect extends Vue {
filtervalue: filtervalue,
multiple: this.multiple,
selects: this.selects,
selectTpye: 'org'
});
let container: Subject<any> = this.$appmodal.openModal(view, context, param);
container.subscribe((result: any) => {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册