| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | <template>    <view class="cantacts">        <view style="padding: 10px;">            <My_search placeholder="搜索名称,手机号" @onSearch="onSearch"></My_search>        </view>        <view class="content">            <view class="type-list">                <u-list>                    <u-list-item v-for="(item,index) in groupList" :key="item.sys_phonebookgroupid">                        <view :class="['type-item',act == index ? 'active' : '']" @click="typeClick(index,item)">                            {{ item.groupname }}                        </view>                    </u-list-item>                </u-list>            </view>                        <view class="list">                <My_listbox ref="List" @getlist="getList" :bottomHeight="70" :isShowEmpty="false">                    <List :list="list" v-if="list.length"></List>                    <view v-else :style="{marginTop:tovw(150)}">                        <u-empty mode="data" size="small"/>                    </view>                </My_listbox>            </view>        </view>    </view></template><script>import List from './list.vue'export default {    components:{List},    data () {        return {            list:[],            content: {                "pageNumber": 1,                "pageSize": 20,                "where": {                    "condition": "",                    "groupname": ""                }            },            groupParam: {                "id": "20240516135202",                "content": {                    "pageNumber": 1,                    "pageSize": 99999,                    "where": {                        "isenable": 1                    }                },            },            groupList:[],            act:0        }    },    methods: {        onSearch (condition) {            this.content.where.condition = condition            this.getList(true)        },        typeClick (index,item) {            this.act = index            this.content.where.groupname = item.groupname            this.getList(true)        },        getList(init = false) {            return new Promise((resolve, reject) => {                if (this.paging(this.content, init)) return resolve();                this.$Http.basic({                    "id": "20240516144502",                    content: this.content                }).then(res => {                    this.$refs.List.setHeight()                    this.$refs.List.RefreshToComplete()                    resolve();                    if (this.cutoff(res.msg)) return;                    this.list = res.pageNumber == 1 ? res.data : this.list.concat(res.data);                    console.log("获取通讯录列表", this.list)                    this.content = this.$refs.List.paging(this.content, res)                })            })        },        async getGroup () {            let res = await this.$Http.basic(this.groupParam)            this.groupList = res.data            if (this.groupList.length) this.content.where.groupname = this.groupList[0].groupname            this.getList()            console.log(this.groupList,'分组列表');        },        onLoad () {            uni.setNavigationBarTitle({                title:'通讯录',            })            this.getGroup()        }    },}</script><style lang="scss">/deep/.u-list {    height: calc(100vh - 55px) !important;}.cantacts {    box-sizing: border-box;    background: #ffffff;    .content {        font-family: Source Han Sans SC, Source Han Sans SC;        display: flex;        .type-list {            background: #F7F7F7;            width: 90px;            flex-basis: 90px;            .type-item {                font-weight: 400;                font-size: 14px;                color: #333333;                display: flex;                align-items: center;                background: #F7F7F7;                align-content: center;                padding: 12px 16px;            }        }        .active {            background: #ffffff !important;        }        .list {             flex: 1;        }    }}</style>
 |