<style>
.customerDialogBox.add-box .add-tit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 20px;
}

.customerDialogBox.add-box .add-tit p {
  display: flex;
  align-items: center;
  font-weight: bold;
  color: rgba(17, 17, 17, 1);
  font-size: 14px;
}

.customerDialogBox.add-box .add-tit p span {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: rgba(13, 36, 129, 1);
  border-radius: 50%;
  margin-right: 10px;
}

.customerDialogBox.add-box .el-dialog__header {
  padding: 15px 20px;
  background: rgba(255, 255, 255, 1);
}

.customerDialogBox.add-box .dialog-footer {
  text-align: center;
  background-color: rgba(248, 250, 251, 1);
  padding-bottom: 20px;
}

.customerDialogBox.add-box .el-dialog__footer {
  padding: 0;
}

.customerDialogBox.add-box .el-dialog__body {
  background-color: rgba(248, 250, 251, 1);
  padding-top: 20px;
  max-height: 500px;
  overflow: auto;
}

.customerDialogBox .add-box-btn.el-button {
  border-radius: 0;
  background-color: rgba(13, 36, 129, 0.8);
  border-color: rgba(13, 36, 129, 0.8);
  color: white;
  padding: 12px 43px;
}

.customerDialogBox .add-box-btn.el-button:hover {
  background-color: rgba(13, 36, 129, 1);
  border-color: rgba(13, 36, 129, 1);
  color: white;
}

.customerDialogBox .add-box-btn.el-button.add-box-cancel {
  color: rgba(13, 36, 129, 0.8);
  background-color: white;
}

.customerDialogBox .add-box-btn.el-button.add-box-cancel:hover {
  color: rgba(13, 36, 129, 1);
  background-color: white;
}

.customerDialogBox .el-input .el-input-group__append {
  background-color: rgba(13, 36, 129, 1);
  border-color: rgba(13, 36, 129, 1);
  color: #fff;
}

.customerDialogBox .form-box .form-box-tit {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.customerDialogBox .form-box .radius {
  display: flex;
  width: 4px;
  height: 4px;
  background: rgba(255, 164, 117, 1);
  border-radius: 50%;
  margin-right: 10px;
}

.customerDialogBox .up-img-box .uib-item {
  margin-right: 30px;
  width: 120px;
  height: 120px;
  background-color: white;
  position: relative;
  margin-bottom: 30px;
}

.customerDialogBox .up-img-box .uib-item p {
  position: absolute;
  bottom: -30px;
  font-size: 12px;
  text-align: center;
  width: 100%;
}

.customerDialogBox .up-img-box .uib-item:hover .imgzhe-btn {
  opacity: 1;
}

.customerDialogBox .imgzhe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}

.customerDialogBox .imgzhe .imgzhe-btn {
  background: rgba(0, 0, 0, 0.6);
  width: 100%;
  height: 100%;
  text-align: center;
  line-height: 120px;
  position: absolute;
  top: 0;
  opacity: 1;
  transition: all linear 0.5s;
}

.customerDialogBox .imgzhe .imgzhe-btn i {
  font-size: 22px;
  margin-right: 5px;
  color: white;
  cursor: pointer;
}

