第八章作业

简单留言板

留言板是一款能实现浏览留言、发表留言、删除留言和编辑留言的小程序

.xml

<view class="container">
  <view class="input-area">
    <textarea placeholder="请填写留言内容" maxlength="200" bindinput="onInput" style="width: 100%; height: 100px;"></textarea>
  </view>
  <view class="upload-area">
    <button bindtap="chooseImage" class="no-background">添加图片</button>
    <view class="image-list">
      <block wx:for="{{images}}" wx:key="index">
        <image src="{{item}}" class="uploaded-image"/>
      </block>
    </view>
  </view>
  <view class="button-area">
    <button bindtap="onSubmit" class="no-background">提交</button>
    <button bindtap="onCancel" class="no-background">取消</button>
  </view>
  <view class="message-list">
    <block wx:for="{{messages}}" wx:key="id">
      <view class="message-item">
        <text>{{item.content}}</text>
        <block wx:if="{{item.images.length}}">
          <view class="image-list">
            <block wx:for="{{item.images}}" wx:key="index">
              <image src="{{item}}" class="message-image"/>
            </block>
          </view>
        </block>
      </view>
    </block>
  </view>
</view>

.xss

.container {
  padding: 20px;
}

.input-area {
  margin-bottom: 20px;
}

textarea {
  width: 100%;
  height: 100px;
  border: 1px solid #ccc;
  padding: 10px;
}

.upload-area {
  margin-bottom: 20px;
}

.image-list {
  display: flex;
  flex-wrap: wrap;
  margin-top: 10px;
}

.uploaded-image,
.message-image {
  width: 100px;
  height: 100px;
  margin: 5px;
  border: 1px solid #ccc;
}

.button-area {
  display: flex;
  justify-content: space-between;
}

.no-background {
  background: none;
  border: none;
  color: black;
  font-size: 16px;
  padding: 10px;
}

.message-list {
  margin-top: 20px;
}

.message-item {
  padding: 10px;
  border-bottom: 1px solid #ccc;
}

.js

Page({
  data: {
    message: '',
    messages: [],
    images: []
  },

  onInput(e) {
    this.setData({
      message: e.detail.value
    });
  },

  chooseImage() {
    wx.chooseImage({
      count: 3, // 设置最多可上传的图片数量
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          images: this.data.images.concat(res.tempFilePaths)
        });
      }
    });
  },

  onSubmit() {
    if (this.data.message.trim() || this.data.images.length) {
      const newMessage = {
        id: Date.now(),
        content: this.data.message,
        images: this.data.images
      };
      this.setData({
        messages: [...this.data.messages, newMessage],
        message: '',
        images: []
      });
    } else {
      wx.showToast({
        title: '留言或图片不能为空',
        icon: 'none'
      });
    }
  },

  onCancel() {
    this.setData({
      message: '',
      images: []
    });
  }
});

效果图

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值