index.vue 3.6 KB

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