You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

227 lines
7.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
* @Author: your name
* @Date: 2021-11-05 13:56:24
* @LastEditTime: 2021-12-16 10:03:29
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandComparison/BrandBeginComparte.vue
-->
<template>
<div class="d-container">
<div class="bbc-inner">
<themeCompateHeader ref="brandRef" @del="handlerDel"></themeCompateHeader>
<div class="mbc-inner">
<v-label-div title="主题分析">
</v-label-div>
<div class="card-outter">
<div class="card-items" v-for="(item, index) in myThemeArr" :key="index">
<div class="card-item-top">
<div class="card-uncomp" v-if="item.isCom">
<span style="margin-top: 5px">进行中</span>
</div>
<div class="card-completed" v-else></div>
</div>
<div class="card-item-data" @click="addThemeData(item)">
<div class="cid-title">
{{item.name}}
</div>
<div class="cid-data">
<div class="s1"><div class="s1-title">开始时间</div><div class="s1-text">{{item.startTime}}</div></div>
<div class="s1"><div class="s1-title">结束时间</div><div class="s1-text">{{item.endTime}}</div></div>
<div class="s1"><div class="s1-title">相关报道</div><div class="s1-text">{{item.total}}</div></div>
</div>
</div>
</div>
</div>
</div>
<div class="beCpm-footer" @click="handlerSubmit">
</div>
</div>
</div>
</template>
<script>
import {getSchemeDataToTheme} from "@/api/ThemeAnalize"
import themeCompateHeader from "./themeCompateHeader"
export default {
name: "BrandBeginComparte",
components: {
themeCompateHeader
},
inject: ['reload'],
data() {
return {
form: {
token: "",
pageIndex: '',
pageSize: '',
sType: 'former' //former往期 now现在
},
chooseArr: [null, null, null, null, null, null],
brands: [],
myThemeArr: [],
}
},
created() {
this.form.token = this.getToken;
this.getData();
},
methods: {
// 获取全部主题
getData() {
let obj = Object.assign({}, this.form);
getSchemeDataToTheme(obj).then(res => {
let data = res.data;
let themeArr = [];
data.forEach(ele => {
let obj = {
guids: ele.Guids,
name: ele.Name,
startTime: ele.StartTime,
endTime: ele.EndTime,
total: ele.ReportSum,
isCom: true
};
//判断是否到期
if(new Date(ele.EndTime) <= new Date(this.getDatetime().clock + '' + this.getDatetime().sClock)) {
obj.isCom = false
}
themeArr.push(obj);
})
this.myThemeArr = themeArr;
})
},
// 选择主题
addThemeData(row) {
for(let i = 0; i < this.chooseArr.length; i++) {
let n = this.chooseArr.findIndex(ele =>{
return ele && ele.name === row.name
})
if(!this.chooseArr[i] && n === -1) {
this.chooseArr[i] = row;
let obj = this.$refs.brandRef.brands[i]
obj.name = row.name;
obj.guids = row.guids;
obj.isDel = true;
return;
}
}
},
// 删除
handlerDel(n) {
this.chooseArr[n] = null;
},
// 开始对比
handlerSubmit() {
let arr = this.$refs.brandRef.brands || [];
let filterArr = arr.filter((ele) => {
return ele.name;
});
if(filterArr.length < 2) {
this.$message.warning('至少2个品牌进行对比');
return;
}
this.setTComparison(filterArr);
this.setTcStatus(true);
this.reload()
}
}
}
</script>
<style lang="less" scoped>
.bbc-inner {
padding: 0px 16px 16px 16px;
}
.mbc-inner {
width: 100%;
border: 2px solid #0f2a4d;
margin-top: 16px;
.card-outter {
display: flex;
flex-wrap:wrap;
justify-content: flex-start;
align-items: center;
padding-left: 16px;
}
}
.beCpm-footer {
position: relative;
width: 354px;
height: 64px;
background-image: url("../../assets/images/login/img_dlan_nor.png");
background-repeat: no-repeat;
background-size: cover;
bottom: 0px;
left: 50%;
transform: translate(-50%);
cursor: pointer;
color: #63aecc;
font-size: 24px;
font-weight: bold;
text-align: center;
line-height: 64px;
margin-top: 16px;
}
.card-items {
width: 446px;
height: 240px;
border: 2px solid #0F2A4D;
border-radius: 4px;
margin-top: 16px;
margin-right: 20px;
background: #010B19;
.card-item-top {
width: 100%;
display: flex;
justify-content: space-between;
.card-uncomp {
color: #63AECC;
width: 95px;
height: 28px;
border-radius: 0px 0px 0px 1px;
background-repeat: no-repeat;
background-size: cover;
background-image: url('../../assets/images/Index/card_status.png');
display: -webkit-box;
-webkit-box-align: center;/*兼容FSafari、Chrome */
-webkit-box-pack: center;/*兼容FSafari、Chrome */
};
.card-completed {
color: rgb(71, 114, 145);
width: 95px;
height: 28px;
background-repeat: no-repeat;
background-size: cover;
border-radius: 0px 0px 0px 1px;
background-image: url('../../assets/images/Index/card_status.png');
display: -webkit-box;
-webkit-box-align: center;/*兼容FSafari、Chrome */
-webkit-box-pack: center;/*兼容FSafari、Chrome */
}
}
.card-item-data {
width: 100%;
padding: 16px;
color: white;
.cid-title {
height: 133px;
font-size: 20px;
}
.cid-data {
display: flex;
justify-content: flex-start;
.s1 {
width: 33%;
display: block;
font-family: Bebas;
font-size: 12px;
.s1-title {
color: #7b93a5;
}
}
}
}
}
</style>