yangfeng
2023-08-09 acdff03246ce648082192dfb069c3a006a7fbee6
src/views/client/client/AddClientManageDialog.vue
@@ -5,6 +5,8 @@
      :visible.sync="editConfig.visible"
      :width="dialogWidth"
      :before-close="handleClose"
      append-to-body
      custom-class="iframe-dialog"
    >
      <el-form
        ref="form"
@@ -23,7 +25,7 @@
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="name">
                  <div class="client-name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.name"></el-input>
                    <div class="common-select-btn"><i class="el-icon-house" title="工商查询"></i></div>
                    <div class="common-select-btn"><i class="el-icon-search" title="查重"></i></div>
@@ -126,7 +128,11 @@
              </el-col> -->
              <el-col :span="12">
                <el-form-item label="下次回访日期" prop="next_visit_time">
                  <el-date-picker v-model="editConfig.infomation.next_visit_time" type="date" placeholder="选择日期">
                  <el-date-picker
                    v-model="editConfig.infomation.next_visit_time"
                    type="datetime"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -134,7 +140,7 @@
                <el-form-item label="最晚服务到期日" prop="latest_service_time">
                  <el-date-picker
                    v-model="editConfig.infomation.latest_service_time"
                    type="date"
                    type="datetime"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
@@ -153,12 +159,17 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系人手机" prop="contact_phone">
                  <el-input v-model="editConfig.infomation.contact_phone"></el-input>
                  <el-input
                    v-model="editConfig.infomation.contact_phone"
                    maxlength="11"
                    show-word-limit
                    oninput="value=value.replace(/[^\d]/g,'')"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="联系人职务" prop="contact_duties">
                  <el-input v-model="editConfig.infomation.contact_duties"></el-input>
                <el-form-item label="联系人职务" prop="position">
                  <el-input v-model="editConfig.infomation.position"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
@@ -466,7 +477,7 @@
      <div slot="footer" class="dialog-footer">
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
        <el-button size="small" @click="handleClose">取消</el-button>
      </div>
    </el-dialog>
  </div>
@@ -474,7 +485,6 @@
<script>
import { getAllData, getAddClient, getUpdateClient } from "@/api/client/client"
import { dateFormat } from "@/common/config/index"
export default {
  name: "AddClientManageDialog",
  props: {
@@ -484,36 +494,8 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            name: "",
            number: "AC6521",
            client_status_id: "",
            member_id: "5",
            client_type_id: "",
            clientSource: "",
            client_level_id: "",
            service_member_id: "",
            next_visit_time: "",
            latest_service_time: "",
            contact_name: "",
            contact_phone: "",
            contact_duties: "",
            contact_wechat: "1",
            contact_email: "",
            industry_id: "",
            representative: "",
            registration_time: "",
            registered_capital_id: "",
            enterprise_nature_id: "",
            enterprise_scale_id: "",
            business_scope: "",
            country_id: "",
            province_id: "",
            city_id: "",
            region_id: "",
            detail_address: "",
            remark: ""
          }
          isSalesOpportunity: false,
          infomation: {}
        }
      }
    }
@@ -532,7 +514,16 @@
        name: [{ required: true, message: "请输入客户名称", trigger: "blur" }],
        client_status_id: [{ required: true, message: "请选择客户状态", trigger: "change" }],
        member_id: [{ required: true, message: "请选择销售负责人", trigger: "change" }],
        approvalOpinion: [{ required: true, message: "请输入审批意见", trigger: "blur" }]
        approvalOpinion: [{ required: true, message: "请输入审批意见", trigger: "blur" }],
        contact_phone: [
          { required: false, message: "", trigger: "blur" },
          { len: 11, message: "长度在11个字符", trigger: "blur" },
          {
            pattern: /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/,
            message: "请输入正确的手机号",
            trigger: "blur"
          }
        ]
      },
      memberOptions: [],
      clientStatusOptions: [], // 客户状态
