QueryPageImage.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <div>
  3. <span>
  4. <template v-for="(item, index) in images" :key="'image-' + index">
  5. <AuthImage
  6. :auth-src="getImageSrc(item)"
  7. style="width: 40px; cursor: pointer"
  8. @click="previewImage(item, index)"
  9. />
  10. <ImagePreview ref="imagePreview">
  11. <template #default> 图片查看器 </template>
  12. </ImagePreview>
  13. </template>
  14. </span>
  15. </div>
  16. </template>
  17. <script>
  18. import Common from '../../common/Common.js';
  19. import AuthImage from '../../image/src/AuthImage.vue';
  20. import ImagePreview from '../../image-preview/src/ImagePreview.vue';
  21. export default {
  22. components: {
  23. AuthImage,
  24. ImagePreview,
  25. },
  26. props: {
  27. className: {
  28. type: Object,
  29. default: null,
  30. },
  31. imageNames: {
  32. type: String,
  33. default: null,
  34. },
  35. },
  36. data: function () {
  37. this.Common = Common;
  38. return {
  39. images: [],
  40. selectedImage: '',
  41. modal: false,
  42. };
  43. },
  44. watch: {
  45. /**
  46. * fieldValue发生改变
  47. */
  48. imageNames: function (value) {
  49. if (value == undefined || value.length == 0) {
  50. this.images = [];
  51. } else {
  52. this.images = value.split(',');
  53. }
  54. },
  55. },
  56. mounted: function () {
  57. if (this.imageNames == undefined || this.imageNames.length == 0) {
  58. this.images = [];
  59. } else {
  60. this.images = this.imageNames.split(',');
  61. }
  62. },
  63. methods: {
  64. showImage: function (item) {
  65. this.selectedImage = item;
  66. this.modal = true;
  67. },
  68. /**
  69. * 获取图片地址
  70. * @param {String} item 图片名称
  71. * @return {String} 图片URL地址
  72. */
  73. getImageSrc: function (item) {
  74. var _self = this;
  75. if (item != undefined && item != null) {
  76. return Common.getImageSrc(_self.className, item);
  77. } else {
  78. return '';
  79. }
  80. },
  81. previewImage: function (image, index) {
  82. const src = this.getImageSrc(image);
  83. this.$refs.imagePreview[index].preview(src);
  84. },
  85. download: function () {
  86. window.open(this.getImageSrc(this.selectedImage));
  87. },
  88. },
  89. };
  90. </script>
  91. <style scoped>
  92. </style>