Initial commit
This commit is contained in:
136
miniprogram/pages/post/post.wxml
Normal file
136
miniprogram/pages/post/post.wxml
Normal file
@@ -0,0 +1,136 @@
|
||||
<view class="post-page">
|
||||
<view class="safe-top" style="height: {{statusBarHeight}}px"></view>
|
||||
|
||||
<!-- 顶部导航 -->
|
||||
<view class="post-header">
|
||||
<view class="cancel-btn" bindtap="onCancel">取消</view>
|
||||
<view class="header-title">发布动态</view>
|
||||
<view class="submit-btn {{canSubmit ? '' : 'submit-disabled'}}" bindtap="onSubmit">
|
||||
{{submitting ? '发布中...' : '发布'}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<scroll-view scroll-y="true" class="post-scroll" enhanced="true" show-scrollbar="false">
|
||||
<view class="post-body">
|
||||
|
||||
<!-- 图片上传区 -->
|
||||
<view class="upload-section">
|
||||
<view wx:if="{{images.length === 0}}" class="upload-placeholder" bindtap="onChooseImage">
|
||||
<view class="upload-icon">📷</view>
|
||||
<text class="upload-hint">点击添加图片或视频</text>
|
||||
<text class="upload-sub">最多9张</text>
|
||||
</view>
|
||||
|
||||
<view wx:else class="image-grid">
|
||||
<view
|
||||
wx:for="{{images}}"
|
||||
wx:key="index"
|
||||
class="image-item"
|
||||
bindtap="onPreviewImage"
|
||||
data-idx="{{index}}"
|
||||
>
|
||||
<image class="img-preview" src="{{item.tempPath || item}}" mode="aspectFill" />
|
||||
<view class="img-remove" catchtap="onRemoveImage" data-idx="{{index}}">×</view>
|
||||
<view wx:if="{{item.uploading}}" class="img-uploading">
|
||||
<view class="upload-spinner"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:if="{{images.length < 9}}" class="image-add" bindtap="onChooseImage">
|
||||
<text class="add-plus">+</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 文字输入 -->
|
||||
<textarea
|
||||
class="content-input"
|
||||
placeholder="分享你和毛孩子的今天 🐾"
|
||||
placeholder-class="input-placeholder"
|
||||
value="{{content}}"
|
||||
bindinput="onContentInput"
|
||||
maxlength="500"
|
||||
auto-height="true"
|
||||
show-confirm-bar="false"
|
||||
adjust-position="true"
|
||||
cursor-spacing="120"
|
||||
/>
|
||||
<view class="word-count">{{content.length}}/500</view>
|
||||
|
||||
<!-- 位置标签 -->
|
||||
<view class="section-title">📍 位置</view>
|
||||
<view class="tag-row">
|
||||
<view
|
||||
class="tag-pill {{location ? 'tag-selected' : ''}}"
|
||||
bindtap="onChooseLocation"
|
||||
>
|
||||
<text>{{location ? location.name : '添加位置'}}</text>
|
||||
</view>
|
||||
<view wx:if="{{location}}" class="tag-remove" bindtap="onRemoveLocation">×</view>
|
||||
</view>
|
||||
|
||||
<!-- 关联宠物 -->
|
||||
<view class="section-title">🐾 关联宠物</view>
|
||||
<view class="tag-row">
|
||||
<view
|
||||
wx:for="{{myPets}}"
|
||||
wx:key="_id"
|
||||
class="tag-pill {{selectedPetId === item._id ? 'tag-selected' : ''}}"
|
||||
bindtap="onSelectPet"
|
||||
data-id="{{item._id}}"
|
||||
>
|
||||
<text>{{item.emoji}} {{item.name}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 话题标签 -->
|
||||
<view class="section-title">🏷 话题</view>
|
||||
<view class="hashtag-wrap">
|
||||
<view class="hashtag-input-row">
|
||||
<input
|
||||
class="hashtag-input"
|
||||
placeholder="输入话题..."
|
||||
value="{{hashtagInput}}"
|
||||
bindinput="onHashtagInput"
|
||||
bindconfirm="onAddHashtag"
|
||||
maxlength="20"
|
||||
/>
|
||||
<view class="hashtag-add-btn" bindtap="onAddHashtag">添加</view>
|
||||
</view>
|
||||
<view class="tag-row" style="margin-top: 16rpx;">
|
||||
<view
|
||||
wx:for="{{selectedHashtags}}"
|
||||
wx:key="index"
|
||||
class="hashtag-chip"
|
||||
>
|
||||
<text>#{{item}}</text>
|
||||
<text class="chip-remove" catchtap="onRemoveHashtag" data-idx="{{index}}">×</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="hot-tags">
|
||||
<text class="hot-tags-label">热门:</text>
|
||||
<view
|
||||
wx:for="{{hotHashtags}}"
|
||||
wx:key="index"
|
||||
class="hot-tag"
|
||||
bindtap="onHotTag"
|
||||
data-tag="{{item}}"
|
||||
>{{item}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 心情 -->
|
||||
<view class="section-title">😊 心情</view>
|
||||
<view class="mood-row">
|
||||
<view
|
||||
wx:for="{{moods}}"
|
||||
wx:key="value"
|
||||
class="mood-pill {{selectedMood === item.value ? 'mood-on' : ''}}"
|
||||
bindtap="onSelectMood"
|
||||
data-val="{{item.value}}"
|
||||
>{{item.label}}</view>
|
||||
</view>
|
||||
|
||||
<view style="height: 60rpx;"></view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
Reference in New Issue
Block a user