index.tsx 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { Button, Checkbox, CheckboxGroup, RadioGroup, Radio, Col, Field, Row, Toast } from 'vant'
  2. import { defineComponent, ref } from 'vue'
  3. import styles from './index.module.less'
  4. import bgSubmit from '../../popups/setting/icons/submit.png'
  5. import request from '/src/helpers/request'
  6. import { suggestPopup } from '../setting/sett'
  7. export default defineComponent({
  8. name: 'ColexiuFeedBack',
  9. setup() {
  10. const select = ref<string>('识别不准')
  11. const text = ref<string>('')
  12. const loading = ref<boolean>(false)
  13. const list = [
  14. { name: '识别不准' },
  15. { name: '无法评测' },
  16. { name: '不出评测结果' },
  17. { name: '曲谱不一致' },
  18. { name: '指法错误' },
  19. { name: '其他' },
  20. ]
  21. const submit = () => {
  22. try {
  23. if (!text.value) {
  24. return Toast('请先填写意见反馈')
  25. }
  26. loading.value = true
  27. request.post('/sysSuggestion/save', {
  28. data: {
  29. clientType: 'STUDENT',
  30. content: text.value + '#' + select.value,
  31. type: 'SMART_PRACTICE',
  32. },
  33. })
  34. suggestPopup.value?.close()
  35. Toast('意见反馈已提交')
  36. } catch (error) {}
  37. loading.value = false
  38. }
  39. return () => (
  40. <div class={styles.feedback}>
  41. <div class={styles.wrap}>
  42. <div class={styles.title}>意见反馈</div>
  43. <div class={styles.sub}>请选择问题类型</div>
  44. <RadioGroup class={styles.group} v-model={select.value}>
  45. <Row gutter={4}>
  46. {list.map((item) => (
  47. <Col span={8}>
  48. <Radio name={item.name}>{item.name}</Radio>
  49. </Col>
  50. ))}
  51. </Row>
  52. </RadioGroup>
  53. <Field
  54. type="textarea"
  55. class={styles.text}
  56. placeholder="请详细描述您遇到的问题,以便我们尽快为您解决!"
  57. maxlength={200}
  58. rows="3"
  59. autosize
  60. show-word-limit
  61. v-model={text.value}
  62. />
  63. <div class={styles.btns}>
  64. <img class={styles.submit} src={bgSubmit} onClick={submit} />
  65. </div>
  66. </div>
  67. </div>
  68. )
  69. },
  70. })