index.vue 1.7 KB
<template>
    <el-select
        v-model="valueSync"
        filterable
        :clearable="clearable"
        :multiple="multiple"
        remote
        reserve-keyword
        :placeholder="placeholder ? placeholder : $t('请选择')"
        @change="(val) => $emit('change', val)"
        :loading="loading">
        <el-option
          v-if="prepend"
          :label="`${prepend.nickname}`"
          :value="prepend.id">
        </el-option>
        <el-option
        v-for="(item, index) in list"
        :key="item.id"
        :label="`${item.nickname}`"
        :value="item.id">
        </el-option>
    </el-select>
</template>
<script>
import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customerContacts'
import {listServiceUser, listSimpleUsers} from '@/api/system/user'
export default {
    props:{
        value: [String, Number, Array, Boolean],
        multiple: Boolean,
        clearable: Boolean,
        placeholder: String,
        manage:{
          type:Boolean,
          default:false
        },
        prepend: Object
    },
    data(){
        return {
            list:[],
            loading: false,
            size: 20,
            valueSync: this.value
        }
    },
    watch:{
        value(val){
          this.valueSync = this.value
        },
        valueSync(val){
            this.$emit('input', val)
        }
    },
    created(){
      if(this.manage){
        // 客户经理
        listServiceUser().then(r=>{
          this.list = r.data;
        })
      }else {
        // 全部客户
        listSimpleUsers().then(res => {
          this.list = res.data
        })
      }
      if(this.value){
        this.valueSync = this.value
      }
    }
}
</script>