xiongzhu il y a 4 ans
Parent
commit
5f83c42a25

+ 1 - 0
package.json

@@ -32,6 +32,7 @@
     "photoswipe": "^4.1.3",
     "probe-image-size": "^6.0.0",
     "qs": "^6.9.4",
+    "resolve-url": "^0.2.1",
     "safe-area-insets": "^1.4.1",
     "url-search-params-polyfill": "^7.0.0",
     "vant": "^2.12.3",

+ 1 - 1
src/components/newsItem.vue

@@ -4,7 +4,7 @@
             <div class="title">{{ content.title }}</div>
             <div class="time">{{ content.createdAt }}</div>
         </div>
-        <img class="cover" v-if="content.cover" :src="content.cover" />
+        <img class="cover" v-if="content.cover" :src="content.cover | src" />
     </router-link>
 </template>
 <script>

+ 7 - 0
src/main.js

@@ -17,6 +17,7 @@ import VueBus from 'vue-bus';
 import dayjs from 'dayjs';
 import relativeTime from 'dayjs/plugin/relativeTime';
 import zh from 'dayjs/locale/zh-cn';
+import resolveUrl from 'resolve-url';
 dayjs.locale('zh-cn');
 dayjs.extend(relativeTime);
 // const iNoBounce = require('./inobounce');
@@ -86,6 +87,12 @@ Vue.mixin({
         }
     }
 });
