yangfeng
2023-08-14 28e0aa1d40bff8985ac3e662d3a7726594d919c3
src/views/client/client/DetailClientManage.vue
@@ -44,11 +44,11 @@
                <li v-for="(item, i) in basicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -66,11 +66,11 @@
                <li v-for="(item, i) in contactList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -88,11 +88,11 @@
                <li v-for="(item, i) in dynamicInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -110,11 +110,11 @@
                <li v-for="(item, i) in businessInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -132,11 +132,11 @@
                <li v-for="(item, i) in addressInfoList" :key="i">
                  <div class="left">
                    <div class="content-title">{{ item.leftStr + ":" }}</div>
                    <div class="content-data">{{ item.leftValue }}</div>
                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                  </div>
                  <div class="right">
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -154,7 +154,7 @@
                <li>
                  <div class="left remark">
                    <div class="content-title">{{ "备注:" }}</div>
                    <div class="content-data">{{ "备注内容" }}</div>
                    <div class="content-data">{{ detailConfig.infomation.remark }}</div>
                  </div>
                </li>
              </ul>
@@ -183,7 +183,11 @@
          <Contacts :isDetail="true" />
        </div>
        <div v-if="activeName === 'second'" class="second">
          <FollowupRecords :isDetail="true" />
          <FollowupRecords
            :isDetail="true"
            :follow-record="detailConfig.infomation.follow_record"
            :add-config="addConfig"
          />
        </div>
        <div v-if="activeName === 'salesOpportunity'" class="second">
          <SalesOpportunity :isDetail="true" />
@@ -243,39 +247,49 @@
      isAddressExpand: true, // 地址信息
      addressInfoList: [],
      isRemarkExpand: true, // 备注信息
      isAnnexExpand: true // 附件信息
      isAnnexExpand: true, // 附件信息
      addConfig: {}
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
    this.addConfig = {
      id_name: "client_id",
      id: this.detailConfig.infomation.id,
      client_name: this.detailConfig.infomation.name,
      contact_name: this.detailConfig.infomation.contact_name,
      client_status_id: this.detailConfig.infomation.client_status_id,
      client_id: this.detailConfig.infomation.id,
      contact_id: this.detailConfig.infomation.contact_id
    }
  },
  mounted() {},
  methods: {
    setData() {
    setData(item) {
      this.basicInfoList = [
        {
          leftStr: "客户名称",
          leftValue: this.detailConfig.infomation.client_name,
          leftValue: item.client_name,
          rightStr: "客户编号",
          rightValue: this.detailConfig.infomation.number
          rightValue: item.number
        },
        {
          leftStr: "客户状态",
          leftValue: this.detailConfig.infomation.contact_name,
          leftValue: item.client_status,
          rightStr: "销售负责人",
          rightValue: this.detailConfig.infomation.contact_position
          rightValue: item.member_id
        },
        {
          leftStr: "客户类型",
          leftValue: this.detailConfig.infomation.contact_phone,
          leftValue: item.client_type.name,
          rightStr: "客户来源",
          rightValue: "新建"
          rightValue: item.client_origin.name
        },
        {
          leftStr: "重要级别",
          leftValue: this.detailConfig.infomation.sales_sources_id,
          leftValue: item.client_level,
          rightStr: "公海状态",
          rightValue: this.detailConfig.infomation.member_id
          rightValue: ""
        },
        {
          leftStr: "所属公海",
@@ -287,13 +301,13 @@
          leftStr: "签到",
          leftValue: "",
          rightStr: "下次回访日期",
          rightValue: ""
          rightValue: this.processTime(item.next_visit_time)
        },
        {
          leftStr: "创建时间",
          leftValue: "",
          rightStr: "最晚服务到期日",
          rightValue: ""
          rightValue: this.processTime(item.latest_service_time)
        },
        {
          leftStr: "创建人",
@@ -305,9 +319,9 @@
      this.contactList = [
        {
          leftStr: "联系人姓名",
          leftValue: "",
          leftValue: item.contact_name,
          rightStr: "联系人手机",
          rightValue: ""
          rightValue: item.contact_phone
        },
        {
          leftStr: "联系人职务",
@@ -339,25 +353,25 @@
      this.businessInfoList = [
        {
          leftStr: "所属行业",
          leftValue: "",
          leftValue: item.Industry.name,
          rightStr: "法定代表人",
          rightValue: ""
          rightValue: item.representative
        },
        {
          leftStr: "注册时间",
          leftValue: "",
          leftValue: this.processTime(item.registration_time),
          rightStr: "注册资金",
          rightValue: ""
          rightValue: item.RegisteredCapital.name
        },
        {
          leftStr: "公司性质",
          leftValue: "",
          leftValue: item.EnterpriseNature.name,
          rightStr: "客户规模",
          rightValue: ""
          rightValue: item.EnterpriseScale.name
        },
        {
          leftStr: "经营范围",
          leftValue: "",
          leftValue: item.business_scope,
          rightStr: "",
          rightValue: ""
        }
@@ -365,19 +379,19 @@
      this.addressInfoList = [
        {
          leftStr: "国家",
          leftValue: "",
          leftValue: item.Country.name,
          rightStr: "省份",
          rightValue: ""
          rightValue: item.Province.name
        },
        {
          leftStr: "城市",
          leftValue: "",
          leftValue: item.City.name,
          rightStr: "区域",
          rightValue: ""
          rightValue: item.Region.name
        },
        {
          leftStr: "详细地址",
          leftValue: "",
          leftValue: item.detail_address,
          rightStr: "",
          rightValue: ""
        }
@@ -408,6 +422,33 @@
      } else if (value === "annex") {
        this.isAnnexExpand = !this.isAnnexExpand
      }
    },
    // 处理时间
    processTime(dateTime) {
      return this.dateFormat("YYYY-mm-dd HH:MM:SS", dateTime) === "1900-01-01 08:00:00"
        ? "--"
        : this.dateFormat("YYYY-mm-dd HH:MM:SS", dateTime)
    },
    // 时间显示
    dateFormat(fmt, date) {
      let ret = ""
      date = new Date(date)
      const opt = {
        "Y+": date.getFullYear().toString(), // 年
        "m+": (date.getMonth() + 1).toString(), // 月
        "d+": date.getDate().toString(), // 日
        "H+": date.getHours().toString(), // 时
        "M+": date.getMinutes().toString(), // 分
        "S+": date.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
      }
      for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt)
        if (ret) {
          fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
        }
      }
      return fmt
    }
  }
}
@@ -496,7 +537,7 @@
                align-items: center;
                height: 40px;
                .content-title {
                  width: 220px;
                  width: 320px;
                  text-align: right;
                  color: #555;
                }