<template> <view> <view class="search"><u-search placeholder="企业名称" v-model="companyName" :showAction="false" @search="getData()" @clear="clear()"></u-search></view> <view class="list"> <view class="item" v-for="(item, index) in list" :key="index" @click="detail(item)"> <text>{{ item.companyName }}</text> <text class="icon"></text> </view> <view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view> <u-empty v-if="!loadMore && list.length == 0"></u-empty> </view> </view> </template> <script> export default { data() { return { list: [], companyName: '', param: { pageNum: 1, pageSize: 10 }, loadMore: false }; }, watch: { companyName(val) { if (val.length > 3) { this.refresh(); } } }, methods: { getData() { this.http.request({ url: '/app/company/list', data: { companyName: this.companyName }, success: (res) => { this.loadMore = res.data.pages > this.param.pageNum ? true : false; res.data.rows.forEach((item) => { this.list.push(item); }); } }); }, detail(item) { uni.showModal({ title: '提示', content: '确定关联该企业?', success: (res) => { if (res.confirm) { this.http.request({ url: '/app/relate/add', data: { companyId: item.id, way: '手动关联' }, method: 'POST', success: (res) => { uni.showModal({ title: '提示', content: '关联成功', showCancel: false, success: (res) => { uni.$emit('company'); uni.navigateBack(); } }); } }); } } }); }, clear() { this.list = []; }, //刷新数据 refresh() { this.loadMore = true; this.param.pageNum = 1; this.list = []; this.getData(); } }, //上拉加载 onReachBottom() { if (this.loadMore) { this.param.pageNum++; this.getData(); } } }; </script> <style lang="scss"> .search { padding: 12px 20px 12px 20px; background-color: white; } .list { .item { padding: 17px; background-color: white; margin-top: 10px; .icon { float: right; } } } </style>