+Vue.filter('src', function(value) {
+    if (!/^http/.test(value)) {
+        return resolveUrl(Vue.$baseUrl, value);
+    }
+    return value;
+});
 const vm = new Vue({
     router,
     store,

+ 1 - 1
src/views/collections.vue

@@ -7,7 +7,7 @@
         <div class="list">
             <van-swipe-cell v-for="item in list" :key="item.id" class="item-swipe">
                 <div class="list-item" @click="detail(item)">
-                    <van-image width="110" height="110" fit="cover" class="cover" :src="(item.images || [])[0]" />
+                    <van-image width="110" height="110" fit="cover" class="cover" :src="(item.images || [])[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc">{{ item.typeDesc }}</div>

+ 1 - 1
src/views/conversations.vue

@@ -5,7 +5,7 @@
         </nav-bar>
         <div class="list">
             <div class="conversation-item" v-for="item in conversations" :key="item.sessionId" @click="detail(item)">
-                <img class="icon" :src="item.icon" />
+                <img class="icon" :src="item.icon | src" />
                 <div class="info">
                     <div class="title">
                         <div class="text">{{ item.title }}</div>

+ 1 - 1
src/views/index/my.vue

@@ -3,7 +3,7 @@
         <div class="user">
             <img
                 class="avatar"
-                :src="(userInfo || {}).avatar || 'https://jxjmrh.oss-cn-hangzhou.aliyuncs.com/image/avatar.jpg'"
+                :src="(userInfo || {}).avatar || 'https://jxjmrh.oss-cn-hangzhou.aliyuncs.com/image/avatar.jpg' | src"
             />
             <div class="info" v-if="userInfo && userInfo.id">
                 <div class="name">{{ userInfo.nickname }}</div>

+ 3 - 3
src/views/interact/forumDetail.vue

@@ -6,7 +6,7 @@
             {{ post.content }}
         </div>
         <div class="info">
-            <van-image class="avatar" :src="post.avatar" width="24" height="24" fit="cover" round />
+            <van-image class="avatar" :src="post.avatar | src" width="24" height="24" fit="cover" round />
             <div class="name">{{ post.nickname }}</div>
             <div class="time">{{ toDate(post.createdAt) }}&nbsp;创建</div>
         </div>
@@ -16,7 +16,7 @@
         </div>
         <div class="comment" v-for="item in comments" :key="item.id">
             <div class="comment-title">
-                <van-image class="avatar" :src="item.avatar" width="24" height="24" fit="cover" round />
+                <van-image class="avatar" :src="item.avatar | src" width="24" height="24" fit="cover" round />
                 <div class="name">{{ item.nickname }}</div>
             </div>
             <div class="content">
@@ -26,7 +26,7 @@
                 <div class="pics" preview-group>
                     <van-image
                         class="pic"
-                        :src="item"
+                        :src="item | src"
                         width="60"
                         height="60"
                         fit="cover"

+ 1 - 1
src/views/interact/official.vue

@@ -7,7 +7,7 @@
             @click="$router.push({ name: 'officialDetail', query: { id: item.id } })"
         >
             <div class="title">
-                <van-image class="avatar" :src="item.avatar" width="24" height="24" fit="cover" round />
+                <van-image class="avatar" :src="item.avatar | src" width="24" height="24" fit="cover" round />
                 <div class="txt">{{ item.title }}</div>
             </div>
             <div class="answer">

+ 2 - 2
src/views/interact/officialDetail.vue

@@ -8,7 +8,7 @@
         <div class="pics" preview-group>
             <van-image
                 class="pic"
-                :src="item"
+                :src="item | src"
                 width="60"
                 height="60"
                 fit="cover"
@@ -18,7 +18,7 @@
             />
         </div>
         <div class="info">
-            <van-image class="avatar" :src="post.avatar" width="24" height="24" fit="cover" round />
+            <van-image class="avatar" :src="post.avatar | src" width="24" height="24" fit="cover" round />
             <div class="name">{{ post.nickname }}</div>
             <div class="time">{{ toDate(post.createdAt) }}&nbsp;创建</div>
         </div>

+ 1 - 1
src/views/interact/qa.vue

@@ -8,7 +8,7 @@
         >
             <div class="title">{{ item.title }}</div>
             <div class="info">
-                <van-image class="avatar" :src="item.avatar" width="20" height="20" fit="cover" round />
+                <van-image class="avatar" :src="item.avatar | src" width="20" height="20" fit="cover" round />
                 <div class="name">{{ item.nickname }}</div>
                 <div class="time">{{ item.createdAt }}</div>
                 <div class="num">{{ item.commentNum }} 回答</div>

+ 2 - 2
src/views/message.vue

@@ -9,7 +9,7 @@
                     v-if="item.type === 'TEXT' && item.userId === userInfo.id"
                     :key="item.id"
                 >
-                    <img class="avatar" :src="(userInfo || {}).avatar" />
+                    <img class="avatar" :src="(userInfo || {}).avatar | src" />
                     <div class="msg-content">{{ item.content }}</div>
                 </div>
                 <div
@@ -18,7 +18,7 @@
                     v-else-if="item.type === 'TEXT'"
                     :key="item.id"
                 >
-                    <img class="avatar" :src="conversation.icon" />
+                    <img class="avatar" :src="conversation.icon | src" />
                     <div class="msg-content">{{ item.content }}</div>
                 </div>
             </template>

+ 1 - 1
src/views/myInteract.vue

@@ -13,7 +13,7 @@
         <div class="list">
             <div class="item" v-for="item in list" :key="item.id" @click="detail(item)">
                 <div class="info">
-                    <van-image width="24" height="24" round fit="cover" :src="($store.state.userInfo || {}).avatar" />
+                    <van-image width="24" height="24" round fit="cover" :src="($store.state.userInfo || {}).avatar | src" />
                     <div class="name">{{ ($store.state.userInfo || {}).nickname }}</div>
                     <div class="desc">{{ item.comment ? '回复' : '发布' }}</div>
                     <img src="../assets/icon_more.png" class="icon" />

+ 1 - 1
src/views/search.vue

@@ -26,7 +26,7 @@
                 class="snd-item"
                 @click="$router.push({ name: 'sndDetail', query: { type: item.type, id: item.id } })"
             >
-                <van-image width="110" height="110" fit="cover" class="cover" :src="(item.images || [])[0]" />
+                <van-image width="110" height="110" fit="cover" class="cover" :src="(item.images || [])[0] | src" />
                 <div class="info">
                     <div class="name">{{ item.name }}</div>
                     <div class="desc">{{ item.typeDesc }}</div>

+ 1 - 1
src/views/snd/dFinancial.vue

@@ -29,7 +29,7 @@
             <van-empty v-if="empty" description="暂无内容" />
             <van-list v-else v-model="loading" :finished="last" finished-text="没有更多了" @load="loadmore">
                 <div class="list-item" v-for="item in list" :key="item.id" @click="detail(item.id, 'dFinancial')">
-                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0]" />
+                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc" v-if="item.series">

+ 1 - 1
src/views/snd/dProduct.vue

@@ -29,7 +29,7 @@
             <van-empty v-if="empty" description="暂无内容" />
             <van-list v-else v-model="loading" :finished="last" finished-text="没有更多了" @load="loadmore">
                 <div class="list-item" v-for="item in list" :key="item.id" @click="detail(item.id, 'dProduct')">
-                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0]" />
+                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc">{{ item.needInfo }}</div>

