فهرست منبع

+ 与会企业行程

chen.cheng 11 ماه پیش
والد
کامیت
38cff3fc65
5فایلهای تغییر یافته به همراه117 افزوده شده و 6 حذف شده
  1. 10 0
      pages.json
  2. 6 1
      pages/tabbar/my/index.vue
  3. 50 1
      pasb/pages/file/index.scss
  4. 11 3
      pasb/pages/file/index.vue
  5. 40 1
      util/index.js

+ 10 - 0
pages.json

@@ -74,5 +74,15 @@
 			}
 		]
 	},
+	"condition" : { //模式配置,仅开发期间生效
+		"current": 0, //当前激活的模式(list 的索引项)
+		"list": [
+			{
+				"name": "交流材料汇编", //模式名称
+				"path": "pages/tabbar/my/index", //启动页面,必选
+				"query": "" //启动参数,在页面的onLoad函数里面得到
+			}
+		]
+	},
 	"resizable": true
 }

+ 6 - 1
pages/tabbar/my/index.vue

@@ -4,7 +4,7 @@
 		    text="默认按钮"
 		    size="normal"
 		    type="info"
-			@click="click"
+			@click="onClick"
 		></u-button>
 	</view>
 </template>
@@ -50,6 +50,11 @@
       // #endif
 		},
 		methods: {
+      onClick() {
+				uni.navigateTo({
+          url: '/pasb/pages/file/index'
+        })
+			},
 			getUserInfo() {
 				uni.getUserProfile({
 					desc: '获取用户信息',

+ 50 - 1
pasb/pages/file/index.scss

@@ -1,5 +1,54 @@
-.content-info-container {
+.file-info-container {
   width: 90%;
   margin: 20rpx auto;
   padding: 0;
+  .u-page{
+    padding: 0;
+    .u-list-item{
+      margin-bottom: 20rpx;
+      &:not(:last-child){
+        border-bottom: 1px solid rgba(134, 134, 134, 0.47);
+      }
+    }
+  }
+
+  /deep/ .file-info-item {
+    display: flex;
+    align-items: center;
+    justify-content: flex-start;
+    box-sizing: border-box;
+    padding: 20rpx 0;
+
+    .file-info-item-img {
+      width: 100rpx;
+      height: 100rpx;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      image{
+        width: 100%;
+        height: 100%;
+      }
+    }
+
+    .file-info-item-content {
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+      margin-left: 20rpx;
+      flex-grow: 1;
+      .file-info-item-title {
+        height: 70rpx;
+        box-sizing: border-box;
+        font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
+        font-weight: 650;
+        color: #333333;
+        display: -webkit-box;
+        -webkit-line-clamp: 2; /* 控制显示的行数 */
+        -webkit-box-orient: vertical;
+        overflow: hidden;
+        text-overflow: ellipsis;
+      }
+    }
+  }
 }

+ 11 - 3
pasb/pages/file/index.vue

@@ -7,8 +7,9 @@
         <u-list-item
             v-for="(item, index) in indexList"
             :key="index"
+
         >
-          <view class="file-info-item">
+          <view class="file-info-item" @click="onItemClick(item)">
             <view class="file-info-item-img">
               <image :src="getImageUrl(ICON_CFG.file_icon)" mode="aspectFill" />
             </view>
@@ -28,7 +29,7 @@
 
 import { fetchFileList } from '@/common/api';
 import { ICON_CFG } from '@/common/EnumConst';
-import { getImageUrl } from '@/util';
+import { getImageUrl, viewFileFn } from '@/util';
 
 let page = 1;
 export default {
@@ -48,7 +49,13 @@ export default {
   },
   methods: {
     getImageUrl,
+    onItemClick(item) {
+      viewFileFn(getImageUrl(item.uri), item.title, `.${item.fileExt}`);
+    },
     scrolltolower() {
+      if (page > 1 && this.loadStatus === 'nomore') {
+        return;
+      }
       this.loadmore();
     },
     loadmore() {
@@ -56,7 +63,7 @@ export default {
       fetchFileList({
         pageNum: page,
         pageSize: 10,
-        fileType: 1,
+        fileType: 2,
       }).then(res => {
         page += 1;
         if (res.rows.length > 0) {
@@ -65,6 +72,7 @@ export default {
               id: item.id,
               title: item.fileName,
               date: item.createTime,
+              ...item,
             };
           }));
         }

+ 40 - 1
util/index.js

@@ -2,4 +2,43 @@ export const getImageUrl = (uri) => {
   return `${process.env.UNI_FILE_PREFIX}${uri}`;
 };
 
-
+export const viewFileFn = (fileUrl, fileName, fileSuffix) => { // 文件url 文件名 文件后缀
+  uni.showLoading({
+    title: '加载中…',
+    mask: true,
+  });
+  let downloadTask = uni.downloadFile({
+    url: fileUrl,
+    success: function (res) {
+      console.log('downloadFile 成功', res);
+      var tempFilePath = res.tempFilePath; // 下载成功后的临时文件路径
+      var newFilePath = `${wx.env.USER_DATA_PATH}/${fileName}${fileSuffix}`; // 新的文件路径,USER_DATA_PATH 是小程序的本地文件存储目录
+      uni.saveFile({
+        tempFilePath: tempFilePath,
+        filePath: newFilePath,
+        success: function (res) {
+          console.log('saveFile 成功', res.savedFilePath);
+          uni.openDocument({
+            filePath: res.savedFilePath, // 打开新的文件路径
+            showMenu: false,
+            success: function (res) {
+              console.log('openDocument 成功', res);
+            },
+            fail: function (err) {
+              console.log('openDocument 失败', err);
+            },
+          });
+          uni.hideLoading();
+        },
+        fail: function (err) {
+          console.log('saveFile 失败', err);
+          uni.hideLoading();
+        },
+      });
+    },
+    fail: function (res) {
+      console.log('downloadFile 失败', res);
+      uni.hideLoading();
+    },
+  });
+};