工作需求ElementUi组件的使用

加油,新时代打工人!

组件源码

html 复制代码
<template>
  <div @mouseenter="mousein = true" @mouseleave="mousein = false">
     <el-input type="text" clearable autocomplete="off" v-model="searchDoc.originName"  placeholder="请选择" size="small" :style="style"
      @focus="handleShowDatatable(true)" @blur="handleShowDatatable(false)" @input="getList" />
    <div ref="tableContainer" :style="tableStyle" v-show="showDatatable" >
       <el-table
      :data="tableData"
        border
      style="width: 100%"
      @row-click="handleRowClick">
      <el-table-column
        prop="originCode"
        label="产地编码"
        width="180">
      </el-table-column>
      <el-table-column
        prop="originName"
        label="产地名称"
        width="180">
      </el-table-column>
      <el-table-column
        prop="zjm"
        label="助记码"
        width="70">
      </el-table-column>
       </el-table>
    <div class="paginationclass">
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="pagination.pageIndex"
        :limit.sync="pagination.pageSize"
        @pagination="getList"
      />
    </div>
    </div>
  </div>
  
</template>

<script>
import{  
    getMnufacturerList
} from "@/api/manufacturer/manufacturer.js"

export default {
  name: 'MyFacturerName',
  props: {
    value: {
      type: Object
    },
    width: {
      type: [Number, String]
    },
      index:{
          type: [Number, String]

      },
  },
  data(){
    return {
      loading: false,
      searchDoc: {
        originName: '',
        id: 0
      },
      mousein: false,
      showDatatable: false,
      tableStyle: {
        'position':'absolute',
        'background-color':'#FFFFFF',
        'z-index':10,
        'max-height':'200px',
        'overflow-y':'auto',
      },
       pagination: {
        pageIndex: 1,
        pageSize: 10,
      },
      queryParams: {
        originName: "",
      },

      total: 0,
      tableData: [],
      selectRow: null,
    }
  },
  methods: {
   getList() {
      getMnufacturerList({
        ...this.pagination,
        ...this.queryParams,
        originName:this.searchDoc.originName
      }).then((res) => {
        this.tableData = res.data.list;
        this.total = res.data.total;
      }).catch((err) => {
          this.$Message.error('请求产地信息时异常: ', err)
      }).finally(() => {
          this.loading = false
      });
    },

      handleRowClick(item){
          this.searchDoc = {
              originCode: item.originCode,
              originName:item.originName,
              zjm:item.zjm,
              providerName:item.providerName
          }
          let data={
              index:this.index,
              searchDoc:this.searchDoc
          }
          this.$emit('sendname',data.searchDoc.providerName)
          this.closeDatatable()
      },
    handleShowDatatable(isShow){
      if(!this.mousein && !isShow){
        this.showDatatable = false
      }else{
        this.showDatatable = true
        if(this.tableData.length == 0){
          this.getList()
        }
      }
    },
    closeDatatable(){
      this.showDatatable = false
    }
  },
  computed: {
    style(){
      let style = {width: '180px'}
      if(this.width){
        style.width = `${this.width}px`
      }
      return style
    }
  },
  watch: {
    searchDoc: function(val){
      if(!val.originName){
        this.searchDoc.id = 0
      }
      this.$emit('input', this.searchDoc)
    }
  },
  mounted(){

  }
  
}
</script>
<style scoped>
.paginationclass {
  margin-left: 40%;
  margin-top: 20px;
  margin-bottom: 20px;
}
</style>

导入

html 复制代码
import MyFacturerName from "@/components/MyFacturerMedid/My-Facturer-medid.vue";

使用

html 复制代码
<MyFacturerName @sendzjm="setfaceturerName" :index1="scope.$index">
</MyFacturerName>
相关推荐
Kagol3 分钟前
🎉历时1年,TinyEditor v4.0 正式发布!
前端·typescript·开源
丶一派胡言丶3 分钟前
02-VUE介绍和指令
前端·javascript·vue.js
C_心欲无痕6 分钟前
网络相关 - 跨域解决方式
前端·网络
天蓝色的鱼鱼7 分钟前
Vue开发必考:defineComponent与defineAsyncComponent,你真的掌握吗?
前端·vue.js
用户81274828151208 分钟前
aosp14分屏分割线区域部分深入剖析-framework实战干货
前端
三小河8 分钟前
内网环境下 Web 离线地图的实现方案与合规性探讨
前端
2501_941807268 分钟前
在迪拜智能机场场景中构建行李实时调度与高并发航班数据分析平台的工程设计实践经验分享
java·前端·数据库
崇山峻岭之间12 分钟前
Matlab学习记录24
javascript·学习·matlab
一 乐12 分钟前
餐厅点餐|基于springboot + vue餐厅点餐系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
踢球的打工仔15 分钟前
typescript-var和let作用域
前端·javascript·typescript