From 9f0f5d7767506658ab5ca47ba8ff4ede423e47e3 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期三, 22 一月 2025 10:10:45 +0800
Subject: [PATCH] -

---
 src/components/tem/tem-upload-file.vue |  179 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 157 insertions(+), 22 deletions(-)

diff --git a/src/components/tem/tem-upload-file.vue b/src/components/tem/tem-upload-file.vue
index ab0c247..09379ea 100644
--- a/src/components/tem/tem-upload-file.vue
+++ b/src/components/tem/tem-upload-file.vue
@@ -1,11 +1,17 @@
 <template>
 	<!--鏈枃浠剁敱FirstUI鎺堟潈浜堝洓宸濇斂閲囨嫑鎶曟爣鍜ㄨ鏈夐檺鍏徃锛堜細鍛業D锛� 1 63锛岃惀涓氭墽鐓у彿锛�9 1 51 0 1313  3 2    0061  9    3K锛変笓鐢紝璇峰皧閲嶇煡璇嗕骇鏉冿紝鍕跨涓嬩紶鎾紝杩濊�呰拷绌舵硶寰嬭矗浠汇��-->
 	<view class="fui-upload__wrap">
-		<view class="fui-upload__item" :style="{width:width+'rpx',height:height+'rpx',borderRadius:radius+'rpx'}"
+		<view class="fui-upload__item"
+			:style="$util.checkFileExtensions(item)?'':{width:width+'rpx',height:height+'rpx',borderRadius:radius+'rpx'}"
 			v-for="(item,index) in urls" :key="index">
-			<image src="/static/WPS.png"  mode="aspectFill" @tap.sto='showTip' :style="{width:width+'rpx',height:height+'rpx',borderRadius:radius+'rpx'}" v-if="checkFileExtensions(item)"></image>
-			<image v-else class="fui-upload__img" :style="{width:width+'rpx',height:height+'rpx',borderRadius:radius+'rpx'}"
-				:src="item" mode="aspectFill" @tap.stop="previewImage(index)"></image>
+			<u-tag :text="item.match(/\/([^\/]*)$/)[1]" size="mini" v-if="$util.checkFileExtensions(item)"
+				@click.stop='showTip(item)'></u-tag>
+			<!-- // <image src="/static/WPS.png" mode="aspectFill" @tap.stop='showTip'
+						// 	:style="{width:width+'rpx',height:height+'rpx',borderRadius:radius+'rpx'}"
+						// 	v-if="checkFileExtensions(item)"></image> -->
+			<image v-else class="fui-upload__img"
+				:style="{width:width+'rpx',height:height+'rpx',borderRadius:radius+'rpx'}" :src="item" mode="aspectFill"
+				@tap.stop="previewImage(index)"></image>
 			<view class="fui-upload__mask" v-if="status[index]!=='success' && status[index]!=='preupload' ">
 				<fui-icon name="warning-fill" color="#fff" :size="48" v-if="status[index]==='error'"></fui-icon>
 				<text class="fui-reupload__btn" @tap.stop="reUpload(index)" v-if="status[index]==='error'">閲嶆柊涓婁紶</text>
