liyongli vor 3 Jahren
Ursprung
Commit
e34e75ba91

+ 45 - 0
src/views/AdvertisingEye/AdvertisingEye.vue

@@ -1,6 +1,15 @@
 <template>
   <div class="AdvertisingEye">
     <el-loading></el-loading>
+    <div class="titleHead" v-if="industry_list[industry_act]">
+      <div class="line"></div>
+      <div class="titleText" v-if="industry_act > 0">
+        {{ industry_list[industry_act].industryName }}行业分析报告
+      </div>
+      <div class="titleText" v-else>
+        电视广告大盘分析
+      </div>
+    </div>
     <el-card class="box-card">
       <el-row>
         <el-col :span="2" class="colTime industrySelect">
@@ -259,4 +268,40 @@ export default {
   color: #fff;
   background-color: #40a1f3;
 }
+
+.AdvertisingEye .titleHead {
+  text-align: center;
+  position: relative;
+  height: 135px;
+  line-height: 135px;
+}
+.AdvertisingEye .line{
+    border-top: 1px solid #1989fa;
+    position: absolute;
+    width: 100%;
+    top: 50%;
+    z-index: 0;
+}
+.AdvertisingEye .titleText{
+    background-color: #fff;
+    color: #1989fa;
+    position: relative;
+    z-index: 1;
+    padding: 0 10px;
+    display: inline-block;
+    font-weight: 700;
+    font-size: 40px;
+}
+
+.AdvertisingEye .is-plain{
+    background-color: #ffffff !important;
+    border-color: #1989fa;
+    border-right: 1px solid #1989fa !important;
+    border-left: 1px solid #1989fa !important;
+    color: #1989fa;
+}
+.AdvertisingEye .is-plain:hover{
+    color: #1989fa;
+    border-color: #1989fa;
+}
 </style>

+ 2 - 0
src/views/AdvertisingEye/components/allTrend.vue

@@ -252,6 +252,7 @@ export default {
             },
           },
         },