@@ -558,7 +549,6 @@
    getCommonData() {
      getAllData()
        .then((res) => {
          console.log(res)
          this.memberOptions = res.data.member
          this.clientSourceOptions = res.data.client_origin
          this.clientStatusOptions = res.data.client_status
@@ -579,6 +569,9 @@
    },
    handleClose() {
      this.editConfig.visible = false
      if (this.editConfig.title === "新建" && this.editConfig.infomation.sales_leads_id) {
        this.$parent.handleClose()
      }
    },
    // 保存
    saveClick(formName) {
@@ -597,7 +590,13 @@
                    message: "添加成功",
                    type: "success"
                  })
                  this.$parent.getData()
                  if (this.editConfig.isSalesOpportunity) {
                    this.$emit("salesOpportunityClick", this.editConfig.infomation)
                  } else if (this.editConfig.title === "新建" && this.editConfig.infomation.sales_leads_id) {
                    this.$parent.handleClose()
                  } else {
                    this.$parent.getData()
                  }
                }
              })
              .catch((err) => {
@@ -637,18 +636,18 @@
        client_status_id: data.client_status_id || 0,
        client_type_id: data.client_type_id || 0,
        contact: {
          birthday: "1970-01-01 08:00:00",
          birthday: "",
          city_id: 0,
          client_id: 0,
          country_id: 0,
          desc: "string",
          desc: "",
          email: data.contact_email || "",
          is_first: true,
          member_id: 0,
          name: data.contact_name || "",
          number: "string",
          number: "",
          phone: data.contact_phone || "",
          position: data.contact_duties || "",
          position: data.position || "",
          province_id: 0,
          region_id: 0,
          wechat: data.contact_wechat || ""
@@ -658,7 +657,7 @@
        enterprise_nature_id: data.enterprise_nature_id || 0,
        enterprise_scale_id: data.enterprise_scale_id || 0,
        industry_id: data.industry_id || 0,
        latest_service_time: dateFormat("YYYY-mm-dd HH:MM:ss", data.latest_service_time) || "",
        latest_service_time: data.latest_service_time || "",
        member_id: parseInt(data.member_id) || 0,
        name: data.name || "",
        next_visit_time: data.next_visit_time || "",
@@ -669,7 +668,8 @@
        registration_time: data.registration_time || "",
        remark: data.remark || "",
        representative: data.representative || "",
        service_member_id: data.service_member_id || 0
        service_member_id: data.service_member_id || 0,
        sales_leads_id: data.sales_leads_id || 0
      }
      return params
    },
@@ -689,62 +689,56 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.add-client-manage {
  .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;
      .client-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
::v-deep {
  .iframe-dialog .el-dialog__body {
    .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;
        .custom-name,
        .common-select {
          display: flex;
          .common-select-btn {
            margin-left: 5px;
            font-size: 18px;
            cursor: pointer;
          }
        }
        .common-select {
          .common-select-sel {
            width: 270px;
          }
        }
      }
      .common-select {
      .annex-view {
        display: flex;
        .common-select-sel {
          width: 270px;
        }
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        color: #6166d3;
        .setFormat {
          margin-left: 10px;
        }
      }
    }
    // .address-view {
    //   margin-top: 10px;
    //   padding-right: 40px;
    // }
    .annex-view {
    .unflod-collapse {
      display: flex;
      height: 30px;
      justify-content: center;
      align-items: center;
      color: #6166d3;
      .setFormat {
        margin-left: 10px;
      }
    }
  }
  .unflod-collapse {
    display: flex;
    height: 30px;
    justify-content: center;
    align-items: center;
    color: #6166d3;
  }
  .dialog-footer {
    background-color: #f5f5f5;
    height: 55px;
    line-height: 55px;
    .dialog-footer {
      background-color: #f5f5f5;
      height: 55px;
      line-height: 55px;
    }
  }
}
</style>