小程序农机手端

index.jsx 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { useState } from "react"
  2. import Taro from "@tarojs/taro"
  3. import { View, Image, Textarea } from "@tarojs/components"
  4. import withLayout from '@/layouts'
  5. import CustomNav from "@/components/CustomNav"
  6. import MyButton from "@/components/MyButton"
  7. import editImg from '@/assets/user/edit.png'
  8. import { addFeedback } from "@/services/feedback"
  9. import './style.less'
  10. import { useModel } from "@/store"
  11. export default withLayout((props) => {
  12. const { person } = useModel('person')
  13. const [value, setValue] = useState()
  14. const [show, setShow] = useState(true)
  15. const [loading, setLoading] = useState(false)
  16. const onChange = (e) => {
  17. if (e.detail.value) {
  18. setValue(e.detail.value)
  19. } else {
  20. setShow(true)
  21. }
  22. }
  23. const handleSumbit = () => {
  24. if (show) {
  25. Taro.showToast({
  26. title: '请输入您的建议',
  27. icon: 'none',
  28. })
  29. } else {
  30. setLoading(true)
  31. addFeedback({ ...person, content: value }).then((res) => {
  32. Taro.showToast({
  33. title: '反馈已收到!',
  34. icon: 'success'
  35. })
  36. setTimeout(() => {
  37. Taro.navigateBack({
  38. delta: 1
  39. })
  40. }, 1000)
  41. }).catch(err => {
  42. Taro.showToast({
  43. title: '网络异常, 请刷新小程序重试',
  44. icon: 'none',
  45. })
  46. })
  47. }
  48. }
  49. return (
  50. <View className='page-index'>
  51. <View className='index-navbar'>
  52. <CustomNav title='意见反馈' />
  53. </View>
  54. <View className='index-container feedback'>
  55. <View className='content'>
  56. <Textarea
  57. value={value}
  58. onFocus={() => setShow(false)}
  59. onInput={onChange}
  60. className='value'
  61. />
  62. {
  63. show &&
  64. <View className='defaultValue'>
  65. <Image src={editImg} className='edit' />
  66. 请留下您宝贵的意见和建议!
  67. </View>
  68. }
  69. </View>
  70. <View className='bottomBtn'>
  71. <MyButton value='提交' loading={loading} onClick={handleSumbit} />
  72. </View>
  73. </View>
  74. </View>
  75. )
  76. })