<template> 
 | 
  <div class="add-sales-lead"> 
 | 
    <el-dialog 
 | 
      :title="editSalesLeadConfig.title + '销售线索'" 
 | 
      :visible.sync="editConfig.visible" 
 | 
      :width="dialogWidth" 
 | 
      :before-close="handleClose" 
 | 
    > 
 | 
      <el-form 
 | 
        ref="form" 
 | 
        :model="editConfig.infomation" 
 | 
        :rules="rules" 
 | 
        label-position="right" 
 | 
        label-width="308px" 
 | 
        size="mini" 
 | 
      > 
 | 
        <!-- 信息 --> 
 | 
        <div class="basic-info"> 
 | 
          <!-- 基本信息 --> 
 | 
          <div v-if="isUnflod" class="basic-info-title">基本信息</div> 
 | 
          <div class="basic-info-view"> 
 | 
            <el-row> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="客户名称" prop="name"> 
 | 
                  <el-input v-model="editConfig.infomation.name"></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="销售线索编号" prop="number"> 
 | 
                  <el-input v-model="editConfig.infomation.number"></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="联系人姓名" prop="contact_name"> 
 | 
                  <el-input v-model="editConfig.infomation.contact_name"></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="联系人职务" prop="contact_position"> 
 | 
                  <el-input v-model="editConfig.infomation.contact_position"></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="手机号码" prop="contact_phone"> 
 | 
                  <el-input v-model="editConfig.infomation.contact_phone"></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="商机状态" prop="businessStatus"> 
 | 
                  <span>{{ editConfig.infomation.businessStatus }}</span> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="商机来源" prop="sales_sources_id"> 
 | 
                  <div class="common-select"> 
 | 
                    <el-select 
 | 
                      v-model="editConfig.infomation.sales_sources_id" 
 | 
                      placeholder="请选择" 
 | 
                      class="common-select-sel" 
 | 
                      size="mini" 
 | 
                    > 
 | 
                      <el-option 
 | 
                        v-for="item in businessSourceOptions" 
 | 
                        :key="item.id" 
 | 
                        :label="item.name" 
 | 
                        :value="item.id" 
 | 
                      > 
 | 
                      </el-option> 
 | 
                    </el-select> 
 | 
                    <div class="common-select-btn" @click="editDropdownBox"> 
 | 
                      <i class="el-icon-setting"></i> 
 | 
                    </div> 
 | 
                  </div> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="负责人" prop="member_id"> 
 | 
                  <el-select v-model="editConfig.infomation.member_id" placeholder="请选择" size="mini"> 
 | 
                    <el-option v-for="item in ownerOptions" :key="item.id" :label="item.username" :value="item.id"> 
 | 
                    </el-option> 
 | 
                  </el-select> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
          </div> 
 | 
          <!-- 地址信息 --> 
 | 
          <div v-if="isUnflod" class="basic-info-title">地址信息</div> 
 | 
          <div v-if="isUnflod" class="basic-info-view"> 
 | 
            <!-- <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="定位" prop="position"> 
 | 
                  <el-input v-model="editConfig.infomation.position"></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="地图" prop="map"> 
 | 
                  <div style="height: 100px"></div> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> --> 
 | 
            <el-row> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="国家" prop="country_id"> 
 | 
                  <div class="common-select"> 
 | 
                    <el-select 
 | 
                      v-model="editConfig.infomation.country_id" 
 | 
                      placeholder="请选择" 
 | 
                      class="common-select-sel" 
 | 
                      size="mini" 
 | 
                    > 
 | 
                      <el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id"> 
 | 
                      </el-option> 
 | 
                    </el-select> 
 | 
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div> 
 | 
                  </div> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="省份" prop="province_id"> 
 | 
                  <div class="common-select"> 
 | 
                    <el-select 
 | 
                      v-model="editConfig.infomation.province_id" 
 | 
                      placeholder="请选择" 
 | 
                      class="common-select-sel" 
 | 
                      size="mini" 
 | 
                    > 
 | 
                      <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id"> 
 | 
                      </el-option> 
 | 
                    </el-select> 
 | 
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div> 
 | 
                  </div> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="城市" prop="city_id"> 
 | 
                  <div class="common-select"> 
 | 
                    <el-select 
 | 
                      v-model="editConfig.infomation.city_id" 
 | 
                      placeholder="请选择" 
 | 
                      class="common-select-sel" 
 | 
                      size="mini" 
 | 
                    > 
 | 
                      <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id"> 
 | 
                      </el-option> 
 | 
                    </el-select> 
 | 
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div> 
 | 
                  </div> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="12"> 
 | 
                <el-form-item label="区域" prop="region_id"> 
 | 
                  <div class="common-select"> 
 | 
                    <el-select 
 | 
                      v-model="editConfig.infomation.region_id" 
 | 
                      placeholder="请选择" 
 | 
                      class="common-select-sel" 
 | 
                      size="mini" 
 | 
                    > 
 | 
                      <el-option v-for="item in regionOptions" :key="item.id" :label="item.name" :value="item.id"> 
 | 
                      </el-option> 
 | 
                    </el-select> 
 | 
                    <div class="common-select-btn"><i class="el-icon-setting"></i></div> 
 | 
                  </div> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="地址" prop="address"> 
 | 
                  <el-input 
 | 
                    type="textarea" 
 | 
                    :autosize="{ minRows: 2, maxRows: 4 }" 
 | 
                    placeholder="请输入内容" 
 | 
                    v-model="editConfig.infomation.address" 
 | 
                  ></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
          </div> 
 | 
          <!-- 备注信息 --> 
 | 
          <div v-if="isUnflod" class="basic-info-title">备注信息</div> 
 | 
          <div v-if="isUnflod" class="basic-info-view"> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="备注" prop="desc"> 
 | 
                  <el-input 
 | 
                    type="textarea" 
 | 
                    :autosize="{ minRows: 2, maxRows: 4 }" 
 | 
                    placeholder="请输入内容" 
 | 
                    v-model="editConfig.infomation.desc" 
 | 
                  ></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
          </div> 
 | 
        </div> 
 | 
        <!-- 展开收起 --> 
 | 
        <div v-if="editConfig.title === '新建'" class="unflod-collapse" @click="unflodCollapseClick"> 
 | 
          <div>{{ unflodCollapseStr }}</div> 
 | 
          <div v-if="isUnflod"><i class="el-icon-arrow-up"></i></div> 
 | 
          <div v-else><i class="el-icon-arrow-down"></i></div> 
 | 
        </div> 
 | 
      </el-form> 
 | 
      <div slot="footer"> 
 | 
        <el-button type="primary" size="small" @click="saveClick('form')">保 存</el-button> 
 | 
        <el-button size="small" @click="editConfig.visible = false">取 消</el-button> 
 | 
      </div> 
 | 
      <!-- 编辑下拉框 --> 
 | 
      <EditDropdownDialog v-if="editDropdownConfig.editVisible" :edit-dropdown-config="editDropdownConfig" /> 
 | 
    </el-dialog> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import EditDropdownDialog from "@/views/other/commonDialog/EditDropdownDialog" 
 | 
