Kaynağa Gözat

fix: 添加文档封面默认图,样式调整

Signed-off-by: tangshizhe <48740614+tangshizhe@users.noreply.github.com>
tangshizhe 1 yıl önce
ebeveyn
işleme
a8cb0694b8

BIN
jydocs-pc/src/assets/images/error.png


+ 18 - 4
jydocs-pc/src/components/SelectedRecommend.vue

@@ -8,7 +8,7 @@
       <div class="hot-keep-group flex-r-c wrap">
         <div class="card-item flex-r-c"  v-for="item in options" :key="item.id" @click="goContent(item)">
           <div class="mini-img-group">
-            <img :src="item.img" alt="">
+            <img :src="item.img" alt="" @error="handleError">
             <i :class="'el-icon-jy-' + item.type" />
           </div>
           <div class="flex-c-c">
@@ -21,7 +21,7 @@
             <div class="flex-c-c info-text">
               <span v-if="item.contribution">贡献者: {{item.contribution}}</span>
               <div class="info-text-group flex-r-c center left">
-                <span v-if="item.viewTimes">{{item.viewTimes}}浏览</span>
+                <span v-if="item.viewTimes">{{ SetViewUnit(item.viewTimes) }}浏览</span>
                 <span v-if="item.page">共{{item.page}}页</span>
                 <span v-if="item.size">{{item.size | sizeFormatter}}</span>
               </div>
@@ -33,6 +33,7 @@
 </template>
 
 <script>
