| | |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | | <div class="bookDetail"> |
| | | <div class="bookDetail" v-loading="loading"> |
| | | <div class="bookImg"> |
| | | <img class="autoImg" :src="bookInfo.icon" alt="" /> |
| | | <img class="autoImg" :src="bookInfo.icon ? bookInfo.icon : defaultImg" alt="" /> |
| | | </div> |
| | | <span class="iconfont icon-tubiaozhizuo"></span> |
| | | |
| | |
| | | @click="collectBook" |
| | | v-if="bookInfo.isFavourite" |
| | | class="buyIcon" |
| | | src="@/assets/images/bookStore/shoucang.svg" |
| | | src="@/assets/images/xiehe/detail/Collection_fill.png" |
| | | style="margin-right: 10px" |
| | | /> |
| | | <span |
| | |
| | | <div class="collectText" @click="collectBook" v-if="bookInfo.isFavourite"> |
| | | 已收藏 |
| | | </div> |
| | | <div class="collectText" @click="collectBook" v-else>收藏</div> |
| | | |
| | | <div class="collectText" @click="collectBook" v-else> |
| | | <img |
| | | @click="collectBook" |
| | | class="buyIcon" |
| | | src="@/assets/images/xiehe/detail/Collection.png" |
| | | style="margin-right: 10px" |
| | | /> |
| | | 收藏 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="authorBox"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="联系编辑" :visible.sync="contactVisible" width="30%" :lock-scroll="false"> |
| | | <div class="contactBox" v-if="bookInfo.editor"> |
| | | <div class="contacItem"> |
| | | <i class="iconfont icon-renwu-ren contacIcon"></i> |
| | | {{ bookInfo.editor.name }} |
| | | </div> |
| | | <div class="contacItem"> |
| | | <i class="iconfont icon-QQ contacIcon"></i> |
| | | {{ bookInfo.editor.qq }} |
| | | </div> |
| | | <div class="contacItem"> |
| | | <i class="iconfont icon-tongxunlu contacIcon"></i> |
| | | {{ bookInfo.editor.phone }} |
| | | </div> |
| | | <div class="contacItem"> |
| | | <i class="iconfont icon-dianhua contacIcon"></i> |
| | | {{ bookInfo.editor.telephone }} |
| | | </div> |
| | | </div> |
| | | <el-empty v-else description="暂无数据" class="empty" :image-size="100"></el-empty> |
| | | </el-dialog> |
| | | <el-dialog title="信息反馈" :visible.sync="dialogVisible" width="50%" :lock-scroll="false"> |
| | | <div class="infoDialog"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="8" |
| | | placeholder="详细描述您所遇到的问题,有助于快速给您反馈!" |
| | | v-model="textarea" |
| | | > |
| | | </el-input> |
| | | <div class="subBtn"> |
| | | <el-button type="primary" @click="sendDiscuss">提交</el-button> |
| | | </div> |
| | | <div class="infoList"> |
| | | <div class="infoItem" v-for="(item, index) in commentList" :key="index"> |
| | | <div class="infoImg"> |
| | | <img v-if="item.icon" class="autoImg" :src="item.icon" alt="" /> |
| | | <i v-else class="el-icon-user-solid"></i> |
| | | </div> |
| | | <div class="infoContent"> |
| | | <div class="infoTitle"> |
| | | <div class="userNameBox">{{ item.content.name }}</div> |
| | | <div class="userNameBox"> |
| | | {{ moment(item.createDate).format('YYYY-MM-DD') }} |
| | | </div> |
| | | </div> |
| | | <div class="infoText"> |
| | | {{ item.content.content }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | <div v-else-if="editableTabsValue == '2'" class="catalogue"> |
| | | <el-empty description="暂无数据" /> |
| | | <div v-if="bookInfo.catalogue" v-html="bookInfo.catalogue" class="catalogueContent"></div> |
| | | <el-empty description="暂无数据" v-else /> |
| | | </div> |
| | | <div v-else-if="editableTabsValue == '6'" class="supportingResources"> |
| | | <div class="resourcesBox"> |
| | |
| | | import moment from 'moment' |
| | | import axios from 'axios' |
| | | import * as echarts from 'echarts' |
| | | import defaultImg from '@/assets/images/book-cover.png' |
| | | import imgIcon from '@/assets/images/digitalTextbooks/img.png' |
| | | import AudioIcon from '@/assets/images/digitalTextbooks/Audio.png' |
| | | import DIcon from '@/assets/images/digitalTextbooks/3D.png' |
| | |
| | | import { ref, onBeforeMount, inject, reactive, onMounted, watchEffect } from 'vue' |
| | | const MG = inject('MG') |
| | | const config = inject('config') |
| | | const logIn = inject('logIn') |
| | | import { useRouter, useRoute } from 'vue-router' |
| | | import { applyBookStore } from '@/store' |
| | | const route = useRoute() |
| | |
| | | let recommendBookListData = ref([]) |
| | | let editableTabsValue = ref('1') |
| | | let resourceHave = ref(true) |
| | | let loading = ref(false) |
| | | var chartDom = null |
| | | var myChart = {} |
| | | var option = null |
| | | |
| | | const editableTabs = reactive([ |
| | | { |
| | | title: '教材信息', |
| | |
| | | getBookResource() |
| | | } |
| | | }) |
| | | |
| | | //收藏书籍 |
| | | const collectBook = () => { |
| | | if (localStorage.getItem(config.tokenKey)) { |
| | | if (bookInfo.value.isFavourite) { |
| | | MG.store |
| | | .delProductLink({ |
| | | productIds: [bookInfo.value.id], |
| | | linkType: 'FavoriteBookCity', |
| | | }) |
| | | .then(() => { |
| | | bookInfo.value.isFavourite = false |
| | | }) |
| | | } else { |
| | | let params = { |
| | | productIds: [bookInfo.value.id], |
| | | linkType: 'FavoriteBookCity', |
| | | } |
| | | MG.store.addProductLink(params).then((res) => { |
| | | bookInfo.value.isFavourite = true |
| | | }) |
| | | } |
| | | } else { |
| | | logIn() |
| | | console.log(logIn) |
| | | } |
| | | } |
| | | |
| | | //申请试用 |
| | | const applyTextBook = () => { |
| | |
| | | } |
| | | |
| | | const getBookDetail = (id) => { |
| | | loading.value = true |
| | | const query = { |
| | | path: '*', |
| | | queryType: '*', |
| | |
| | | MG.store.getProductDetail(query).then((res) => { |
| | | console.log(res, 'res') |
| | | bookInfo.value = res.datas |
| | | loading.value = false |
| | | console.log(res.datas, 'res') |
| | | }) |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | .textbookContent, |
| | | .authorInfo { |
| | | margin-top: 20px; |
| | | line-height: 28px; |
| | | } |
| | | </style> |