// 2.1 導入 vue-resource import VueResource from 'vue-resource' // 2.2 安裝 vue-resource Vue.use(VueResource) // 設置請求的根路徑 Vue.http.options.root = 'http://vue.studyit.io'; // 全局設置 post 時候表單數據格式組織形式 application/x-www-form-urlencoded Vue.http.options.emulateJSON = true;
// 導入格式化時間的插件 import moment from 'moment' // 定義全局的過濾器 Vue.filter('dateFormat', function (dataStr, pattern = "YYYY-MM-DD HH:mm:ss") { return moment(dataStr).format(pattern) })
// 安裝 圖片預覽插件 import VuePreview from 'vue-preview' Vue.use(VuePreview)
縮略圖使用實例javascript
<template> <div class="photoinfo-container"> <h3>{{ photoinfo.title }}</h3> <p class="subtitle"> <span>發表時間:{{ photoinfo.add_time | dateFormat }}</span> <span>點擊:{{ photoinfo.click }}次</span> </p> <hr> <!-- 縮略圖區域 --> <div class="thumbs"> <img class="preview-img" v-for="(item, index) in list" :src="item.src" height="100" @click="$preview.open(index, list)" :key="item.src"> </div> <!-- 圖片內容區域 --> <div class="content" v-html="photoinfo.content"></div> <!-- 放置一個現成的 評論子組件 --> <cmt-box :id="id"></cmt-box> </div> </template> <script> // 1. 導入評論子組件 import comment from "../subcomponents/comment.vue"; export default { data() { return { id: this.$route.params.id, // 從路由中獲取到的 圖片Id photoinfo: {}, // 圖片詳情 list: [] // 縮略圖的數組 }; }, created() { this.getPhotoInfo(); this.getThumbs(); }, methods: { getPhotoInfo() { // 獲取圖片的詳情 this.$http.get("api/getimageInfo/" + this.id).then(result => { if (result.body.status === 0) { this.photoinfo = result.body.message[0]; } }); }, getThumbs() { // 獲取縮略圖 this.$http.get("api/getthumimages/" + this.id).then(result => { if (result.body.status === 0) { // 循環每一個圖片數據,補全圖片的寬和高 result.body.message.forEach(item => { item.w = 600; item.h = 400; }); // 把完整的數據保存到 list 中 this.list = result.body.message; } }); } }, components: { // 註冊 評論子組件 "cmt-box": comment } }; </script> <style lang="scss" scoped> .photoinfo-container { padding: 3px; h3 { color: #26a2ff; font-size: 15px; text-align: center; margin: 15px 0; } .subtitle { display: flex; justify-content: space-between; font-size: 13px; } .content { font-size: 13px; line-height: 30px; } .thumbs{ img{ margin: 10px; box-shadow: 0 0 8px #999; } } } </style>
<!-- 圖片列表區域 --> <ul class="photo-list"> <router-link v-for="item in list" :key="item.id" :to="'/home/photoinfo/' + item.id" tag="li"> <img v-lazy="item.img_url"> <div class="info"> <h1 class="info-title">{{ item.title }}</h1> <div class="info-body">{{ item.zhaiyao }}</div> </div> </router-link> </ul>