import { getAddSalesLeads, getUpdateSalesLeads } from "@/api/client/salesLead" 
 | 
import { getAllData } from "@/api/client/client" 
 | 
  
 | 
export default { 
 | 
  name: "AddSalesLeadDialog", 
 | 
  props: { 
 | 
    editSalesLeadConfig: { 
 | 
      type: Object, 
 | 
      default: () => { 
 | 
        return { 
 | 
          visible: false, 
 | 
          title: "新建", 
 | 
          infomation: { 
 | 
            name: "", 
 | 
            number: "LEA50", 
 | 
            contact_name: "", 
 | 
            contact_position: "", 
 | 
            contact_phone: "", 
 | 
            businessStatus: "", 
 | 
            sales_sources_id: "", 
 | 
            member_id: "", 
 | 
            country_id: "", 
 | 
            province_id: "", 
 | 
            city_id: "", 
 | 
            region_id: "", 
 | 
            address: "", 
 | 
            desc: "", 
 | 
            id: "" 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  components: { EditDropdownDialog }, 
 | 
  computed: { 
 | 
    searchCommonHeight() { 
 | 
      return this.$refs.searchCommonView.offsetHeight 
 | 
    } 
 | 
  }, 
 | 
  data() { 
 | 
    return { 
 | 
      dialogWidth: "80%", 
 | 
      editConfig: this.editSalesLeadConfig, 
 | 
      rules: { 
 | 
        name: [{ required: true, message: "请输入客户名称", trigger: "blur" }], 
 | 
        number: [{ required: true, message: "请输入销售线索编号", trigger: "blur" }], 
 | 
        businessStatus: [{ required: true, message: "请输入商机状态", trigger: "blur" }], 
 | 
        sales_sources_id: [{ required: true, message: "请选择商机来源", trigger: "change" }] 
 | 
      }, 
 | 
      businessSourceOptions: [], 
 | 
      ownerOptions: [ 
 | 
        { value: "1", label: "BOSS" }, 
 | 
        { value: "2", label: "Mia" }, 
 | 
        { value: "3", label: "财务" }, 
 | 
        { value: "4", label: "市场" }, 
 | 
        { value: "5", label: "系统管理员" }, 
 | 
        { value: "6", label: "销售" }, 
 | 
        { value: "7", label: "销售总监" } 
 | 
      ], 
 | 
      countryOptions: [], // 国家 
 | 
      provinceOptions: [], // 省份 
 | 
      cityOptions: [], // 城市 
 | 
      regionOptions: [], // 区域 
 | 
      unflodCollapseStr: "收起", 
 | 
      isUnflod: true, 
 | 
      editDropdownConfig: { 
 | 
        editVisible: false, 
 | 
        title: "", 
 | 
        infomation: {} 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  created() { 
 | 
    this.getCommonData() 
 | 
  }, 
 | 
  methods: { 
 | 
    getCommonData() { 
 | 
      getAllData() 
 | 
        .then((res) => { 
 | 
          console.log(res) 
 | 
          this.businessSourceOptions = res.data.sales_source 
 | 
          this.countryOptions = res.data.country 
 | 
          this.provinceOptions = res.data.province 
 | 
          this.cityOptions = res.data.city 
 | 
          this.regionOptions = res.data.region 
 | 
        }) 
 | 
        .catch((err) => { 
 | 
          console.log(err) 
 | 
        }) 
 | 
    }, 
 | 
    handleClose() { 
 | 
      this.editConfig.visible = false 
 | 
    }, 
 | 
    // 保存 
 | 
    saveClick(formName) { 
 | 
      this.$refs[formName].validate((valid) => { 
 | 
        if (valid) { 
 | 
          console.log(this.editConfig.infomation) 
 | 
          let params = { 
 | 
            city_id: this.editConfig.infomation.city_id || 0, 
 | 
            contact_name: this.editConfig.infomation.contact_name || "", 
 | 
            contact_phone: this.editConfig.infomation.contact_phone || "", 
 | 
            contact_position: this.editConfig.infomation.contact_position || "", 
 | 
            country_id: this.editConfig.infomation.country_id || 0, 
 | 
            id: this.editConfig.title === "新建" ? 0 : this.editConfig.infomation.id, 
 | 
            desc: this.editConfig.infomation.desc || "", 
 | 
            member_id: parseInt(this.editConfig.infomation.member_id) || 0, 
 | 
            name: this.editConfig.infomation.name || "", 
 | 
            number: this.editConfig.infomation.number || "", 
 | 
            province_id: this.editConfig.infomation.province_id || 0, 
 | 
            region_id: this.editConfig.infomation.region_id || 0, 
 | 
            sales_sources_id: this.editConfig.infomation.sales_sources_id || 0 
 | 
          } 
 | 
          console.log(params) 
 | 
          if (this.editConfig.title === "新建") { 
 | 
            getAddSalesLeads(params) 
 | 
              .then((res) => { 
 | 
                console.log(res) 
 | 
                this.editConfig.visible = false 
 | 
                if (res.code === 200) { 
 | 
                  this.$message({ 
 | 
                    message: "添加成功", 
 | 
                    type: "success" 
 | 
                  }) 
 | 
                  this.$parent.getData() 
 | 
                } 
 | 
              }) 
 | 
              .catch((err) => { 
 | 
                console.log(err) 
 | 
              }) 
 | 
          } else { 
 | 
            getUpdateSalesLeads(params) 
 | 
              .then((res) => { 
 | 
                console.log(res) 
 | 
                this.editConfig.visible = false 
 | 
                if (res.code === 200) { 
 | 
                  this.$message({ 
 | 
                    message: "编辑成功", 
 | 
                    type: "success" 
 | 
                  }) 
 | 
                  this.$parent.getData() 
 | 
                } 
 | 
              }) 
 | 
              .catch((err) => { 
 | 
                console.log(err) 
 | 
              }) 
 | 
          } 
 | 
        } else { 
 | 
          console.log("error submit") 
 | 
          return false 
 | 
        } 
 | 
      }) 
 | 
    }, 
 | 
    // 展开收起 
 | 
    unflodCollapseClick() { 
 | 
      if (this.unflodCollapseStr === "收起") { 
 | 
        this.unflodCollapseStr = "展开更多栏目" 
 | 
        this.isUnflod = false 
 | 
      } else { 
 | 
        this.unflodCollapseStr = "收起" 
 | 
        this.isUnflod = true 
 | 
      } 
 | 
    }, 
 | 
    // 编辑下拉框 
 | 
    editDropdownBox() { 
 | 
      console.log("aaa") 
 | 
      this.editDropdownConfig.editVisible = true 
 | 
      this.editDropdownConfig.title = "商机来源" 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 | 
  
 | 
<!-- Add "scoped" attribute to limit CSS to this component only --> 
 | 
<style lang="scss" scoped> 
 | 
.add-sales-lead { 
 | 
  .basic-info { 
 | 
    .basic-info-title { 
 | 
      background-color: #f4f8fe; 
 | 
      padding-left: 10px; 
 | 
      font-size: 15px; 
 | 
      font-weight: bold; 
 | 
      color: #666; 
 | 
      height: 42px; 
 | 
      line-height: 42px; 
 | 
    } 
 | 
    .basic-info-view { 
 | 
      margin-top: 10px; 
 | 
      padding-right: 40px; 
 | 
      .common-select { 
 | 
        display: flex; 
 | 
        .common-select-sel { 
 | 
          width: 270px; 
 | 
        } 
 | 
        .common-select-btn { 
 | 
          margin-left: 5px; 
 | 
          font-size: 16px; 
 | 
          cursor: pointer; 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
  .unflod-collapse { 
 | 
    display: flex; 
 | 
    height: 30px; 
 | 
    justify-content: center; 
 | 
    align-items: center; 
 | 
    color: #6166d3; 
 | 
  } 
 | 
} 
 | 
</style> 
 |