<template>
  <div class="sevice_detail">
    <div class="apass_breadcrumb">
      <el-breadcrumb separator="/">
        <el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
        <el-breadcrumb-item to="/shop/data_service_list/5">
          数据服务
        </el-breadcrumb-item>
        <el-breadcrumb-item>服务详情信息</el-breadcrumb-item>
      </el-breadcrumb>
    </div>

    <service-info :data="baseInfo" v-if="baseInfo"></service-info>

    <service-tabs
      :detail-data="detailData"
      :provider-data="providerData"
      :comments-data="commentsData"
      :comments-url="commentsUrl"
    ></service-tabs>
  </div>
</template>

<script>
import serviceInfo from "@/components/service-info/service-info";
import serviceTabs from "@/components/service-tabs/service-tabs";

export default {
  components: {
    serviceInfo,
    serviceTabs,
  },
  data: () => ({
    baseInfo: null,
    detailData: null,
    providerData: null,
    commentsData: null,
  }),
  computed: {
    id() {
      return this.$route.params.id;
    },
    commentsUrl() {
      return `/apaas/serviceapp/v3/servicemarket/estimates?serviceId=${this.id}`;
    },
  },
  methods: {
    init() {
      this.$http
        .get("/apaas/serviceapp/v3/servicemarket/detail", {
          params: {
            serviceId: this.id,
          },
        })
        .then(({ data }) => {
          let datas = data.data;
          this.baseInfo = {
            service_id: this.id,
            app_id: 0,
            name: datas.name,
            // type: "",
            openness: datas.openness,
            view_count: datas.view_count,
            apply_count: datas.apply_count,
            cover: datas.cover,
            organization_name: datas.organization_name,
            create_time: datas.create_time,
            update_date: datas.update_date,
            sectors_name: datas.sectors_name,
            data_service_type: [
              datas.data_service_type1_name,
              datas.data_service_type2_name,
              datas.data_service_type3_name,
            ],
            descript: datas.descript,
            serviceRequestSpcs: datas.serviceRequestSpcs || {
              spcs_type_1: [],
              spcs_type_2: [],
            },
            scoreDetail: datas.scoreDetail,
            month_sale: datas.month_sale,
            version: datas.version,
          };

          this.detailData = [
            {
              name: "获取流程",
              type: "step",
              value: ["产品申请", "信息填写", "审核确认", "获取资源"],
            },
            {
              name: "产品信息",
              type: "cp-list",
              value: {
                cp_area: datas.sectors_name,
                fb_time: datas.create_time,
                org: datas.system_name,
                org_url: datas.domain_name,
                tags: datas.tags,
              },
            },
            {
              name: "产品详情",
              type: "rich-text",
              value: "无",
            },
          ];
          if (datas.doc_file != "") {
            this.getMd(datas.doc_file);
          }
          let arr1 = datas.serviceRequestSpcs.spcs_type_1 || [];
          let arr2 = datas.serviceRequestSpcs.spcs_type_2 || [];
          let arr = arr1.concat(arr2);
          arr.map((item) => {
            item.type = item.spcs_type == 1 ? "计次收费规格" : "时长收费规格";
            item.spce =
              item.spcs_type == 1
                ? `${item.money}金币/${item.spcs_count}次（${(
                    item.money / item.spcs_count
                  ).toFixed(2)}金币/1次）`
                : `${item.money}金币/月（次数不限）`;
            item.times = item.spcs_type == 1 ? "不限时长" : "按月";
          });
          this.providerData = {
            organization_name: datas.organization_name,
            picture_path: datas.organization_picture,
            user_name: datas.register_user_info.user_name,
            phone: datas.register_user_info.phone,
            serviceRequestSpcsTable: arr,
          };
          this.commentsData = datas.scoreDetail;
        })
        .catch(function (error) {
          console.log(error);
        });
    },
    getTableData(tableStr) {
      let tabledata = (tableStr && JSON.parse(tableStr)) || [];
      let addRowId = (data, baseId = "") => {
        data.forEach((item, index) => {
          let rowId = baseId + (index + 1) + "";

          item.rowId = rowId;

          if (item.children && item.children.length) {
            addRowId(item.children, rowId);
          }
        });
      };

      addRowId(tabledata);

      return tabledata;
    },
    getMd(url) {
      this.$http
        .get(url, {
          params: {
            serviceId: this.id,
          },
        })
        .then(response => {
          this.detailData[2].value = response.data;
        })
        .catch(function (error) {
          console.log(error);
        });
    }
  },
  mounted() {
    this.init();
  },
};
</script>
