index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <view>
  3. <model1 :shareNumber='shareNumber' @openImage='openImage' :isDefault='isDefault' v-if="modelId==3||modelId==1"
  4. :templateDetail='templateData' :isShare='isShare' :isLook='isLook'></model1>
  5. <model2 :shareNumber='shareNumber' @openImage='openImage' :isDefault='isDefault' v-else-if="modelId==4" :templateDetail='templateData'
  6. :isShare='isShare' :isLook='isLook'></model2>
  7. <model3 :shareNumber='shareNumber' @openImage='openImage' :isDefault='isDefault' v-else-if="modelId==5" :templateDetail='templateData'
  8. :isShare='isShare' :isLook='isLook'></model3>
  9. <model4 :shareNumber='shareNumber' @openImage='openImage' :isDefault='isDefault' v-else-if="modelId==6" :templateDetail='templateData'
  10. :isShare='isShare' :isLook='isLook'></model4>
  11. <template v-if="imageList.length>0">
  12. <q-previewImage ref="previewImage" :urls="imageList"
  13. @close="close" @open="open" @onLongpress="onLongpress"></q-previewImage>
  14. </template>
  15. </view>
  16. </template>
  17. <script>
  18. import model1 from './modeltemplate/model_1.vue';
  19. import model2 from './modeltemplate/model_2.vue'
  20. import model3 from './modeltemplate/model_3.vue'
  21. import model4 from './modeltemplate/model_4.vue'
  22. export default {
  23. props: {
  24. // 浏览数量
  25. shareNumber: {
  26. type: Number,
  27. default: 0
  28. },
  29. // 是否显示默认数据
  30. isDefault: {
  31. type: Boolean,
  32. default: true
  33. },
  34. templateData: {
  35. type: Object,
  36. default: () => {
  37. return {}
  38. }
  39. },
  40. isShare: {
  41. type: Boolean,
  42. default: false
  43. },
  44. //1为模板2为用户
  45. isLook: {
  46. type: Number,
  47. default: 0
  48. },
  49. modelId: {
  50. type: Number,
  51. default: 0
  52. },
  53. },
  54. components: {
  55. model1,
  56. model2,
  57. model3,
  58. model4
  59. },
  60. computed: {
  61. imageList() {
  62. try{
  63. let templateData = this.templateData;
  64. let arr = [];
  65. if(templateData.modelType==0){
  66. if(templateData.service_intro_imgs && templateData.service_intro_imgs.length > 0){
  67. arr = [...templateData.service_intro_imgs]
  68. }
  69. if (templateData.service_audit_imgs && templateData.service_audit_imgs.length > 0) {
  70. arr = arr.concat(templateData.service_audit_imgs)
  71. }
  72. if (templateData.service_imgs && templateData.service_imgs.length > 0) {
  73. arr = arr.concat(templateData.service_imgs)
  74. }
  75. }else if(templateData.modelType==1){
  76. arr = arr.concat(templateData.model_imgs)
  77. }
  78. return arr
  79. }catch(e){
  80. console.log(e,'eeee')
  81. return []
  82. //TODO handle the exception
  83. }
  84. }
  85. },
  86. methods: {
  87. openImage(item) {
  88. this.$nextTick(() => {
  89. this.$refs.previewImage.open(item);
  90. })
  91. },
  92. open() { //监听组件显示 (隐藏TabBar和NavigationBar,隐藏video原生组件)
  93. // uni.hideTabBar()
  94. // uni.setNavigationBarColor({
  95. // frontColor: '#000000', // 设置前景色为黑色
  96. // backgroundColor: '#000000', // 设置背景色为黑色
  97. // })
  98. // this.videoShow = false
  99. },
  100. close() { //监听组件隐藏 (显示TabBar和NavigationBar,显示video原生组件)
  101. // uni.showTabBar()
  102. // uni.setNavigationBarColor({
  103. // frontColor: '#ffffff', // 设置前景色为白色
  104. // backgroundColor: '#000000', // 设置背景色为黑色
  105. // })
  106. // this.videoShow = true
  107. }
  108. },
  109. data() {
  110. return {
  111. model: 0
  112. }
  113. },
  114. onLoad() {
  115. uni.postMessage('打开页面')
  116. },
  117. onUnload() {
  118. uni.postMessage('关闭页面')
  119. }
  120. }
  121. </script>