+import { moneyUnit } from "@/utils/";
 export default {
   name: 'SelectedRecommend',
   props: {
@@ -49,6 +50,19 @@ export default {
     return {}
   },
   methods: {
+    handleError (img) {
+      img.target.src = require('../assets/images/error.png')
+    },
+    SetViewUnit (num) {
+      let newNum = 0
+      if(!num) return 0
+      if(num > 10000) {
+        newNum = (num / 10000).toFixed(1) + 'w'
+      } else {
+        newNum = num
+      }
+      return newNum
+    },
     goContent (item) {
       this.$emit('click', item)
     }
@@ -97,7 +111,7 @@ export default {
       overflow: hidden;
       white-space: nowrap;
       text-overflow: ellipsis;
-      font-size: 14px;
+      font-size: 13px;
       line-height: 22px;
       color: #999999;
     }
@@ -142,7 +156,7 @@ export default {
       font-family: Microsoft YaHei;
       font-style: normal;
       font-weight: normal;
-      font-size: 14px;
+      font-size: 13px;
       line-height: 24px;
       color: #999999;
     }

+ 4 - 1
jydocs-pc/src/components/recommend.vue

@@ -4,7 +4,7 @@
     <h3>相关推荐</h3>
     <div class="docs" v-for="item in recomes" :key="item.docId">
         <div class="imgs" @click="detailClick(item.docId)">
-            <img :src="item.previewImgId" alt="">
+            <img :src="item.previewImgId" alt="" @error="handleError">
             <i :class="'el-icon-jy-' + filesType(item.docFileType)"></i>
         </div>
         <div class="conts">
@@ -45,6 +45,9 @@ export default {
     window.removeEventListener('scroll', this.initH)
   },
   methods: {
+    handleError (img) {
+      img.target.src = require('../assets/images/error.png')
+    },
     initH () {
       this.$nextTick(() => {
         const heights = document.getElementById('recTop')

+ 90 - 0
jydocs-pc/src/utils/globalFunctions.js

@@ -219,6 +219,96 @@ export function dateFormatter (date, fmt = 'yyyy-MM-dd HH:mm:ss') {
   return fmt
 }
 
+// 金额类型转换
+export function moneyUnit(m, type = 'string', lv = 0) {
+  const mUnit = {
+    levelArr: ['元', '万', '亿', '万亿'],
+    test(num, type, lv) {
+      if (num === 0) {
+        if (type === 'string') {
+          return '0元'
+        }
+        if (type === 'lv') {
+          return this.levelArr[lv]
+        }
+        if (type === 'number') {
+          return 0
+        }
+        if (type === 'index') {
+          return lv
+        }
+        if (type === 'transfer') {
+          return 0
+        }
+      }
+
+      let result = num / Math.pow(10000, lv)
+
+      if (result >= 10000 && lv < 2) {
+        return this.test(num, type, lv + 1)
+      } else {
+        if (type === 'string') {
+          return (
+            String(Math.floor((result * 100).toPrecision(12)) / 100).replace(
+              '.00',
+              ''
+            ) + this.levelArr[lv]
+          )
+        }
+        if (type === 'fixUnit') {
+          if (this.levelArr[lv] === '亿') {
+            return (
+              String(Math.floor((result * 100).toPrecision(12)) / 100).replace(
+                '.00',
+                ''
+              ) *
+                10000 +
+              this.levelArr[lv - 1]
+            )
+          } else {
+            return (
+              String(Math.floor((result * 100).toPrecision(12)) / 100).replace(
+                '.00',
+                ''
+              ) + this.levelArr[lv]
+            )
+          }
+        }
+        if (type === 'lv') {
+          return this.levelArr[lv]
+        }
+        if (type === 'number') {
+          return String(
+            Math.floor((result * 100).toPrecision(12)) / 100
+          ).replace('.00', '')
+        }
+        if (type === 'index') {
+          return lv
+        }
+      }
+    },
+    // 需要传入固定的lv(此时lv为 levelArr 中的一个)
+    transfer(num, lvString) {
+      const index = this.levelArr.indexOf(lvString)
+      if (index === -1 || index === 0) {
+        return num
+      } else {
+        return (num / Math.pow(10000, index)).toFixed(2) + lvString
+      }
+    }
+  }
+  if (m === undefined || m === null) {
+    return ''
+  } else {
+    if (type === 'transfer') {
+      return mUnit.transfer(m, lv)
+    } else {
+      return mUnit.test(m, type, lv)
+    }
+  }
+}
+
+
 // 时间戳转换 多少秒、多少分、多少小时前、多少天前  超出10天显示年月日
 // 传入一个时间戳
 export function dateFromNow (timestamp) {

+ 1 - 1
jydocs-pc/src/views/Content.vue

@@ -33,7 +33,7 @@
             <i :class="'el-icon-jy-' + fileType(datas.docFileType)"></i>
             <span>{{ datas.docName }}</span>
           </h3>
-          <span class="pages"><i>{{ page_num }}</i> / <i>{{ page_count }}</i></span>
+          <span v-if="page_count" class="pages"><i>{{ page_num }}</i> / <i>{{ page_count }}</i></span>
         </div>
         <div class="bottoms" id="colWidth">
           <div class="page">

+ 4 - 1
jydocs-pc/src/views/Home.vue

@@ -28,7 +28,7 @@
             <div class="word-file-main">
               <div class="word-file-list" @click="goContent(item)" v-for="(item, index) in wordFileList" :key="index">
                 <div class="mini-img-group">
-                  <img :src="item.img" alt="">
+                  <img :src="item.img" alt="" @error="handleError">
                   <i class="word-type" :class="'el-icon-jy-' + item.type" ></i>
                   <span v-if="item.productType === 1" class="word-vip-mark">会员免费</span>
                 </div>
@@ -208,6 +208,9 @@ export default {
     }
   },
   methods: {
+    handleError (img) {
+      img.target.src = require('../assets/images/error.png')
+    },
     goContent (item) {
       const routeData = this.$router.resolve({
         name: 'content',

+ 1 - 1
jydocs-pc/src/views/purchase/purchase.vue

@@ -24,7 +24,7 @@
                 <div class="doc_in_title">{{response.docName}}</div>
                 <!-- <div class="doc_in_author">贡献者:张三</div> -->
                 <div class="doc_in_actions">
-                  <span class="doc_download">{{response.downTimes}}次下载</span>
+                  <span class="doc_download">{{response.downTimes || 0}}次下载</span>
                   <span class="doc_pages"> | 共{{response.docPageSize}}页 | </span>
                   <span class="doc_readhot">{{response.docFileSize}}</span>
                 </div>