yangfeng
2023-08-15 c1adf27fbabbff1d76b60993521c765ef1ed79ef
src/views/client/client/DetailClientManage.vue
@@ -28,7 +28,7 @@
            <el-tab-pane label="销售总单" name="master"></el-tab-pane>
            <el-tab-pane label="销售子单" name="sub"></el-tab-pane>
            <el-tab-pane label="销售明细单" name="detail"></el-tab-pane>
            <el-tab-pane label="收款单" name="plan"></el-tab-pane>
            <el-tab-pane label="收款单" name="receipt"></el-tab-pane>
          </el-tabs>
        </div>
        <div v-if="activeName === 'first'" class="detail">
@@ -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 class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</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 class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</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 class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</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 class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</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 class="content-title">{{ item.rightStr }}</div>
                    <div class="content-data">{{ item.rightValue }}</div>
                  <div v-if="item.rightStr" class="right">
                    <div class="content-title">{{ item.rightStr + ":" }}</div>
                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                  </div>
                </li>
              </ul>
@@ -154,14 +154,14 @@
                <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>
            </div>
          </div>
          <!-- 附件信息 -->
          <div class="basic-info">
          <!-- <div class="basic-info">
            <div class="basic-info-label" @click="expandClick('annex')">
              <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i>
              <i v-else class="el-icon-arrow-up"></i>
@@ -177,28 +177,28 @@
                </li>
              </ul>
            </div>
          </div>
          </div> -->
        </div>
        <div v-if="activeName === 'contact'" class="second">
          <Contacts :isDetail="true" />
          <Contacts :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'second'" class="second">
          <FollowupRecords :isDetail="true" />
          <FollowupRecords :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'salesOpportunity'" class="second">
          <SalesOpportunity :isDetail="true" />
          <SalesOpportunity :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'quotation'" class="second">
          <Quotation :isDetail="true" />
          <Quotation :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'master'" class="second">
          <MasterOrder :isDetail="true" />
          <MasterOrder :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'sub'" class="second">
          <SubOrder :isDetail="true" />
          <SubOrder :isDetail="true" :add-config="addConfig" />
        </div>
        <div v-if="activeName === 'detail'" class="second">
          <SalesDetails :isDetail="true" />
          <SalesDetails :isDetail="true" :add-config="addConfig" />
        </div>
      </div>
    </el-drawer>
@@ -243,39 +243,51 @@
      isAddressExpand: true, // 地址信息
      addressInfoList: [],
      isRemarkExpand: true, // 备注信息
      isAnnexExpand: true // 附件信息
      isAnnexExpand: true, // 附件信息
      addConfig: {}
    }
  },
  created() {
    this.setData()
    this.setData(this.detailConfig.infomation)
    this.addConfig = {
      id_name: "client_name",
      keywordType: "客户名称",
      keyword: this.detailConfig.infomation.name,
      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.username
        },
        {
          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 +299,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 +317,9 @@
      this.contactList = [
        {
          leftStr: "联系人姓名",
          leftValue: "",
          leftValue: item.contact_name,
          rightStr: "联系人手机",
          rightValue: ""
          rightValue: item.contact_phone
        },
        {
          leftStr: "联系人职务",
@@ -339,25 +351,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 +377,19 @@
      this.addressInfoList = [
        {
          leftStr: "国家",
          leftValue: "",
          leftValue: "中国",
          rightStr: "省份",
          rightValue: ""
          rightValue: item.Province.name
        },
        {
          leftStr: "城市",
          leftValue: "",
          rightStr: "区域",
          leftValue: item.City.name,
          rightStr: "",
          rightValue: ""
        },
        {
          leftStr: "详细地址",
          leftValue: "",
          leftValue: item.detail_address,
          rightStr: "",
          rightValue: ""
        }
@@ -408,6 +420,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 +535,7 @@
                align-items: center;
                height: 40px;
                .content-title {
                  width: 220px;
                  width: 320px;
                  text-align: right;
                  color: #555;
                }