From f14ea940fb32105de8b592992e3f53c62f31d84d Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 22 一月 2026 16:42:51 +0800
Subject: [PATCH] 2026.1.22

---
 component/uploader/uploader.wxml |  154 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 121 insertions(+), 33 deletions(-)

diff --git a/component/uploader/uploader.wxml b/component/uploader/uploader.wxml
index d0a2874..dcfabde 100644
--- a/component/uploader/uploader.wxml
+++ b/component/uploader/uploader.wxml
@@ -1,37 +1,125 @@
 <view class="weui-uploader {{extClass}}">
-    <view class="weui-uploader__hd">
-      <view class="weui-uploader__overview">
-          <view wx:if="{{title}}" class="weui-uploader__title {{titleClass}}" >{{title}}</view>
-          <view wx:else><slot name="title"></slot></view>
-          <view class="weui-uploader__info {{countInfo}}" wx:if="{{maxCount > 1}}">{{currentFiles.length}}/{{maxCount}}</view>
-
-      </view>
-        <view wx:if="{{tips}}" class="weui-uploader__tips">{{tips}}</view>
-        <view wx:else><slot name="tips"></slot></view>
+  <view class="weui-uploader__hd">
+    <view class="weui-uploader__overview">
+      <view wx:if="{{title}}" class="weui-uploader__title {{titleClass}}"
+        >{{title}}</view
+      >
+      <view wx:else><slot name="title"></slot></view>
+      <view class="weui-uploader__info {{countInfo}}" wx:if="{{maxCount > 1}}"
+        >{{currentFiles.length}}/{{maxCount}}</view
+      >
     </view>
-    <view class="weui-uploader__bd">
-        <view class="weui-uploader__files">
-            <block wx:for="{{currentFiles}}" wx:key="*this">
-                <view wx:if="{{item.error}}" data-index="{{index}}" bindtap="previewImage" class="weui-uploader__file weui-uploader__file_status">
-                    <image class="weui-uploader__img" src="{{item.url}}" mode="aspectFill" />
-                    <view class="weui-uploader__file-content">
-                        <icon type="warn" size="23" color="#F43530"></icon>
-                    </view>
-                </view>
-                <view wx:elif="{{item.loading}}" data-index="{{index}}" bindtap="previewImage" class="weui-uploader__file weui-uploader__file_status">
-                    <image class="weui-uploader__img" src="{{item.url}}" mode="aspectFill" />
-                    <view class="weui-uploader__file-content">
-                    <view class="weui-loading"></view>
-                    </view>
-                </view>
-                <view wx:else class="weui-uploader__file" data-index="{{index}}" bindtap="previewImage">
-                    <image class="weui-uploader__img" src="{{item.url}}" mode="aspectFit" />
-                </view>
-            </block>
-        </view>
-        <view wx:if="{{currentFiles.length < maxCount}}" class="weui-uploader__input-box" hover-class="weui-active">
-            <view class="weui-uploader__input" bindtap="chooseImage"></view>
-        </view>
+    <view wx:if="{{tips}}" class="weui-uploader__tips">{{tips}}</view>
+    <view wx:else><slot name="tips"></slot></view>
+  </view>
+  <view class="weui-uploader__bd">
+    <view class="weui-uploader__files">
+      <block wx:for="{{currentFiles}}" wx:key="index">
+        <!-- 鍥剧墖 -->
+        <block wx:if="{{item.type == 'image'}}">
+          <view
+            wx:if="{{item.error}}"
+            data-index="{{index}}"
+            bindtap="previewImage"
+            class="weui-uploader__file weui-uploader__file_status"
+          >
+            <image
+              class="weui-uploader__img"
+              src="{{item.url}}"
+              mode="aspectFill"
+            />
+            <view class="weui-uploader__file-content">
+              <icon type="warn" size="23" color="#F43530"></icon>
+            </view>
+          </view>
+          <view
+            wx:elif="{{item.loading}}"
+            data-index="{{index}}"
+            bindtap="previewImage"
+            class="weui-uploader__file weui-uploader__file_status"
+          >
+            <image
+              class="weui-uploader__img"
+              src="{{item.url}}"
+              mode="aspectFill"
+            />
+            <view class="weui-uploader__file-content">
+              <view class="weui-loading"></view>
+            </view>
+          </view>
+          <view
+            wx:else
+            class="weui-uploader__file"
+            data-index="{{index}}"
+            bindtap="previewImage"
+          >
+            <image
+              class="weui-uploader__img"
+              src="{{item.url}}"
+              mode="aspectFill"
+            />
+            <view class="close-btn">
+              <t-icon
+                name="close"
+                size="36rpx"
+                data-index="{{index}}"
+                catch:tap="deleteFile"
+              ></t-icon>
+            </view>
+          </view>
+        </block>
+        <block wx:elif="{{item.type == 'file'}}">
+          <view
+            data-index="{{index}}"
+            bindtap="previewFile"
+            class="weui-uploader__file"
+          >
+            <view
+              class="{{'weui-uploader__img uploader-preview__file ' + item.styleClass}}"
+            >
+              <view class="wrap">
+                <span class="{{'txt ' + item.styleClass}}">{{item.name}}</span>
+                <!-- <span class="{{'filename ' + item.styleClass}}" data-title="{{item.name}}"
+                  >{{item.name}}</span
+                > -->
+              </view>
+              <text class="unit" data-ext="{{item.ext}}">{{item.size}}</text>
+            </view>
+            <view class="close-btn">
+              <t-icon
+                name="close"
+                size="36rpx"
+                data-index="{{index}}"
+                catch:tap="deleteFile"
+              ></t-icon>
+            </view>
+          </view>
+        </block>
+      </block>
     </view>
+    <view
+      wx:if="{{currentFiles.length < maxCount}}"
+      class="weui-uploader__input-box"
+      hover-class="weui-active"
+    >
+      <view class="weui-uploader__input" bindtap="showActionSheet"></view>
+    </view>
+  </view>
 </view>
-<mp-gallery class="gallery" hide-on-click="{{true}}" show-delete="{{showDelete}}" show="{{showPreview}}" binddelete="deletePic" img-urls="{{previewImageUrls}}" current="{{previewCurrent}}"></mp-gallery>
+<mp-gallery
+  class="gallery"
+  hide-on-click="{{true}}"
+  show-delete="{{showDelete}}"
+  show="{{showPreview}}"
+  binddelete="deletePic"
+  img-urls="{{previewImageUrls}}"
+  current="{{previewCurrent}}"
+></mp-gallery>
+<mp-actionSheet
+  bindactiontap="actionClick"
+  show="{{showSheet}}"
+  actions="{{groups}}"
+  showCancel="{{true}}"
+  showClose="{{false}}"
+>
+</mp-actionSheet>

--
Gitblit v1.9.3