Monitor.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <div class="monitor-page">
  3. <ul class="monitor-ul">
  4. <li :class="{'first-bottom': showList.length && showList.includes(1)}" v-show="showList.length && showList.includes(1)">监控业主一旦发布与“我的订阅”相关的招标动态,会推送业主的招标项目、时间等公告信息。</li>
  5. <li :class="{'border-2': !showList.includes(1)}" v-show="showList.length && showList.includes(2)" @click="$emit('monitorStatus')">查看监控动态</li>
  6. <li v-show="showList.length && showList.includes(3)">
  7. <div class="list-top" @click="monitorList">
  8. <span>查看监控列表</span>
  9. <i class="el-icon-arrow-right"></i>
  10. </div>
  11. <div class="list-center">
  12. 已监控 <span style="color: #2ABED1;font-weight: 700;">{{alreadyNum}}</span> 个,剩余 <span style="color: #2ABED1;font-weight: 700;">{{remainNum}}</span> 个
  13. </div>
  14. <div class="list-bottom" @click="monitorApply">申请监控更多业主></div>
  15. </li>
  16. <li @click="$emit('monitorCancel')" v-show="showList.length && showList.includes(4)">取消监控</li>
  17. </ul>
  18. </div>
  19. </template>
  20. <script>
  21. import { mapState } from 'vuex'
  22. export default {
  23. props: {
  24. showList: {
  25. type: Array,
  26. default: () => [1]
  27. },
  28. alreadyNum: {
  29. type: Number,
  30. default: 0
  31. },
  32. // 剩余
  33. remainNum: {
  34. type: Number,
  35. default: 0
  36. }
  37. },
  38. data () {
  39. return {
  40. monitor: {
  41. }
  42. }
  43. },
  44. computed: {
  45. ...mapState({
  46. info: state => state.user.info
  47. })
  48. },
  49. mounted () {
  50. },
  51. methods: {
  52. // 查看监控列表
  53. monitorList () {
  54. window.open('/swordfish/page_big_pc/my_client')
  55. },
  56. // 申请监控更多业主
  57. monitorApply () {
  58. if (this.info.vipStatus > 0) {
  59. this.$emit('showNeedSubmit')
  60. } else {
  61. this.$emit('show')
  62. }
  63. }
  64. }
  65. }
  66. </script>
  67. <style lang="scss" scoped>
  68. .monitor-page{
  69. .monitor-ul{
  70. li {
  71. padding: 12px 0;
  72. border-top: 1px solid #ECECEC;
  73. font-size: 16px;
  74. color: #1D1D1D;
  75. cursor: pointer;
  76. &:first-child{
  77. border: none;
  78. padding: 0 0 12px;
  79. font-size: 14px;
  80. color: #686868;
  81. }
  82. &.first-bottom{
  83. padding: 0;
  84. }
  85. &:last-child{
  86. padding: 12px 0 0;
  87. }
  88. &.border-2{
  89. border: none;
  90. }
  91. .list-top{
  92. display: flex;
  93. justify-content: space-between;
  94. align-items: center;
  95. color: #2ABED1;
  96. }
  97. .list-center {
  98. margin: 8px 0;
  99. color: #686868;
  100. font-size: 14px;
  101. }
  102. .list-bottom {
  103. display: flex;
  104. justify-content: center;
  105. align-items: center;
  106. width: 100%;
  107. height: 32px;
  108. color: #2ABED1;
  109. font-size: 14px;
  110. background-color: #EAF8FA;
  111. }
  112. }
  113. }
  114. }
  115. </style>