index.vue 3.37 KB
Newer Older
dragondean@qq.com's avatar
dragondean@qq.com committed
1
<template>
dragondean@qq.com's avatar
dragondean@qq.com committed
2
    <el-dialog :title="$t('选择联系人')" visible :before-close="closeDialog" :close-on-click-modal="false">
3
      <div class="header mb-10 flex-center">
dragondean@qq.com's avatar
dragondean@qq.com committed
4
        <div class="flex-center">{{$t('关键字')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
5
        <el-input v-model="form.searchKey" clearable class="w-200"></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
6
        <el-button type="primary" class="ml-10" @click="handleQuery">{{$t('搜索')}}</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
7 8 9 10 11
      </div>
      <div class="list">
        <div class="list-item" v-for="item in list" :key="item.customerContactsId" @click="choose(item)">
            <div class="item-box">
                <div class="line">
dragondean@qq.com's avatar
dragondean@qq.com committed
12
                    <div class="label">{{$t('姓名')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
13
                    <div class="value">{{item.contactsName}}</div>
14
                    <el-tag v-if="item.isInOpenSea" type="danger" effect="dark">{{$t('')}}</el-tag>
dragondean@qq.com's avatar
dragondean@qq.com committed
15 16
                </div>
                <div class="line">
dragondean@qq.com's avatar
dragondean@qq.com committed
17
                    <div class="label">{{$t('电话')}}</div>
18
                    <div class="value">+{{item.areaCode}} {{item.phoneNew}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
19 20
                </div>
                <div class="line">
dragondean@qq.com's avatar
dragondean@qq.com committed
21
                    <div class="label">{{$t('邮箱')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
22
                    <div class="value">{{item.email}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
23 24
                </div>
                <div class="line">
dragondean@qq.com's avatar
dragondean@qq.com committed
25
                    <div class="label">{{$t('公司')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
26 27 28 29 30
                    <div class="value">{{item.company}}</div>
                </div>
            </div>
        </div>
      </div>
31 32
      <pagination v-show="total > 0" :total="total" :page.sync="form.pageNo" :limit.sync="form.pageSize"
        @pagination="loadList" />
dragondean@qq.com's avatar
dragondean@qq.com committed
33 34 35 36 37 38 39 40 41 42 43 44
    </el-dialog>
</template>
<script>
import {getCustomerContactsSelect} from '@/api/ecw/customerContacts'
export default {
    props:{
        type: Number
    },
    data(){
        return {
            show: true,
            form:{
45 46
                pageNo: 1,
                pageSize: 10,
dragondean@qq.com's avatar
dragondean@qq.com committed
47 48
                searchKey: ''
            },
49 50
            list:[],
            total: 0
dragondean@qq.com's avatar
dragondean@qq.com committed
51 52 53 54 55 56 57 58
        }
    },
    created(){
        this.show = true
        this.loadList()
    },
    methods:{
        handleQuery(){
59
            this.form.pageNo = 1
dragondean@qq.com's avatar
dragondean@qq.com committed
60 61 62 63
            this.loadList()
        },
        loadList(){
            getCustomerContactsSelect(this.form).then(res => {
64
                this.list = res.data.list
65
                this.total = res.data.total
dragondean@qq.com's avatar
dragondean@qq.com committed
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
            })
        },
        closeDialog(){
            this.show = false
            this.$emit('close');
        },
        choose(contact){
            this.$emit('choose', contact)
        }

    }
}
</script>
<style lang="scss" scoped>
.header{
    display: flex;
}
.list{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    &-item{
        background: #eee;
        width: 300px;
        margin: 10px;
        padding: 5px;
        border-radius: 10px;
        border: 5px solid transparent;
        background: linear-gradient(white,white) padding-box,repeating-linear-gradient(-45deg, red 0, red 12.5%, transparent 0, transparent 25%, #58a 0, #58a 37.5%, transparent 0, transparent 50%) 0/5em 5em; 
        .item-box{
            /* background: #fbfaf5; */
            padding: 20px;
        }
        .line{
            display: flex;
            /* .label{
                width: 100px;
            } */
            .value{
                flex: 1;
                margin-left: 10px;
            }
        }
    }
}
</style>