@@ -157,6 +163,14 @@
 			param: {
 				type: [Number, String],
 				default: 0
+			},
+			fileType:{
+				type:String,
+				default:'file'
+			},
+			fileExtension:{
+				type:Array,
+				default:[]
 			}
 		},
 		data() {
@@ -186,15 +200,13 @@
 			}
 		},
 		methods: {
-			showTip(){
-				this.$util.showToast({
-					title: "鏂囦欢绫诲瀷涓嶆敮鎸侀瑙堬紒",
-				})
+			showTip(src) {
+				// this.$util.showToast({
+				// 	title: "鏂囦欢绫诲瀷涓嶆敮鎸侀瑙堬紒",
+				// })
+				this.$util.previewWechat(src)
 			},
-			checkFileExtensions(str) {
-			  const extensions = ['pdf', 'doc', 'docx', 'xls', 'xlsx'];
-			  return extensions.some(extension => str.includes(extension));
-			},
+
 			initData(urls) {
 				urls = urls || []
 				this.status = [];
@@ -277,21 +289,19 @@
 			},
 			chooseImage() {
 				let max = Number(this.max)
-				uni.chooseImage({
+				wx.chooseMessageFile({
 					count: max === -1 ? 9 : max - this.urls.length,
-					sizeType: this.sizeType,
-					sourceType: this.sourceType,
+					type: this.fileType,
 					success: (e) => {
 						let imageArr = [];
 						for (let i = 0; i < e.tempFiles.length; i++) {
 							let len = this.urls.length;
 							if (len >= max && max !== -1) {
-								this.toast(`鏈�澶氬彲涓婁紶${max}寮犲浘鐗嘸);
+								this.toast(`鏈�澶氬彲涓婁紶${max}涓枃浠禶);
 								break;
 							}
-							//杩囨护鍥剧墖绫诲瀷
+							//杩囨护鏂囦欢绫诲瀷
 							let path = e.tempFiles[i].path;
-
 							if (this.suffix.length > 0) {
 								let format = ""
 								// #ifdef H5
@@ -302,9 +312,10 @@
 								// #ifndef H5
 								format = path.split(".")[(path.split(".")).length - 1];
 								// #endif
-
+								console.log(format);
 								if (this.suffix.indexOf(format) == -1) {
-									let text = `鍙兘涓婁紶 ${this.suffix.join(',')} 鏍煎紡鍥剧墖锛乣
+									// let text = `鍙兘涓婁紶 ${this.suffix.join(',')} 鏍煎紡锛乣
+									let text = `鍙兘涓婁紶 doc锛宒ocx锛宲df 鏍煎紡锛乣
 									this.toast(text);
 									continue;
 								}
@@ -314,7 +325,7 @@
 							let size = e.tempFiles[i].size;
 
 							if (Number(this.size) * 1024 * 1024 < size) {
-								let err = `鍗曞紶鍥剧墖澶у皬涓嶈兘瓒呰繃锛�${this.size}MB`
+								let err = `鏂囦欢澶у皬涓嶈兘瓒呰繃锛�${this.size}MB`
 								this.toast(err);
 								continue;
 							}
@@ -335,9 +346,133 @@
 								})
 							}
 						}
-					}
+					},
+					fail: () => {}
 				})
+				// uni.chooseFile({
+				// 	count: max === -1 ? 9 : max - this.urls.length,
+				// 	extension: ['.doc', '.pdf', '.docx'],
+				// 	success: (e) => {
+				// 		let imageArr = [];
+				// 		for (let i = 0; i < e.tempFiles.length; i++) {
+				// 			let len = this.urls.length;
+				// 			if (len >= max && max !== -1) {
+				// 				this.toast(`鏈�澶氬彲涓婁紶${max}涓枃浠禶);
+				// 				break;
+				// 			}
+				// 			//杩囨护鏂囦欢绫诲瀷
+				// 			let path = e.tempFiles[i].path;
+				// 			if (this.suffix.length > 0) {
+				// 				let format = ""
+				// 				// #ifdef H5
+				// 				let type = e.tempFiles[i].type;
+				// 				format = type.split('/')[1]
+				// 				// #endif
+
+				// 				// #ifndef H5
+				// 				format = path.split(".")[(path.split(".")).length - 1];
+				// 				// #endif
+				// 				console.log(format);
+				// 				if (this.suffix.indexOf(format) == -1) {
+				// 					// let text = `鍙兘涓婁紶 ${this.suffix.join(',')} 鏍煎紡锛乣
+				// 					let text = `鍙兘涓婁紶 doc锛宒ocx锛宲df 鏍煎紡锛乣
+				// 					this.toast(text);
+				// 					continue;
+				// 				}
+				// 			}
+
+				// 			//杩囨护瓒呭嚭澶у皬闄愬埗鍥剧墖
+				// 			let size = e.tempFiles[i].size;
+
+				// 			if (Number(this.size) * 1024 * 1024 < size) {
+				// 				let err = `鏂囦欢澶у皬涓嶈兘瓒呰繃锛�${this.size}MB`
+				// 				this.toast(err);
+				// 				continue;
+				// 			}
+				// 			imageArr.push(path)
+				// 			this.urls.push(path)
+				// 			this.tempFiles.push(e.tempFiles[i])
+				// 			this.status.push(this.immediate ? 'uploading' : 'preupload')
+				// 		}
+				// 		this.onComplete('choose')
+				// 		let start = this.urls.length - imageArr.length
+				// 		if (this.immediate) {
+				// 			for (let j = 0; j < imageArr.length; j++) {
+				// 				let index = start + j
+				// 				this.uploadImage(index, imageArr[j]).then((res) => {
+				// 					this._success(res)
+				// 				}).catch((res) => {
+				// 					this._error(res)
+				// 				})
+				// 			}
+				// 		}
+				// 	}
+
+				// })
 			},
+			// chooseImage() {
+			// 	let max = Number(this.max)
+			// 	uni.chooseImage({
+			// 		count: max === -1 ? 9 : max - this.urls.length,
+			// 		sizeType: this.sizeType,
+			// 		sourceType: this.sourceType,
+			// 		success: (e) => {
+			// 			let imageArr = [];
+			// 			for (let i = 0; i < e.tempFiles.length; i++) {
+			// 				let len = this.urls.length;
+			// 				if (len >= max && max !== -1) {
+			// 					this.toast(`鏈�澶氬彲涓婁紶${max}寮犲浘鐗嘸);
+			// 					break;
+			// 				}
+			// 				//杩囨护鍥剧墖绫诲瀷
+			// 				let path = e.tempFiles[i].path;
+
+			// 				if (this.suffix.length > 0) {
+			// 					let format = ""
+			// 					// #ifdef H5
+			// 					let type = e.tempFiles[i].type;
+			// 					format = type.split('/')[1]
+			// 					// #endif
+
+			// 					// #ifndef H5
+			// 					format = path.split(".")[(path.split(".")).length - 1];
+			// 					// #endif
+
+			// 					if (this.suffix.indexOf(format) == -1) {
+			// 						let text = `鍙兘涓婁紶 ${this.suffix.join(',')} 鏍煎紡鍥剧墖锛乣
+			// 						this.toast(text);
+			// 						continue;
+			// 					}
+			// 				}
+
+			// 				//杩囨护瓒呭嚭澶у皬闄愬埗鍥剧墖
+			// 				let size = e.tempFiles[i].size;
+
+			// 				if (Number(this.size) * 1024 * 1024 < size) {
+			// 					let err = `鍗曞紶鍥剧墖澶у皬涓嶈兘瓒呰繃锛�${this.size}MB`
+			// 					this.toast(err);
+			// 					continue;
+			// 				}
+			// 				imageArr.push(path)
+			// 				this.urls.push(path)
+			// 				this.tempFiles.push(e.tempFiles[i])
+			// 				this.status.push(this.immediate ? 'uploading' : 'preupload')
+			// 			}
+			// 			this.onComplete('choose')
+			// 			let start = this.urls.length - imageArr.length
+			// 			if (this.immediate) {
+			// 				for (let j = 0; j < imageArr.length; j++) {
+			// 					let index = start + j
+			// 					this.uploadImage(index, imageArr[j]).then((res) => {
+			// 						this._success(res)
+			// 					}).catch((res) => {
+			// 						this._error(res)
+			// 					})
+			// 				}
+			// 			}
+			// 		}
+			// 	})
+			// },
 			uploadImage(index, imgUrl, url) {
 				return new Promise((resolve, reject) => {
 					uni.uploadFile({

--
Gitblit v1.9.1