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

部门人员选择器

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