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.
|
|
<template> <el-dialog title="活动详情" :visible="dialogVisible" width="375px" class="activity-detail-dialog" top="20px" append-to-body :close-on-click-modal="false" @close="handleClose" > <div class="mini-program-container"> <div class="content"> <img v-if="activity.coverImage" class="activity-img" :src="`${imgHttpsUrl}/files/${activity.coverImage}`"> <div v-else class="activity-img-placeholder" />
<div class="activity-base"> <span class="title">{{ activity.title }}</span> <div class="time"> <i class="el-icon-time" /> <span>{{ activity.startTime }} - {{ activity.endTime }}</span> </div> <div class="location"> <i class="iconfont icon-weizhi-copy" /> <span>{{ activity.activityLocation }}</span> </div> </div>
<div class="rich-content"> <span class="content-title">活动介绍/回顾</span> <div class="content-html" v-html="activity.activityContent" /> </div> </div> </div> </el-dialog></template>
<script>import { mapGetters } from 'vuex'
export default { name: 'ActivityDetail', props: { visible: { type: Boolean, default: false }, activity: { type: Object, default: () => ({}) } }, data() { return { dialogVisible: false } }, computed: { ...mapGetters(['baseApi']), imgHttpsUrl() { if (process.env.NODE_ENV === 'production') { return (window.g && window.g.ApiUrl) || '' } else { return process.env.VUE_APP_WECHAT_URL } } }, watch: { visible(val) { this.dialogVisible = val } }, methods: { handleClose() { this.dialogVisible = false this.$emit('update:activity', {}) this.$emit('update:visible', false) } }}</script>
<style scoped lang="scss">@import "~@/assets/styles/quillEditor.css";.activity-detail-dialog { ::v-deep .el-dialog{ padding: 0 !important; .el-dialog__header { padding: 17px !important; } .el-dialog__body { padding: 0; overflow: hidden; } .el-dialog__footer { display: none; } }}
.mini-program-container { width: 100%; height: 667px; background-color: #f5f5f5; display: flex; flex-direction: column; overflow: hidden;
::-webkit-scrollbar { width: 4px; height: 4px; } ::-webkit-scrollbar-thumb { background-color: #afb6c4; }}
// .header {
// height: 44px;
// background-color: #ffffff;
// display: flex;
// align-items: center;
// justify-content: space-between;
// padding: 0 16px;
// box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
// }
// .header-left {
// width: 44px;
// height: 44px;
// display: flex;
// align-items: center;
// justify-content: center;
// cursor: pointer;
// font-size: 20px;
// color: #333;
// }
// .header-title {
// font-size: 17px;
// font-weight: 600;
// color: #333;
// }
// .header-right {
// width: 60px;
// display: flex;
// align-items: center;
// justify-content: space-between;
// font-size: 20px;
// color: #333;
// }
.content { flex: 1; overflow-y: auto;}
.activity-img { display: block; width: 100%; // height: 180px;
object-fit: cover;}
.activity-img-placeholder { width: 100%; height: 180px; background-color: #eee;}
.activity-base { background: #fff; padding: 15px; margin-bottom: 10px; .title { font-size: 16px; font-weight: bold; padding-bottom: 10px; color: #333; } .time, .location { display: flex; align-items: center; font-size: 12px; color: #999; padding-top: 10px; i { padding-right: 4px; font-size: 14px; } } .location { i { padding-right: 2px; } }}
.rich-content { background: #fff; .content-title { position: relative; font-size: 16px; font-weight: bold; color: #333; padding: 12px 0 10px 12px; display: block; &::before { position: absolute; left: 0; top: 50%; margin-top: -9px; content: ""; width: 4px; height: 18px; background-color: #01a4fe; } }
}
.content-html { padding: 10px; ::v-deep img { width: 100%; display: block; } ::v-deep p{ line-height: 1.5; margin: 15px 0; }
::v-deep blockquote { background-color: var(--w-e-textarea-slight-bg-color); border-left: 8px solid var(--w-e-textarea-selected-border-color); display: block; font-size: 100%; line-height: 1.5; margin: 10px 0; padding: 10px; } ::v-deep .table-container { border: 1px dashed #dcdfe6; border-radius: 5px; margin-top: 10px; overflow-x: auto; padding: 10px; width: 100%; } ::v-deep table { width: 100% !important; border-collapse: collapse; margin: 10px 0; } ::v-deep table tr:nth-child(even) { background-color: #fafafa; } ::v-deep table td, ::v-deep table th { border: 1px solid #dcdfe6; padding: 8px 12px; text-align: center; font-size: 14px; }}
// .detail-bottom {
// position: absolute;
// bottom: 0;
// left: 0;
// right: 0;
// height: 50px;
// background: #fff;
// display: flex;
// align-items: center;
// justify-content: space-between;
// padding: 0 15px;
// box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
// }
// .detail-left {
// display: flex;
// gap: 10px;
// }
// .handle-btn {
// display: flex;
// align-items: center;
// gap: 4px;
// background: #f5f5f5;
// border-radius: 30px;
// padding: 0 12px;
// height: 36px;
// font-size: 14px;
// color: #666;
// border: none;
// cursor: pointer;
// i {
// font-size: 16px;
// }
// }
// .join-btn {
// background: #01a4fe;
// color: #fff;
// border-radius: 30px;
// padding: 0 20px;
// height: 36px;
// font-size: 14px;
// border: none;
// cursor: pointer;
// }
// .disabled-btn {
// background: #ccc !important;
// cursor: not-allowed;
// }
</style>
|