<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: #409efe;
  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: #409efecc;
  border-color: #409efecc;
  color: white;
  padding: 12px 43px;
}
.customerDialogBox .add-box-btn.el-button:hover {
  background-color: #409efe;
  border-color: #409efe;
  color: white;
}
.customerDialogBox .add-box-btn.el-button.add-box-cancel {
  color: #409efecc;
  background-color: white;
}
.customerDialogBox .add-box-btn.el-button.add-box-cancel:hover {
  color: #409efe;
  background-color: white;
}
.customerDialogBox .el-input .el-input-group__append {
  background-color: #409efe;
  border-color: #409efe;
  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;
}
</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">
                            <el-form-item label="商机名称" prop="BusinessName">
                                <el-input placeholder="请输入商机名称" v-model="form.BusinessName"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="客户名称" prop="CustomerId">
                                <el-select v-model="form.CustomerId" :disabled="type==='1' ? true : false" placeholder="请选择客户" v-if="!isGuest">
                                    <el-option 
                                        v-for="item in CustomerList"
                                        :key="item.CustomerId"
                                        :label="item.CustomerName"
                                        :value="item.CustomerId">
                                    </el-option>
                                </el-select>
                                <el-select v-model="form.CustomerId" :disabled="type==='1' ? true : false" placeholder="请选择客户" v-else>
                                    <el-option 
                                        v-for="item in CustomerList"
                                        :key="item.Id"
                                        :label="item.GuestName"
                                        :value="item.Id">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="预计人数" prop="PeopleNumber">
                                <el-input placeholder="请输入预计人数" onkeyup="this.value=this.value.replace(/[^\d.]/g,'');" v-model="form.PeopleNumber"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>
                 <el-row :gutter="30">
                     <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="预算价格" prop="BudgetPrice">
                                <el-input placeholder="请输入预算价格" onkeyup="this.value=this.value.replace(/[^\d.]/g,'');" v-model="form.BudgetPrice"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="线路" prop="LineId">
                                <el-select v-model="form.LineId" filterable @change="getLineTeamList(form.LineId)" placeholder="请选择线路">
                                    <el-option
                                        v-for="item in LineList"
                                        :label='item.LineName' :value='item.LineID' :key='item.LineID'>
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item">
                            <el-form-item label="系列" prop="LineteamId">
                                <el-select v-model="form.LineteamId" filterable placeholder="请选择系列">
                                    <el-option label='不限' value='0' key='0'></el-option>
                                    <el-option
                                        v-for="item in LineTeamList"
                                        :label='item.name' :value='item.id' :key='item.id'>
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>
                <el-row  :gutter="30">
                    <el-col :span="8">
                        <div class="MyEditForm-item MyEditForm-item-time">
                            <el-form-item label="出发时间"  prop="DepartTime">
                                <el-date-picker
                                    value-format="yyyy-MM-dd HH:mm:ss"
                                    v-model="form.DepartTime"
                                    :clearable="false"
                                    type="datetime"
                                    placeholder="选择出发时间">
                                </el-date-picker>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div class="MyEditForm-item MyEditForm-item-time">
                            <el-form-item label="商机状态" prop="BusinessStatus">
                                <el-select v-model="form.BusinessStatus" placeholder="请选择商机状态">
                                    <el-option
                                        v-for="item in BusinessStatusEnum"
                                        :label='item.Name' :value='item.ID' :key='item.ID'>
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="24">
                        <div class="MyEditForm-item label-pad-left">
                            <el-form-item label="备注">
                                <el-input type="textarea" placeholder="商机备注" v-model="form.Remark"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>
            </el-form>
        </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>
