<template>
  <div>
    <el-form ref="searchForm" :model="searchForm" inline size="mini">
      <el-form-item label="筛选:" label-width="90px">
        <DMRadio v-model="searchForm.quickSearch" :list="quickList" all-text="全部" @change="$emit('search')" />
      </el-form-item>
      <el-form-item label="意向状态:" label-width="90px">
        <DMRadio v-model="searchForm.intentionState" :list="intentionOptions" all-text="全部" @change="$emit('search')" />
      </el-form-item>
      <el-row>
        <el-form-item label="姓名/联系方式">
          <el-input v-model="searchForm.name" placeholder="姓名/联系方式" clearable style="width: 200px" />
        </el-form-item>
        <el-form-item label="线索来源">
          <el-select v-model="searchForm.source" placeholder="选择线索来源" clearable>
            <el-option v-for="dict in sourceOptions" :key="dict.dictValue" :value="dict.dictValue" />
          </el-select>
        </el-form-item>
        <el-form-item label="跟进人员">
          <el-select v-model="searchForm.followUser2" placeholder="选择跟进人员" filterable clearable>
            <el-option v-for="dict in userOptions" :key="dict.id" :label="dict.name" :value="dict.id" />
          </el-select>
        </el-form-item>
        <el-form-item label="创建时间">
          <el-date-picker v-model="createDateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="pickDateChange" />
        </el-form-item>
        <el-form-item label="下次跟进日期">
          <el-date-picker v-model="nextDateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="nextDateChange" />
        </el-form-item>
        <el-form-item label-width="0">
          <el-button type="primary" icon="el-icon-search" @click="$emit('search')">搜索</el-button>
          <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
        </el-form-item>
      </el-row>
    </el-form>
  </div>
</template>
<script>
import DMRadio from '@/components/DMRadio';
export default {
  components: {
    DMRadio
  },
  props: {
    userOptions: {
      type: Array,
      default: () => ([])
    },
    sourceOptions: {
      type: Array,
      default: () => ([])
    },
    form: {
      type: Object,
      default: () => ({})
    }
  },
  data() {
    return {
      searchForm: { ...this.form },
      quickList: [
        { value: 1, label: '我创建的' },
        { value: 2, label: '我的有效' },
        { value: 3, label: '有效线索' },
        { value: 4, label: '今日有效线索' },
        { value: 5, label: '今日跟踪' },
        { value: 6, label: '过期线索' },
        { value: 7, label: '相关线索' },
        { value: 8, label: '撞单线索' }
      ],
      intentionOptions: [],
      createDateRange: [],
      nextDateRange: []
    };
  },
  watch: {
    searchForm: {
      handler(val) {
        this.$emit('update:form', val);
      },
      deep: true
    }
  },
  created() {
    // 意向状态
    this.getDicts('dm_intention_state').then((response) => {
      const list = response.data;
      this.intentionOptions = [];
      list.map(item => {
        this.intentionOptions.push({
          value: item.dictValue,
          label: item.dictLabel
        });
      });
    });
  },
  methods: {
    resetQuery() {
      this.searchForm = {
        name: undefined,
        intentionState: undefined,
        followUser2: undefined,
        source: undefined,
        quickSearch: undefined,
        total: 0
      };
      this.createDateRange = [];
      this.nextDateRange = [];
    },
    pickDateChange() {
      if (this.createDateRange && this.createDateRange.length > 0) {
        this.searchForm.createDateStart = this.createDateRange[0];
        this.searchForm.createDateEnd = this.createDateRange[1];
      } else {
        this.searchForm.createDateStart = undefined;
        this.searchForm.createDateEnd = undefined;
      }
    },
    nextDateChange() {
      if (this.nextDateRange && this.nextDateRange.length > 0) {
        this.searchForm.nextDateStart = this.nextDateRange[0];
        this.searchForm.nextDateEnd = this.nextDateRange[1];
      } else {
        this.searchForm.nextDateStart = undefined;
        this.searchForm.nextDateEnd = undefined;
      }
    }
  }
};
</script>