+        color: ["#1b9ade", "#fd5555"],
         tooltip: {
           trigger: "axis",
           formatter: m => {
@@ -302,6 +303,7 @@ export default {
           type: "category",
           data: chartData.keys,
         },
+        color: ["#1b9ade", "#fd5555"],
         tooltip: {
           trigger: "axis",
           formatter: m => {

+ 2 - 0
src/views/AdvertisingEye/components/allTrendB.vue

@@ -234,6 +234,7 @@ export default {
           data: chartData.keys,
           boundaryGap: false,
         },
+        color: ["#1b9ade", "#fd5555"],
         yAxis: {
           type: "value",
           scale: true,
@@ -289,6 +290,7 @@ export default {
           type: "category",
           data: chartData.keys,
         },
+        color: ["#1b9ade", "#fd5555"],
         tooltip: {
           trigger: "axis",
           formatter: m => {

+ 1 - 0
src/views/AdvertisingEye/components/comTrendWeek.vue

@@ -125,6 +125,7 @@ export default {
           left: "center",
           top: 10,
         },
+        color: ["#1b9ade", "#fd5555"],
         xAxis: {
           type: "category",
           data: k,

+ 2 - 2
src/views/AdvertisingEye/components/distributionB.vue

@@ -27,7 +27,7 @@
       </el-col>
       <el-col :span="12">
         <com-table
-          :title="'栏目排名top10-' + titleName"
+          :title="'栏目排名top10-' + (titleName || '')"
           :tableList="tableList"
           :child="true"
         >
@@ -174,7 +174,7 @@ export default {
       ]).then(all => {
         const li = (all[0] || { data: [] }).data || [];
         this.tableList = all[1].data || [];
-        li.length && (this.titleName = li[0].name || "");
+        li.length && (this.titleName = li[0].name || li[0].programType || "");
         this.softAdChart(li);
       });
     },

+ 1 - 0
src/views/AdvertisingEye/components/tranche.vue

@@ -244,6 +244,7 @@ export default {
           bottom: "3%",
           containLabel: true,
         },
+        color: ["#1b9ade", "#fd5555"],
         xAxis: {
           type: "value",
         },

+ 1 - 0
src/views/AdvertisingEye/components/trancheB.vue

@@ -155,6 +155,7 @@ export default {
           },
         },
         legend: {},
+        color: ["#1b9ade", "#fd5555"],
         grid: {
           left: "3%",
           right: "4%",

+ 2 - 1
src/views/AdvertisingEye/components/trancheB2.vue

@@ -138,6 +138,7 @@ export default {
         yAxis: {
           type: "value",
         },
+        color: ["#1b9ade", "#fd5555"],
         series: [
           {
             name: "硬广",
@@ -203,7 +204,7 @@ export default {
         yAxis: {
           type: "value",
         },
-        color: ["#ff0000"],
+        color: ["#fd5555"],
         series: [
           {
             name: "软广",

+ 328 - 116
src/views/HardAdvertisement/HardAdvertisement.vue

@@ -1,6 +1,12 @@
 <template>
   <div class="hardAdvertisement">
     <el-loading></el-loading>
+    <div class="titleHead" v-if="channleList[channel_act]">
+      <div class="line"></div>
+      <div class="titleText">
+        {{ channleList[channel_act].channelName }}硬广分析报告
+      </div>
+    </div>
     <el-card class="box-card">
       <el-row>
         <el-col :span="2" class="colTime channelSelect">
@@ -212,56 +218,61 @@
                 }}
                 单位({{ customer_list[customer_act].company }})
               </div>
-              <el-table
-                :data="customerData.now"
-                :show-header="false"
-                style="width: 100%;"
-                max-height="400"
+              <div
+                style="position: relative;height: 400px;overflow-y: auto;    "
+                ref="left"
               >
-                <el-table-column
-                  align="center"
-                  type="index"
-                  label="序号"
-                  width="50"
-                />
-                <el-table-column align="center" prop="brand" />
-                <el-table-column align="center" prop="state" />
-                <el-table-column
-                  align="center"
-                  :prop="customer_list[customer_act].customerType"
-                >
-                  <template #default="scope">
-                    <span
-                      v-if="customer_list[customer_act].customerType === 'fee'"
-                      >{{
-                        (scope.row.fee / 10000)
-                          .toFixed(2)
-                          .replace(/(?=(\B)(\d{3})+\.)/g, ",")
-                      }}</span
+                <div
+                  class="customer_list_act"
+                  :style="'top:' + hoverList[0] + 'px'"
+                ></div>
+                <table style="width: 100%">
+                  <tbody>
+                    <tr
+                      class="tr"
+                      v-for="(item, i) in customerData.now"
+                      :key="item"
+                      @mouseenter="() => hoverTableLeft(item, i)"
                     >
-                    <span
-                      v-if="
-                        customer_list[customer_act].customerType === 'timeSize'
-                      "
-                      >{{
-                        (scope.row.timeSize / 1000)
-                          .toFixed(2)
-                          .replace(/(?=(\B)(\d{3})+\.)/g, ",")
-                      }}</span
-                    >
-                    <span
-                      v-if="
-                        customer_list[customer_act].customerType === 'pinci'
-                      "
-                      >{{
-                        scope.row.pinci
-                          .toString()
-                          .replace(/(?=(\B)(\d{3})+\.)/g, ",")
-                      }}</span
-                    >
-                  </template>
-                </el-table-column>
-              </el-table>
+                      <td class="td" v-text="i + 1"></td>
+                      <td class="td" v-text="item.brand"></td>
+                      <td class="td">
+                        <span
+                          v-if="
+                            customer_list[customer_act].customerType === 'fee'
+                          "
+                          >{{
+                            (item.fee / 10000)
+                              .toFixed(2)
+                              .replace(/(?=(\B)(\d{3})+\.)/g, ",")
+                          }}</span
+                        >
+                        <span
+                          v-if="
+                            customer_list[customer_act].customerType ===
+                              'timeSize'
+                          "
+                          >{{
+                            (item.timeSize / 1000)
+                              .toFixed(2)
+                              .replace(/(?=(\B)(\d{3})+\.)/g, ",")
+                          }}</span
+                        >
+                        <span
+                          v-if="
+                            customer_list[customer_act].customerType === 'pinci'
+                          "
+                          >{{
+                            item.pinci
+                              .toString()
+                              .replace(/(?=(\B)(\d{3})+\.)/g, ",")
+                          }}</span
+                        >
+                      </td>
+                    </tr>
+                  </tbody>
+                </table>
+              </div>
             </div>
           </el-col>
           <el-col
@@ -275,56 +286,62 @@
                 }}
                 单位({{ customer_list[customer_act].company }})
               </div>
-              <el-table
-                :data="customerData.before"
-                :show-header="false"
-                style="width: 100%;"
-                max-height="400"
+
+              <div
+                style="position: relative;height: 400px;overflow-y: auto;"
+                ref="right"
               >
-                <el-table-column
-                  align="center"
-                  type="index"
-                  label="序号"
-                  width="50"
-                />
-                <el-table-column align="center" prop="brand" />
-                <el-table-column align="center" prop="state" />
-                <el-table-column
-                  align="center"
-                  :prop="customer_list[customer_act].customerType"
-                >
-                  <template #default="scope">
-                    <span
-                      v-if="customer_list[customer_act].customerType === 'fee'"
-                      >{{
-                        (scope.row.fee / 10000)
-                          .toFixed(2)
-                          .replace(/(?=(\B)(\d{3})+\.)/g, ",")
-                      }}</span
+                <div
+                  class="customer_list_act"
+                  :style="'top:' + hoverList[1] + 'px'"
+                ></div>
+                <table style="width: 100%">
+                  <tbody>
+                    <tr
+                      class="tr"
+                      v-for="(item, i) in customerData.before"
+                      :key="item"
+                      @mouseenter="() => hoverTableRight(item, i)"
                     >
-                    <span
-                      v-if="
-                        customer_list[customer_act].customerType === 'timeSize'
-                      "
-                      >{{
-                        (scope.row.timeSize / 1000)
-                          .toFixed(2)
-                          .replace(/(?=(\B)(\d{3})+\.)/g, ",")
-                      }}</span
-                    >
-                    <span
-                      v-if="
-                        customer_list[customer_act].customerType === 'pinci'
-                      "
-                      >{{
-                        scope.row.pinci
-                          .toString()
-                          .replace(/(?=(\B)(\d{3})+\.)/g, ",")
-                      }}</span
-                    >
-                  </template>
-                </el-table-column>
-              </el-table>
+                      <td class="td" v-text="i + 1"></td>
+                      <td class="td" v-text="item.brand"></td>
+                      <td class="td">
+                        <span
+                          v-if="
+                            customer_list[customer_act].customerType === 'fee'
+                          "
+                          >{{
+                            (item.fee / 10000)
+                              .toFixed(2)
+                              .replace(/(?=(\B)(\d{3})+\.)/g, ",")
+                          }}</span
+                        >
+                        <span
+                          v-if="
+                            customer_list[customer_act].customerType ===
+                              'timeSize'
+                          "
+                          >{{
+                            (item.timeSize / 1000)
+                              .toFixed(2)
+                              .replace(/(?=(\B)(\d{3})+\.)/g, ",")
+                          }}</span
+                        >
+                        <span
+                          v-if="
+                            customer_list[customer_act].customerType === 'pinci'
+                          "
+                          >{{
+                            item.pinci
+                              .toString()
+                              .replace(/(?=(\B)(\d{3})+\.)/g, ",")
+                          }}</span
+                        >
+                      </td>
+                    </tr>
+                  </tbody>
+                </table>
+              </div>
             </div>
           </el-col>
         </el-row>
@@ -361,7 +378,14 @@
             label="厂商名称"
           />
           <el-table-column align="center" prop="customer" label="产品数量" />
-          <el-table-column align="center" prop="fee" label="费用(万元)">
+          <el-table-column align="center" prop="fee">
+            <template #header>
+              <down
+                :act="advantage_act === 1"
+                title="费用(万元)"
+                @click="() => advantageSort(1)"
+              ></down>
+            </template>
             <template #default="scope">
               <span>{{
                 (scope.row.fee / 10000)
@@ -370,7 +394,14 @@
               }}</span>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="timeSize" label="时长(秒)">
+          <el-table-column align="center" prop="timeSize">
+            <template #header>
+              <down
+                :act="advantage_act === 2"
+                title="时长(秒)"
+                @click="() => advantageSort(2)"
+              ></down>
+            </template>
             <template #default="scope">
               <span>{{
                 (scope.row.timeSize / 1000)
@@ -379,7 +410,14 @@
               }}</span>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="pinci" label="频次(次)">
+          <el-table-column align="center" prop="pinci">
+            <template #header>
+              <down
+                :act="advantage_act === 3"
+                title="频次(次)"
+                @click="() => advantageSort(3)"
+              ></down>
+            </template>
             <template #default="scope">
               <span>{{
                 scope.row.pinci.toFixed(0).replace(/(?=(\B)(\d{3})+\.)/g, ",")
@@ -417,7 +455,14 @@
             prop="pruducter"
             label="厂商名称"
           />
-          <el-table-column align="center" prop="fee" label="费用(万元)">
+          <el-table-column align="center" prop="fee">
+            <template #header>
+              <down
+                :act="potential_act === 1"
+                title="费用(万元)"
+                @click="() => potentialSort(1)"
+              ></down>
+            </template>
             <template #default="scope">
               <span>{{
                 (scope.row.fee / 10000)
@@ -426,7 +471,14 @@
               }}</span>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="timeSize" label="时长(秒)">
+          <el-table-column align="center" prop="timeSize">
+            <template #header>
+              <down
+                :act="potential_act === 2"
+                title="时长(秒)"
+                @click="() => potentialSort(2)"
+              ></down>
+            </template>
             <template #default="scope">
               <span>{{
                 (scope.row.timeSize / 1000)
@@ -435,7 +487,14 @@
               }}</span>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="pinci" label="频次(次)">
+          <el-table-column align="center" prop="pinci">
+            <template #header>
+              <down
+                :act="potential_act === 3"
+                title="频次(次)"
+                @click="() => potentialSort(3)"
+              ></down>
+            </template>
             <template #default="scope">
               <span>{{
                 scope.row.pinci.toFixed(0).replace(/(?=(\B)(\d{3})+\.)/g, ",")
@@ -480,12 +539,14 @@ import {
   saturationList,
 } from "@/api/index.js";
 // import config from "@/config/index";
+import down from "./components/down.vue";
 import * as echarts from "echarts";
 export default {
   name: "hardAdvertisement",
   data() {
     return {
       channleList: [],
+      hoverList: [0, 0],
       active: 0,
       timeSelect: [],
       channel_act: 0,
@@ -493,6 +554,8 @@ export default {
       customer_act: 0,
       launch_act: 0,
       trend_act: 0,
+      advantage_act: 1,
+      potential_act: 1,
       launch_list: [
         {
           text: "费用",
@@ -614,6 +677,7 @@ export default {
           channelId: this.channleList[this.channel_act].channelId,
           start: sel.startDate,
           end: sel.endDate,
+          order: this.advantage_act,
         }).then(advantageous => {
           this.advantageous = advantageous || [];
         });
@@ -779,8 +843,8 @@ export default {
     numFor(num) {
       if (!num) return 0;
       if (isNaN(num)) return 0;
-      if (num >= 100000000) return (num / 100000000).toFixed(0) - 0 + "亿";
-      if (num >= 10000) return (num / 10000).toFixed(0) - 0 + "万";
+      if (num >= 100000000) return (num / 100000000).toFixed(2) - 0 + "亿";
+      if (num >= 10000) return (num / 10000).toFixed(2) - 0 + "万";
       return Number(num).toFixed(2);
     },
     launchChart(list) {
@@ -818,16 +882,28 @@ export default {
             },
           },
         },
+        color: ["#1b9ade", "#fd5555"],
         tooltip: {
           trigger: "axis",
+          textStyle: {
+            color: "#000000",
+          },
+          extraCssText: "box-shadow: 0 0 3px 1b9ade;",
           formatter: item => {
+            let s = item[0] || {},
+              e = item[1] || {};
             let bf = list.before || [],
               no = list.now || [];
-            let vb = this.numFor(item[0].value || 0),
-              vn = this.numFor(item[1].value || 0);
-            return `${this.launch_list[this.launch_act].text} <br /> ${
-              bf[item[0].dataIndex].dt
-            } ${vb} <br />${no[item[0].dataIndex].dt} ${vn}`;
+            let vb = this.numFor(s.value || 0),
+              vn = this.numFor(e.value || 0),
+              launch_list = this.launch_list[this.launch_act] || {};
+            let out = "";
+            if (s.dataIndex >= 0)
+              out += `${launch_list.text} <br /> ${bf[s.dataIndex].dt} ${vb +
+                launch_list.unit}`;
+            if (e.dataIndex >= 0)
+              out += `<br />${no[e.dataIndex].dt} ${vn + launch_list.unit}`;
+            return out;
           },
         },
         grid: [{ left: 150, top: "10%", buttom: 0, right: 100 }],
@@ -837,6 +913,21 @@ export default {
             data,
             type: "line",
             smooth: true,
+            showSymbol: false,
+            itemStyle: {
+              emphasis: {
+                borderWidth: 3,
+                borderColor: i === 0 ? "#1b9ade" : "#fd5555",
+                color: i === 0 ? "#1b9ade" : "#fd5555",
+                shadowColor:
+                  i === 0
+                    ? "rgba(27, 154, 222, 0.5)"
+                    : "rgba(253, 85, 85, 0.5)",
+                shadowBlur: 10,
+                shadowOffsetX: 0,
+                shadowOffsetY: 0,
+              },
+            },
           };
         }),
       };
@@ -865,15 +956,14 @@ export default {
         tooltip: {
           trigger: "axis",
           formatter: item => {
-              let s = item[0] || {}, e  = item[1] || {};
+            let s = item[0] || {},
+              e = item[1] || {};
             let vb = this.numFor(s.value || 0),
               vn = this.numFor(e.value || 0),
               sele = this.launch_list[this.trend_act];
-            return `${sele.text} <br />${s.seriesName} ${
-              s.name
-            }时 ${vb + (sele.unit || "")} <br />${e.seriesName || ""} ${
-              s.name
-            }时 ${vn + (sele.unit || "")}`;
+            return `${sele.text} <br />${s.seriesName} ${s.name}时 ${vb +
+              (sele.unit || "")} <br />${e.seriesName || ""} ${s.name}时 ${vn +
+              (sele.unit || "")}`;
           },
         },
         yAxis: {
@@ -885,6 +975,7 @@ export default {
             },
           },
         },
+        color: ["#1b9ade", "#fd5555"],
         grid: [{ left: 150, top: "10%", buttom: 0, right: 100 }],
         series: chartData.value.map((v, i) => {
           return {
@@ -937,6 +1028,7 @@ export default {
           },
         },
         grid: [{ left: 50, top: "10%", buttom: 0, right: 100 }],
+        color: ["#1b9ade", "#fd5555"],
         series: [
           {
             name: "饱和度",
@@ -999,6 +1091,65 @@ export default {
 
       option && proportion_chart.setOption(option);
     },
+    advantageSort(type) {
+      let sel = this.timeSelect[this.active];
+      this.advantage_act = type;
+      advantageousList({
+        channelId: this.channleList[this.channel_act].channelId,
+        start: sel.startDate,
+        end: sel.endDate,
+        order: this.advantage_act,
+      }).then(advantageous => {
+        this.advantageous = advantageous || [];
+      });
+    },
+    potentialSort(type) {
+      let sel = this.timeSelect[this.active];
+      this.potential_act = type;
+      potentialList({
+        channelId: this.channleList[this.channel_act].channelId,
+        start: sel.startDate,
+        end: sel.endDate,
+        order: this.potential_act,
+      }).then(potential => {
+        this.potentialData = potential || [];
+      });
+    },
+    hoverTableLeft(row, thisIndex) {
+      let ortherList = this.customerData.before || [];
+      let ortherIndex = ortherList.findIndex(item => {
+        return item.brand === row.brand;
+      });
+
+      let left = { item: this.customerData.now || {}, index: thisIndex },
+        right = { item: this.customerData.before || {}, index: ortherIndex };
+
+      this.hoverList = this.linkScroll(left, right);
+
+      this.$refs.right.scrollTop = this.hoverList[1] - 100;
+    },
+    hoverTableRight(row, thisIndex) {
+      let ortherList = this.customerData.now || [];
+      let ortherIndex = ortherList.findIndex(item => {
+        return item.brand === row.brand;
+      });
+
+      let left = { item: this.customerData.now || {}, index: ortherIndex },
+        right = { item: this.customerData.before || {}, index: thisIndex };
+
+      this.hoverList = this.linkScroll(left, right);
+      this.$refs.left.scrollTop = this.hoverList[0] - 100;
+    },
+    linkScroll(left, right) {
+      let scrollTop = [];
+      scrollTop[0] = this.$refs.left.querySelectorAll("tr")[
+        left.index
+      ].offsetTop;
+      scrollTop[1] = this.$refs.right.querySelectorAll("tr")[
+        right.index
+      ].offsetTop;
+      return scrollTop;
+    },
   },
   beforeUnmount: function() {
     launch_chart.dispose();
@@ -1010,7 +1161,9 @@ export default {
     proportion_chart = undefined;
     saturation_chart = undefined;
   },
-  components: {},
+  components: {
+    down,
+  },
 };
 </script>
 
@@ -1097,6 +1250,16 @@ export default {
   border: 1px solid #d2e7fc;
   border-top: 3px solid #40a1f3;
 }
+.hardAdvertisement .customer_list_act {
+  position: absolute;
+  border: 2px solid #65aaff;
+  width: 405px;
+  z-index: 1;
+  height: 47px;
+  top: 42px;
+  left: 16px;
+  transition: all 0.2s;
+}
 .hardAdvertisement .customer_list_head {
   line-height: 42px;
   height: 42px;
@@ -1111,4 +1274,53 @@ export default {
   font-weight: 600;
   color: #000;
 }
+.hardAdvertisement .titleHead {
+  text-align: center;
+  position: relative;
+  height: 135px;
+  line-height: 135px;
+}
+.hardAdvertisement .line {
+  border-top: 1px solid #1989fa;
+  position: absolute;
+  width: 100%;
+  top: 50%;
+  z-index: 0;
+}
+.hardAdvertisement .titleText {
+  background-color: #fff;
+  color: #1989fa;
+  position: relative;
+  z-index: 1;
+  padding: 0 10px;
+  display: inline-block;
+  font-weight: 700;
+  font-size: 40px;
+}
+
+.hardAdvertisement .is-plain {
+  background-color: #ffffff !important;
+  border-color: #1989fa;
+  border-right: 1px solid #1989fa !important;
+  border-left: 1px solid #1989fa !important;
+  color: #1989fa;
+}
+.hardAdvertisement .is-plain:hover {
+  color: #1989fa;
+  border-color: #1989fa;
+}
+
+.hardAdvertisement .tr {
+  border-bottom: 1px solid rgb(128, 128, 128);
+}
+.hardAdvertisement .td {
+  padding: 12px 0;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  text-overflow: ellipsis;
+  vertical-align: middle;
+  position: relative;
+  text-align: center;
+  color: #439ff4;
+}
 </style>

+ 59 - 0
src/views/HardAdvertisement/components/down.vue

@@ -0,0 +1,59 @@
+<template>
+  <div class="down">
+    <span class="textDown" v-text="title"></span>
+    <svg
+      t="1646790770353"
+      class="icon"
+      viewBox="0 0 1024 1024"
+      version="1.1"
+      xmlns="http://www.w3.org/2000/svg"
+      p-id="2684"
+      width="20"
+      height="20"
+    >
+      <path
+        d="M719.36 575.36l-77.44 0c0-0.64 0-0.64 0-1.28L641.92 256c0-35.2-28.8-64-64-64L448 192C412.8 192 384 220.8 384 256l0 318.08c0 0.64 0 0.64 0 1.28L305.92 575.36c-44.16 0-65.92 44.8-35.2 70.4l206.72 173.44c19.2 16 50.56 16 69.76 0l206.72-173.44C785.28 620.16 763.52 575.36 719.36 575.36z"
+        p-id="2685"
+        :fill="act ? '#ff5a00' : '#000000'"
+      ></path>
+    </svg>
+  </div>
+</template>
+
+<script>
+// @ is an alias to /src
+// import config from "@/config/index";
+
+export default {
+  name: "AdvertisingEye_table",
+  data() {
+    return {};
+  },
+  props: {
+    act: {
+      type: Boolean,
+      value: false,
+    },
+    title: {
+      type: String,
+      value: "",
+    },
+  },
+  mounted() {},
+  computed: {},
+  filter: {},
+  methods: {},
+  beforeUnmount: function() {},
+  components: {},
+};
+</script>
+
+<style scoped>
+.down{
+    cursor: pointer;
+}
+.icon,.textDown {
+  vertical-align: middle;
+  font-weight: 600
+}
+</style>