operate.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <div class="operate-module" :style="{top: top + 'rpx', right: right + 'rpx'}">
  3. <!-- <div class="operate-icon">
  4. <i class="iconfont" :class="[ isShow ? 'iconcaozuojihuo' : 'iconcaozuo']"></i>
  5. </div>-->
  6. <!-- 弹窗 -->
  7. <!-- <div class="operate-wrap" :style="{top: top + 'rpx', right: right + 'rpx'}" > -->
  8. <div class="operate-list" v-for="(item, index) in btnData" :key="index" @click="click(item.click)">
  9. <i class="iconfont" :class="[item.icon]"></i>
  10. <div class="btn-text">{{ item.text }}</div>
  11. <!-- <span>{{item.click}}</span> -->
  12. </div>
  13. <!-- </div> -->
  14. </div>
  15. </template>
  16. <script>
  17. export default {
  18. name: 'operate-module',
  19. data() {
  20. return {}
  21. },
  22. props: {
  23. top: {
  24. type: Number,
  25. default: 30
  26. },
  27. right: {
  28. type: Number,
  29. default: 30
  30. },
  31. // 按钮列表
  32. btnData: {
  33. type: Array,
  34. default: () => []
  35. }
  36. },
  37. methods: {
  38. click(fn) {
  39. fn()
  40. }
  41. }
  42. }
  43. </script>
  44. <style lang="scss" scoped>
  45. .operate-module {
  46. // position: relative;
  47. // .operate-icon {
  48. // .iconcaozuojihuo {
  49. // color: $mainColor;
  50. // }
  51. // }
  52. // 操作
  53. // .operate-wrap {
  54. position: absolute;
  55. // top: 50px;
  56. background: rgba(0, 0, 0, 0.8);
  57. box-shadow: 0px 3px 6px 0px rgba(29, 29, 29, 0.7);
  58. border-radius: 10px;
  59. width: max-content;
  60. height: 100px;
  61. @include disFlex(center, space-between);
  62. // padding: 14px 0;
  63. .operate-list {
  64. flex-shrink: 0;
  65. padding: 0 24px;
  66. text-align: center;
  67. color: #fff;
  68. .iconfont {
  69. font-size: 36px;
  70. }
  71. .btn-text {
  72. transform: scale(0.8);
  73. margin-top: 2px;
  74. }
  75. }
  76. // }
  77. }
  78. </style>