123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441 |
- <template>
- <div style="font-size: 0; background-color: #fff">
- <div class="content">
- <img
- :src="
- 'https://cxzx.smcic.net/zhoubao/assets/moblie' +
- $route.params.date +
- '.jpg'
- "
- width="100%"
- class="content"
- style="margin-bottom: 1em; display: block"
- alt=""
- />
- <p
- class="content"
- :style="
- 'text-indent: 2em; font-weight: 700; padding: 0.5em 3px;font-size: ' +
- fontSize +
- 'px;'
- "
- v-html="desc"
- ></p>
- </div>
- <div class="tv-list" :style="'font-size:' + fontSize + 'px'">
- <div class="content">
- <van-cell-group border title="部门排行">
- <div class="itemHead">
- <van-row>
- <van-col span="3" class="td"> 排名 </van-col>
- <van-col span="7" class="td"> 部门 </van-col>
- <van-col span="7" class="td"> 传播量(次) </van-col>
- <!-- td2 :style="width > 667 ? 'line-height: 2.5em' : 'line-height: 1.5em'" -->
- <van-col span="5" class="td"> 发稿量(条) </van-col>
- <van-col span="2" class="td">
- <img
- src="../../../assets/image/shou.gif"
- width="26px"
- alt=""
- style="vertical-align: middle"
- />
- </van-col>
- </van-row>
- </div>
- <div v-for="(v, o) in dep || []" :key="v.name">
- <div
- style="border-bottom: 1px dashed #eee; margin: 11px 0 0 0"
- v-if="o === 20"
- ></div>
- <van-row class="item" @click="() => showPopup(o)">
- <van-col
- span="3"
- :class="{ td: true }"
- :style="{ color: color[o] || '#000', fontWeight: 600 }"
- >
- {{ o + 1 }}
- </van-col>
- <van-col span="7" :class="{ td: true }">
- {{ v.name }}
- </van-col>
- <van-col span="7" :class="{ td: true }">
- {{ timeFormat(v.read_count) }}
- <van-icon
- v-if="v.read_change !== '相等'"
- name="down"
- :color="v.read_change === '上涨' ? '#f00' : '#0f0'"
- :class="{ rise: v.read_change === '上涨' }"
- />
- </van-col>
- <van-col span="5" :class="{ td: true }">
- {{ timeFormat(v.publish_count) }}
- <van-icon
- v-if="v.publish_change !== '相等'"
- name="down"
- :color="v.publish_change === '上涨' ? '#f00' : '#0f0'"
- :class="{ rise: v.publish_change === '上涨' }"
- />
- </van-col>
- <van-col span="2" class="td" style="cursor: pointer">
- <van-icon name="arrow" />
- </van-col>
- </van-row>
- </div>
- <van-popup
- :style="{ height: '100%', width: '100%' }"
- position="right"
- v-model="show"
- >
- <div class="main">
- <van-cell
- title-style="flex: 3"
- :title="ratios.schedulename"
- :label="ratios.channelname"
- >
- <div
- @click="show = false"
- style="color: #5470c6; cursor: pointer"
- >
- <van-icon name="revoke" />
- {{ ratios.name }}
- </div>
- </van-cell>
- <van-row>
- <van-col span="7" class="td"> 发稿量: </van-col>
- <van-col span="5" class="td">
- {{ratios.publish_count}}
- </van-col>
- <van-col span="7" class="td"> 阅读量: </van-col>
- <van-col span="5" class="td">
- {{ratios.read_count}}
- </van-col>
- </van-row>
- <van-cell-group border title="平台账号">
- <van-tabs v-model="active">
- <van-tab
- :title="index"
- v-for="(item, index) in ratios.detail"
- :key="index"
- >
- <van-cell
- v-for="(v, i) in item || []"
- :key="i + v.nick_name"
- title-style="flex: 3"
- :title="v.nick_name"
- :label="ratios.channelname"
- >
- <template #label>
- <div style="font-size: 14px; color: #000">
- <van-tag
- size="large"
- type="success"
- style="margin-right: 3px"
- >
- 发稿量:{{ timeFormat(v.publish_count) }}
- </van-tag>
- <van-tag
- size="large"
- type="danger"
- style="margin-right: 3px"
- >
- 阅读量:{{ timeFormat(v.read_count) }}
- </van-tag>
- <van-tag
- size="large"
- type="warning"
- style="margin-right: 3px"
- >
- 环比:{{ v.read_huanbi || 0 }}%
- </van-tag>
- </div>
- </template>
- </van-cell>
- </van-tab>
- </van-tabs>
- </van-cell-group>
- <van-cell-group border title="热门稿件">
- <van-cell
- v-for="(v, i) in ratios.article"
- :key="i"
- title-style="flex: 3"
- :title="i + 1 + '、' + v.title"
- >
- <template #label>
- <van-tag size="large" type="primary"
- >传播量:{{ timeFormat(v.play_count) }}</van-tag
- >
- {{ v.dep_name + "-" + v.nick_name }}
- </template>
- </van-cell>
- </van-cell-group>
- </div>
- </van-popup>
- </van-cell-group>
- <van-cell-group border title="爆款话题">
- <p
- :style="
- 'text-indent: 2em; font-weight: 700; padding: 0.5em 3px;font-size: ' +
- fontSize +
- 'px;'
- "
- v-html="topic_desc"
- ></p>
- <van-cell
- v-for="(v, i) in topic"
- :key="i"
- title-style="flex: 3"
- :title="i + 1 + '、' + v.topic"
- >
- <template #label>
- <van-tag size="large" type="primary"
- >传播量:{{ timeFormat(v.read_count) }}</van-tag
- >
- {{ v.dep + "-" + v.zhuchiren }}
- </template>
- </van-cell>
- </van-cell-group>
- <van-cell-group border title="热门稿件">
- <van-cell
- v-for="(v, i) in article"
- :key="i"
- title-style="flex: 3"
- :title="i + 1 + '、' + v.title"
- >
- <template #label>
- <van-tag size="large" type="primary"
- >传播量:{{ timeFormat(v.play_count) }}</van-tag
- >
- {{ v.dep_name + "-" + v.nick_name }}
- </template>
- </van-cell>
- </van-cell-group>
- </div>
- <div class="bottom content">
- 本数据由“陕西广电融媒体集团大数据平台”提供。
- <p>
- 技术支持 <span style="white-space: nowrap">白帆13325452244;</span
- ><span style="white-space: nowrap">陈科18629350958。</span>
- </p>
- </div>
- </div>
- </div>
- </template>
- <script>
- // @ is an alias to /src
- import watermark from "watermark-package";
- import {
- Col as vanCol,
- Row as vanRow,
- Icon as vanIcon,
- Popup as vanPopup,
- Cell as vanCell,
- Tag as vanTag,
- Tab as vanTab,
- Tabs as vanTabs,
- cellGroup as vanCellGroup,
- } from "vant";
- import "vant/lib/tab/style/index";
- import "vant/lib/tabs/style/index";
- import "vant/lib/tag/style/index";
- import "vant/lib/cell/style/index";
- import "vant/lib/cell-group/style/index";
- import "vant/lib/popup/style/index";
- import "vant/lib/icon/style/index";
- import "vant/lib/col/style/index";
- import "vant/lib/row/style/index";
- // import {} from "../utils/tool";
- import { jsonZhouMobile } from "../../../api/index";
- // import echarts from "../../../utils/echarts";
- export default {
- name: "Mobile",
- data() {
- return {
- active: "",
- fontSize: 17,
- show: false,
- charts: undefined,
- ratios: {},
- article: [],
- topic: [],
- dep: [],
- color: ["#ff0036", "#ff9b00", "#ffcc00"],
- echarts: undefined,
- dayEcharts: undefined,
- width: document.body.offsetWidth || 0,
- desc: "",
- topic_desc: "",
- };
- },
- watch: {},
- mounted() {
- if (
- this.$route.query.auto !==
- "06fd56cdf5a6cfc3a2139cc8514d05aa0439ee8c1fb4d81145bc9647"
- )
- return;
- console.log(this.$route.params.date);
- this.fontSize = (document.body.offsetWidth / 24).toFixed(2) - 0;
- if (document.body.offsetWidth > 677) this.fontSize = 22;
- watermark.setWaterMark({
- w_texts: ["陕西新媒体大数据"],
- w_options: {
- w_opacity: "0.1",
- },
- });
- jsonZhouMobile({
- date: this.$route.params.date,
- time: Date.now(),
- }).then(res => {
- this.article = res.article || [];
- this.dep = res.dep || [];
- this.topic = res.topic || [];
- this.desc = res.desc || "";
- this.topic_desc = res.topic_desc || "";
- });
- },
- computed: {},
- methods: {
- valueDate(v) {
- let out = "";
- for (let i = 0; i < v.length; i++) {
- const item = v[i];
- if (i === 4 || i === 6 || i === 13 || i === 15) out += "/";
- out += item;
- }
- return out;
- },
- formatNum(num, w) {
- if (isNaN(num)) return 0;
- return Number(num).toFixed(w || 4) - 0;
- },
- formatType(num) {
- let N = this.formatNum(num, 2);
- let wei = "";
- if (N >= 100000000) {
- N = (N / 100000000).toFixed(1);
- wei = "亿";
- } else if (N >= 10000) {
- N = (N / 10000).toFixed(0);
- wei = "万";
- }
- N = N.toString().split(".");
- return {
- N: (N[0] || 0) * 1,
- P: N[1] || 0,
- wei,
- };
- },
- timeFormat(t) {
- let Time = t || 0;
- if (Time >= 100000000) Time = (Time / 100000000).toFixed(1) - 0 + "亿";
- else if (Time >= 10000) Time = (Time / 10000).toFixed(0) - 0 + "万";
- return Time;
- },
- showPopup(i) {
- this.show = true;
- const ratios = JSON.parse(JSON.stringify(this.dep[i] || {}));
- let publish_count = this.timeFormat(ratios.publish_count);
- ratios.publish_count = publish_count;
- let read_count = this.timeFormat(ratios.read_count);
- ratios.read_count = read_count;
- const detail = ratios.detail || [];
- const new_detail = {};
- for (let i = 0; i < detail.length; i++) {
- const v = detail[i];
- v.read_huanbi = (v.read_huanbi * 100).toFixed(2) - 0;
- if (new_detail[v.platform]) new_detail[v.platform].push(v);
- else new_detail[v.platform] = [v];
- }
- ratios.detail = new_detail;
- this.ratios = ratios;
- this.$nextTick(() => {});
- },
- },
- beforeUnmount() {},
- components: {
- vanCol,
- vanRow,
- vanIcon,
- vanPopup,
- vanCell,
- vanTag,
- vanCellGroup,
- vanTab,
- vanTabs,
- },
- };
- </script>
- <style scoped>
- .tv-list {
- background-color: #fff;
- padding: 5px;
- height: 100%;
- overflow-y: auto;
- box-sizing: border-box;
- }
- .bottom {
- border: 4px solid #0983a8;
- margin-top: 1em;
- padding: 10px;
- font-size: 0.9rem;
- padding-left: 5px;
- font-weight: 600;
- overflow: hidden;
- }
- .td {
- text-align: center;
- line-height: 2.5em;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- .td2 {
- line-height: 1.5em;
- white-space: initial;
- }
- .item {
- overflow: hidden;
- border-radius: 3px;
- margin-top: 11px;
- background-color: #f5f6f8;
- }
- .itemHead {
- margin-top: 0;
- background-color: #f5f6f8;
- }
- .main {
- padding: 0.5em;
- }
- .content {
- margin: 0 auto;
- max-width: 667px;
- }
- .rise {
- /* 上升 */
- transform: rotate(180deg);
- }
- .titleTop {
- height: 80px;
- line-height: 80px;
- background-image: linear-gradient(to right, #014392, #008fc4, #00428c);
- color: #fff;
- text-align: center;
- }
- </style>
- <style>
- .van-cell-group__title {
- font-size: 1.1rem;
- color: #000;
- font-weight: 600;
- }
- .van-tab,
- .van-cell,
- .van-cell__label {
- font-size: 1rem;
- color: #000;
- }
- </style>
|