wr1207
2023-04-17 32e4bad2cff2793052effcd2d59cdd8923702b22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<template>
   <el-select style="width:100%" v-model="dataval" @change="selectchange" filterable clearable placeholder="请选择">
        <el-option v-for="(item,i) in list" :key="i" :label="item.key" :value="item.val"></el-option>
        <Page style="padding-left:15px;" :total="page_data.total" :background="background" :layout="layout" :page.sync="page_data.page" :limit.sync="page_data.limit" @pagination="init" />
    </el-select>
</template>
  
 
<script>
import Page from '@/components/common/Page.vue'
export default {
    components: {
        Page,
    },
    props: {
        url: {
            type: String,
        },
        selectval:{
            type: [Number, String],
            default:null,
        },
        is_clear:{
            type:Boolean,
            default:false
        },
    },
    watch:{
        is_clear(val){
            if(val){
                this.dataval = ''
            }
        }
    },
    data() {
        return {
            dataval:this.selectval,
            list:[],
            page_data: {
                limit: 20,
                page: 1,
                total:20,
            },
            layout:'total,sizes, prev, pager, next',
            background:false,
        }
    },
    mounted() {
        this.init()
    }, 
    methods: {
        init(){
            let param = {limit:this.page_data.limit,page:this.page_data.page}
            this.$axios.post(this.url,param).then(res => {
                if(res.data.status == 200){
                    this.list = res.data.data.data
                    this.page_data.total = res.data.data.total
                }
            })
        },
        selectchange(val){
            this.$emit('update:selectval',val)
        }
    }
}
</script>