瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
2.6 KiB

7 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
7 months ago
7 months ago
6 months ago
7 months ago
7 months ago
6 months ago
7 months ago
  1. <template>
  2. <view>
  3. <view class="createDetail">
  4. <!-- 添加内容 -->
  5. <view @click="open">
  6. <uv-icon size="40rpx" color="#fff" name="plus"></uv-icon>
  7. </view>
  8. <!-- 联系我们 -->
  9. <view>
  10. <button @click="$emit('customerServiceOpen')">
  11. <uv-icon size="40rpx"
  12. color="#fff"
  13. name="server-man"></uv-icon>
  14. </button>
  15. </view>
  16. <!-- 积分规则 -->
  17. <view>
  18. <button @click="$emit('integralDetailsOpen')">
  19. <uv-icon size="40rpx"
  20. color="#fff"
  21. name="question-circle"></uv-icon>
  22. </button>
  23. </view>
  24. </view>
  25. <uv-popup ref="createDetailPopup" :round="30">
  26. <view class="createDetailPopup">
  27. <view class="" :key="index" @click="clickItem(item)" v-for="(item, index) in createDetail">
  28. <image :src="item.image" style="width: 90rpx;height: 90rpx;" mode="aspectFill"></image>
  29. <view class="info">
  30. <view class="title">
  31. {{ item.name }}
  32. </view>
  33. <view class="desc">
  34. {{ item.context }}
  35. </view>
  36. </view>
  37. <view class="icon">
  38. <uv-icon size="30rpx" name="arrow-right"></uv-icon>
  39. </view>
  40. </view>
  41. </view>
  42. </uv-popup>
  43. </view>
  44. </template>
  45. <script>
  46. export default {
  47. components : {
  48. },
  49. data() {
  50. return {
  51. createDetail: [],
  52. }
  53. },
  54. created() {
  55. this.getData()
  56. },
  57. methods: {
  58. open(){
  59. if(!uni.getStorageSync('token')){
  60. uni.navigateTo({
  61. url: '/pages_order/auth/wxLogin'
  62. })
  63. return
  64. }
  65. this.$refs.createDetailPopup.open('bottom')
  66. },
  67. getData() {
  68. this.$api('getPublishList', res => {
  69. if (res.code == 200) {
  70. this.createDetail = res.result
  71. }
  72. })
  73. },
  74. clickItem(item) {
  75. this.$utils.navigateTo(item.url)
  76. this.$refs.createDetailPopup.close()
  77. },
  78. }
  79. }
  80. </script>
  81. <style scoped lang="scss">
  82. .createDetail {
  83. position: fixed;
  84. top: 60vh;
  85. right: 50rpx;
  86. z-index: 999;
  87. button{
  88. all : unset;
  89. }
  90. button::after{
  91. all : unset;
  92. }
  93. &>view{
  94. width: 100rpx;
  95. height: 100rpx;
  96. background-color: $uni-color;
  97. border-radius: 50rpx;
  98. display: flex;
  99. justify-content: center;
  100. align-items: center;
  101. box-shadow: 0 0 10rpx 10rpx rgba(#000, 0.1);
  102. margin-bottom: 30rpx;
  103. }
  104. }
  105. .createDetailPopup {
  106. padding: 20rpx;
  107. background-color: #ffffff;
  108. &>view {
  109. display: flex;
  110. align-items: center;
  111. padding: 24rpx;
  112. background-color: #f7f7f7;
  113. margin: 20rpx;
  114. border-radius: 20rpx;
  115. image {
  116. width: 100rpx;
  117. height: 100rpx;
  118. margin-right: 20rpx;
  119. }
  120. .info {
  121. .title {
  122. font-size: 30rpx;
  123. }
  124. .desc {
  125. font-size: 24rpx;
  126. }
  127. }
  128. .icon {
  129. margin-left: auto;
  130. }
  131. }
  132. }
  133. </style>