index.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // components/imageViewer/index.js
  2. import api from '../../api/api'
  3. Component({
  4. /**
  5. * 组件的属性列表
  6. */
  7. properties: {
  8. list:{
  9. value:'',
  10. type:Array
  11. },
  12. isdelete:{
  13. type:Boolean,
  14. value:true
  15. },
  16. },
  17. /**
  18. * 组件的初始数据
  19. */
  20. data: {
  21. visible: false,
  22. showIndex: false,
  23. closeBtn: false,
  24. deleteBtn: false,
  25. images2:[],
  26. gridConfig: {
  27. column: 5,
  28. width: 120,
  29. height: 120,
  30. },
  31. },
  32. /**
  33. * 组件的方法列表
  34. */
  35. lifetimes:{
  36. attached () {
  37. setTimeout(() => {
  38. this.setData({
  39. images2:this.data.list.map(e=>{
  40. return {url:e.url,type:this.validateImageType(e.postfix),linksid:e.linksid}
  41. })
  42. })
  43. console.log(this.data.images2)
  44. }, 1000);
  45. }
  46. },
  47. methods: {
  48. validateImageType(file) {
  49. const allowedTypes = /(\jpg|\jpeg|\png|\gif)$/i;
  50. const allowedTypes1 = /(\mp4|\mov|\3gp|\3g2)$/i;
  51. if (allowedTypes.test(file)) {
  52. return 'image'
  53. } else if (allowedTypes1.test(file)) {
  54. return 'video'
  55. } else {
  56. return 'file'
  57. }
  58. },
  59. async deleteFile (data) {
  60. const res = await api._post({
  61. "classname": "system.attachment.Attachment",
  62. "method": "deleteFileLink",
  63. "content": {
  64. "linksids": [data.detail.file.linksid]
  65. }
  66. })
  67. if (res.code == 1) {
  68. this.setData({
  69. images2:this.data.images2.filter(e=>{
  70. return e.linksid !== data.detail.file.linksid
  71. })
  72. })
  73. }
  74. else {
  75. wx.showToast({
  76. title: res.data,
  77. icon:'none'
  78. })
  79. }
  80. }
  81. }
  82. })