最详细的【微信小程序+阿里云Web服务】开发部署指引(十二):开发小程序用户反馈功能


前言

案例的运行效果,可以扫码观看:
在这里插入图片描述
本篇文章,我们将实现应用的用户反馈功能。

一、功能说明

用户反馈分两种,一种是提意见,另一种是提想要看的卡片类型。
用户进入界面先选择反馈类型,跳转另外页面填写具体反馈信息,之后提交。
两种反馈程序逻辑是一样的,只是对反馈信息增加类型的区分标识。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之前我们开发的功能,对数据表都只有查询操作;而这个功能,实现对数据表的数据保存。

二、代码实现

1.创建界面Page

在这里插入图片描述

2.WXML

上面提到,用户反馈功能有多个界面;但实际上,由于界面的UI并不复杂,我们可以只创建一个Page,通过逻辑变量的值,控制界面元素的显示或隐藏。我们就用step表示当前操作的步骤,来控制当前页面显示的内容。
step1:选择用户反馈的类型。
step
2:详细反馈内容的填写和提交。
step==3:提交成功后的显示。

<!--pages/feedback/feedback.wxml-->
<view wx:if="{{step==1}}" class="nocate">
  <image style="height: 240rpx; margin-top:100rpx;" mode="aspectFit" src="../../images/feedbacktype1.png" bindtap="handleType1"></image>
  <view style="font-size: 38rpx;">意见建议</view>
  <image style="height: 240rpx; margin-top:110rpx;" mode="aspectFit" src="../../images/feedbacktype2.png" bindtap="handleType2"></image>
  <view style="font-size: 38rpx;">我想要看</view>
</view>
<view wx:if="{{step==2}}">
    <view class="page-section">
      <view class="page-section-title">留言内容(100字符以内)</view>
      <view class="textarea-wrp">
        <textarea style="height: 8em" placeholder="{{hint}}" bindinput="handleMessageChange" />
      </view>
    </view>
    <view class="page-section">
      <view class="page-section-title">联系方式(50字符以内)</view>
      <view class="textarea-wrp">
        <input class="textarea-wrp" placeholder="(选填)" bindinput="handleContactChange" />
      </view>
    </view>
    <view style="height: 12px;"></view>
    <view class="page-section">
      <view class="submit-button" style="background: {{color}};" bindtap="handleSubmit">{{submitText}}</view>
      <view class="submit-button" style="background: #aaaaaa;" bindtap="handleBack">返回</view>
    </view>
</view>
<view wx:if="{{step==3}}" class="success">
  <view class="congratulation"><icon type="success" size="32" class="success-icon"/>提交成功,感谢您的反馈</view>
  <view class="submit-button" style="background: #aaaaaa;" bindtap="handleBack">返回</view>
</view>

3.JS

step变量值,在JS文件里根据运算操作结果进行修改。

Page({
  data: {
    step: 1,
    type: 0,
    title: '',
    hint: '',
    color: '',
    message: '',
    contact: '',
    submitText: '提交'
  },

  handleType1() {
    this.setData({
      step: 2,
      type: 1,
      title: '意见建议',
      hint: '请填写您的意见或者建议',
      color: '#42da56',
      message: '',
      contact: '',
      submitText: '提交'
    })
  },

  handleType2() {
    this.setData({
      step: 2,
      type: 2,
      title: '我想要看',
      hint: '请填写您希望看到的卡片类型',
      color: '#3268cf',
      message: '',
      contact: '',
      submitText: '提交'
    })
  },

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

  handleContactChange(e) {
    this.setData({
      contact: e.detail.value
    })
  },

  // 提交前先校验数据
  handleSubmit() {
    if (this.data.message.replace(/\s+/g, '') == '') {
      wx.showToast({
        title: '请填写留言内容',
        icon: 'loading',
        duration: 1500
      })
      return;
    }
    if (this.data.message.length > 100) {
      wx.showToast({
        title: '留言内容太长',
        icon: 'loading',
        duration: 1500
      })
      return;
    }
    if (this.data.contact.length > 50) {
      wx.showToast({
        title: '联系方式太长',
        icon: 'loading',
        duration: 1500
      })
      return;
    }
    this.setData({
      submitText: '正在提交'
    })
    wx.request({
      url: 'http://www.xxx.cn/InsertFeedback.ashx',
      data: {
        'Type': this.data.type,
        'Message': this.data.message,
        'Contacts': this.data.contact
      },
      method: "POST",
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: this.submitSuccess.bind(this),
      fail: this.submitFail.bind(this)
    })
  },

  submitSuccess(res){
    var r = res.data;
    if(r == "ok") {
      this.setData({
        step: 3
      })
    }
    else {
      wx.showToast({
        title: '提交失败',
        icon: 'loading',
        duration: 1800
      })
    }
  },

  submitFail() {
    wx.showToast({
      title: '提交失败',
      icon: 'loading',
      duration: 1800
    })
  },

  handleBack(){
    this.setData({
      step: 1
    })
  }
})

