| | |
| | | </view> |
| | | <no-record :isShow="!list.length"></no-record> |
| | | <view class="footer"> |
| | | <text>已选:{{selectId?1:0}}人</text> |
| | | <text>已选:{{selectItems.length?selectItems.length:0}}人</text> |
| | | <button class="blue-btn btn mr-0" @click="confirm">确定</button> |
| | | </view> |
| | | </view> |
| | |
| | | return { |
| | | queryKey: '', |
| | | list: [], |
| | | selectId: '', |
| | | selectName: '' |
| | | selectIds: '', |
| | | selectItems: [], |
| | | multiSelect: false, //单选/多选,默认多选 |
| | | }; |
| | | }, |
| | | onLoad(options) { |
| | | // 选中的id,逗号分隔 |
| | | if(options.selectId!='null'){ |
| | | this.selectId = options.selectId |
| | | this.selectIds = options.selectId |
| | | } |
| | | if(options.multiSelect){ |
| | | this.multiSelect = new Boolean(options.multiSelect); |
| | | } |
| | | this.loadMemberList() |
| | | }, |
| | |
| | | }, 'POST').then((res) => { |
| | | if(res.status == 200){ |
| | | this.list = res.rows.map((item) => { |
| | | if(this.selectId && this.selectId == item.id){ |
| | | this.selectName = item.name |
| | | let index = this.selectItems.findIndex((op) => { |
| | | return op.id == item.id |
| | | }); |
| | | if(this.selectIds && this.selectIds.indexOf(item.id) > -1){ |
| | | if(index == -1){ |
| | | this.selectItems.push(item); |
| | | } |
| | | return Object.assign(item, {isCheck: true}) |
| | | } |
| | | return Object.assign(item, {isCheck: false}) |
| | |
| | | }) |
| | | }, |
| | | checkOnchange(item){ |
| | | if(this.multiSelect){ |
| | | this.multiChange(item) |
| | | }else{ |
| | | this.singChange(item) |
| | | } |
| | | }, |
| | | singChange(item){ |
| | | if(!item.isCheck){ |
| | | this.list.forEach((item) => { |
| | | item.isCheck = false; |
| | | this.list.forEach((op) => { |
| | | op.isCheck = false; |
| | | }); |
| | | item.isCheck = true |
| | | this.selectId = item.id; |
| | | this.selectName = item.name; |
| | | item.isCheck = true; |
| | | this.selectItems = [item]; |
| | | }else{ |
| | | item.isCheck = false; |
| | | this.selectId = ''; |
| | | this.selectName = ''; |
| | | this.selectItems = []; |
| | | } |
| | | }, |
| | | multiChange(item){ |
| | | let index = this.selectItems.findIndex((op) => { |
| | | return op.id == item.id |
| | | }); |
| | | if(!item.isCheck){ |
| | | item.isCheck = true; |
| | | this.selectItems.push(item); |
| | | }else{ |
| | | item.isCheck = false; |
| | | this.selectItems.splice(index,1); |
| | | } |
| | | }, |
| | | confirm(){ |
| | | let pages = getCurrentPages(); |
| | | let prevPage = pages[ pages.length - 2 ]; |
| | | prevPage.$vm.setData && prevPage.$vm.setData({ |
| | | name: this.selectName, |
| | | id: this.selectId |
| | | }); |
| | | let pages = getCurrentPages(); |
| | | let prevPage = pages[ pages.length - 2 ]; |
| | | if(this.selectItems.length){ |
| | | prevPage.$vm.setData && prevPage.$vm.setData(this.selectItems); |
| | | } |
| | | uni.navigateBack() |
| | | } |
| | | }, |