+ 1 - 1
src/views/snd/dTech.vue

@@ -29,7 +29,7 @@
             <van-empty v-if="empty" description="暂无内容" />
             <van-list v-else v-model="loading" :finished="last" finished-text="没有更多了" @load="loadmore">
                 <div class="list-item" v-for="item in list" :key="item.id" @click="detail(item.id, 'dTech')">
-                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0]" />
+                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc">{{ item.needInfo }}</div>

+ 1 - 1
src/views/snd/sProduct.vue

@@ -29,7 +29,7 @@
             <van-empty v-if="empty" description="暂无内容" />
             <van-list v-else v-model="loading" :finished="last" finished-text="没有更多了" @load="loadmore">
                 <div class="list-item" v-for="item in list" :key="item.id" @click="detail(item.id, 'sProduct')">
-                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0]" />
+                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc">{{ item.description }}</div>

+ 1 - 1
src/views/snd/sResource.vue

@@ -29,7 +29,7 @@
             <van-empty v-if="empty" description="暂无内容" />
             <van-list v-else v-model="loading" :finished="last" finished-text="没有更多了" @load="loadmore">
                 <div class="list-item" v-for="item in list" :key="item.id" @click="detail(item.id, 'sResource')">
-                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0]" />
+                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc">{{ item.description }}</div>

+ 1 - 1
src/views/snd/sTech.vue

@@ -29,7 +29,7 @@
             <van-empty v-if="empty" description="暂无内容" />
             <van-list v-else v-model="loading" :finished="last" finished-text="没有更多了" @load="loadmore">
                 <div class="list-item" v-for="item in list" :key="item.id" @click="detail(item.id, 'sTech')">
-                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0]" />
+                    <img v-if="item.images && item.images.length" class="cover" :src="item.images[0] | src" />
                     <div class="info">
                         <div class="name">{{ item.name }}</div>
                         <div class="desc">{{ item.description }}</div>

+ 1 - 1
src/views/snd/sndDetail.vue

@@ -32,7 +32,7 @@
         </div>
         <div class="desc" v-if="detail.needInfo || detail.description">{{ detail.needInfo || detail.description }}</div>
         <div class="org" v-if="detail.orgInfo">
-            <img class="logo" :src="detail.orgInfo.logo || detail.orgInfo.loge" />
+            <img class="logo" :src="detail.orgInfo.logo || detail.orgInfo.loge | src" />
             <div class="info">
                 <div class="org-name">
                     {{ detail.orgInfo.orgName }}<img src="../../assets/icon_org.png" class="icon-org" />

+ 2 - 2
src/views/sysMessage.vue

@@ -4,7 +4,7 @@
         <div class="list">
             <div class="item" v-for="item in messages" :key="item.id">
                 <div class="info">
-                    <img class="avatar" :src="item.content.avatar" />
+                    <img class="avatar" :src="item.content.avatar | src" />
                     <div class="name">
                         {{ item.content.nickname }}
                     </div>
@@ -22,7 +22,7 @@
                         <div class="title">{{ item.post.title }}</div>
                         <div class="desc">{{ getPostType(item.post) }}</div>
                     </div>
-                    <img class="img" :src="getPostImg(item.post)" />
+                    <img class="img" :src="getPostImg(item.post) | src" />
                 </div>
             </div>
         </div>