From 375c18a6d2713ff19b22093eec57315992d8333f Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期四, 06 十一月 2025 13:33:52 +0800
Subject: [PATCH] 增加评审下载
---
wx/pages/registration/registration.wxml | 253 +++++++++++++++++---------------------------------
1 files changed, 86 insertions(+), 167 deletions(-)
diff --git a/wx/pages/registration/registration.wxml b/wx/pages/registration/registration.wxml
index a0cdaba..0bba1f1 100644
--- a/wx/pages/registration/registration.wxml
+++ b/wx/pages/registration/registration.wxml
@@ -6,31 +6,38 @@
<text class="loading-text">鍔犺浇涓�...</text>
</view>
- <!-- 鎶ュ悕琛ㄥ崟 -->
<view wx:else class="form-container">
- <!-- 娲诲姩淇℃伅 -->
- <view wx:if="{{activity}}" class="activity-info">
- <text class="activity-title">{{activity.name}}</text>
- <text class="activity-desc">{{activity.description}}</text>
- </view>
+ <!-- 涓汉淇℃伅鍗$墖 -->
+ <view class="card">
+ <view class="card-title">涓汉淇℃伅</view>
- <!-- 鍩烘湰淇℃伅 -->
- <view class="form-section">
- <view class="section-title">鍩烘湰淇℃伅</view>
-
+ <!-- 澶村儚锛堟寜闇�姹傞殣钘忥級 -->
+ <view wx:if="{{false}}" class="form-item" bindtap="onChooseAvatar">
+ <text class="label">鐓х墖</text>
+ <view class="input-wrapper avatar-wrapper">
+ <image
+ class="avatar-image"
+ src="{{localAvatarPath || formData.avatarUrl || '../../images/default-avatar.svg'}}"
+ mode="aspectFill"
+ />
+ <text></text>
+ </view>
+ </view>
+
<!-- 濮撳悕 -->
<view class="form-item {{errors.name ? 'error' : ''}}">
<text class="label required">濮撳悕</text>
<view class="input-wrapper">
<input
class="input"
+ placeholder-class="placeholder-class"
placeholder="璇疯緭鍏ョ湡瀹炲鍚�"
value="{{formData.name}}"
data-field="name"
bindinput="onInputChange"
/>
- <text wx:if="{{errors.name}}" class="error-text">{{errors.name}}</text>
</view>
+ <text wx:if="{{errors.name}}" class="error-text">{{errors.name}}</text>
</view>
<!-- 鎵嬫満鍙� -->
@@ -38,32 +45,26 @@
<text class="label required">鎵嬫満鍙�</text>
<view class="input-wrapper">
<view class="phone-container">
- <view class="phone-display {{!formData.phone ? 'placeholder' : ''}}">
- {{formData.phone || '鐐瑰嚮鎺堟潈鑾峰彇鎵嬫満鍙�'}}
- </view>
- <button
- class="phone-auth-btn"
- open-type="getPhoneNumber"
- bindgetphonenumber="onGetPhoneNumber"
- wx:if="{{!formData.phone}}"
- >
- 鎺堟潈鑾峰彇
- </button>
- <button
- class="phone-change-btn"
- bindtap="onClearPhone"
- wx:else
- >
- 閲嶆柊鑾峰彇
- </button>
+ <block wx:if="{{formData.phone}}">
+ <view class="phone-display">{{formData.phone}}</view>
+ <button class="phone-change-btn" bindtap="onClearPhone">淇敼</button>
+ </block>
+ <block wx:else>
+ <view class="phone-display placeholder">鐐瑰嚮鎺堟潈鑾峰彇鎵嬫満鍙�</view>
+ <button
+ class="phone-auth-btn"
+ open-type="getPhoneNumber"
+ bindgetphonenumber="onGetPhoneNumber"
+ >鎺堟潈</button>
+ </block>
</view>
- <text wx:if="{{errors.phone}}" class="error-text">{{errors.phone}}</text>
</view>
+ <text wx:if="{{errors.phone}}" class="error-text">{{errors.phone}}</text>
</view>
- <!-- 鎬у埆 -->
- <view class="form-item {{errors.gender ? 'error' : ''}}">
- <text class="label required">鎬у埆</text>
+ <!-- 鎬у埆锛堟寜闇�姹傞殣钘忥級 -->
+ <view wx:if="{{false}}" class="form-item {{errors.gender ? 'error' : ''}}">
+ <text class="label">鎬у埆</text>
<view class="input-wrapper">
<picker
class="picker"
@@ -72,16 +73,16 @@
value="{{genderIndex}}"
bindchange="onGenderChange"
>
- <view class="picker-text">
+ <view class="picker-text {{formData.gender === null ? 'placeholder' : ''}}">
{{formData.gender !== null ? genderOptions[formData.gender] : '璇烽�夋嫨鎬у埆'}}
</view>
</picker>
- <text wx:if="{{errors.gender}}" class="error-text">{{errors.gender}}</text>
</view>
+ <text wx:if="{{errors.gender}}" class="error-text">{{errors.gender}}</text>
</view>
- <!-- 鐢熸棩 -->
- <view class="form-item {{errors.birthDate ? 'error' : ''}}">
+ <!-- 鐢熸棩锛堟寜闇�姹傞殣钘忥級 -->
+ <view wx:if="{{false}}" class="form-item {{errors.birthDate ? 'error' : ''}}">
<text class="label">鐢熸棩</text>
<view class="input-wrapper">
<picker
@@ -91,17 +92,17 @@
bindchange="onBirthDateChange"
end="{{today}}"
>
- <view class="picker-text">
+ <view class="picker-text {{!formData.birthDate ? 'placeholder' : ''}}">
{{formData.birthDate || '璇烽�夋嫨鐢熸棩'}}
</view>
</picker>
- <text wx:if="{{errors.birthDate}}" class="error-text">{{errors.birthDate}}</text>
</view>
+ <text wx:if="{{errors.birthDate}}" class="error-text">{{errors.birthDate}}</text>
</view>
- <!-- 鎵�鍦ㄥ尯鍩� -->
+ <!-- 鎵�灞炲尯鍩� -->
<view class="form-item {{errors.regionId ? 'error' : ''}}">
- <text class="label">鎵�鍦ㄥ尯鍩�</text>
+ <text class="label">鎵�灞炲尯鍩�</text>
<view class="input-wrapper">
<picker
class="picker"
@@ -111,16 +112,16 @@
value="{{regionIndex}}"
bindchange="onRegionChange"
>
- <view class="picker-text">
- {{formData.regionId !== null && regionIndex >= 0 ? regions[regionIndex].name : '璇烽�夋嫨鎵�鍦ㄥ尯鍩�'}}
+ <view class="picker-text {{formData.regionId === null ? 'placeholder' : ''}}">
+ {{formData.regionId !== null && regionIndex >= 0 ? regions[regionIndex].name : '璇烽�夋嫨鎵�灞炲尯鍩�'}}
</view>
</picker>
- <text wx:if="{{errors.regionId}}" class="error-text">{{errors.regionId}}</text>
</view>
+ <text wx:if="{{errors.regionId}}" class="error-text">{{errors.regionId}}</text>
</view>
- <!-- 鏁欒偛鑳屾櫙 -->
- <view class="form-item {{errors.education ? 'error' : ''}}">
+ <!-- 鏁欒偛鑳屾櫙锛堟寜闇�姹傞殣钘忥級 -->
+ <view wx:if="{{false}}" class="form-item {{errors.education ? 'error' : ''}}">
<text class="label">鏁欒偛鑳屾櫙</text>
<view class="input-wrapper">
<picker
@@ -130,134 +131,59 @@
value="{{educationIndex}}"
bindchange="onEducationChange"
>
- <view class="picker-text">
+ <view class="picker-text {{!formData.education ? 'placeholder' : ''}}">
{{formData.education || '璇烽�夋嫨鏁欒偛鑳屾櫙'}}
</view>
</picker>
- <text wx:if="{{errors.education}}" class="error-text">{{errors.education}}</text>
</view>
+ <text wx:if="{{errors.education}}" class="error-text">{{errors.education}}</text>
</view>
- <!-- 澶村儚涓婁紶 -->
- <view class="form-item vertical-layout {{errors.avatar ? 'error' : ''}}">
- <text class="label">澶村儚</text>
- <view class="avatar-upload-container">
- <!-- 鏈�夋嫨鐘舵�� -->
- <view wx:if="{{!localAvatarPath && !formData.avatarUrl && !avatarUploading}}"
- class="avatar-upload-btn"
- bindtap="onChooseAvatar">
- <text class="upload-icon ic-add"></text>
- <text class="upload-text">鐐瑰嚮閫夋嫨澶村儚</text>
- </view>
-
- <!-- 涓婁紶涓姸鎬� -->
- <view wx:if="{{avatarUploading}}" class="avatar-upload-btn uploading">
- <view class="avatar-uploading-indicator"></view>
- <text class="upload-text">涓婁紶涓� {{avatarUploadProgress}}%</text>
- <view class="upload-progress">
- <view class="progress-bar">
- <view class="progress-fill" style="width: {{avatarUploadProgress}}%"></view>
- </view>
- </view>
- </view>
-
- <!-- 宸查�夋嫨鐘舵�侊紙鏈湴棰勮锛� -->
- <view wx:if="{{localAvatarPath && !avatarUploading}}" class="avatar-preview">
- <image class="avatar-image" src="{{localAvatarPath}}" mode="aspectFill"></image>
- <view class="avatar-actions">
- <text class="action-btn" bindtap="onChooseAvatar">閲嶆柊閫夋嫨</text>
- <text class="action-btn delete" bindtap="onDeleteAvatar">鍒犻櫎</text>
- </view>
- </view>
-
- <!-- 宸蹭笂浼犵姸鎬侊紙鏈嶅姟鍣ㄥ浘鐗囷級 -->
- <view wx:if="{{formData.avatarUrl && !localAvatarPath && !avatarUploading}}" class="avatar-preview">
- <image class="avatar-image" src="{{formData.avatarUrl}}" mode="aspectFill"></image>
- <view class="avatar-actions">
- <text class="action-btn" bindtap="onChooseAvatar">閲嶆柊閫夋嫨</text>
- <text class="action-btn delete" bindtap="onDeleteAvatar">鍒犻櫎</text>
- </view>
- </view>
-
- <!-- 鎻愮ず鏂囧瓧 -->
- <view class="avatar-upload-hint">
- <text wx:if="{{!localAvatarPath && !formData.avatarUrl}}">鏀寔JPG銆丳NG銆乄ebP鏍煎紡锛屽缓璁昂瀵�200x200浠ヤ笂锛屾枃浠跺ぇ灏忎笉瓒呰繃5MB</text>
- <text wx:elif="{{localAvatarPath}}">澶村儚宸查�夋嫨锛屾彁浜ゆ椂灏嗚嚜鍔ㄤ笂浼�</text>
- <text wx:else>澶村儚涓婁紶鎴愬姛锛屽彲閲嶆柊閫夋嫨鎴栧垹闄�</text>
- </view>
- </view>
- <text wx:if="{{errors.avatar}}" class="error-text">{{errors.avatar}}</text>
- </view>
-
- <!-- 绠�浠� -->
- <view class="form-item vertical-layout {{errors.introduction ? 'error' : ''}}">
+ <!-- 绠�浠嬶紙鎸夐渶姹傞殣钘忥級 -->
+ <view wx:if="{{false}}" class="form-item vertical-layout {{errors.introduction ? 'error' : ''}}">
<text class="label">绠�浠�</text>
- <textarea
- class="textarea"
- placeholder="璇风畝瑕佷粙缁嶈嚜宸辩殑鑳屾櫙銆佹妧鑳藉拰缁忛獙"
- value="{{formData.introduction}}"
- data-field="introduction"
- bindinput="onInputChange"
- maxlength="500"
- />
+ <view class="input-wrapper">
+ <textarea
+ class="textarea"
+ placeholder-class="placeholder-class"
+ placeholder="璇风畝瑕佷粙缁嶈嚜宸辩殑鑳屾櫙銆佹妧鑳藉拰缁忛獙"
+ value="{{formData.introduction}}"
+ data-field="introduction"
+ bindinput="onInputChange"
+ maxlength="500"
+ />
+ </view>
<text wx:if="{{errors.introduction}}" class="error-text">{{errors.introduction}}</text>
</view>
-
</view>
- <!-- 涓汉浠嬬粛 -->
- <view class="form-section">
- <view class="section-title">涓汉浠嬬粛</view>
-
+ <!-- 椤圭洰淇℃伅鍗$墖 -->
+ <view class="card">
+ <view class="card-title">椤圭洰淇℃伅</view>
<!-- 椤圭洰鍚嶇О -->
<view class="form-item {{errors.projectName ? 'error' : ''}}">
<text class="label required">椤圭洰鍚嶇О</text>
<view class="input-wrapper">
<input
class="input"
+ placeholder-class="placeholder-class"
placeholder="璇疯緭鍏ラ」鐩悕绉�"
value="{{formData.projectName}}"
data-field="projectName"
bindinput="onInputChange"
/>
- <text wx:if="{{errors.projectName}}" class="error-text">{{errors.projectName}}</text>
</view>
+ <text wx:if="{{errors.projectName}}" class="error-text">{{errors.projectName}}</text>
</view>
-
- <!-- 椤圭洰鎻忚堪 -->
- <view class="form-item vertical-layout {{errors.description ? 'error' : ''}}">
- <text class="label required">椤圭洰鎻忚堪</text>
- <textarea
- class="textarea"
- placeholder="璇疯缁嗘弿杩版偍鐨勯」鐩唴瀹广�佺洰鏍囧拰鐗硅壊"
- value="{{formData.description}}"
- data-field="description"
- bindinput="onInputChange"
- maxlength="1000"
- />
- <text wx:if="{{errors.description}}" class="error-text">{{errors.description}}</text>
- </view>
-
</view>
- <!-- 闄勪欢涓婁紶 -->
- <view class="form-section vertical-layout">
- <view class="section-title">闄勪欢璧勬枡</view>
- <view class="section-subtitle">鏀寔涓婁紶鐩稿叧璧勬枡锛屾渶澶�8涓枃浠�</view>
-
- <!-- 涓婁紶鎸夐挳 -->
+ <!-- 闄勪欢璧勬枡鍗$墖 -->
+ <view class="card">
+ <view class="card-title">闄勪欢璧勬枡</view>
<view class="attachment-upload-area">
- <view wx:if="{{attachments.length < 8}}" class="upload-btn" bindtap="onChooseAttachment">
- <view class="upload-icon">馃搸</view>
- <text class="upload-text">閫夋嫨鏂囦欢</text>
- <view class="upload-hint">
- 鏀寔瑙嗛(鈮�200MB)銆佸浘鐗�(鈮�10MB)銆丳DF銆乄ord绛夋枃妗�
- </view>
- </view>
-
<!-- 闄勪欢鍒楄〃 -->
<view wx:if="{{attachments.length > 0}}" class="attachment-list">
- <view wx:for="{{attachments}}" wx:key="index" class="attachment-item {{item.uploading ? 'uploading' : ''}}">
+ <view wx:for="{{attachments}}" wx:key="id" class="attachment-item">
<view class="attachment-info">
<view class="attachment-icon">
<text wx:if="{{item.type === 'image'}}">馃柤锔�</text>
@@ -269,38 +195,31 @@
<view class="attachment-details">
<text class="attachment-name">{{item.name}}</text>
<text class="attachment-size">{{item.sizeText}}</text>
- <view wx:if="{{item.uploading}}" class="upload-progress">
- <view class="progress-bar">
- <view class="progress-fill" style="width: {{item.progress}}%"></view>
- </view>
- <text class="progress-text">{{item.progress}}%</text>
- </view>
- <text wx:elif="{{item.uploaded}}" class="upload-status success">涓婁紶鎴愬姛</text>
- <text wx:elif="{{item.error}}" class="upload-status error">{{item.error}}</text>
</view>
</view>
<view class="attachment-actions">
- <text wx:if="{{!item.uploading}}" class="action-btn delete" bindtap="onDeleteAttachment" data-index="{{index}}">鍒犻櫎</text>
+ <text class="delete-btn" bindtap="onDeleteAttachment" data-index="{{index}}">鍒犻櫎</text>
</view>
</view>
</view>
- <!-- 闄勪欢鏁伴噺鎻愮ず -->
- <view wx:if="{{attachments.length > 0}}" class="attachment-count">
- 宸蹭笂浼� {{attachments.length}}/8 涓枃浠�
+ <!-- 涓婁紶鎸夐挳 -->
+ <view wx:if="{{attachments.length < maxAttachments}}" class="upload-btn" bindtap="onChooseAttachment">
+ <view class="upload-icon">馃搸</view>
+ <text class="upload-text">娣诲姞闄勪欢</text>
+ <view class="upload-hint">
+ 鏀寔瑙嗛/鍥剧墖/PDF/Word/PPT绛夛紝鏈�澶歿{maxAttachments}}涓�
+ </view>
</view>
</view>
-
- <text wx:if="{{errors.attachments}}" class="error-text">{{errors.attachments}}</text>
- </view>
-
- <!-- 搴曢儴鎿嶄綔鏍� -->
- <view class="bottom-actions">
- <view class="submit-btn {{submitting ? 'disabled' : ''}}" bindtap="onSubmit">
- {{submitting ? '鎻愪氦涓�...' : '鎻愪氦鎶ュ悕'}}
- </view>
+ <text wx:if="{{errors.attachments}}" class="error-text" style="padding: 0 30rpx 30rpx;">{{errors.attachments}}</text>
</view>
</view>
-
+ <!-- 搴曢儴鎿嶄綔鏍� -->
+ <view class="bottom-actions">
+ <button class="submit-btn {{(isSubmitting || submitDisabled) ? 'disabled' : ''}}" bindtap="onSubmit" disabled="{{isSubmitting || submitDisabled}}">
+ {{isSubmitting ? '鎻愪氦涓�...' : submitText}}
+ </button>
+ </view>
</view>
\ No newline at end of file
--
Gitblit v1.8.0