report.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <view class="center">
  3. <view class="">被举报车队</view>
  4. <view class="">举报信息</view>
  5. <u--textarea v-model="content" placeholder="输入要举报的内容,10-300字" maxlength="300" autoHeight count></u--textarea>
  6. <u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
  7. name="1" multiple :maxCount="1" style="z-index: 9999;"></u-upload>
  8. </view>
  9. </template>
  10. <script>
  11. import uploadImage from '@/components/ossutil/uploadFile.js';
  12. export default{
  13. data(){
  14. return{
  15. fileList1:[],
  16. content:"",
  17. textNumber:300,
  18. formData:{}
  19. }
  20. },
  21. onShow(){
  22. },
  23. onLoad(){
  24. },
  25. methods:{
  26. // 删除图片
  27. deletePic(event) {
  28. console.log(this[`fileList${event.name}`])
  29. this[`fileList${event.name}`].splice(event.index, 1)
  30. },
  31. // 新增图片
  32. async afterRead(event) {
  33. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  34. let lists = [].concat(event.file)
  35. let fileListLen = this[`fileList${event.name}`].length
  36. lists.map((item) => {
  37. this[`fileList${event.name}`].push({
  38. ...item,
  39. status: 'uploading',
  40. message: '上传中'
  41. })
  42. })
  43. for (let i = 0; i < lists.length; i++) {
  44. const result = await this.uploadFilePromise(lists[i].url)
  45. let item = this[`fileList${event.name}`][fileListLen]
  46. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  47. status: 'success',
  48. message: '',
  49. url: result
  50. }))
  51. fileListLen++
  52. }
  53. },
  54. uploadFilePromise(url) {
  55. uploadImage('image',url, 'appData/',
  56. result => {
  57. // 上传成功回调函数
  58. if(this.formData.coverUrl){
  59. this.formData.coverUrl = this.formData.coverUrl+','+ result
  60. }else{
  61. this.formData.coverUrl = result
  62. }
  63. }
  64. )
  65. },
  66. }
  67. }
  68. </script>
  69. <style lang="scss" scoped>
  70. .center{
  71. padding: 30rpx;
  72. }
  73. </style>