用工小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
3.7 KiB

6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
4 months ago
6 months ago
  1. <template>
  2. <view>
  3. <u--form labelPosition="left" :model="form" :rules="rules" ref="uForm" labelWidth="80">
  4. <view class="se-px-20 se-py-20 se-c-black se-fs-32 se-fw-6">
  5. 帮助与反馈
  6. </view>
  7. <view class="se-pb-20 se-pl-20 se-m-20 se-bgc-white se-br-20">
  8. <u-form-item prop="feedback" labelWidth="2">
  9. <u--textarea :border="false" v-model="form.feedback" placeholder="请把您需要的帮助或者您发现的问题提交给我们,感谢您的参与(必填)" ></u--textarea>
  10. </u-form-item>
  11. </view>
  12. <view class="se-px-40 se-py-20 se-c-black se-fs-30 se-fw-6">
  13. 问题截图
  14. </view>
  15. <view class="se-pb-20 se-pl-20 se-m-20 se-bgc-white se-br-20">
  16. <u-form-item prop="proofFile" labelWidth="2">
  17. <view class="se-flex se-flex-v-sa se-mt-10">
  18. <view class="se-w-p-100">
  19. <u-upload :fileList="form.proofFile" @afterRead="afterRead" @delete="deletePic" multiple :maxCount="10"></u-upload>
  20. </view>
  21. </view>
  22. </u-form-item>
  23. </view>
  24. <view class="se-px-40 se-py-20 se-c-black se-fs-30 se-fw-6">
  25. 联系方式
  26. </view>
  27. <view class="se-p-20 se-m-20 se-bgc-white se-br-20">
  28. <u-form-item label="联系姓名" prop="name" borderBottom>
  29. <u--input v-model="form.name" border="none" placeholder="请输入联系姓名"></u--input>
  30. </u-form-item>
  31. <u-form-item label="联系电话" prop="mobile">
  32. <u--input v-model="form.mobile" type="number" border="none" placeholder="请输入联系电话"></u--input>
  33. </u-form-item>
  34. </view>
  35. <view class="se-px-20 se-pt-50">
  36. <view class="se-px-20 se-pb-80 se-fs-20 se-flex">
  37. <view @click="submit"
  38. class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-28 se-c-white se-bgc-orange">
  39. <text>确认</text>
  40. </view>
  41. </view>
  42. </view>
  43. </u--form>
  44. </view>
  45. </template>
  46. <script>
  47. import {
  48. addSuggest
  49. } from "@/common/api.js"
  50. export default {
  51. data(){
  52. return{
  53. form:{
  54. feedback:"",
  55. name:"",
  56. mobile:"",
  57. proofFile: []
  58. },
  59. rules:{
  60. feedback: [
  61. {
  62. required: true,
  63. message: '请输入反馈详细信息',
  64. trigger: ['blur', 'change']
  65. }
  66. ],
  67. name: [
  68. {
  69. required: true,
  70. message: '请输入联系姓名',
  71. trigger: ['blur', 'change']
  72. }
  73. ],
  74. mobile:[
  75. {
  76. required: true,
  77. message: '请输入联系电话',
  78. trigger: ['blur', 'change']
  79. }
  80. ],
  81. proofFile: [
  82. {
  83. type:"array",
  84. validator: (rule, value, callback) => {
  85. console.info(value)
  86. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  87. callback(new Error('照片不能为空'));
  88. } else {
  89. callback();
  90. }
  91. },
  92. trigger: 'blur'
  93. }
  94. ]
  95. }
  96. }
  97. },
  98. methods:{
  99. submit() {
  100. this.$refs.uForm.validate().then(res => {
  101. this.onaddSuggest()
  102. }).catch(errors => {
  103. console.info(errors)
  104. })
  105. },
  106. onaddSuggest(){
  107. let that = this
  108. let params={
  109. content: that.form.feedback,
  110. proofImg: that.form.proofFile.map(item => item.url).join(','),
  111. userName: that.form.name,
  112. userPhone: that.form.mobile
  113. }
  114. addSuggest(params).then(response=>{
  115. uni.$u.toast("提交成功!")
  116. setTimeout(()=>{
  117. uni.switchTab({
  118. url:"/pages/user/index"
  119. })
  120. },1500)
  121. }).catch(error=>{
  122. })
  123. },
  124. deletePic(e) {
  125. this.form.proofFile.splice(e.index, 1)
  126. },
  127. async afterRead(e) {
  128. let self = this
  129. e.file.forEach(file => {
  130. self.$Oss.ossUpload(file.url).then(url => {
  131. self.form.proofFile.push({
  132. url
  133. })
  134. })
  135. })
  136. }
  137. }
  138. }
  139. </script>
  140. <style>
  141. page{
  142. background-color: #f5f5f5;
  143. }
  144. </style>