</template>
<script>
export default {
  props: [
    "ID",
    "name",
    "CustomerId",
    "ContactId",
    "type",
    "isGuest",
    "TicketOrderId",
    "GuestId",
  ],
  data() {
    return {
      CustomerList: [],
      LineList: [],
      LineTeamList: [],
      dialogTableVisible: false,
      form: {
        ID: 0,
        CustomerId: "",
        BudgetPrice: "",
        LineId: "",
        BusinessName: "",
        BusinessStatus: "",
        LineteamId: "",
        DepartTime: "",
        PeopleNumber: 1,
        Remark: "",
      },
      BusinessStatusEnum: [],
      rules: {
        CustomerId: [
          { required: true, message: "请选择客户", trigger: "change" },
        ],
        BusinessName: [
          { required: true, message: "请输入商机名称", trigger: "blur" },
        ],
        BudgetPrice: [
          { required: true, message: "请输入预算价格", trigger: "blur" },
        ],
        BusinessStatus: [
          { required: true, message: "请选择商机状态", trigger: "change" },
        ],
        LineId: [{ required: true, message: "请选择线路", trigger: "change" }],
        LineteamId: [
          { required: true, message: "请选择系列", trigger: "change" },
        ],
        DepartTime: [
          { required: true, message: "请选择时间", trigger: "change" },
        ],
        PeopleNumber: [
          { required: true, message: "请输入预计人数", trigger: "blur" },
        ],
        Remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
      },
      show: true,
    };
  },
  watch: {
    ID: {
      handler(val, oldVal) {
        console.log(val);
      },
      deep: true,
    },
    CustomerId: {
      handler(val, oldVal) {
        console.log(val);
      },
      deep: true,
    },
    isGuest: {
      handler(val, oldVal) {
        if (val) {
          this.form.CustomerType = 1;
          this.getGuestList();
        } else {
          this.getCustomerList();
        }
      },
      deep: true,
    },
  },
  mounted() {
    console.log(this.isGuest);
    if (this.isGuest) {
      this.form.CustomerType = 1;
      this.getGuestList();
    } else {
      this.getCustomerList();
    }
    this.getLineList();
    this.GetBusinessStatusEnum();
    let $this = this;
    if (this.CustomerId !== 0) {
      this.form.CustomerId = this.CustomerId;
    }
    setTimeout(() => {
      $this.dialogTableVisible = true;
    }, 50);
    if (this.ID !== 0) {
      let msg = {
        BusinessId: this.ID,
      };
      if (this.isGuest) {
        msg.CustomerType = 1;
      }
      this.apipost("/api/Customer/GetAllBusinessModel", msg, (res) => {
        if (res.data.resultCode == 1) {
          let data = res.data.data;
          if (data.LineId) {
            this.getLineTeamList(data.LineId, 1);
          }
          this.form = data;
        }
      });
    }
  },
  methods: {
    //获取系列列表
    getLineTeamList(lineId, type) {
      if (!type) {
        this.form.LineteamId = "";
      }
      this.apipost2(
        "b2b_get_GetLineTeam",
        {
          lineId: lineId,
        },
        (res) => {
          if (res.data.resultCode == 1) {
            this.LineTeamList = res.data.data;
          }
        }
      );
    },
    getLineList() {
      this.apipost2("line_post_GetAllList", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.LineList = res.data.data;
        }
      });
    },
    GetBusinessStatusEnum() {
      this.apipost("/api/Customer/GetBusinessStatusEnum", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.BusinessStatusEnum = res.data.data;
        }
      });
    },
    getGuestList() {
      this.apipost("/api/Customer/GetGuesstCustomerByCreateList", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.CustomerList = res.data.data;
        }
      });
    },
    getCustomerList() {
      this.apipost("/api/Customer/GetCustomerListByCreateInfo", {}, (res) => {
        if (res.data.resultCode == 1) {
          this.CustomerList = res.data.data;
        }
      });
    },
    closedDialog() {
      this.MsgBus.$emit("closeBusinessDialogBox");
    },
    addData() {
      this.apipost("/api/Customer/CreateCustomerBusiness", 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.MsgBus.$emit("RefreshbusSelect");
          this.resetForm("form");
        } else {
          this.$message.error(res.data.message);
        }
      });
    },
    submitForm(addMsg) {
      //提交创建、修改表单
      this.$refs[addMsg].validate((valid) => {
        if (valid) {
          this.addData();
        } else {
          return false;
        }
      });
    },
    resetForm(formName) {
      // 重置表单
      this.form = {
        ID: 0,
        CustomerId: 0,
        BudgetPrice: "",
        LineId: "",
        BusinessName: "",
        BusinessStatus: "",
        LineteamId: "",
        DepartTime: "",
        PeopleNumber: 0,
        Remark: "",
      };
      this.$refs[formName].resetFields();
    },
  },
};
</script>