对服务端数据表进行数据插入保存操作,小程序端只需要将字段提交给Web API方法即可,我们在服务端的方法已经实现了数据表的insert操作。

4.WXSS

page {
  background: #eee;
}
.success {
  background: #fff;
  padding-bottom: 40rpx;
}
.congratulation {
  text-align: center;
  line-height: 210rpx;
  font-size: 38rpx;
}
.success-icon {
  position: relative;
  top: 10rpx;
  margin-right: 20rpx;
}
.submit-button {
  margin: 20rpx 130rpx 0 130rpx;
  line-height: 100rpx;
  border-radius: 10rpx;
  text-align: center;
  color: #ffffff;
  font-size: 38rpx;
}
.nocate{
  text-align: center;  
} 
.page-section{
  margin-top: 50rpx;
  margin-bottom: 10rpx;
  margin-left: 30rpx;
  margin-right: 30rpx;
}
.page-section-title{
  font-size: 36rpx;
  color: #222222;
  margin-bottom: 10rpx;
  padding-left: 30rpx;
  padding-right: 30rpx;
}
.textarea-wrp {
  padding: 10rpx 25rpx;
  background-color: #fff;
  font-size: 32rpx;
  color: #404040;
  border-radius: 15rpx;
}

专题文章链接

最详细的【微信小程序+阿里云Web服务】开发部署指引(一):准备开始
最详细的【微信小程序+阿里云Web服务】开发部署指引(二):注册微信小程序
最详细的【微信小程序+阿里云Web服务】开发部署指引(三):开通阿里云主机
最详细的【微信小程序+阿里云Web服务】开发部署指引(四):搭建服务端数据库
最详细的【微信小程序+阿里云Web服务】开发部署指引(五):实现服务端调用逻辑
最详细的【微信小程序+阿里云Web服务】开发部署指引(六):开发微信小程序的准备
最详细的【微信小程序+阿里云Web服务】开发部署指引(七):小程序项目中的文件资源
最详细的【微信小程序+阿里云Web服务】开发部署指引(八):开发小程序卡片类型呈现功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(九):开发小程序卡片浏览功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(十):实现发音朗读
最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(十二):开发小程序用户反馈功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(十三):小程序底部菜单
最详细的【微信小程序+阿里云Web服务】开发部署指引(十四):发布小程序
最详细的【微信小程序+阿里云Web服务】开发部署指引(十五):结语

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
微信小程序阿里云开发是指使用阿里云Web服务开发部署微信小程序开发过程可以按照以下步骤进行: 1. 准备开始,包括注册微信小程序和开通阿里云主机。 2. 搭建服务端数据库,可以使用阿里云提供的云存储,用于存储素材和调用云数据库。 3. 实现服务端调用逻辑,包括处理用户请求和返回相应的数据。 4. 开发微信小程序的准备,包括设置小程序的基本信息和配置。 5. 小程序项目中的文件资源,包括上传和管理小程序的资源文件。 6. 开发小程序卡片类型呈现功能,用于展示小程序的卡片样式。 7. 开发小程序卡片浏览功能用户可以通过浏览卡片来获取信息。 8. 实现发音朗读,可以在小程序中添加发音朗读功能。 9. 开发小程序设置功能用户可以在小程序中进行个性化设置。 10. 开发小程序用户反馈功能用户可以向开发者提供反馈。 11. 小程序底部菜单,可以在小程序中添加底部菜单导航。 12. 发布小程序,可以将开发完成的小程序发布到微信平台供用户使用。 以上是使用阿里云Web服务开发微信小程序的一般步骤。具体的开发流程和详细操作可以参考《详细的【微信小程序 阿里云Web服务开发部署指引》系列文章中的内容。 另外,使用阿里云Web服务还可以通过云存储来存储小程序所需要的资源文件,如图片、音频等。云存储可以像百度网盘一样用来存储和管理自己的资源。同时,云存储还可以与云数据库进行配合使用,方便调用和管理数据。 最后,发布小程序时需要先创建一个虚拟主机,并为其创建HTTPS证书,以确保小程序的安全性和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [最详细的【微信小程序+阿里云Web服务开发部署指引(十四):发布小程序](https://blog.csdn.net/stdonald/article/details/117201975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [微信小程序开发之使用云存储](https://download.csdn.net/download/weixin_38690402/14806926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值