case/src/views/result.vue
zoujiandong 5850bdee94 first
2025-03-07 17:11:01 +08:00

433 lines
10 KiB
Vue

<template>
<div class="main">
<div class="bannerbox">
<img src="../assets/banner.jpg" alt="" class="banner">
<div class="thank" :class="{'on':!scoreObj.describe}">感谢您完成阅读!</div>
<div class="score" v-if="scoreObj.describe">您已获得:<span>{{ scoreObj.total_score }}</span>{{source?'e豆':'积分'}}</div>
<div class="tips" v-if="scoreObj.describe">({{scoreObj.describe}})</div>
</div>
<comment ref="commentRef"></comment>
<div class="pagebox">
<pageunit v-for="(item, index) in pageList" :pageIndex="index" :pageItem="item" :imgList="imgList" @changeImg="changeImg"></pageunit>
</div>
<totop></totop>
<back></back>
</div>
<!-- <van-image-preview ref="ImagePreview" v-model:show="showImg" closeable :images="imgList" @change="onChange">
</van-image-preview> -->
</template>
<script setup>
import { ref,reactive } from "vue";
import api from '../api/user.js';
import { useRouter, useRoute } from 'vue-router';
import { WXSHARE } from "../utils/wxshare-1.6.0";
import host from "../utils/host"
const scoreObj = reactive({});
const route = useRoute();
const case_id = ref(route.query.case_id)
const pageList = ref([]);
const commentRef = ref(null);
const project_id = ref(route.query.project_id);
const is_welfare=ref(0);
const imgList = ref([]);
let origin=route.query.source?route.query.source:''
const source = ref(origin);
const getDetail = async () => {
const { code, data } = await api.getCaseDetail(case_id.value)
if (code == 200) {
document.title = data.case_name;
let link=host+'/web/caseIntro?case_id='+case_id.value;
WXSHARE(data.case_name,'“佳动例”等你来挑战,精彩福利享不停',link,'');
// Object.assign(caseObj, data)
// casePage.value = data.case_item;
pageList.value = [];
for (let i = 1; i < data.case_item.length; i++) {
pageList.value.push(data.case_item[i]);
}
}
}
const getScore=()=>{
api.getScore({
case_id:case_id.value
}).then(res=>{
if(res.code==200){
if(res.data){
Object.assign(scoreObj, res.data)
}
}
})
}
const changeImg=(data)=>{
console.log(data);
imgList.value=imgList.value.concat(data);
}
onMounted(async() => {
commentRef.value.init(case_id.value, project_id.value);
getScore();
getDetail()
});
</script>
<style lang='scss' scoped>
.main {
width: 100%;
overflow: hidden;
.banner {
width: 100%;
}
.bannerbox {
position: relative;
.thank {
position: absolute;
top: 21.69%;
// right: 18.53%;
white-space: nowrap;
left:50%;
transform: translateX(-50%);
font-weight: 600;
font-size: 23px;
color: #0CAF98;
line-height: 30px;
}
.thank.on{
top: 40.10%;
}
.score {
position: absolute;
top: 50.10%;
//right: 26.13%;
left:50%;
transform: translateX(-50%);
font-weight: 550;
display: flex;
white-space: nowrap;
align-items: first baseline;
font-size: 16px;
color: #1F1F1F;
span{
font-size: 21px;
font-weight: 550;
color:#FF173D
}
}
.tips{
position: absolute;
white-space: nowrap;
top: 72.43%;
// right: 9.7%;
left:50%;
transform: translateX(-50%);
font-weight: 500;
font-size: 12px;
color: #1F1F1F;
}
}
.add {
margin: 25px auto;
width: 250px;
height: 40px;
background: #43C9C3;
border-radius: 23px;
display: flex;
font-size: 14px;
color: #FFFFFF;
justify-content: center;
align-items: center;
}
.loadmore {
margin-top: 15px;
height: 50px;
display: flex;
font-size: 15px;
color: #FFFFFF;
justify-content: center;
align-items: center;
background: #0CAF98;
}
.conmmentbox {
margin-top: 40px;
}
.talkbox {
margin: 12px 30px 0px 0;
}
.toolbox {
margin-top: 12px;
display: flex;
justify-content: space-between;
.cancel {
height: 38px;
background: #FFFFFF;
border: 1px solid #EBEBEB;
border-radius: 4px;
font-size: 14px;
display: flex;
justify-content: center;
align-items: center;
color: #737478;
flex: 1;
}
.ok {
margin-left: 12px;
flex: 1;
border-radius: 4px;
height: 38px;
display: flex;
justify-content: center;
align-items: center;
background: #43C9C3;
border: 1px solid #43C9C3;
font-size: 14px;
color: #fff;
}
}
.expand {
width: 240px;
height: 19px;
margin: 12px auto 12px;
background: #43C9C3;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
font-size: 10px;
color: #FFFFFF;
}
.active {
border-bottom: 1px solid #E5E5E5;
}
.comemntcell {
display: flex;
.descbox {
margin-left: 12px;
flex: 1;
// border-bottom: 1px solid #E5E5E5;
.depart {
margin-top: 10px;
font-weight: 400;
font-size: 12px;
color: #333333;
}
.hospital {
margin-top: 4px;
font-weight: 400;
font-size: 12px;
color: #333333;
}
.date {
margin-top: 4px;
font-weight: 400;
font-size: 12px;
color: #333333;
}
.comemntcell {
border-bottom: 1px solid #E5E5E5;
.descbox {
border: none;
padding-bottom: 15px;
}
}
.comment {
margin-top: 4px;
display: flex;
.text {
font-size: 12px;
color: #333333;
line-height: 17px;
flex: 1;
}
.reply {
margin-left: 30px;
width: 40px;
height: 20px;
background: #43C9C3;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #FFFFFF;
}
}
.tag {
margin-top: 2px;
font-size: 12px;
color: #FFFFFF;
height: 15px;
background: #43C9C3;
border-radius: 10px;
display: flex;
padding: 0 4px;
width: 52px;
justify-content: center;
align-items: center;
span {
transform: scale(0.9);
}
}
.namebox {
display: flex;
align-items: center;
justify-content: space-between;
.name {
font-size: 17px;
color: #333333;
}
.zanbox {
display: flex;
font-size: 15px;
color: #333333;
align-items: center;
margin-right: 40px;
img {
width: 20px;
height: 20px;
}
}
}
}
}
.bg {
width: 100%;
position: relative;
z-index: -1;
}
.content {
padding: 0 15px;
background: url('../assets/bg.png') no-repeat 0 0;
background-size: 100% auto;
margin: 0px 0px;
min-height: 300px;
margin-bottom: 20px;
.count {
:deep() .van-count-down {
color: #fff;
}
right:0;
top:-10px;
z-index:9;
display: flex;
align-items: center;
position: absolute;
height: 31px;
padding:0 8px;
background: #43C9C3;
border-radius: 8px;
}
.title {
position: relative;
background-size: 50px 15px;
padding: 20px 0 10px;
font-weight: 600;
font-size: 23px;
color: #000000;
.cai{
width: 50px;
height: 25px;
bottom:4px;
left:-4px;
z-index:-1;
position: absolute;
}
}
.tips {
font-weight: 400;
font-size: 17px;
color: #666666;
}
}
.textbox {
border-radius: 5px;
border: .5px solid #43C9C3;
:deep() .van-cell {
background: none;
}
:deep() .van-field__word-limit {
color: #999999;
}
}
.bottom {
margin-top: 65px;
width: 100%;
overflow: hidden;
.button {
width: 250px;
height: 40px;
margin: 34px auto 0;
background: #43C9C3;
border-radius: 20px;
font-weight: 500;
font-size: 17px;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
}
}
}
</style>