Newer
Older
smartwell_front / src / views / overview / components / lineSearch.vue
wangxitong on 22 Jan 2024 2 KB 总览
<template>
  <div>
    <transition enter-active-class="animate__animated animate__slideInRight" leave-active-class="animate__animated animate__slideOutRight" :duration="500" mode="out-in">
      <div v-show="show" class="layer-choose-window">
        <div class="window-title">
          <div>管线筛选</div>
          <i class="el-icon-close close-icon" @click="close" />
        </div>
        <div class="window-body">
          <!-- 筛选条件-->
          <el-form ref="selectForm" :model="query" size="small">
            <el-form-item label="管龄">
              <el-select v-model="query.age" placeholder="管龄" clearable>
                <el-option
                  v-for="item in ['大于5年', '大于10年', '大于15年', '大于20年']"
                  :key="item"
                  :label="item"
                  :value="item"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="权属单位">
              <dept-select v-model="query.deptId" :need-top="deptShowTop" dept-type="03" placeholder="选择权属单位" @changeItem="changeItem" :unlogin="true"/>
            </el-form-item>
            <div class="btn-line">
              <el-button class="filter-item" type="default" size="small" @click="search">
                搜索
              </el-button>
            </div>
          </el-form>
        </div>
      </div>
    </transition>
  </div>
</template>

<script>
import DeptSelect from '@/components/DeptSelect'

export default {
  name: 'LineSearch',
  components: { DeptSelect },
  props: {
    defaultPosition: {
      type: Array,
      default: () => []
    },
    show: {
      type: Boolean,
      default: true
    } // 是否显示
  },
  data() {
    return {
      deptShowTop: false, // 权属单位下拉是否显示顶级
      query: {
        age: '',
        deptId: '',
        deptName: ''
      } // 筛选条件
    }
  },
  mounted() {
  },
  methods: {
    changeItem(val) {
      this.query.deptName = val.name?val.name: ''
      console.log(this.query)
    },
    // 关闭窗口
    close() {
      this.$emit('close')
    },
    // 坐标定位
    search() {
      this.$emit('search', this.query)
    },
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
.layer-choose-window{
  position: absolute;
  right: 10px;
  top: 50px;
  width: 270px;
  background-color: rgba(255,255,255,0.9);
  .window-body{
    padding: 10px 30px;
    .btn-line{
      display: flex;
      justify-content: center;
      margin-top: 20px;
      margin-bottom: 20px;
    }
  }
}
.window-title{
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px 10px;
  .close-icon:hover{
    cursor: pointer;
    color: #36a3f7;
  }
}
</style>