.customerDialogBox .up-ctrl {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.customerDialogBox .up-ctrl > div {
  width: 100%;
  height: 100%;
  text-align: center;
  line-height: 140px;
}

.MyEditForm-item-checkd.MyEditForm-item .el-form-item {
  width: 80%;
}

.MyEditForm-item-checkd .el-checkbox {
  position: absolute;
  right: -50px;
  top: 10px;
}

._addPassengerEconomicCapability {
  line-height: 22px;
  overflow: hidden;
  width: 100%;
}

._addPassengerEconomicCapability span {
  display: inline-block;
  padding: 2px 4px;
  border: 1px solid #c0c4cc;
  margin: 1px;
  cursor: pointer;
  color: #c0c4cc;
  font-size: 12px;
  border-radius: 4px;
}

._addPassengerEconomicCapability span._active {
  border: 1px solid rgb(123, 194, 245);
  color: rgb(123, 194, 245);
}

.el-collapse-item__wrap {
  background-color: rgba(248, 250, 251, 1);
}

.el-col .el-col-8 {
  width: 31% !important;
  margin-right: 15px;
}

.el-collapse-item__header {
  padding-left: 10px;
}

.el-collapse-item__wrap {
  padding-top: 15px;
}
</style>
<template>
    <el-dialog :visible.sync="dialogTableVisible" @closed="closedDialog" :close-on-click-modal="false"
        class="add-box add-box1 customerDialogBox">
        <div class="add-tit" slot="title">
            <p><span></span>{{name}}</p>
            <span icon="el-icon-close"></span>
        </div>
        <div class="form-box" v-if="show">
            <el-form :model="form" ref="form" class="MyEditForm" :rules="rules">
                <p class="form-box-tit"><span class="radius"></span> 基本信息</p>
                <el-row :gutter="30">
                    <el-col :span="8">
                        <div class="MyEditForm-item label-pad-left">
                            <el-form-item label="线索名称" prop="ClueName ">
                                <el-input placeholder="请填写线索名称" v-model="form.ClueName "></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item label-pad-left">
                            <el-form-item label="客人需求" prop="ClueDemand ">
                                <el-input placeholder="请填写需求" v-model="form.ClueDemand "></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="微信号" prop="WeChatNo">
                                <el-input placeholder="请输入微信号" ref="WeChatNo" v-model="form.WeChatNo"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="手机号码" prop="MobilePhone">
                                <el-input placeholder="请输入手机号码" ref="MobilePhone" v-model="form.MobilePhone"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>

                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="客户来源" prop="CustomerSourceType">
                                <el-select v-model="form.CustomerSourceType" placeholder="请选择客户来源" @change="changeSourceHandler">
                                    <el-option v-for="item in SourceEnum" :key="item.ID" :label="item.Name"
                                        :value="item.ID">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8" v-if="form.CustomerSourceType === 6">
                        <div class="MyEditForm-item">
                            <el-form-item label="客户来源信息" prop="CustomerSource">
                                <el-input type="textarea" placeholder="请输入客户来源信息" v-model="form.CustomerSource">
                                </el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8" v-if="SourceSegmentList && SourceSegmentList.length>0">
                        <div class="MyEditForm-item label-pad-left">
                            <el-form-item  label="来源细分" prop="SourceAccount">
                                <el-select placeholder="请选择来源途径" v-model="form.SourceAccount">
                                    <el-option v-for="item in SourceSegmentList" :key="item.ID" :label="item.Name"
                                    :value="item.ID"></el-option>
                                </el-select>
                            </el-form-item>
                        </div>
                    </el-col>
</el-row>

<el-col :span="24">
    <div class="MyEditForm-item label-pad-left">
        <el-form-item label="备注" prop="Remarks">
            <el-input type="textarea" placeholder="客户的特殊喜好" v-model="form.Remarks"></el-input>
        </el-form-item>
    </div>
</el-col>
</el-form>
</div>

<div class="form-box" v-if="show">
    <el-collapse v-model="activeNames">
        <el-collapse-item title="更多信息" name="3">
            <el-form :model="form" ref="form" class="MyEditForm">
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="身份证号码" prop="IdCard">
                            <el-input placeholder="请输入客户身份证号码" v-model="form.IdCard"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="中文姓" prop="SurName">
                            <el-input placeholder="请输入中文姓" v-model="form.SurName" @input="Transformation(form.SurName,'SurName')"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="中文名" prop="Name">
                            <el-input placeholder="请输入中文名" v-model="form.Name" @input="Transformation(form.Name,'Name')"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="性别" prop="Sex">
                            <el-select v-model="form.Sex">
                                <el-option :key="0" label="保密" :value="0"></el-option>
                                <el-option :key="1" label="男" :value="1"></el-option>
                                <el-option :key="2" label="女" :value="2"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="英文姓" prop="ESurName">
                            <el-input placeholder="请输入英文姓" v-model="form.ESurName"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="英文名" prop="EName">
                            <el-input placeholder="请输入英文名" v-model="form.EName"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="生日">
                            <el-date-picker :clearable="false" value-format="yyyy-MM-dd HH:mm:ss" v-model="form.Birthday" type="date" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="出生地">
                            <el-input placeholder="请输入出生地" v-model="form.BirthdayAddress"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="护照号">
                            <el-input placeholder="请输入护照号" v-model="form.PassportNo"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="护照号签发地">
                            <el-input placeholder="请输入护照号签发地" v-model="form.PassportAddress"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="护照签发日期">
                            <el-date-picker :clearable="false" value-format="yyyy-MM-dd HH:mm:ss" v-model="form.PassportIssued" type="date" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="护照过期日">
                            <el-date-picker :clearable="false" value-format="yyyy-MM-dd HH:mm:ss" v-model="form.PassportExpiry" type="date" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="国籍" prop="Nationality">
                            <el-select v-model="form.Nationality" placeholder="国家">
                                <el-option v-for="item in countryList" :key="item.ID" :label="item.Name" :value="item.ID">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="婚姻">
                            <el-select v-model="form.Marriage">
                                <el-option :key="0" label="保密" :value="0"></el-option>
                                <el-option :key="1" label="未婚" :value="1"></el-option>
                                <el-option :key="2" label="已婚" :value="2"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="家庭居住地">
                            <el-input placeholder="请输入家庭居住地" v-model="form.Address"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="家庭详细地址">
                            <el-input placeholder="请输入详细地址" v-model="form.AddressDetail"></el-input>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="身份确认">
                            <el-select v-model="form.IdentityType">
                                <el-option v-for="item in VisaIdentityTypeEnum" :key="item.Id" :label="item.Name" :value="item.Name"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item MyEditForm-item-checkd label-pad-left">
                        <el-form-item label="出境记录">
                            <el-select v-model="form.HistoryRecord" filterable>
                                <el-option v-for="item in VisaDeparturesType" :key="item.Id" :label="item.Name" :value="item.Name">
                                </el-option>
                            </el-select>
                            <el-checkbox v-model='form.IsRecommend' :true-label='1' :false-label='2'>推荐
                            </el-checkbox>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="职务" prop="Duty">
                            <el-select v-model="form.Duty" filterable>
                                <el-option v-for="item in VisaDutyTypeEnum" :key="item.Id" :label="item.Name" :value="item.Name"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="出游类型" prop="TravelType">
                            <el-select v-model="form.TravelType" filterable>
                                <el-option v-for="item in TravelTypeList" :key="item.Code" :label="item.Content" :value="item.Code"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="单位类型" prop="UnitType">
                            <el-select v-model="form.UnitType" filterable>
                                <el-option v-for="item in UnitTypeList" :key="item.Code" :label="item.Content" :value="item.Code"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="职务类型" prop="DutyType">
                            <el-select v-model="form.DutyType" filterable>
                                <el-option v-for="item in DutyTypeList" :key="item.Code" :label="item.Content" :value="item.Code"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="MyEditForm-item label-pad-left">
                        <el-form-item label="高校学生">
                            <el-select v-model="form.IsHightSchool">
                                <el-option :key="1" label="是" :value="1"></el-option>
                                <el-option :key="2" label="否" :value="2"></el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                </el-col>
                
                <template v-for='(item,index) in EconomicCapabilityS'>
                        <el-col :span="8" :key="index" v-if='item.isShow'>
                            <div class="MyEditForm-item">
                                <el-form-item :label="item.Name">
                                    <el-input v-model="item.Content" type="text" maxlength="50"></el-input>
                                </el-form-item>
                            </div>
                        </el-col>
                    </template>


<div class="_addPassengerEconomicCapability">
    <span v-for="(item, index) in EconomicCapabilityS" :key="index" @click="addEconomicCapability(item)" :class="{_active:item.isShow}">{{item.Name}}</span>
</div>

</el-form>

</el-collapse-item>
</el-collapse>

</div>
<div slot="footer" class="dialog-footer">
    <el-button type="primary" class="add-box-btn" @click="submitForm('form')">确 定</el-button>
    <el-button class="add-box-btn add-box-cancel" @click="dialogTableVisible = false, resetForm('form')">取 消
    </el-button>
</div>
<el-dialog :visible.sync="dialogVisible">
    <img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-dialog>
</template>
<script>
export default {
  props: {
    CustomerId: {
      type: Number,
      default: 0,
    },
    name: {
      type: String,
      default: "新建客户",
    },
  },
  data() {
    let checkPhone = (rule, value, callback) => {
      if (!value) {
        return callback(new Error("手机号不能为空"));
      } else {
        const reg = /^1[3|4|5|7|8][0-9]\d{8}$/;
        if (reg.test(value)) {
          callback();
        } else {
          return callback(new Error("请输入正确的手机号"));
        }
      }
    };
    var validateWechatAndPhone = (rule, value, callback) => {
      if (!this.form.WeChatNo && !this.form.MobilePhone) {
        callback(new Error("微信号或手机号，请填写一个"));
      } else {
        //console.log(this.$refs);
        if (!this.form.WeChatNo || !this.form.MobilePhone) {
          this.$refs["form"].validateField("WeChatNo");
          this.$refs["form"].validateField("MobilePhone");
        }
        callback();
      }
    };
    var validateSourceAccount = (rule, value, callback) => {
      if (this.form.CustomerSourceType != 6) {
        if (
          this.form.SourceAccount == "" &&
          this.SourceSegmentList &&
          this.SourceSegmentList.length > 0
        ) {
          callback(new Error("请选择细分渠道选项"));
        } else {
          callback();
        }
      } else {
        callback();
      }
    };
    return {
      dialogTableVisible: false,
      SourceEnum: [],
      countryList: "",
      provinceList: "",
      dialogImageUrl: "",
      dialogVisible: false,
      cityList: "",
      district: "",
      jycs: [],
      fileList: [],
      CustomerLevelEnum: [],
      CustomerBrandList: [],
      activeNames: ["0", "1"],
      form: {
        Id: 0,
        SurName: "",
        Name: "",
        Sex: "",
        EName: "",
        ESurName: "",
        Birthday: "",
        BirthdayAddress: "",
        PassportAddress: "",
        PassportExpiry: "",
        PassportNo: "",
        Nationality: "",
        Marriage: "",
        Address: "",
        AddressDetail: "",
        HistoryRecord: "",
        IdentityType: "",
        Duty: "",
        EconomicCapabilityList: [],
        Remarks: "",
        TravelType: "",
        UnitType: "",
        DutyType: "",
        IsHightSchool: "",
        IsRecommend: "",
        PassportIssued: "",
        IssuingAuthority: "",
        IdCard: "",
        MobilePhone: "",
        CustomerSourceType: "",
        CustomerSource: "",
        ClueName: "",
        ClueDemand: "",
        WeChatNo: "",
        SourceAccount: "",
      },
      VisaIdentityTypeEnum: [],
      VisaDeparturesType: [],
      VisaDutyTypeEnum: [],
      TravelTypeList: [],
      DutyTypeList: [],
      UnitTypeList: [],
      rules: {
        ClueName: [
          {
            required: true,
            message: "请填写线索名称",
            trigger: "blur",
          },
        ],
        ClueDemand: [
          {
            required: true,
            message: "请填写客人需求",
            trigger: "blur",
          },
        ],
        // Remarks: [{
        //     required: true,
        //     message: '请填写备注',
        //     trigger: 'blur'
        // }],
        WeChatNo: [
          {
            required: true,
            validator: validateWechatAndPhone,
            trigger: "blur",
          },
        ],
        MobilePhone: [
          {
            required: true,
            validator: validateWechatAndPhone,
            trigger: "blur",
          },
        ],
        CustomerSource: [
          {
            required: true,
            message: "请输入客户来源信息",
            trigger: "blur",
          },
        ],
        CustomerSourceType: [
          {
            required: true,
            message: "请选择客户来源",
            trigger: "change",
          },
        ],
        SourceAccount: [
          {
            required: true,
            validator: validateSourceAccount,
            trigger: "blur",
          },
        ],
      },
      show: true,
      CustomerList: [],
      EconomicCapabilityS: [],
      // 小红书
      SourceSegmentList: [],
    };
  },
  watch: {
    CustomerId: {
      handler(val, oldVal) {
        // console.log(val)
      },
      deep: true,
    },
  },
  mounted() {
    this.GetCustomerLevelEnum();
    this.getJycs();
    this.getCustomerBrandList();
    this.getCountryList();
    this.GetCustomerSourceEnum();
    this.getCustomerList();
    this.getVisaIdentityTypeEnum();
    this.getVisaDeparturesType();
    this.getVisaDutyTypeEnum();
    this.getTravelType();
    this.getUnitType();
    this.getDutyType();
    this.getEconomicCapability();
    //this.getSourceSegmentList();
    let $this = this;
    setTimeout(() => {
      $this.dialogTableVisible = true;
    }, 50);
    if (this.CustomerId !== 0) {
      this.apipost(
        "/api/Customer/GetAllGuesstCustomerModel",
        {
          ID: this.CustomerId,
        },
        (res) => {
          if (res.data.resultCode == 1) {
            let data = res.data.data;
            if (!data.HousePhotos) {
              data.HousePhotos = [];
            }
            if (!data.BusinessCardPhotos) {
              data.BusinessCardPhotos = [];
            }
            if (!data.Images) {
              data.Images = [];
            }
            if (!data.CustomerSourceType) {
              data.CustomerSourceType = "";
            }
            if (!data.CustomerSource) {
              data.CustomerSource = "";
            }
            if (!data.Province) {
              data.Province = "";
            }
            if (!data.Country) {
              data.Country = "";
            }
            if (!data.City) {
              data.City = "";
            }
            if (!data.District) {
              data.District = "";
            }
            if (data.Country) {
              this.getProvinceList2(data.Country, 1);
            }
            if (data.Province) {
              this.getProvinceList2(data.Province, 2);
            }
            if (data.City) {
              this.getProvinceList2(data.City, 3);
            }
            this.form = data;
          }
        }
      );
    }
  },

  /* /api/Customer/GetGuestSourceAccountList */
  methods: {
    Transformation(val, type) {
      let text = this.pinyin(val, {
        style: this.pinyin.STYLE_NORMAL,
      });
      if (type == "SurName") {
        let upText = text.join("").toLocaleUpperCase();
        this.form.ESurName = upText;
      }
      if (type == "Name") {
        let upText = text.join("").toLocaleUpperCase();
        this.form.EName = upText;
      }
    },
    getEconomicCapability() {
      //获取经济能力
      this.apipost2(
        "dict_post_GetList",
        {
          Key: "SK_Visa_EconomicCapability",
          IsTimer: 1,
        },
        (res) => {
          this.EconomicCapabilityS = res.data.data;
          if (this.CustomerId != 0) {
            this.form.Id = this.CustomerId;
            this.apipost(
              "/api/Customer/GetAllGuesstCustomerModel",
              {
                ID: this.CustomerId,
              },
              (res) => {
                if (res.data.resultCode == 1) {
                  let obj = res.data.data;
                  obj.TravelType = obj.TravelType.toString();
                  obj.UnitType = obj.UnitType.toString();
                  obj.DutyType = obj.DutyType.toString();
                  this.form = obj;
                  this.EconomicCapabilityS.forEach((x) => {
                    if (obj.EconomicCapabilityList) {
                      obj.EconomicCapabilityList.forEach((y) => {
                        if (x.ID == y.ID) {
                          x.isShow = true;
                          x.Content = y.Value;
                        }
                      });
                    }
                  });
                }
              }
            );
          }
        },
        (err) => {}
      );
    },
    addLittleRedBook() {},
    addEconomicCapability(obj) {
      // 添加经济能力说明
      this.EconomicCapabilityS.forEach((x) => {
        if (x.ID == obj.ID) {
          x.isShow ? (x.isShow = false) : (x.isShow = true);
        }
      });
      this.$forceUpdate();
    },
    getDutyType() {
      this.apipost2(
        "dict_get_GetDictValueCommonList",
        {
          Key: "SK_CRM_DutyType",
        },
        (res) => {
          if (res.data.resultCode == 1) {
            this.DutyTypeList = res.data.data;
          } else {
          }
        },
        (err) => {}
      );
    },
    getUnitType() {
      this.apipost2(
        "dict_get_GetDictValueCommonList",
        {
          Key: "SK_CRM_UnitType",
        },
        (res) => {
          if (res.data.resultCode == 1) {
            this.UnitTypeList = res.data.data;
          } else {
          }
        },
        (err) => {}
      );
    },
    getTravelType() {
      this.apipost2(
        "dict_get_GetDictValueCommonList",
        {
          Key: "SK_CRM_TravelType",
        },
        (res) => {
          if (res.data.resultCode == 1) {
            this.TravelTypeList = res.data.data;
          } else {
          }
        },
        (err) => {}
      );
    },
    getVisaDutyTypeEnum() {
      //获取职务
      let msg = {};
      this.apipost2(
        "dmc_get_visa_GetVisaDutyTypeEnum",
        msg,
        (res) => {
          if (res.data.resultCode == 1) {
            this.VisaDutyTypeEnum = res.data.data;
          } else {
            this.$message.error(res.data.message);
          }
        },
        (err) => {}
      );
    },
    getVisaDeparturesType() {
      //获取出境记录状态
      let msg = {};
      this.apipost2(
        "dmc_get_visa_GetVisaDeparturesTypeEnum",
        msg,
        (res) => {
          if (res.data.resultCode == 1) {
            this.VisaDeparturesType = res.data.data;
          } else {
            this.$message.error(res.data.message);
          }
        },
        (err) => {}
      );
    },
    getVisaIdentityTypeEnum() {
      //获取身份证明
      let msg = {};
      this.apipost2(
        "dmc_get_visa_GetVisaIdentityTypeEnum",
        msg,
        (res) => {
          if (res.data.resultCode == 1) {
            this.VisaIdentityTypeEnum = res.data.data;
          } else {
            this.$message.error(res.data.message);
          }
        },
        (err) => {}
      );
    },
    getCustomerList() {
      this.apipost("/api/Customer/GetCustomerListByCreateInfo", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.CustomerList = res.data.data;
        }
      });
    },
    closedDialog() {
      this.MsgBus.$emit("closeCustomerDialogBox");
    },
    addData() {
      if (this.form.CustomerID === "") {
        this.form.CustomerID = 0;
      }
      this.form.EconomicCapabilityList = [];
      this.EconomicCapabilityS.forEach((x) => {
        if (x.isShow == true) {
          this.form.EconomicCapabilityList.push({
            Key: x.Name,
            Value: x.Content,
            ID: x.ID,
          });
        }
      });
      this.apipost(
        "/api/Customer/CreateGuestCustomerClue",
        this.form,
        (res) => {
          if (res.data.resultCode == 1) {
            this.dialogTableVisible = false;
            // 有id 发送更新抽屉消息
            if (this.CustomerId !== 0) {
              this.$message.success("修改直客成功");
              this.MsgBus.$emit("RefreshInfoBox");
            } else {
              this.$message.success("新建直客成功");
            }
            this.$emit("getList");
            this.resetForm("form");
          }
        }
      );
    },
    submitForm(addMsg) {
      //提交创建、修改表单
      this.$refs[addMsg].validate((valid) => {
        if (valid) {
          this.addData();
        } else {
          return false;
        }
      });
    },
    resetForm(formName) {
      // 重置表单
      this.form = {
        Id: 0,
        SurName: "",
        Name: 0,
        Sex: "",
        EName: "",
        ESurName: 0,
        Birthday: "",
        BirthdayAddress: 2,
        PassportAddress: "",
        PassportExpiry: "",
        PassportNo: "",
        Nationality: "",
        Marriage: "",
        Address: "",
        AddressDetail: "",
        HistoryRecord: "",
        IdentityType: "",
        Duty: "",
        EconomicCapabilityList: [],
        Remarks: "",
        TravelType: "",
        UnitType: "",
        DutyType: "",
        IsHightSchool: "",
        IsRecommend: "",
        PassportIssued: "",
        IssuingAuthority: "",
        IdCard: "",
        MobilePhone: "",
        CustomerSourceType: "",
        CustomerSource: "",
        ClueName: "",
        WeChatNo: "",
        SourceAccount: "",
      };
      this.$refs[formName].resetFields();
    },
    getCustomerBrandList() {
      // 获取品牌
      this.apipost2(
        "app_get_customer_brand",
        {},
        (res) => {
          if (res.data.resultCode == 1) {
            this.CustomerBrandList = res.data.data;
          } else {
            this.$message.error(res.data.message);
          }
        },
        (err) => {}
      );
    },
    getJycs() {
      this.apipost2(
        "app_today_visit_GetCustomerPremisesEnum",
        {},
        (res) => {
          if (res.data.resultCode == 1) {
            this.jycs = res.data.data;
          }
        },
        (err) => {}
      );
    },
    GetCustomerLevelEnum() {
      this.apipost("/api/Customer/GetCustomerLevelEnum", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.CustomerLevelEnum = res.data.data;
        }
      });
    },
    GetCustomerSourceEnum() {
      this.SourceEnum = [];
      this.apipost("/api/Customer/GetCustomerSourceEnum", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.SourceEnum = res.data.data;
        }
        /* if (res.data.resultCode == 1) {
                        let data = res.data.data
                        let addList = function(arr) {
                            arr.forEach(item => {
                                item.SourceSegmentList = []
                            });
                        };
                        addList(data);
                        this.SourceEnum = res.data.data;
                        this.getSourceSegmentList();
                    } */
      });
    },
    changeSourceHandler(e) {
      if (e != 6) {
        this.getSourceSegmentList(e);
        this.form.CustomerSource = "";
      } else {
        this.SourceSegmentList = [];
        this.form.SourceAccount = "";
      }
    },
    //来源细分
    getSourceSegmentList(id) {
      this.apipost(
        "/api/Customer/GetGuestSourceAccountList",
        { SourceTypeId: id },
        (res) => {
          if (res.data.resultCode == 1) {
            this.SourceSegmentList = res.data.data;
            this.form.SourceAccount = "";
          }
        }
      );
    },
    getProvinceList2(ID, type) {
      let msg = {
        Id: ID,
      };
      this.apipost2(
        "dict_post_Destination_GetChildList",
        msg,
        (res) => {
          if (type == 1) {
            this.provinceList = res.data.data;
          } else if (type == 2) {
            this.cityList = res.data.data;
          } else if (type == 3) {
            this.district = res.data.data;
          }
        },
        (err) => {}
      );
    },
    //获取国家
    getCountryList() {
      this.apipost2(
        "dict_post_Destination_GetCountry",
        {},
        (res) => {
          this.countryList = res.data.data;
        },
        (err) => {}
      );
    },
    //根据省份获取城市
    getProvinceList(ID, type) {
      let msg = {
        Id: ID,
      };
      if (type == 1) {
        this.form.Province = "";
        this.form.City = "";
        this.form.District = "";
      } else if (type == 2) {
        this.form.City = "";
        this.form.District = "";
      } else if (type == 3) {
        this.form.District = "";
      }
      if (this.QCountry !== "") {
        this.apipost2(
          "dict_post_Destination_GetChildList",
          msg,
          (res) => {
            if (type == 1) {
              this.provinceList = res.data.data;
            } else if (type == 2) {
              this.cityList = res.data.data;
            } else if (type == 3) {
              this.district = res.data.data;
            }
          },
          (err) => {}
        );
      }
    },
    uploadImg(file) {
      //上传
      let newArr = [];
      newArr.push(file.file);
      let path = "/Upload/Temporary/";
      this.UploadSelfFileT(path, newArr, (x) => {
        let url = this.domainManager().ViittoFileUrl + x.data.FilePath;
        this.form.Images.push(url);
      });
    },
    uploadImg2(file) {
      //上传
      let newArr = [];
      newArr.push(file.file);
      let path = "/Upload/Temporary/";
      this.UploadSelfFileT(path, newArr, (x) => {
        let url = this.domainManager().ViittoFileUrl + x.data.FilePath;
        this.form.BusinessCardPhotos.push(url);
      });
    },
    uploadImg3(file) {
      //上传
      let newArr = [];
      newArr.push(file.file);
      let path = "/Upload/Temporary/";
      this.UploadSelfFileT(path, newArr, (x) => {
        let url = this.domainManager().ViittoFileUrl + x.data.FilePath;
        this.form.HousePhotos.push(url);
      });
    },
    showImg(i) {
      let url = "";
      if (i === 1) {
        url = this.form.Images[0];
      } else if (i === 2) {
        url = this.form.BusinessCardPhotos[0];
      } else if (i === 3) {
        url = this.form.HousePhotos[0];
      }
      this.dialogImageUrl = url;
      this.dialogVisible = true;
    },
    delImg(i) {
      if (i === 1) {
        this.form.Images = [];
      } else if (i === 2) {
        this.form.BusinessCardPhotos = [];
      } else if (i === 3) {
        this.form.HousePhotos = [];
      }
    },
  },
};
</script>
